当前位置:网站首页 > 云计算与后端部署 > 正文

操作系统课后(操作系统课后题答案慕课版)



一、简答题
1.什么是临界资源?什么是临界区?
临界资源:以互斥形式访问的资源;临界区:访问临界资源的代码。

4.如何保证各进程互斥地访问临界资源?
1)空闲让进 当临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,从 而有效的利用资源;
2)忙则等待 已经有进程进入临界区时,意味着相应的临界资源正在被访问,所以其他准备进 入临界区的进程必须等待,来保证多进程互斥;
3)有限等待 对要求访问临界资源的进程,应该保证该进程能在有效的时间内进入临界区,防止死等;
4)让权等待 当进程不能进入临界区,应该立即释放处理机,防止进程忙等待。



5.何谓“忙等”?它有什么缺点?
忙等:指的是进程要访问的临界资源被其他进程占用,此进程没有自旋锁便处于自旋状态即忙等状态。
缺点:占用CPU资源、降低CPU效率。

7.哪些硬件方法可以解决进程互斥问题?描述它们的用法。
1)关中断:访问临界区时关闭中断。
2)TS(Test-and-Set):TS指令为每个临界区加一个布尔变量,每次进入临界区都必须使用TS指令测试变量。
3)swap指令:使用swap指令为每个进程设置一个局部变量key,使用swap指令交换key的值与临界资源锁的值,判断是否有进程正在访问。


9.AND信号量机制的基本思想是什么?它能解决什么问题?
AND信号量机制的基本思想:在PV操作时,把所有进程请求的资源都分配给进程,要么分配够,要么一个也不分配。
解决了一个进程需要多个互斥资源才能执行的问题。

11.什么是管程?它有哪些特征?
管程是代表共享数据结构,以及由对该共享数据结构实施操作的过程组成的资源管理程序,是操作系统的一个资源管理模块。特征如下:
1)抽象了临界资源。
2)对临界资源的访问只能调用管程进行。
3)只允许一个进程进入管程。



12.试简述管程中条件变量的含义与作用?
含义:管程为何种阻塞的原因都设置了条件变量,进程若因此原因而阻塞,会把这个进程挂在此条件变量的队列上,若是阻塞条件发生变换,则启动一个进程。
作用:为了解决管程中的进程不能被阻塞,而其他进程不能访问管程的问题。

二、计算
13.若信号量的初值为2,当前值为-1,则表示有多少个等待进程?请分析。
1个等待进程;当前值为-1时,表示有一个进程正在临界区运行,而另一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程在退出时唤醒。

分析:为实现互斥访问,初始值需要设置为1.如果某时刻信号量为-x,则证明等待队列中有x个进程在等待。此题中,有m个进程,那么最多就有m-1个进程等待。对应信号量的值就是-(m-1)=1-m。

结合14、15分析归纳:
设有m个进程共享一个互斥段,对于如下两种情况使用信号量,信号量的值应该怎样变化。
(1)如果每次只允许一个进程进入互斥段:
信号量的初值是1,变化量范围是:1,0,-1,-2,1-n
(2)如果每次最多允许n个进程(n<m)同时进入互斥段:
信号量的初值是n,变化量范围是:n,n-1,n-2…n-m




三、综合应用题
16.3个进程P1、P2、P3互斥地使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数,并用put()将其送入缓冲区的某一空单元中;P2每次用getodd()从缓冲区中取出一个奇数,并用countodd()统计奇数的个数;P3每次用geteven()从该缓冲区中取出一个偶数,并用counteven()统计偶数的个数。请用信号量机制实现这3个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
这个我也没太懂,嘿嘿,来看看这位大神的描述吧!
本题详解


17.某银行提供了一个服务窗口和10个供顾客等待时使用的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下。

 
  

添加必要的信号量和P、V操作或wait()、signal()操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。

 
  

18.如图4-3所示,有1个计算进程和1个打印进程,它们共享一个缓冲区,计算进程不断计算出一个整型结果,并将它放入单缓冲区中;打印进程则负责从缓冲区中取出每个结果并进行打印。请用信号量机制来实现它们的同步关系。
在这里插入图片描述

可从临界资源的角度来思考,先找临界资源,并为每种临界资源设置信号量,在访问临界资源之前加wait操作来申请资源,访问完临界资源后加signal操作以释放临界资源。本题中有两类临界资源:第一类是计算进程争用的空闲缓冲区,初始状态下有一个空闲缓冲可供使用,故可为它设置初值为l的信号量empty;第二类是打印进程争用的已放入缓冲中的打印结果,初始状态下缓冲中无结果可供打印,故可为它设置初值为0的信号量full。当然个人感觉PV操作更简单。

19.有3个进程P1、P2、P3协作解决文件打印问题。P1将文件记录从磁盘读入内存的缓冲区1,每执行一次读一个记录;P2将缓冲区1中的内容复制到缓冲区2中,每执行一次复制一个记录;P3将缓冲区2中的内容打印出来,每执行一次打印一个记录。缓冲区的大小与记录大小一样。请用信号量来保证文件的正确打印。

 
  

20.桌上有一个能盛得下5个水果的空盘子。爸爸不停的向盘中放苹果和橘子,儿子不停地从盘中取出橘子享用,女儿不停地从盘中取出苹果享用。规定3人不能同时向(从)盘子中放(取)水果。使用信号量机制来实现爸爸、儿子和女儿这3个“循环进程”之间的同步。

 
  

21.试用记录型信号量写出一个不会死锁的哲学家进餐问题的算法

到此这篇操作系统课后(操作系统课后题答案慕课版)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
  

                            

版权声明


相关文章:

  • nfs客户端怎么访问(nfs客户端开放端口)2025-07-28 12:54:10
  • 达梦客户端安装 linux(linux安装达梦创建实例)2025-07-28 12:54:10
  • 与服务器断开连接是什么意思(与服务器的连接已中断,请稍后再试)2025-07-28 12:54:10
  • 服务器部署操作系统(服务器的部署原则)2025-07-28 12:54:10
  • redis端口号被耗尽(redis-cli 端口)2025-07-28 12:54:10
  • windows nfs客户端(windows2012 nfs客户端)2025-07-28 12:54:10
  • Redis端口号(redis端口号及其占用的主要资源是什么)2025-07-28 12:54:10
  • onnx模型部署到手机(onnx安卓部署)2025-07-28 12:54:10
  • 服务器的部署(服务器的部署和搭建)2025-07-28 12:54:10
  • 苹果软件后缀名是啥(苹果手机软件的后缀名是什么)2025-07-28 12:54:10
  • 全屏图片