操作系统-进程管理习题课

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

十一题
十一、(华中理工大学1999年试题)设公共汽车上, 司机和售票员的活动分别是:p41 司机的活动: 启动车辆: 正常行车; 到站停车; 售票员的活动: 关车门; 售票: 开车门; 在汽车不断地到站、停车、行驶过程中,这两 个活动有什么同步关系?用信号量和P、 V操作实现它们的同步。
分析
在汽车行驶过程中,司机活动与售票员活 动之间的同步关系为:售票员关车门后, 向司机发开车信号,司机接到开车信号 后启动车辆,在汽车正常行驶过程中售 票员售票,到站时司机停车,售票员在 车停后开车门让乘客上下车。因此司机 启动车辆的动作必须与售票员关车门的 动作取得同步;售票员开车门的动作也必 须与司机停车取得同步。
wk.baidu.com
答案
int Se=l; int Sf=0; compute() main() { while(计算工作未完成) { cobegin { p(Sf); get(); 从缓冲区中取出数 compute(); 据; coend } v(Se); get() 进行数据计算; { while (采集工作未完成) } { 采集一个数据: } p(Se); 将数据送入缓冲区中; v(Sf); } }
答案
A框 P(mutex) B框 V(mutex) C框 P(s) D框 P(mutex) 开始时,消息链上没有可供接收的信息, 所以s的初值为0;互斥信号量mutex的初 值应为1。
十三题
十三、(北京大学1990年试题)p46 ①写出P、V操作的定义。 ②有三个进程PA、PB和PC合作解决文件打印 问题: PA将文件记录从磁盘读入主存 的缓冲区1,每 执行一次读一个记录; PB将缓冲区1的内容复制到缓冲区2,每执行一 次复制一个记录; PC将缓冲区2的内容打印出来,每执行一次打印 一个记录。缓冲区的大小等于一个记录大小。 请用P、V操作来保证文件的正确打印。
答案
①P操作记为P(S),其中S为一信号量,它执行时 主要完成下述动作: S=S-1 若S≥0,则进程继续运行。 若S<0,则该进程被阻塞,并将它插入该信号 量的等待队列中。 V操作记为V(S) ,它执行时主要完成下述动作: S=S+1 若S>0,则进程继续执行。 若S≤0,则从信号量等待队列中移出队首进程, 使其变为就绪状态。
第二题(续)
假定这些生产者和消费者是互相等效的。只要 缓冲区未满,生产者就可以把产品送入缓冲 区,类似地,只要缓冲区未空,消费者便可 以从缓冲区中取走物品并消耗它。生产者和 消费者的同步关系将禁止生产者向满的缓冲 区输送产品,也禁止消费者从空的缓冲区中
第三题(选择)
三、在操作系统中,进程是一个具有一定 独立功能的程序在某个数据集上的一次 __________。 A.等待活动 B.运行活动 C.单独操作 D.关联操作 答:B
本章小结(续)
进程上下文:一个进程的静态描述是处理机的一 个执行环境,被称为进程上下文。进程上下文由 以下部分组成:PCB(进程控制块)、正文段和数 据段以及各种寄存器和堆栈中的值。寄存器中主 要存放将要执行指令的逻辑地址,执行模式以及 执行指令时所要用到的各种调用和返回参数等。 而堆栈中则存放CPU现场保护信息、各种资源控 制管理信息等。 进程通信:进程间通信又可分为传送控制信号的 低级通信和大量传送数据的高级通信。 通信方式来看,又可分为主从式、会话式、消息 与邮箱方式、以及共享虚存方式。
分析
[分析及相关知识] 信号量是一个确定的二元组 (s,q),其中s是一个具有非负初值的整型变量, q是一个与s相关联的初始状态为空的队列.整 型变量s表示系统中某类资源的数目,当其值 大于0时,表示系统中当前可用资源的数目; 当其值小于0时,其绝对值表示系统中因请求 该类资源而被阻塞的进程数目.除信号量的 初值外,信号量的值仅能由P操作和V操作改 变。
答案
int s1=0; int s2=0; driver() { while(1) { p(s1); 启动车辆; 正常行车; 到站停车; v(s2); } } busman() { while(1) { 关车门; v(s1); 售票; p(s2); 开车门; 上下乘客; } }
十二题
十二、设有一个发送者进程和一个接收者 进程,其流程图如图所示。s是用于实现 进程同步的信号量,mutex是用于实现 进程互斥的信号量。试问流程图中的A、 B、C、D四框中应填写什么?假定缓冲 区有无限多个,s和mutex的初值应为多 少? p42
进程管理习题课
重点:用P、V原语实现同步与互斥
本章小结
进程是系统分配资源的基本单位,是一个具有独 立功能的程序段对某个数据集的一次执行活动。 为什么要引入进程的概念是由操作系统的资源 有限性和处理上的并行性以及系统用户的执行 起始时间的随机性所决定的。 进程具有动态性、并发性等特点。 进程动态特性的是进程状态的变化。进程要经 历创建、等待资源、就绪准备执行,以及执行和 执行后释放资源消亡等几个过程和状态。进程 的状态转换要由不同的原语执行完成。
分析
[分析及相关知识]发送者进程与接收者进程之 间的同步关系是:发送者进程生成的信息送 入消息链中,接收者进程从消息链中接收信 息;由于发送者进程产生一个消息并链入消息 链后用V操作增加消息计数并唤醒接收者进程, 这表示发送者进程和接收者进程是通过信号 量s实现同步的,因此接收者进程应该在取信 息之前先使用一个P操作来查看消息链上是否 有消息,若无消.息则阻塞自己;另外,发送 者和接收者对消息链的访问应使用信号量进 行互斥,即在访问前使用P操作,在访问后使 用V操作。
十五题
十五、(北京大学1991年试题)有一个仓库, 可以存放A和B两种产品,但要求: (1)每次只能存入一种产品(A或B); (2)-N<(A产品数量一B产品数量)<M。 其中,N和M是正整数。试用P、V操作 描述产品A与产品B的入库过程。
分析
[分析及相关知识] 本题给出的第一个条件是临 界资源的访问控制,可用一个互斥信号量解 决该问题。第二个条件可以分解为: -N<A产品数量一B产品数量 A产品数量一B产品数量<M 也就是说,A产品的数量不能比B产品的数量 少N个以上,A产品的数量不能比B产品的数 量多M个以上.
第四题(选择)
四、多道程序环境下,操作系统分配资源 以_______为基本单位。 A.程序 B.指令 C进程 D.作业 答:C
第五题(选择)
五、对于两个并发进程,设互斥信号量为 mutex,若mutex=O,则_____。 A.表示没有进程进入临界区 B.表示有一个进程进入临界区 C.表示有一个进程进入临界区,另一个 进程等待进入 D.表示有两个进程进入临界区 答:B
第六题(选择)
六、两个进程合作完成一个任务。在并发 执行中,一个进程要等待其合作伙伴发 来消息,或者建立某个条件后再向前执 行,这种制约性合作关系被称为进程的 ____。 A.同步 B.互斥 C. 调度 D.执行 答:A
第七题(选择)
七、为了进行进程协调,进程之间应当具 有一定的联系,这种联系通常采用进程 间交换数据的方式进行,这种方式称为 ______。 A.进程互斥 B.进程同步 C .进程制约 D.进程通信 答:D
答案
int S=1; int Sa=0; int So=0; son( ) main( ) { while(1) { cobegin { p(So); father(); son(); daughter(): 从盘中取出桔子; coend } v(S); 吃桔子; father() }} { while (1) daughter() { p(S); { while(1) { p(Sa); 将水果放入盘中; if(放入的是桔子) v(So): 从盘中取出苹果; else v(Sa); } v(S); 吃苹果; } } }
十四题
十四、设有8个程序progl、prog2、…、 prog8。它们在并发系统中执行时有如图 所示的制约关系,试用P、V操作实现这 些程序间的同步。P48
分析
由图表明开始时,progl及prog2先执行。 当progl和prog2都执行完后,prog3、prog4、 prog5才可以开始执行。 prog3完成后,prog6才能开始执行。 prog5完成后,prog7 才能开始执行。 prog6、prog4、prog7都结束后,prog8才可以开 始执行。 为了确保这一执行顺序,设7个同步信号量 f1、…、f7分别表示程序progl、…、prog7是 否执行完,其初值均为0。
本章小结
进程的并发特性反映在进程对资源的竞争以及由资 源竞争所引起的对进程执行速度的制约。这种制约 可分为直接制约和间接制约。 直接制约是被制约进程和制约进程之间,存在着使用 对方资源的需求,只有制约进程执行后,被制约进程才 能继续往前推进。具有固定的执行顺序 间接制约是被制约进程共享某个一次只能供一个进 程使用的系统资源,只有得到该资源的进程才能继续 往前推进,其他进程在获得资源进程执行期间不允许 交叉执行。没有固定的执行顺序。 操作实现:间接制约可利用加锁法和P,V原语操作实 现。直接制约既可用P,V原语实现,也可用其他互相 P78 传递信号的方式实现。
P79
本章小结(续)
常用的死锁排除方法是检测与恢复方法。 造成死锁:无论是互相通信的进程或是共享某些不 同类型资源的进程,都可能因通信顺序不当或资源分 配顺序不当而造成死锁。 死锁是一种因各并发进程等待资源而永久不能向前 推进的系统状态。 排除死锁的方法是预防、回避、检测与恢复三种。 线程是进程内的一段程序的基本调度单位。线程可 分为用户级线程和系统级线程。用户级线程的管理 全部由线程库完成,与操作系统内核无关。 线程组成由寄存器、堆栈以及程序计数器等组成,同 一进程的线程共享该进程的进程空间和其他所有资 源。线程主要用于多机系统以及网络系统的操作系 P79 统中。
分析
在本题中,我们可以设置两个信号量来控制A、 B产品的存放数量,sa表示当前允许A产品比B 产品多入库的数量,即在当前库存量和B产品 不入库的情况下,还可以允 许sa个A产品入 库;sb表示当前允许B产品比A产品多入库的数 量,即在当前库存量和 A产品不入库的情况 下,还可以允许sb个B产品入库。 初始时,sa为M一1,sb为N一1,当往库中存放 入一个A产品时,则允许存入B产品的数量也 增加1;当往库中存放入一个B产品时,则允许 存入A产品的数量也增加1。
第九题
九、下图给出了四个进程合作完成某一任 务的前趋图,试说明这四个进程间的同 步关系,并用P、V操作描述它。
第十题
十、桌上有一空盘,允许存放一只水果。 爸爸可向盘中放苹果,也可向盘中放桔 子,儿子专等吃盘中的桔子,女儿专等 吃盘中的苹果。规定当盘空时一次只能 放一只水果供吃者取用,请用P、V原语 实现爸爸、儿子、女儿三个并发进程的 同步。P37
分析
[分析及相关知识] 在本题中,爸爸、儿子、女 儿共用一个盘子,且盘中一次只能放一个水 果.当盘子为空时,爸爸可将一个水果放入 果盘中。若放入果盘中的是桔子,则允许儿 子吃,女儿必须等待;若放入果盘中的是苹果, 则允许女儿吃,儿子必须等待。 本题实际上是生产者—消费者问题的一种变形。 这里,生产者放入缓冲区的产品有两类,消 费者也有两类,每类消费者只消费其中固定 的一类产品。
第八题
八、在测量控制系统中,数据采集任务把 所采集的数据送入一单缓冲区;计算任务 从该单缓冲区中取出数据进行计算。试 写出利用信号量机制实现两者共享单缓 冲区的同步算法。
分析
[分析及相关知识] 在本题中采集任务与计 算任务共用一个单缓冲区.当采集 任 务采集到一个数据后,只有当缓冲区为 空时才能将数据送入缓冲区中存放,否 则应等待缓冲区腾空;当缓冲区中有数据 时,计算任务才能从缓冲区中取出数据 进行计算,否则也应等待。
第一题
一、用P、V操作描述前趋关系。P1、P2、 P3、P4、P5、P6为一组合作进程,其前 趋图如图所示,试用P、V操作描述这6 个进程的同步。
第二题
二、生产者-消费者问题 它描述了一组生产者向 一组消费者提供产品,它们共享一个有界缓 冲区,生产者向其中投放产品,消费者从中 取得产品。生产者-消费者问题是许多相互合 作进程的一种抽象。 我们把一个长度为n的有界缓冲区(n>0)与一群 生产者进程P1、P2、…、Pm和一群消费者进 程C1、C2、…、Ck联系起来,如图所示。提 取物品。
相关文档
最新文档