操作系统练习题(2)
来源:互联网 发布:pp越狱助手mac版 编辑:程序博客网 时间:2024/06/05 04:00
1、 请求分页管理系统中,假设某进程的页表内容如下表所示。页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间是108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。假设①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H、1565H、25A5H,请问:
(1)依次访问上述三个虚地址,各需多少时间?给出计算过程。
页号
页框(Page Frame)号
有效位(存在位)
0
101H
1
1
—
0
2
254H
1
(2)基于上述访问序列,虚地址1565H的物理地址是多少?请说明理由。
答案(1)
根据页式管理工作原理,应先考虑页面大小,以便将页号和页内位移分解出来。页面大小为4KB,即212,则得到页内位移占虚地址12位,页号占剩余高位。可得三个虚地址的页号P如下:
2362H: P=2,访问块表10ns,因初始为空,访问页表100ns得到页框号,合成物理地址后访问主存100ns,共计10ns+100ns+100ns=210ns。
1565H:P=1,访问块表10ns,落空,访问页表100ns,落空,进行缺页中断处理108ns,合成物理地址后访问主存100ns,共计10ns+100ns+108ns+100ns=318n。
25A5H:P=2,访问块表,因第一次访问已将该页号放入块表,因此花费10ns便可合成物理地址,访主存100ns,共计10ns+100ns=110ns。
(2)当访问虚地址1565H时,产生缺页中断,合法驻留集为2,必须从页表中淘汰一个页面,根据题目的置换算法,应淘汰0号页面,因此1565H的对应页框号为101H。由此可得1565H物理地址为101565H。
2.现有三名学生s1,s2和s3上机实习,程序和数据都存放在同一磁盘上。若三人编写的程序分别为P1,P2和P3,要求这三个学生用自编的程序调用同一个数据文件A进行运算。请问:(1)若文件A作为共享文件,系统应采用何种目录结构?画出示意图。(2)若这三位学生不约而同地把自己的程序名都起为P,利用(1)答案中的目录结构能否满足要求?(3)针对(2)的要求,简要说明系统如何为每个学生索取他们的程序和数据?
答.(1)系统采用二级目录结构就能满足需要,其示意图为下图。
文件目录
文件名 始址 末址
(2)利用上图的二级目录结构能满足此要求,只要在用户目录中把P1、P2、P3都改为P,但这些P都是指向各自不同的程序。
(3)存取程序和数据时,文件系统会先搜索主文件目录,找到该学生的用户目录,然后在用户目录中查找指定的文件。比如对学生S1,由路径/S1/P找到的文件是他的程序文件。因为它与/S2/P不会指向同一个文件,不会冲突。而/S1/A和/S2/A是同一个文件,所以学生S1能取到所需的数据。当然这里A文件可以由三个学生同时打开,一起执行读操作。
3.假设磁带的记录密度为1600bPi(字节/英寸),每个逻辑记录长为200字节,块与块之间的间隔为0.5英寸,请回答下列问题:(1)不采用成组操作时,磁带空间的利用率是多少?(2)采用块因子为6作成组操作时,磁带空间的利用率为百分之几?(3)为了使磁带空间的利用率大于80%,采用记录成组时其块因子至少为多少?
答.(1)间隔=1600×0.5=800(字节); 200/(200+800)=20%;所以不采用成组操作时磁带空间的利用率为20%、
(2)(200×6)/(200×6+800)=60%;所以采用成组操作时磁带空间的利用率为60%。
(3)设块因子为x,则200x/(200 x +800)>0.8; 250 x>200 x +800; 50 x>800;x>16;所以块因子至少为17。
4.假设一个磁盘组共有l00个柱面,每键面有8个磁道,每个盘面被分成4个扇区。若逻辑记录的大小与扇区大小一致,柱面、磁道、扇区的编号均从“0”开始,现用字长为16位的200个字(第0字~第199字)组成位示图来指示磁盘空间的使用情况。请问: (1)文件系统发现位示图中第15字第7位为0而准备分配给某一记录时,该记录会存放到磁盘的哪一块上?此块的物理位置(柱面号,磁头号和扇区号)如何? (2)删除文件时要归还存储空间,第56柱面第6磁道第3扇区的块就变成了空闲块,此时,位示图中第几字第几位应由1改为0?
答.(1)块号=15×字长+7=15×16+7=247; 柱面号=[块号/每柱面扇区数]=[247/(8×4)]=7; 磁头号=[(块号mod每柱面扇区数)/每盘面扇区数]=[(247mod 32)/4]=5; 扇区号=(块号mod每柱面扇区数)mod每盘面扇区数=(247mod 32)mod 4=3;所以该记录会存放在第247块上,即在第7个柱面,第5磁头,第3个扇区上。
(2)块号=柱面号×每柱面扇区数+磁头号×每盘面扇区数+扇区号=56×(8×4)+6×4+3=1819 ; 字号=[块号/字长]=[1819/16]=113; 位号=块号mod字长=1819mod 16=11;所以位示图中第113字第11位应由1变成0。
5.现有一文件FILE _x,其逻辑记录的大小为125字节,共有20个逻辑记录,文件系统把这个文件存储到磁盘上时采用链接结构,磁盘的分块大小为5l2个字节,请问: (1)采用什么方法可有效地利用磁盘空间? (2)画出文件FILE _x在磁盘上的链接结构示意图(磁盘块号自定)。 (3)若用户要求读包含第1285字节的逻辑记录,文件系统将如何工作?
答.(1)采用记录成组的方法能有效地利用磁盘空间,这里拟选用块因子为4。
(2)采用块因子为4,进行记录成组时,将占5个磁盘块.不妨设这5个磁盘块依次为6、2、9、1 5、18。文件FILE—x在磁盘上的链接结构示意图见下图。
文件目录
文件名 始址 末址
FILE-X 618
块 号 6 29 15 18
链接指针 2 9 15 18 -1
(3)第一步,由[1285/(125×4)]=2可知包含1285字节的逻辑记录在链接结构的第三个块上,即块9中,为此文件系统把块9读入主存缓冲区。第二步,由1285 MOD (125×4)=285 且 125×2<285<125×3;所以可知文件系统从主存缓冲区中取出第3个记录传输给用户。
且 125×2<285<125×3;所以可知文件系统从主存缓冲区中取出第3个记录传输给用户。
6.若有一个磁盘共有l00个柱面,每个柱面上有8个磁道,每个盘面被划分成4个扇区。现有一个含3200逻辑记录的文件,逻辑记录的大小与扇面的大小一致,该文件以顺序结构的形式被存放到磁盘上。柱面、磁道、扇区以及逻辑记录的编号均从“0”开始。文件信息从0柱面、0磁道、0扇区开始存放,请问:(1)如何确定该文件的第1838个逻辑记录存放在磁盘上的位置,其柱面号、磁头号和扇区号? (2)第56柱面的第7磁道的第3扇区存放了该文件的第几个逻辑记录?
答案:(1)已知t=8,s=4,b=1838,则D=s×t=4×8=32,M=[b/D]=[1838/32]=57,N=b mod D=1838 mod 32=14,∴ 柱面号=M=57,磁头号=[N/s]=[14/4]=3, 扇区号=N mod s=14 mod 4=2
(2)已知s=4,t=8,i=56,j=7,k=3,则 记录号=k+s×(j+i×t)=3+4×(7+56×8)=1823
7.若某磁盘共有200个柱面,其编号为0~199,假设已完成68号柱面的访问请求,正在为访问96号柱面的请求者服务,还有若干个请求者在等待服务,他们依次要访问的柱面号为:175,52,157,36,159、106,l 08,72,(1)请分别计算用先来先服务调度算法、最短寻找时间调度算法、电梯调度算法和单向扫描调度算法来确定实际服务的次序。 (2)按实际服务次序计算(1)中四种算法下移动臂需移动的距离。
答案:用图解法解此题。并分别按算法回答2个问题。
(1)先来先服务调度算法: 0 36 52 68 72 96 106 108 157 159 175 199
实际服务的次序: 68→96→175→52→157→36→159→106→108→72; ∵ (175-96)+(175-52)+(157-52)+(157-36)+(159-36)+(159-106)+(108-106)+(108-72)=642 ∴ 移动臂需移动642柱面的距离
(2)最短寻找时间优先调度算法: 0 36 52 68 72 96 106 108 157 159 175 199
实际服务的次序:68→96→106→108→72→52→36→157→159→175; ∵ (106-96)+(108-l06)+(108-72)+(72-52)+(52-36)+(157-36)+(159-l57)+(175-159)=223 ∴ 移动臂需移动223个柱面的距离
(3)电梯调度算法: 0 36 52 68 72 96 106 108 157 159 175 199
实际服务的次序:68→96→106→108→157→159→175→72→52→36; ∵ (106-96)+(108-l06)+(157-108)+(159-l57)+(175-159)+(175-72)+(72-52)+(52-36)=218 ∴ 移动臂需移动218个柱面的距离
(4)单向扫描调度算法: 0 36 52 68 72 96 106 108 157 159 175 199
实际服务的次序:68→96→106→108→157→159→175→199→0→36→52→72; ∵ (106-96)+(108- l06)+(157-108)+(159-l57)+(175-159)+(199-175)+(36-0)+(52-36)+(72-52)=175 ∴除了移动臂由里向外返回所用的时间外,还需移动l 75个柱面的距离
8.若现在磁盘的移动臂处于第15号柱面有六个请求者等待访问磁盘下表,如何响应这些访问才最省时间?
序号 柱面号 磁头号 扇区导
① 12 2 6
② 5 3 2
③ 16 8 7
④ 6 4 1
⑤ 16 7 3
⑥ 12 5 6
答案:针对本题分析各种移臂调度算法,发现以最短寻找时间调度算法最优,移动臂距离最短,也就是设访问的柱面次序为:16,12,6,5。其次,从旋转调度角度出发无法确定访问同一柱面上扇区时先响应哪个扇区更快,所以最省时间的响应次序有以下四种:3→5→1→6→4→2;3→5→6→1→4→2;5→3→1→6→4→2;5→3→6→1→4→2;
9.若某磁盘的旋转速度为20毫秒/周,磁盘初始化时每个盘面分成10个扇区,扇区按磁盘旋转的反向编号,依次为0~9,现有10个逻辑记录R0,R1,…,R9,依次存放在0~9十个扇区上。处理程序要顺序处理这些记录,每读出一个记录后处理程序要花6毫秒进行处理,然后再顺序读下一个记录并处理,直到全部记录处理完毕,请回答:(1)顺序处理完这10个记录总共花费多少时间? (2)优化分布这些记录,使这10个记录的处理总时间最短,并算出优化分布时需花费的时间。
答案:〔1)顺序存放:R0→R9;由20ms÷10=2ms知,每读一个扇区花2ms,由2ms+6ms=8ms知,读出并处理完R0后,读写磁头已在R4的位置,要读Rl记录,则要有14ms延迟时间。顺序处理完这十个记录需花费时间为:10×(2+6)+9×(2×7)=926(ms)
(2) 优化分布:R0→R5→R3→R8→R1→R6→R4→R9→R2→R7,即得逻辑记录的最优分布。此时处理十个记录所花费的时间为:10×(2+6)=80(ms)
- 操作系统练习题(2)
- 操作系统练习题2
- 操作系统练习题1
- 操作系统存储器管理练习题
- 操作系统文件系统练习题
- 练习题(2)
- JS练习题(2)
- js练习题(2)
- 《操作系统》期末复习综合练习题
- essential c++ 练习题(2)
- Java 数组练习题(2)
- 练习题2(17.09.06)
- 练习题(2)
- 练习题2
- 练习题2
- 操作系统练习题·成组链接法
- 练习题2: pow(有道编程大赛)
- C Primer Plusl练习题(1-2)
- c#判断是否为NULL或空
- [技术分享-ISA/TMG]怎样在 ISA 或者 TMG 上禁止 IPv6 tunneling
- ubuntu 下ethtool安装
- 嵌入式ARM微处理器选型指南
- 关于 Debug Error! R6010 abort() has been call
- 操作系统练习题(2)
- c# LDAP 验证
- [代码收集] 窗口截屏并保存为bmp图片
- Android之Gallery
- MFC 常见窗口操作
- C++学习总结
- ARM处理器选型指南:选ARM7还是选Cortex-M3
- K2 blackpearl 流程开发(一)
- Silverlight自定义漂亮的ListBox