进程管理
进程状态
- 运行,所有状态均已就绪
- 就绪,其他所有状态均已就绪,只差CPU资源
- 等待,除了差CPU资源,还差其他资源
五态模型
前驱图
进程的同步与互斥
互斥
散布在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行
同步
散布在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务
注意:互斥的反义词是共享,同步的反义词是异步
PV操作
临界资源
诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
临界区
每个进程中访问临界资源的那段代码称为临界区
信号量(Saphore)
是一种特殊的变量,是由一个值和一个指针组成,指针指向等待该信号的进程,信号量的值表示资源的使用情况。常用来解决进程的同步与互斥问题。一般而言用S表示,S表示可用资源数(信号量)。
S>=0,存在可用资源
S<0,无可用资源,|S| 此时表示等待该资源的进程数
PV操作
包含两个部分,P操作和V操作,P表示通过(passeren),V表示释放(vrijgeven)【注:荷兰语】
PV操作:一种实现进程互斥与同步的有效方法,包含P操作与V操作。
P操作:使 S-1 ,若 S>=0 ,则该进程继续执行,否则排入等待队列。
V操作:使 S+1 ,若 S<0 ,唤醒等待队列中的一个进程。
生产者消费者问题:
例题 AC顾客进入书店,购书者人数+1,最大购数人数-1即P(Sn),随后购书,购书后产生收银进程,因此V(S1),此后顾客需等待收银员完成收银后才可以离开书店,收银员得到请求,准备收费,因此P(S1),收费完成后V(S2),顾客在得到S2信号量后才可P(S2),最后V(Sn),释放所占人数,离开书店。
例题2
注意此题是采用“非抢占式优先级调度算法”。首先执行P1程序段,执行至P(S2)时,S2=-1,<0,因此执行P2,执行至V(S2)后,S2>=0,但由于非抢占式,所以执行完P2再执行P1.结果为DAC,如图:PV操作与前驱图的结合
CAA。
信号量标记:从上到下,从左到右。为S1,S2,S3……
箭头的起点位置为V操作,终点位置为P操作
例题2
死锁问题
例:系统有3个进程:A、B、C。这3个进程都需要5个系统资源。如果系统至少有多少个资源,则不可能发生死锁?
3*(5-1)+1=13(个)
死锁产生的条件:
银行家算法
- 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源例题:
存储管理
存储管理方案
- 首次适应法。从低地址开始选择一个能装入作业的空白区
- 最佳适应法。找到一个最接近用户需求的分区
- 最差适应法。总是装入最大的空白分区
- 循环首次适应法。从刚分配的空白区寻找一个能满足用户需求的空白区
页式存储
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销:可能产生抖动现象
习题:
第一问:
- 4K=2^12,一个页的页内地址是12位,高于12位的是页号
- 二进制12位对应16进制的5A29H中后三位,因此页号为5
- 查表,页号为5的对应物理块号(也叫页帧号)为6,页内地址为A29。因此为6A29H
第二问:
- 只能淘汰在内存的,状态位为1的代表在内存中,在0,1,2,5中选择
- 看访问位,访问位为1的说明刚刚被访问过,不能被淘汰
- 只剩下1了
若访问位均为1,则看修改位,未作修改的被淘汰代价最小
段式存储
优点:多道程序共享内存,各段程序修改互不影响缺点:内存利用率低,碎片浪费大
段页式存储
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
习题:
页内地址位数是12位,2^12=4096,大小为4K,页号地址为12位~24位,最多可以容纳4096页。段号地址为8位,最多可以容纳256个段。
快表
快表是一块小容量的相联存储器(Associative Memory),由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
页面置换算法
页式存储当中,内存可以分配的空间是有限的,所以需要将不用的页调出,需要的调入,需要淘汰算法:
- 最优(Optimal,OPT)算法
- 随机(RAND)算法
- 先进先出(FIFO)算法:有可能产生“抖动”。例如,432143543215序列,用3个页面,比4个缺页要少
- 最近最少使用(LRU)算法:不会“抖动”
前两种不常考。
先进先出算法,抖动是指分配更多资源反而让效率更低
最近最少使用,刚被访问过的不会被淘汰
习题1:
习题2:
- 系统中没有使用快表,说明系统每读一次程序的块,需要现在内存上先查表,才能读取相应的内存块
- 所以每一个块需要进行两次内存的访问,总共6个块,会产生12次对内存的访问
- 无论指令占到几个块,都会一次性调入,因此swap指令虽然占了两个块,但会一次读入,产生一次缺页中断
- A在2,3中,产生2次,B同样,共5次
文件管理
索引文件结构
例1:
由图,第一问选C,第二问选D
例2:
直接索引范围:6*4KB=24KB ,对应逻辑块号:0-5;一级间接索引范围:(4KB/4B)*4KB=4096KB ,对应逻辑块号:6-1029;
二级间接索引范围:(4KB/4B)* (4KB/4B)*4KB=4194304KB ,对应逻辑块号:1030以及上。
单个文件最大长度是: 24KB + 4096KB + 4194304KB = 4198424KB
文件和树形目录结构
主要考查相对路径和绝对路径的概念
空闲存储空间管理
1代表已占用,0代表未占用。
例题:
注意第n个字是从1开始算,第多少位置是从0开始算设备管理
数据传输控制方式
是指内存和外设之间的数据传输控制。
- 程序控制方式
- 程序中断方式
- DMA方式(直接存取控制方式)
通道输入输出处理机
虚设备与SPOOLING技术
微内核操作系统
顾名思义,把内核做的更小的操作系统