2022年操作系统思考题答案 .pdf

上传人:Q****o 文档编号:25951528 上传时间:2022-07-14 格式:PDF 页数:12 大小:541.99KB
返回 下载 相关 举报
2022年操作系统思考题答案 .pdf_第1页
第1页 / 共12页
2022年操作系统思考题答案 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年操作系统思考题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统思考题答案 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、操作系统部分思考题及简答题1 【思考题】1如果系统中有N 个进程, 运行的进程最多几个,最少几个; 就绪进程最多几个最少几个;等待进程最多几个,最少几个?解:我们考虑在微机的操作系统中:系统的调度管理进程至少是在运行状态。当有N 个用户进程启动后,那么我们可以说用户的进程最多有一个在运行状态,最少有0 个?有了这个条件,我们不难推出就绪进程和等待进程可能的数量。如果我们讨论的多CPU 平台的使用的操作系统,就是另外一种情况了。所以我想题目应该给出一个系统的运行环境。2. 有没有这样的状态转换,为什么?等待运行;就绪等待解:进程状态转换:在进程运行过程中,由于进程自身进展情况及外界环境的变化,这

2、三种基本状态可以依据一定的条件相互转换就绪 运行调度程序选择一个新的进程运行运行 就绪运行进程用完了时间片,运行进程被中断,因一高优先级进程处于就绪状态运行 等待当一进程必须等待时?OS 尚未完成服务?对一资源的访问尚不能进行?初始化 I/O 且必须等待结果?等待某一进程提供输入(IPC)等待 就绪当所等待的事件发生时观察下面答案就明确了 运行就绪等待进程的状态及其转换名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 操作系统部

3、分思考题及简答题2 3. 一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能解:一般情况下,当一个状态发生转换,系统调度会将当前进程置入相应状态队列,再从相应的队列中唤醒相关进程4. 举 3 个日常生活中类似进程的例子医院看病的过程:等待医院开门挂号看病划价付钱医院关门5要不要对缓冲区(临界资源)进行互斥操作?解:对于是 “只读” 的临界资源, 我们可以认为不需要互斥操作。但,一定有一个对 “只读”临界资源进行维护的“写”操作,那么必须要考虑缓冲区的互斥操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整

4、理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题3 6 . 用 P.V 操作解决下图之同步问题: get 复制一个记录 : Cobegin get; copy; put; Coend f s t g 初始状态3,4,.,m 2 2 (1,2) g,c,p 4,5,.,m 3 3 (1,2,3) 设信息长度为m getcopy put fs t g 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12

5、页 - - - - - - - - - 操作系统部分思考题及简答题4 f1.m of array Smutex,Sempty,Sfull:=1,1,0; /(f ,s,t,g均为单缓冲区,不需要互斥量Smutex,Tmutex) Tmutex,Tempty,Tfull:=1,1,0 Int x,y =1,1; /设有 m 个记录长度,一次get一个记录Process get 。 。 。wait(Sempty); wait (f); wait(Smutex); /wait(s); 和 copy互斥get 过程, fx s (x 号记录 ) ;x+; signal(Smutex); /signal

6、(s); signal(f); signal(Sfull); 。 。 。 process copy wait(Sfull); wait( Tempty); wait( Smutex); / 和 get 互斥wait( Tmutex); /和 put 互斥copy 过程,st (y 号记录 ) y+; signal(Tmutex) ;signal(Smutex) ;signal (Tfull); signal (Sempty); process put wait (Tfull); wait (g); wait( Tmutex); /和 copy 互斥put 过程 tgy (y 号记录) ; si

7、gnal (Tmutex ); signal (g); signal (Tempty); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题5 解决下面的问题,首先你要掌握P(wait) 、V(signal)操作和互斥信号量的概念。【作业】1. 推广例子中的消息缓冲问题。消息缓冲区为k 个,有 1 个发送进程,n 个接收进程,每个接收进程对发送来的消息都必须取一次,若有m 个发送进程呢?解: )这是一个

8、典型的题目,在我们设计网络上的“聊天室”时所必须要解决的问题。为了便于理解,我们也可以把这个问题先类比成一个读者优先的“读者写者”问题,即:先考虑只有一个消息缓冲区(单缓冲区)1. 当消息缓冲区空时,n 个读者(接收进程)等待,一个写者(发送进程)允许写入2当消息缓冲区满时,n 个读者进行阅读(接收) ,此时和写者进程互斥,直到所有读者阅读完毕。释放 读写互斥量和 缓冲区。注意这里我们不能简单的按照例子中的那样,将readcount 简单的计数。可以用下面的方法:为了保证n 个读者(接收进程)都必须读一次,我们可以用n bit 二进制位来作为n 个读者(接收进程)是否接收的标志(0未读, 1已

9、读),直到所有的位翻转成 1 后,释放读写互斥量( Wmutex) 和 缓冲区。在具体写代码时,我们可以使用一个数组readcountn 来表示 n bit array readcount1.n =0, ,0 /n 个接收进程已读标志Wmutex = 1; / 允许发送进程写数据到临界缓冲区Rmutex = 1; / 允许接收进程修改 已读标志读者 i(接收进程 i):while (true) P(Rmutex); For(int j:=1;jn) P (RWmutex); /n bit 全 0,第一个读者(接收进程)启动,禁止接收readcount i=1; V(Rmutex); 读(接收)

10、P(Rmutex); For(j:=1;jn) V (RWmutex); / n bit 全 1,所有读者(接收进程)都读过了,/ 释放写互斥信号量V(Rmutex); ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题6 写者 (发送进程 ):while (true) P(RWmutex); 写V(RWmutex); ; 现在我们再来考虑若有m 个发送进程呢?如果还使用单缓冲区,那么问题变得简单了

11、,上面的程序可以不加修改的应用在这种情况下。再进一步,我们有m 个发送进程,缓冲区为k 个, n 个接收进程,问题变的复杂些了。如果我们还是沿用上面“读者写者”的思路,在发送进程写数据时不允许接收进程读(读时也不允许写) ,显然执行的效率大大下降。所以我们要换一个思路,你可以先读懂我后面附中的“经典的生产者消费者问题”的n 个缓冲区、 m 个生产者和k 个消费者的实现方法,那么这个问题也就明了许多。我们只要把这个算法的消费者 Q 进程 改进成“每个缓冲区bufferj”被所有 n 个接收进程都接收后再j = (j+1)%n读下一个缓冲即可。shou 2.第二类读者写者问题:读者优先算法 :设置

12、两个互斥信号量:rwmutex 用于写者与其他读者/写者互斥的访问共享数据rmutex 用于读者互斥的访问读者计数器readcount var rwmutex, rmutex : semaphore := 1,1 ;int readcount = 0; cobegin readeri begin / i=1,2, . P(rmutex); Readcount+; If (readcount = 1) P(rwmutex); V(rmutex); 读数据;P(rmutex); Readcount-; If (readcount = 0) V(rwmutex); V(rmutex); End Wr

13、iterj begin / j = 1,2, . P(rwmutex); 写更新;V(rwmutex); End Coend 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题7 写者优先条件:1)多个读者可以同时进行读2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行)3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)解 1:如果读者数是固定的,我们可采用下面的算法:rw

14、mutex:用于写者与其他读者/写者互斥的访问共享数据rmutex: 该信号量初始值设为10,表示最多允许10 个读者进程同时进行读操作var rwmutex, rmutex : semaphore := 1,10 ;cobegin readeri begin / i=1,2, . P(rwmutex); /读者、写者互斥P(rmutex); V(rwmutex); / 释放读写互斥信号量,允许其它读、写进程访问资源读数据;V(rmutex); End Writerj begin / j = 1,2, . P(rwmutex); For (i=1;i=10;i+) P(rmutex); /禁止

15、新读者,并等待已进入的读者退出写更新;For (i=1;i=10;i+) V(rmutex); / 恢复允许 rmutex 值为 10 V(rwmutex); End Coend 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题8 解 2:如果读者数不固定,采用下面的算法:设置三个互斥信号量:rwmutex 用于写者与其他读者/写者互斥的访问共享数据rmutex 用于读者互斥的访问读者计数器readc

16、ount nrmutex 用于写者等待已进入读者退出,所有读者退出前互斥写操作var rwmutex, rmutex ,nrmutex : semaphore := 1,1,1 ;int readcount = 0; cobegin readeri begin / i=1,2, . P(rwmutex); P(rmutex); Readcount+; If (readcount = 1) P(nrmutex); / 有读者进入,互斥写操作V(rmutex); V(rwmutex); / 及时释放读写互斥信号量,允许其它读、写进程申请资源读数据;P(rmutex); Readcount-; If

17、 (readcount = 0) V(nrmutex); /所有读者退出,允许写更新V(rmutex); End Writerj begin / j = 1,2, . P(rwmutex); / 互斥后续其它读者、写者P(nrmutex); /如有读者正在读,等待所有读者读完写更新;V(nrmutex); /允许后续新的第一个读者进入后互斥写操作V(rwmutex); /允许后续新读者及其它写者End Coend 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页

18、- - - - - - - - - 操作系统部分思考题及简答题9 附经典的生产者消费者问题同步问题:P 进程不能往 “ 满” 的缓冲区中放产品,设置信号量为S1 Q 进程不能从 “ 空” 的缓冲区中取产品,设置信号量S2 P:Q:while (true) while (true) 生产一个产品 ; P(s2); P(s1) ; 从缓冲区取产品; 送产品到缓冲区; V(s1); V(s2); 消费产品 ; ; ; S1 初值为 1,S2 初值为 0.PQ放消息取消息nn个缓冲区(Buffer)ij名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -

19、 - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题10 多个缓冲区的生产者和消费者:n 个缓冲区、 m 个生产者和k 个消费者:Q:j = 0; while (true) P(S2); 从Bufferj 取产品 ; V(S1); 消费产品 ; j = (j+1) % n; ; P:i = 0; while (true) 生产产品 ; P(S1); 往Buffer i 放产品 ; V(S2); i = (i+1) % n; ; P:i = 0; while (true) 生产产品 ; P(S1); P(

20、mutex1); 往 Buffer i放产品 ; i = (i+1) % n; V(mutex1); V(S2); ; Q : j = 0; while (true) P(S2); P(mutex2); 从Bufferj取产品 ; j = (j+1) % n; V(mutex2); V(S1); 消费产品 ; ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题11 SPOOLing 技术原理答:

21、SPOOLing 技术就是用于将一台独占设备改造成共享设备的一种行之有效的技术。详见书 P219 管道( POSIX )(见第 3 章第 10 题作业)Windows 2000 体系结构1)系统采用分层结构设计2)保护模式HAL (hardware abstraction layer), kernel, executive. 3)户用模式子系统集a) 仿真不同操作系统环境的子系统b) 提供安全功能的保护子系统(security subsystems)用信号量机制实现写者优先的读者写者算法。解: (见思考题2.第二类读者写者问题)假定某系统有进程P0,P1,P2,P3, 资源 A,B,C ,每类

22、资源的数量分别为10,5,7;若在 T0 时刻每个进程已分配的资源分别为(2,0,0)、(2,1,1)、(0,0,2)、(3,1,1);试用银行家算法判断T0时刻系统是否安全?解:系统还有可用资源为:(3,3,3)分情况判定?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 操作系统部分思考题及简答题12 在一个请求分页系统中,假定为某进程分配3 个物理块且该进程的页面引用次序为:0,4,1,4,1,5,1,6,2,6,3,6

23、,2,6,4,5 ;试计算页面置换算法分别为最佳、FIFO 、LRU时的缺页次数。解:最佳算法是一种理论上的算法:被淘汰的是永不使用或者是最长时间不再被访问的页面最佳 OPT 0 4 1 4 1 5 1 6 2 6 3 6 2 6 4 5 页 1 0 0 1 1 1 1 1 6 6 6 6 6 6 6 4 5 页 2 4 0 0 0 5 5 5 2 2 2 2 2 2 2 2 页 3 4 4 4 4 4 4 4 4 3 3 3 3 3 3 x x x x x x x x x 共缺页中断9 次先进先出页面置换算法:淘汰最先进入内存的页面FIFO 0 4 1 4 1 5 1 6 2 6 3 6 2

24、 6 4 5 页 1 0 4 1 1 1 5 5 6 2 2 3 3 3 3 4 5 页 2 0 4 4 4 1 1 5 6 6 2 2 2 2 3 4 页 3 0 0 0 4 4 1 5 5 6 6 6 6 2 3 x x x x x x x x x 共缺页中断9 次最近最久未使用置换算法:每个页面有一个记录自上次被访问以来所经历的时间的字段LRU 0 4 1 4 1 5 1 6 2 6 3 6 2 6 4 5 栈顶0 0 1 4 1 5 1 6 2 6 3 6 2 6 4 5 4 0 1 4 1 5 1 6 2 6 3 6 2 6 4 栈底4 0 0 4 4 5 1 1 2 2 3 3 2 6 x x x x x x x x x 共缺页中断9 次假定某计算机系统有3, 000 个空闲磁盘块并用成组链接法对之进行管理(每组 200个盘块),试画出相应的链接图,并说明空闲盘块的分配与回收过程。解: (见第 9 章第 11 题作业 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁