《操作系统》第2章进程与线程习题第2章进程与线程习题1.多个作业能够并行运行,比它们顺序执行完成的要快。假设有两作业同时开始执行,每个需要10分钟的CPU时间。如果顺序执行,那么最后一个作业需要多长时间可以完成?如果并并行执行又需要多长时间?假设I/O等待占50%。(来源:A.S.Tanenbaum《现代操作系统(原书第3版)》P95)解:因为I/O等待占50%,所以当一个作业时,CPU利用率近似为50%,设I/O等待时间为x,满足x/(x+10)=50%解得每个作业的等待时间x=10分钟,完成一个作业需要20分钟所以,当两作业顺序执行时,最后一个作业完成需要20+20=40分钟;当两个作业并行执行时,最后一个作业完成需要20+20-10=30分钟2.一个快餐店有四类雇员:(1)领班,接收顾客点的菜单;(2)厨师,准备饭菜;(3)打包工,将饭菜装在袋子里;(4)收银员,将食品袋交给顾客并收钱。它们采用的进程间通信方式是什么?(来源:A.S.Tanenbaum《现代操作系统(原书第3版)》P96)解:由管道的定义:在一个shell管道中,第一个进程的输出必须传送给第二个进程然后沿着管道传递下去。我觉得题目所描述的进程通信方式为管道。因为在餐厅里,当领班接受到顾客点的菜单时,传递给厨师,厨师接收到领班的菜单时,就准备饭菜,待准备好饭菜之后,由打包工将准备好的饭菜装进袋子里,收银员再将装好的饭菜交给顾客并收钱。就像管道一样,一个进程的输出必须传送给第二个进程,然后沿着管道继续传递下去。3.今有3个并发进程R、S、T,它们共享一个缓冲区B。进程R负责从输入设备读入信息,每读出一个记录后就把它存入缓冲区B中;进程S利用缓冲区B加工进程R存入的记录;进程T把加工完毕的记录打印输出。缓冲区B一次只能存放一个记录。只有在进程T把缓冲区里的记录输出后,才能再往里放新的记录。试用信号量及期P、V操作控制这3个进程间的正确工作关系。(来源:宗大华《操作系统(第二版)》P162)解:P、V操作如下:1/4北理珠“操作系统”课题组2011-9-30《操作系统》第2章进程与线程习题由P、V操作图以及题意可设置初始信号量s1、s2、s3分别为1、0、0。4.有一个阅览室共100个座位。用一张表来管理它,每个表目记录号以及读者姓名。读者进入时要先在表上登记,退出时要注销登记。度用信号量及期P、V操作来描述各个读者“进入”和“注销”工作之间的同步关系。(来源:宗大华《操作系统(第二版)》P162)解:P、V操作如下:由上述P、V操作图以及题意可设置初始信号量s1、s2分别为0、0。5.有5个待运行作业,估计它们的运行时间分别是9,6,3,5和X。采用哪种次序运行这些作业将得到最短的平均响应时间?(答案将依赖于X。)(来源:A.S.Tanenbaum《现代操作系统(原书第3版)》P97)解:x的取值有几种可能性:x>=9、6=