软考系统架构师备战笔记 - 2. 操作系统

90 阅读8分钟

操作系统的功能:

  1. 进程管理。实质上是对处理机的执行时间进行管理,采用多道程序等技术将 CPU 的时间合理的分配给每个任务,主要包括进程控制,进程同步,进程通信和进程调度
  2. 文件管理。主要包括文件存储空间管理,目录管理,文件的读/写管理和存取控制
  3. 存储管理。存储管理是对主存储器空间进行管理,主要包括存储分配与回收,存储保护,地址映射(变换)和主存扩充
  4. 设备管理。实质是对硬件设备的管理,包括对输入/输出设备的分配,启动,完成和回收
  5. 作业管理。包括任务,界面管理,人机交互,图形界面,语音控制和虚拟现实等

进程管理

进程的组成:进程控制块 PCB(唯一标志),程序(描述进程要做什么),数据(存放进程执行时所需数据)

三态图

前驱图

用来表示哪些任务可以并行执行,哪些任务之间有顺序关系,具体如下图。可知 A B C 可以并行执行,但是必须 A B C 都执行完后,才能执行 D,这就确定了两点:任务间的并行,任务间的先后顺序

进程资源图

用来表示进程和资源之间的分配和请求关系

P 代表进程,R 代表资源,R 方框内有几个圆球代表有几个资源。在上图中,R1 指向 P1,表示 R1 有一个资源分配给了 P1,P1 指向 R2,表示 P1 还需要请求一个 R2 的资源才能执行

  • 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续,如上图中 P2
  • 非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中 P1,P3

当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态

进程同步与互斥

互斥:某资源在同一时间内只能由一个任务单数使用,使用时需要加锁,使用完后解锁才能被其他任务使用。如打印机

同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题。如自行车和汽车

信号量

互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为 1

同步信号量:对共享资源的访问控制,初值一般是共享资源的数量

P 操作和 V 操作

都是原子操作,用来解释进程间的同步和互斥原理

P 操作:申请资源,S=S-1,若 S >= 0,则执行 P 操作的进程继续执行,若 S < 0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列

V 操作:释放资源,S=S+1,若 S > 0,则执行 V 操作的进程继续执行;若 S <= 0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被 P 操作阻塞的进程可以继续执行),然后执行 V 操作的进程继续

死锁

当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁

死锁产生的四个必要条件:资源互斥,每个进程占有资源并等待其他资源,系统不能剥夺进程资源,进程资源图是一个环路

死锁资源计算:系统内有 n 个进程,每个进程都需要 R 个资源,那么其发生死锁的最大资源数为:n * (R - 1),

其不发生死锁的最小资源数为:n (R - 1) + 1*

存储管理

存储器的结构:寄存器 - 高速缓存Cache - 主存 - 外存

地址重定位:将逻辑地址转换为实际主存物理地址的过程,分为静态重定位(在程序装入主存就完成了转)、动态重定位(边运行边转换)

分区存储管理

所谓分区存储组织,就是整存,将某进程运行所需的内存整体一起分配给它,然后再执行,有三种分区方式,仅了解

  • 固定分区
  • 可变分区
  • 可重定位分区

分页存储管理

如果采用分区存储,都是整存,当进程运行所需的内存大于系统内存时,就无法将整个进程调入内存。若要解决此问题,就要采用段式、页式存储组织

逻辑页分为 页号页内地址

页内地址:就是物理偏移地址,

页号:页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址得出真正物理地址

物理地址和逻辑地址的页内偏移地址是一样的,只需要求出页号和物理块号的之间的对应关系,首先需要求出页号的位数,得出页号,再去页表里查询其对应的物理块号,使用此物理块号和页内偏移地址组合,就能得到物理地址

页面置换算法

  1. 先进先出算法 FIFO
  2. 最近最少使用 LRU

淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面

快表

  • 是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快。一般用来存放当前访问最频繁的少数活动页面的页号
  • 快表是将页表存于 Cache 中,慢表是将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次 cache 和一次内存,因此更快

真题

  1. 页面大小 4k = 2^12 次方,得出需要 12 位才能表示偏移量

  1. 通过逻辑地址 1D16H, 12 位表示偏移量,也就是对应 16 进制 3 位,也就是 D16 表示页内偏移量,1 表示页号
  2. 通过 页号 1 从表内查找到对应的物理块号是 3
  3. 物理地址 = 物理块号 + 页内偏移地址 = 3 + D16 = 3D16H

段式存储管理

分页是根据物理空间划分,每页大小相同;分段是根据逻辑空间划分,每段是一个功能,便于共享,但是大小不同

地址表示:(段号,段内偏移)。其中段内偏移不能超过该段号对应的段长,否则越界错误,而此地址对应的真正内存地址应该是:段号对应的基地址 + 段内偏移

段页式存储管理

对进程空间先分段,后分页

设备管理

I/O 软件

当用户程序视图读一个硬盘文件时,需要通过操作系统实现这一操作。

  1. 与设备无关软件检查告诉缓存中有无要读的数据块
  2. 若没有,则调用设备驱动程序,向 I/O 硬件发出一个请求
  3. 然后,用户进程阻塞并等待磁盘操作的完成
  4. 当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,识别到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次 I/O 请求

虚设备和 SPOOLING 技术

  • 一台实际的物理设备,例如打印机,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大浪费了外设的工作效率
  • 引入 SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化

文件管理

索引文件结构

如图所示,系统中有 13 个索引节点

  1. 0-9 为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为 4KB,共可以存 4KB * 10 = 40KB 数据
  2. 10 号索引节点为一级间接索引节点,大小为 4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占 4B,则共有 1024 个地址(4KB * 1024 / 4B),对应 1024 个物理盘,可以存 1024 * 4KB = 4096KB 数据
  3. 二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘块地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为 1024 * 1024 * 4KB 数据

真题

文件存储空间管理

位示图:这种方法时在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储上的一个物理块,取值 0 和 1,分别表示空闲和占用

真题