操作系统笔记

232 阅读2分钟

1. 计算机系统

  1. OS特征 :并发 /共享(互斥访问,共享访问) /虚拟- 空分复用(内存),时分复用(CPU时间片) / 异步
  2. CPU状态 : 核心态-保护/用户态->通过中断/异常访管指令访问核心态
  3. 内核:计时/时间片调度/中断机制/原语-设备驱动控制/数据结构及处理
  4. 体系结构:大内核/微内核

2. 进程管理

  1. 进程: CPU分配资源的单位 vs 线程是CPU独立调度的单位,进程由程序段,数据段,PCB(进程控制块)组成,运行状态包括就绪、执行、阻塞。
  2. 进程通信
    • 共享存储
    • 消息: 消息缓冲区
    • 管道(单双工)
  3. 进程同步
    • 软件实现
    • 硬件: 中断/硬件指令(swap/TestAndSet)
    • 信号量 wait-signal
  4. 作业调度算法: 先来先服务/ 短作业优先/优先级调度/时间片,多级反馈队列算法: 多个就绪队列,时间长的自动排到下一优先级队尾
  5. 死锁: 多个进程竞争同一资源产生互相等待,既得不到被其他进程占用的资源,也不释放自己已经占据的资源。产生的4个必要条件及检测解决(略)

3. 内存管理(MMU)

  1. 解决OS空分复用中内存访问防护与定位:利用映射单元,通过基址界限寄存器,保证程序不能引用低于基址和高于界限的的存储空间。
  2. 内存地址转换: 逻辑地址向物理地址转换
  3. 虚拟内存管理:把程序所需存储空间分成若干页或段
  • 分页式(通过硬件机制实现,一页默认4K)
  • 分段式(将程序划分为多段, 每个段都从0开始,由段号+段内地址构成,方便通过段号实现信息共享和保护动态链接等)
  • 段页式 缺页中断: 访问时不在内存中,暂停当前线程,载入内存,即缺页中断处理。

4. 文件管理(略)

5. IO外设

管理控制 (从低到高,对CPU的干扰占用逐级降低)

  1. 程序控制
  2. 中断驱动
  3. DMA方式
  4. 通道控制方式

问答

  1. malloc是真正分配物理内存吗?
    不是。malloc分配的是虚拟地址空间, 通过进程页表映射到物理空间,第一次使用该内存时分配物理空间。
  2. free会真正收回物理内存吗?
    不一定。 free()空间 >128K时(依实现此阈值不同) unmap返还给OS当<128K时,使用sbrk回收,并且只有当堆顶总空间>128k,才会还给OS。所以free后内存并不一定还给OS。在系统中可以看到VSZ:申请的虚拟地址空间大小,RSS是实际分配内存的大小。