操作系统例题讲解1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统例题讲解
一、调度算法
对如下表所示的5个进程:
采用可剥夺的静态最高优先数算法进行调度(不考虑系统开销)。 问 题: ⑴ 画出对上述5个进程调度结果的Gantt 图;
⑵ 计算5个进程的平均周转时间、平均带权周转时间。
解: ⑴ 调度结果的Gantt 图如下: 0
2
4 5
7
9 10
12
14
(2) 时间计算:
二、存储管理
某系统采用虚拟页式存储管理方式,页面大小为2KB ,每个进程分配的页框数固定为4页。采用局部置换策略,置换算法采用改进的时钟算法,当有页面新装入内存时,页表的时钟指针指向新装入页面的下一个在内存的表项。设当前进程P 的页表如下(“时钟”指针指向逻辑页面3的表项):
逻辑页号
0 1 2
3 4 5 问 题: ⑴ 当进程P 依次对逻辑地址执行下述操作:
① 引用 4C7H ; ② 修改 19B4H ; ③ 修改 0C9AH ; 写出进程P 的页表内容;
⑵ 在 ⑴ 的基础上,当P 对逻辑地址27A8H 进行访问,
该逻辑地址对应的物理地址是多少?
解: 页面大小为2KB ,2KB=2×210
=211
,
即逻辑地址和物理地址的地址编码的低11位为页内偏移;
⑴①逻辑地址4C7H=0100 1100 0111B,高于11位为0,所以该地址访问逻辑页面0;
引用4C7H,页表表项0:r=1;
②逻辑地址19B4H=0001 1001 1011 0100B,高于11位为3,所以该地址访问逻辑页面3;
修改19B4H,页表表项3:r=1, m=1;
③逻辑地址0C9AH=0000 1100 1001 1010B,高于11位为1,所以该地址访问逻辑页面1;
逻辑页1不在内存,发生缺页中断;
①、②两操作后,P的页表如下:
逻辑页号
1
2
3
4
5
按改进的时钟算法,且时钟指针指向表项3,应淘汰0页面,
即把P的逻辑页面1读到内存页框101H,页表时钟指针指向表项2。
并执行操作:修改0C9AH。
经上述3个操作后,P的页表如下:
逻辑页号
1
2
3
4
5
⑵逻辑地址27A8H=0010 0111 1010 1000B,高于11位为4,所以该地址访问逻辑页面4;
页面4不在内存,发生缺页中断;按改进的时钟算法,淘汰页面2,页面4读到110H页框,
所以,逻辑地址27A8H对应的物理地址为:
0001 0001 0000 111 1010 1000B=887A8H。
三、设备与I/O管理
设系统磁盘只有一个移动磁头,磁道由外向内编号为:0、1、2、……、199;磁头移动一个磁道所需时间为1毫秒;每个磁道有32 个扇区;磁盘转速R=7500r/min. 系统对磁盘设备的I/O请求采用N-Step Look (即N-Step Scan,但不必移动到磁道尽头),N=5。设当前磁头在60号磁道,向内移动;每个I/O请求访问磁道上的1个扇区。现系统依次接收到对磁道的I/O请求序列如下:
50, 20, 60, 30, 75, 30, 10, 65, 20, 80,15, 70
问题:
⑴写出对上述I/O请求序列的调度序列,并计算磁头引臂的移动量;
⑵计算:总寻道时间(启动时间忽略)、总旋转延迟时间、总传输时间和总访问处理时间。
解:⑴考虑序列中有重复磁道的I/O请求,调度序列为:
60→75→50→30→20→15→10→65→70→80
磁头移动量=(75-60)+(75-50)+(50-30)+(30-20)+
(20-15)+(15-10)+(65-10)+(70-65)+(80-70)
=15+25+20+10+5+5+55+5+10=155(磁道)
⑵总寻道时间=1×155=155(ms)
一次访盘的旋转时间=1/(2R)=1/(2×7500/min)=(60×1000)/(2×7500)ms=4(ms)
请求序列共12次访盘,总旋转延迟时间=4×12=48(ms) 1次访盘的传输时间=1/(R ×32)=(60×1000)/(7500×32)=1/4ms 12次访盘总传输时间=1/4×12=3(ms) 总访盘处理时间=155+48+3=206(ms)
四、文件系统
(1)给出“用户打开文件表”和“系统打开文件表”的形式,并图示二者之间的联系; (2)说明“写文件”系统调用命令write(fd,buf,count)的实现过程。 解:⑴ 用户打开文件表和系统打开文件表图示如下:
文件 描述符
文件 描述符 进程P2的用户打开文件表
(2)write(fd,buf,count)的实现过程如下:
参数含义:fd :文件描述符;count :写出记录个数;buf :内存起始位置; 执行步骤:① 由fd 查找用户打开文件表,找到对应的系统打开文件表入口;
② 根据用户打开文件表中所记录的打开方式和存取方式核查访问的合法性; ③ 查系统打开文件表,找到文件的地址; ④ 计算欲访问起始记录的地址; ⑤ 如果需要,申请存储块;
⑥ 将内存中由buf 起始的count 个记录写到文件中由当前写指针所确定的区域; ⑦ 调整用户打开文件表的读写指针。
五、死锁问题
某系统采用死锁检测发现死锁。设系统有资源类集合为R ={A ,B ,C },6个进程P0、P1、P2、P3、P4、P5并发运行。当前系统状态如下:
allocation
request available P0 P1 P2 P3 P4 P5
问 题:
⑴ 在上述状态下,系统依次接收请求:request[0]=(1,0,0)、request[1]=(2,1,0)、request[3]=(0,0,2),
给出系统状态变化情况,并说明没有死锁。
系统打开文件表