🌟三. 操作系统 (6分) [理解|计算]
PV操作, 分页存储管理, 文件的索引, 位示图 考试重点
3.1 进程管理
-
进程的特征
- 进程通常由程序, 数据集合, 进程控制快PCB组成. PCB是一种数据结构, 是进程存在的唯一标识
- 组织方式
- 线性方式
- 链接方式
- 索引方式
- 进程的三种状态: 进程的三态模型
- 运行态
- 就绪态
- 阻塞态
-
前驱图 [例题]
有向无循环图
-
例题
-
解: 根据根据上图冲有多少个箭头就说明有多少对逻辑关系, 所以一共应该是有12对逻辑关系, 其中每一个箭头的两端代表每一对逻辑关系, 箭头指向为逻辑关系对中的后者比如P1和P2关系对应该写为(P1,P2)
-
-
进程的互斥
指系统中多个进程因征用临界资源而互斥执行, 临界资源是指一次只能供一个进程使用的资源
-
PV操作
- P操作
- 将信号量S的值减1, 即
S = S - 1
- 如果
S ≧ 0
, 则该进程继续执行, 否则该进程为等待状态
- 将信号量S的值减1, 即
- V操作
- 将信号量S的值加1, 即
S = S + 1
- 如果
S > 0
该进程继续执行, 否则说明有等待队列中有等待进程, 需要换新等待进程
- 将信号量S的值加1, 即
- 总结: 信号量S的物理意义: S ≧ 0表示某资源的可用数, 若S < 0, 则其绝对值表示阻塞队列中等待该资源的进程数
例题1
假设系统中有n个进程共享3台打印机,任一进程在任一时刻最多只能使用1台打印机。若用PV操作控制n个进程使用打印机,则相应信号量s的取值范围为 (?1);若信号量S的值为-3,则系统中有 (?2)个进程等待使用打印机
解: 因为有n个进程所以取值范围最大是3, 最小就是-(n-3) 第二空: -3无脑理解因为有三个打印机且-3所以一定是-3
例题2
进程PI、P2、P3、P4、P5和P6的前趋图如下所示
若用PV操作控制进程PI、P2、P3、P4、P5和P6并发执行的过程, 则需要设置7 个信号量S1、S2、S3、S4、S5、S6和S7,且信号量 S 1~S 7的初值都等于零。如右边的进程执行图中,a 和b 处应分别填写( );c和d处应分别填写( ),e和f处应分别填写( )
解: (1) -> P(S1) 和 V(S2), V(S3) (2) -> V(S4), V(S5) 和 P(S3), P(S4) (3) -> V(S7) 和 P(S7)
- P操作
-
-
死锁
两个以上的进程互相都要求对方已经占有的资源导致无法继续进行下去的现象
-
必要条件
- 互斥条件
- 请求保持条件
- 不可剥夺条件
- 环路的等待
-
一个系统如果有N个进程竞争临界资源, 每个进程都需要Y个资源, 那么最少有
N * ( Y - 1 ) + 1
个资源的情况下不会发生死锁 -
例题:能被简化说明不会死锁, 不能被简化说明可以被死锁
图片1中R1和R2各自分配给P1一个资源,P1的需求可以得到满足,运行结束后可以释放1个R1和,1个R2。然后P3获得了P1释放的一个R2, P3的需求可以得到满足,运行结束后释放的资源满足P2的需求。因此3个进程都不会被阻塞 , 进程运行顺序为P1、P3、P2,因此图1是可以化简的。图2中根据R1和R2分配的资源,P1、P2、P3的需求都得不到满足,进程会被阻塞,所以无法简化
-
3.2 存储管理
-
地址的重定位
指将程序中的地址虚拟地址 (逻辑地址)变换 成内存的真实地址 (物理地址)的过程。
- 逻辑地址
- 物理地址
-
存储管理方案
-
分区存储管理: 会造成空间浪费
-
分页存储管理
将一个进程的地址空间分成若干个大小相等的区域, 成为页
相应的, 将主存空间划为成与页相同大小的若干个物理块, 称为块或页框
-
分段存储管理
-
段页式存储管理
-
虚拟存储管理
例题
进程P有8 个页面,页号分别为0~7,页面大小为4K,假设系统给进程P分配了4个存储块 , 进 程P的页 面变换表如下所示 。 表中状态位等于1和0分别表示页面在内存和不在内存。若进程P要访问的逻辑地址为十六进制5148H,则该地址经过变换后,其物理地址应为十六进制( );如果进程P要访问的页面6不在内存,那么应该淘汰页号为( )的页面
(1) A. 3148H B. 5148H C. 7148H D. 9148H
(2) A. 1 B. 2 C. 5 D. 9
解: (1) 一直逻辑地址为5148H, 因为 逻辑地址的页内地址是等于物理地址的块内地址的, 之后看出唯一不同的是第一位, 由于页号是对应块号的查表可知 5 》3, 所以第一个空填A 常规方法: 4K=2^12B,也就是页面大小是2^12B,这需要有12位二进制数表示, 这12位二进制的数也是页内地址。逻辑地址为十六进制5148H,其中 的148可以分别用4位二进制的数表示,这里一共需要12位二进制的数。 与页内地址的12位正好对应。而逻辑地址是由页号+页内地址组成的, 既然148是页内地址,剩下的5就表示页号了。页号与页帧号的对应关 系查表可得。 (2) 实现确认状态位都有谁在内存内 然后再去看访问位如果访问位如果访问位是1说明是热点数据不能被淘汰 最后查看修改为选择没有被修改过的去淘汰也就是修改位0 !!!!排除顺序不能错 所以选B
-
3.3 设备管理
提高设备的利用率,就是提高CPU与I/0设备之间的并行操作程度。在 设备管理中
主要利用的技术有:中断技术、DMA技术、通道技术 和缓冲技术。
-
主要技术
-
中断技术
是CPU和输入输出设备并行工作的方式
-
DMA技术
DMA并行方式是比中断技术高的, 且中断方式更高进一步解放了CPU, DMA方式是主存和I/O设备之间建立的通路
-
通道技术
-
缓冲技术
假设分别有缓冲区时间, 用户区时间, 处理数据时间 ,几个缓冲区就说明在第几个阶段的时候可以降下一个数据放入到缓冲区当中
例题
假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为16us,由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1uS。 若用户需要将大小为10个磁盘块的Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为( )us;采用双缓 冲区需要花费的时间为,( )uS
解: 由于缓冲区的访问是互斥的,所以对单一缓冲区,从磁盘写入和读出到用户区的操作必须串行执行,也就是要保证互斥操作。单缓冲区的 总时间=(16+5)×10+1=211us。 当采用双缓冲区时,每块缓冲区的操作是串行,但是,对两块缓冲区 的操作却可以并行,所以,当第一个缓冲区写满以后,磁盘紧接着写 另一个缓冲区,同时,前一个已经满了的缓冲区被读出到用户区。因 此,总时间=16×10+5+1=166us。
-
-
磁盘调度算法
磁盘调度分为移臂调度和旋转调度两类,并且是先进行移臂调度,然后进行旋转调度。由于访问磁盘量耗时的是寻道时间,因此磁盘调度的目标是使磁盘的平均寻道时间最少
例题
在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设 磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果 采用最短移臂调度算法,那么系统的响应序列应为 ()。
请求序列 柱面号 磁头号 扇区号 1 17 8 9 2 23 6 3 3 23 9 6 4 32 10 5 5 17 8 4 6 32 3 10 7 17 7 9 8 23 9 4 9 38 13 8 解: 贪心算法, 因为现在在21最短距离是23所以, 从柱面提取出来三个23, 接下来扇区号, 扇区号从小到大(相同的话谁先谁后无所谓) 所以283 接下来看23号柱面之后是17同理可得出 故571469 答案 283571469
3.4 文件管理
-
文件结构
- 逻辑结构: 用户可以看到的
- 物理结构: 文件存储器上的存储方式
-
文件的索引
- 直接索引
- 间接索引
例题
假设某文件系统的文件索引表有i-addri[0],i-addr[1],… ,i- addr[7]共8个地址项,每个地址项大小为4字节,其中5个地址项 (i-addr[0] ~ i-addr[4 ]) 为直接地址索引 , 2个地址项 ( i-addr[5]~i-addr[6] )是一级间接地址索引 , 1个地址项 (i-addr[7])是二级间接地址索引 , 磁盘索引块和磁盘数据块大小均为1KB。若要访问文件的逻辑块号分别为5和518,则系统应分别采用 ()
解: 首先五个为直接索引 每个地址项大小是4个字节,磁盘索引块和磁盘数据块大小均为1KB, 那么一个逻辑块数为 1024 / 4 = 256 所以 五个直接索引为 0-4 两个一级间接索引为 5-( 2 * 256 + 4) -> 5-516 一个二级索引为 517-785
-
位示图
例题1
某文件管理系统在磁盘上建立了位示图 (binmep)记录磁盘的使用情况。若磁盘上物理快的编号依次 :0、1、2、…;系统中的字长为32位,字的编号依次为:0、1、2、…• ;字中的一位对应文件存储器上的一个物理块,取值0表示该物理块空闲,取值1表示该物理块占用,如下图所示。假设操作系统把256号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为( )的字中描述;系统应该将 ( )
解: 256 / 32 = 8,余数为0,而物理块序号在0开始, 因为开始就是1,所以该物理块的 使用情况在位示图中编号为8的字描述,系统应将该字的位号0的位置为1
例题2
某字长为32位的计算机的文件管理系统采用位示图(bitmap)记录磁盘的使用情况。若磁盘的容量为300GB,物理块的大小为1MB,那么位示图的大小为()个字
位示图(bitmap):一位表示一个物理块的状态,即1位表示1MB的使用与否,300G的磁盘有 300 * 1024=307200个物理块,需要 307200 位,307200/32=9600字(32位系统字长就是32位)