操作系统
1、进程管理
进程的概念
- 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由 程序块、数据块、进程控制块(PCB)组成
- 运行的进程会随着作业运行正常和不正常结束而撤销
-
☆进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程
1、进程是动态的,程序是静态的 —— 程序是有序代码的集合,进程是程序的执行
2、进程是暂时的,程序是永久的 —— 进程是一个状态变化的过程,程序可长久保存
3、进程与程序的组成不同 —— 进程的组成包括程序、数据、PCB,程序是程序语句的集合
4、进程与程序的对应关系 —— 通过多次执行,一个程序对应多个进程;通过调用关系,一个进程对应多个程序
进程的状态
进程的三种基本状态
1、就绪状态 —— 等待分配CPU
2、执行状态 —— 已获得CPU,程序正在执行
3、阻塞状态 —— 进程发生I/O等事件
三种基本状态的转换
三种基本状态之间转换的典型原因
1、就绪状态 → 执行状态 : 进程进行调度,进程分配到CPU
2、执行状态 → 就绪状态 : 时间片完,超时 、 新进程的优先级更高
3、执行状态 → 堵塞状态 : 等待某个事件,如:I/O请求
4、堵塞状态 → 就绪状态 : I/O请求完成
五态模型
1、活动就绪 → 静止就绪:挂起
2、活动阻塞 → 静止阻塞:挂起
3、静止就绪 → 活动就绪:恢复、激活
4、静止阻塞 → 活动阻塞:恢复、激活
进程的同步与互斥
1. 两种形式的制约关系
(1)间接相互制约关系 —— 共享系统资源
(2)直接相互制约关系 —— 为完成同一项任务相互合作
2. 临界资源
临界资源:一次只允许一个进程使用,若多个进程同时使用,则可能会造成系统混乱
采用互斥方式,实现对这种资源的共享
☆PV操作
- 临界资源:诸进程需要互斥方式对齐进行共享的资源,如打印机……
- 临界区:每个进程中访问临界资源的那段代码称为临界区
- 信号量:是一种特殊的变量(可正可负)
- P是荷兰语Passeren,V是荷兰语的Verhoog
P操作 —— 申请资源操作,生产
V操作 —— 释放资源操作,唤起
- 多个进程共享一台打印机问题(互斥模型)
- 单缓冲(一次只有一个进程执行)区生产者、消费者问题(同步模型)
死锁问题
进程管理是操作系统的核心,但如果设计不当,就会出现死锁问题。例如:如果一个进程在等待一件不可能发生的事,则进程就死锁了,而如果一个或多个进程产生死锁,就会造成系统死锁。
例题:系统有5个进程:A、B、C、D、E,这5个进程都需要4个系统资源。
如果系统至少有几个资源,则不可能发生死锁。
系统给每个进程分配它们所需要的资源少一,剩余一个,每次分配给不同的进程,
则不会发生死锁。则此题 系统资源数 N = (4 - 1) * 5 + 1 = 16
形成死锁的必要条件:
银行家算法
分配资源的原则:
- 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
- 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源
2、存储管理
页式存储组织
页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销;可能产生抖动现象
页面越大,则缺页中断次数就越低。
逻辑地址 = 页号 + 页内地址
物理地址 = 页帧号 + 页内地址
从构成可以看出逻辑地址与物理地址的页内地址是一样的,不同的是逻辑页号与物理块号。而这两者的关系,正是通过题目已给出的表来进行映射的
计算:页面大小为4K,即需要12位来表示其存储空间,而逻辑地址3C18H转换为二进制为0011 1100 0001 1000,其低12位为页内地址,而高4位为页号,即0011,转换为十进制后结果为3,查表可知,页号为3的页面对应的页帧号为2
段式存储组织
段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大(会形成内存空隙)
段表:
| 段号 | 基地址 | 段长 |
段页式存储组织
段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
段页式管理的地址结构:
| 段号s | 段内页号p| 页内地址w |
页面置换算法
- 最优算法(Optimal,OPT):理想状态下的算法,不可能实现
- 随机算法(RAND):随机的
- 先进先出算法(FIFO):总是淘汰最先进入内存的页面,容易形成抖动
- 最近最少使用(LRU)算法:LRU的理论依据是“局部性原理”,内存中最近一段时间内最长时间未被使用的页面予以淘汰
时间局部性:刚被访问的内容,立即又会被访问
空间局部性:刚被访问的内容,临近的空间很快被访问
磁盘管理
存取时间 = 寻道时间 + 等待时间,寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间
磁盘调度算法
- 先来先服务(FCFS):根据进程请求访问磁盘的先后次序进行调度 —— 有利于CPU繁忙型的作业,不利于I/O繁忙型的作业
- 最短寻道时间优先(SSTF):该算法选择这样的进程 —— 其要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短
- 扫描算法(SCAN,电梯算法):不停扫描,碰到一个处理一个,不管时间先后,对于磁盘外围和里层效果差
- 循环(单向)扫描算法(CSCAN):单边操作,磁头只做单向移动
3、作业管理
作业状态与作业管理(了解,少考)
作业的四种状态:提交、后备、执行(操作系统的五态模型)、完成
作业调度算法
- 先来先服务法
- 时间片轮转发:根据CPU时间片来
- 短作业优先法:谁执行时间短就谁先
- 最高优先权优先法
- 高响应比优先法:响应比 Rp = 作业响应时间 / 作业执行时间;其中作业响应时间为作业进入系统后的等候时间与作业的执行时间之和,即有 —— Rp = 1 + 作业等待时间 / 作业执行时间
4、文件管理
索引文件结构
索引结点有13块,前10块用于直接索引,占10K;第10块(从0开始),用于以及间接索引,第11块用二级间接索引,第12块用于三级间接索引
- 直接索引:物理盘块 × 直接索引数量
- 一级间接索引:(磁盘块大小 ÷ 物理盘块大小)× 一级间接索引数量
- 二级间接索引:(磁盘块大小 ÷ 物理盘块大小)×(磁盘块大小 ÷ 物理盘块大小)× 一级间接索引数量
树型目录结构
相对路径、绝对路径
空闲存储空间的管理
位示图法(类似订票系统)考察:求容量,每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用
5、设备管理
☆数据传输控制方式
- 程序控制(查询)方式:分为无条件传送和程序查询方式两种 —— 方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率
- 中断控制方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度
- ☆DMA方式(CPU下指令,不参与,交给硬件处理,但要求回馈):DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效
- 通道控制方式:专门开通道给某一操作,成本很高
- I/O处理机
虚设备与Spooling技术
SPOOLing是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。SPOOLing技术通过磁盘实现。
使用Spooling系统的目的是为了提高I/O设备的使用效率
虚拟内存是可以容纳总和超过主存容量的多个作业同时运行的一个地址空间