Fork me on GitHub

操作系统错题

  • 实时系统有什么特点?适用于哪些方面? 正确答案是( )

    A、实时系统具有独立性、及时性、交互性和同时性
    B、适用于大型作业且不需要人工干预的场合
    C、实时系统对随机发生的外部事件作出及时的响应并作出处理
    D、实时系统具有高可靠性、实时响应性和事件驱动的特点
    E、适用于较少有人干预的实时监控场合

cde。a中的特征是分时系统

第三章 互斥与同步

![在这里插入图片描述]( https://img-blog.csdnimg.cn/79ca819edc6e4995a6cc19a61f1df5d4.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/ac41a36ae8bc42e694aba82397a0b1e1.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/4d00db5ee9e94772bfdf21ee4a5796f8.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/d59f3ffa63994f18a8f3757a2c8c1395.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

第五章 存储器管理

设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页数据存储空间,页的大小为4KB。操作系统采用固定分配局部置换策略为此进程分配4个页框,如下表在10:23时已经有4页进入内存,下表的装入时间和访问时间为一天内24小时时间,10:00为10点0分。访问位为0表示未被访问,为1表示已被访问,修改位为0表示未被修改,为1表示已被修改。表中的访问时间均为对应的页最近一次被访问时间。

img

当该进程执行到时刻10:55时,要访问逻辑地址为5ABCH的数据,请问答下列问题:

(1)该逻辑地址对应的页号是( ).

(2)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是( ).

(3)若采用最近最少用(LRU)置换算法,该逻辑地址对应的物理地址是( ).

(4)若采用时钟(CLOCK)置换算法,该逻辑地址对应的物理地址是( )。(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框,示意图如下。)

img

(1)

  • 这里需要注意的是,起始给出的逻辑地址5ABCH表示的是一个十六进制的数:0101 1000 1001 1010
  • 得到页面的大小是4KB,即2的12次方。所以向右移动12位,即可分为0101和100010011010两部分,0101即表示当前逻辑地址对应的页号,即第5页

(2)(3)

正常的调转,只是对应的物理地址为替换后页表的页框位置。这道题而言是这样。正规的理解应该是所指页框号化为2进制,然后将第一问中的余数连接起来,才是真正的物理地址。如(2)中,选中的页框号为7,则其地址0111 100010011010即7ABCH

分别是7ABCH,2ABCH

(4)CLOCK算法是从当前指向位置顺时针转,若指向的页的访问号为0,则把它替换。因为本题中,访问号全部是1,所以在转一圈后,重新指向当前位置,单此时的访问位在转一圈后变成0.于是替换的页的页号就是2号页。根据上述算法,得到物理位置

如果一个作业在执行过程中,按下列的页号依次访问主存:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。作业固定占用四个主存页框(块),试问:

(1) 采用FIFO算法时,产生( )次缺页中断,相应的缺页中断率是( )%。

(2) 采用LRU算法时,产生( )次缺页中断,相应的缺页中断率是( )%。

(3) 采用OPT算法时,产生( )次缺页中断,相应的缺页中断率是( )%。
![在这里插入图片描述]( https://img-blog.csdnimg.cn/b008ea2838394f84b150ba931903343e.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

在固定分区管理中,当有1KB、9KB、33KB和121KB四个进程要求进入系统时,试分析主存空间的分配情况(主存初始状态如图5-33所示),并说明主存的浪费是( )KB。

img

直接用已有存储空间相减

![在这里插入图片描述]( https://img-blog.csdnimg.cn/01e473ee857f471684ea2d52152cafca.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

先算该块的地址占到第几块,如果有余数,则在结果加一。

1568/512 = 3(号) 三号页对应的块号是4

绝对地址=块号×块长+单元号=4×512+(1568%512)=2060

单元号为逻辑地址%页长。

![在这里插入图片描述]( https://img-blog.csdnimg.cn/45c84b310a2a441393717c5baf8e3482.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

(1)对于访问序列依然是通过上述题中说到过的:十六进制序列号化为二进制序列号,然后根据页面的大小划分出页号和页内偏移。如2362H则为0010 0011 0110 0010,页面4KB,即为2的12次方。0010为页号,0011 0110 0010 为页内偏移。其次对于这种题,需要认清当前初始状态,此时的快表为空,每次找到后都需要将项目加入都到快表中。给出图的是页表,查询次序:访问快表->访问页表->缺页中断(->表示没找到才到下一阶段)->访问快表 查询后,都需要合成物理地址访问内存 页表的访问需要访问内存

2362H:页号2,查快表10,没有,查页表100,找到后合成地址,找内存100,所以10+100+100=210ns

1565H:页号1,查快表10,没有,查页表100,没有,缺页中断108,查快表10,合成物理地址查内存100,所以(220+108)ns

25A5H:页号2,查快表10,由于之前的2号访问添加了块表,所以找到了,合成地址访问内存100,所以110ns

(2)1565H,页号为1,偏移为0101 0110 0101。查找过程中,会产生缺页中断,所以必须使用淘汰算法淘汰一个页面。采用LRU淘汰页号0,所以其对应页框号101H,所以它的物理地址应该为101 565H。(页内偏移不改变,只改变其“标识号”,为了查找方便快捷)

第六章 文件系统

![在这里插入图片描述]( https://img-blog.csdnimg.cn/01187f68f4694c51ab8279e483a4bfe2.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

每个索引块最大索引数 = 256/4 = 64.

4个直接地址索引4×256 = 1K

一级间接索引64*256 =16K

二级间接索引64×64×256 = 1024K

所以单个文件的最大长度 = 1024+1+16 = 1041K

![在这里插入图片描述]( https://img-blog.csdnimg.cn/18131604f4d649259d739c87334d4a9d.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/f588a61881fc424aab9d4cc6e83454cd.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

由于是UNIX的存储方式,所以使用i-node的方式存储信息。首先得到每一地址空间占据的存储量,即每个索引块最大有1KB索引数。

所以应该是10×4KB+1K×4K+1K×1K×4K+1K×1K×1K×4K = 4TB4GB4MB40KB

直接地址占的就是它对应的块的大小。使用块的大小除以地址得到的就是每个索引中含有的最大索引数。比如说1级索引,他就有4K/4=1K个索引数,然后每个索引数对应一个存储块。二级则是每一个索引数都对应一个一级的索引这样类推。

![在这里插入图片描述]( https://img-blog.csdnimg.cn/ff3860367b7142baa78d76a238413902.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

注意题目只要求得到几次访问。

根目录的i-node在内存,而路径中的其它i-node不在内存。
需要下列的磁盘操作:读根目录;读/usr的 i-节点;读/usr的目录;读/usr/ast的 i-节点;读/usr/ast 的目录;读/usr/ast/courses的 i-节点;读/usr/ast/courses的目录;读/usr/ast/courses/os的 i-节点; 读/usr/ast/courses/os的目录;读/usr/ast/courses/os/handout.t的 i-节点。
总共 10次磁盘读操作。

可以看到都是先看一个目录的i-,然后再看其目录,得到下一级我们需要的内容。注意读取时,首先是从根目录开始的。

![在这里插入图片描述]( https://img-blog.csdnimg.cn/d5f02ed321f64733901c63642af78cba.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

主要了解存放指针个数的算法。

![在这里插入图片描述]( https://img-blog.csdnimg.cn/d4706a83bbc744069d714ab68c187ab6.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

位示图表示当前磁盘中的存储状态。开始时1000 0000 0000 0000

A占6位 1111 1110 0000 0000

写入B,占5位 1111 1111 1111 0000

删除A 1000 0001 1111 0000

写入C,占8位 1111 1111 1111 1100

删除B 1111 1110 0000 1100

可以看到C在写入时,它的存储位置是可以不连续的。删除数据时,将其原来位置的值置0即可

![在这里插入图片描述]( https://img-blog.csdnimg.cn/6629f36d31ee4db5ac89d8d64d401f00.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

(1)同上面的题

(2)假设除了文件i节点已经在主内存中之外没有其他信息,那么要在位置30000中访问该字节需要多少磁盘访问?

答:因为 30000<40K,故该地址落入直接索引中,由于 i-node 已在内存,因此只需要 1 次访问磁盘块,一次访问含有该位置数据的数据块。

(3)4GB<2T<4TB,所以坐落在三级间接索引中。所以需要4次访问磁盘块。

第七章 IO管理

![在这里插入图片描述]( https://img-blog.csdnimg.cn/fddced88203b407ea44ab344ccf872c2.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

86 91 94 102 130 147 150 175 177

(1)

FCFS先来先服务

86 -> 147 -> 91 -> 177 -> 94 -> 150 -> 102 -> 175 -> 130

39+61+56+86+83+56+48+73+45=547

(2)

SSTF最短查找时间优先(125开始)

130 -> 147 -> 150 -> 175 -> 177 -> 102 -> 94 -> 91 -> 86

5+17+3+25+2+75+8+3+5=143

(3)

SCAN扫描策略(电梯算法)(初始时是往增大的方向走)

130 -> 147 -> 150 -> 175 -> 177 -> 102 -> 94 -> 91 -> 86

5+17+3+25+2+75+8+3+5=143

(4)

CSCAN循环扫描策略

130 -> 147 -> 150 -> 175 -> 177 -> 86 -> 91 -> 94 -> 102

5+17+3+25+2+91+5+3+8=159

![在这里插入图片描述]( https://img-blog.csdnimg.cn/6c345216551447a7a4e72d19d8ccd6e9.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

由于转速为6000r/min,则平均旋转延迟为60×1000/(6000×2)=5ms,总的旋转延迟时间为5*5ms=25ms。

由于旋转一周的时间为10ms,每个磁道有100个扇区,读取一个磁道上一个扇区的平均读取时间为10ms/100=0.1ms,总的读取扇区的时间=0.1ms*5=0.5ms。这里是因为题目要求找到时还需要读取一个扇区

1s = 1000ms

旋转延迟用磁盘旋转一周所需时间的一半来表示

此旋转周期:60×1000÷6000*0.5=5ms。总旋转延迟=磁道号个数×旋转周期 = 25ms

(1)

FCFS调度:60 -> 90->50->120->150

100号处开始

40+30+40+70+30 = 210

210*1+ 25+0.5 = 235.5ms

总时间=查询时间+平均旋转延迟+读取扇区时间(这一项根据题目要求选择)

(2)

SCAN :120 -> 150 -> 90 -> 60 -> 50

50+100 = 150

150+25+0.5 = 175.5

(3)

CSCAN:120 -> 150 -> 50 -> 60 -> 90

50+40+100 = 190

190+ 25.5 = 215.5ms

![在这里插入图片描述]( https://img-blog.csdnimg.cn/6798d2d255e74c11b6b61533c2e3c4af.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NTE1MzAx,size_16,color_FFFFFF,t_70#pic_center)

(1)

位示图表示磁盘的空闲状态。每一位表示一个磁盘的空闲状态,共需要16384/8=2048个字节=2KB,正好放在系统提供的内存中

(2)

延迟时间:(60×1000)/ 6000 *0.5 = 5ms

总延迟 :5 × 4 = 20ms

读取扇区:60 × 1000 / 6000 / 100 = 0.1ms

总读取扇区时间:0.4ms

CSCAN: 120 -> 30 -> 50 -> 90

(20+90+60)+20+0.4 = 190.4ms

posted @ 2021-08-03 10:48  kki_m  阅读(1012)  评论(0)    收藏  举报