首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
CS operating system
orange_lys
创建于2023-11-04
订阅专栏
操作系统笔记
暂无订阅
共33篇文章
创建于2023-11-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
GC 垃圾回收 之 分代搜集式
概念 Java 的 jvm 就使用的分代搜集(Generation)的思路。在面向对象编程语言中,绝大多数对象的生命周期都非常短。分代收集的基本思想是,将堆划分为两个或多个称为代(Generation
GC 垃圾回收 之 标记清除式
概念 标记-清除(Mark And Sweep)分为两步,标记从根变量开始迭代遍历所有被引用的对象,对能够通过引用遍历访问到的对象都进行标记为“被引用”;标记完成后进行清除操作,对没有标记过的内存进行
GC 垃圾回收 之 引用计数式
概念 引用计数(Reference Counting)是最简单的一种垃圾回收算法,和智能指针异曲同工。对每个对象维护一个引用计数,当引用该对象的对象被销毁或更新时被引用对象的引用计数自动减一,当被引用
虚拟内存
概念 在大多数计算机上,物理内存就是物理 RAM 芯片中的内存。虚拟内存是物理内存的一种抽象,它由操作系统提供,用来实现不同程序之间的内存隔离。一般来说,只要没有映射到物理内存,应用程序可以预留虚拟内
GC 垃圾回收
概念 垃圾回收器 GC 是一种内存回收系统,它代表应用程序来识别内存中什么部分已经不再使用。Go 标准工具链会提供一组运行时库,它们会随所有应用程序一同发布。Go 运行时库里就包含了垃圾回收器。 哪些
逃逸分析
概念 在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法,简单来说就是分析在程序的哪些地方可以访问到该指针,通俗地讲,逃逸分析就是确定一个变量要放堆上还是栈上,规则如下: 是否有在其他地方(非
什么是 Kubernetes
概念图 单机操作系统 这是一张传统的操作系统和 Kubernetes 的比较图。大家都知道,作为一个传统的操作系统,像 Linux 或者 Windows,它们扮演的角色,就是底层硬件的 一个抽象层。它
什么是Linux Kernel(内核)的namespace(命名空间)
概念 namespace(命名空间)是linux kernel实现资源隔离的一种技术,命名空间将全局系统资源进行隔离,使命名空间内的进程看起来拥有自己的全局资源。在命名空间内对全局资源的更改对属于相同
内存分区(栈区 堆区 静态存储区)
堆(Heap) 一般来讲是人为手动进行管理,手动申请、分配、释放。一般所涉及的内存大小并不定,一般会存放较大的对象。另外其分配相对慢,涉及到的指令动作也相对多 栈(Stack) 由编译器进行管理,自动
GO的并发调度模型-GMP模型
前身 GM 模型 12年的 GO 1.1版本之前用的都是 GM 模型,但是由于 GM 模型性能不好,饱受用户诟病。之后官方对调度器进行了改进,变成了我们现在用的 GMP 模型。 GM 模型中的 G 全
线程并发-执行管理(hand off 机制/交接机制)
概念 当本线程 M1 因为 G1 进行的系统调用阻塞时,线程释放绑定的 P1,把 P1 转移给其他空闲的 M2 执行。 当 M1 发生上线文切换(软中断)时,需要对执行现场进行保护,以便下次被调度执行
进程 和 系统级线程 以及 用户级线程(主要讲协程)
执行单元 执行单元是指 CPU 调度和分派的基本单位,它是一个 CPU 能正常运行的基本单元。执行单元是可以停下来的,只要能把 CPU 状态(其实就是寄存器的值)全部保存起来,等到这个执行单元再被调度
线程并发-内核态和用户态
概念 在操作系统中,程序的执行权限有两种:用户态和内核态。 内核态 cpu可以访问计算机所有的软硬件资源 用户态 cpu权限受限,只能访问到自己内存中的数据,无法访问其他资源 出现原因 程序拥有对所有
指令集
概念 CPU 指令集是 CPU 实现软件指挥硬件执行的媒介,是 CPU 能够直接识别的二进制格式代码(为了便于编写和阅读,出现了字符格式的代码即汇编,汇编语句通过编译就可以转成二进制的代码供 CPU
编程语言的并发模型
如果大家学过其它语言的多线程,可能就知道不同语言对于线程的实现可能大相径庭: 由于操作系统提供了创建线程的 API,因此部分语言会直接调用该 API 来创建线程,因此最终程序内的线程数和该程序占用的操
运行时
概念 运行时(Runtime)是那些会被打包到所有程序可执行文件中的代码,根据每个语言的设计权衡,运行时虽然有大有小,但是除了汇编之外,每个语言都拥有它。 运行时小的其中一个好处在于最终编译出的可执行
线程并发-原子操作与临界区
前言 在并发编程中,多个线程对同一个资源进行访问可能会互相干扰,这种情况被称为竞争条件。造成竞争条件的根本原因在于线程在进行某些操作的过程中被中断,虽然线程再次运行时其状态会恢复如初,但是外界环境可能
线程并发-互斥量和条件变量
临界区常见的同步方式为互斥量与条件变量。 互斥量 互斥量(Mutex)从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放锁。当我们对互斥量进行加锁之后,任何其他试图再次对互斥量加锁
线程并发-同步和异步
同步 在很多时候,我们需要多个进程或线程之间相互配合完成一个任务,多个串行程序可能都要对一个共享资源进行访问,或者相互传递一些数据。这种情况下,我们需要协调程序的执行。同步的作用是避免在并发访问共享资
线程并发-执行管理(任务窃取)
概念 任务窃取,也叫work stealing,是指工作线程本身的任务队列为空时, 从其他工作线程的任务队列中窃取任务来执行. 在fork/join篇中, 我们提到, 假如我们要线程池做一些比较大的任
下一页