《操作系统》第2章进程与线程习题第2章进程与线程习题1
多个作业能够并行运行,比它们顺序执行完成的要快
假设有两作业同时开始执行,每个需要10分钟的CPU时间
如果顺序执行,那么最后一个作业需要多长时间可以完成
如果并并行执行又需要多长时间
假设I/O等待占50%
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)收银员,将食品袋交给顾客并收钱
它们采用的进程间通信方式是什么
Tanenbaum《现代操作系统(原书第3版)》P96)解:由管道的定义:在一个shell管道中,第一个进程的输出必须传送给第二个进程然后沿着管道传递下去
我觉得题目所描述的进程通信方式为管道
因为在餐厅里,当领班接受到顾客点的菜单时,传递给厨师,厨师接收到领班的菜单时,就准备饭菜,待准备好饭菜之后,由打包工将准备好的饭菜装进袋子里,收银员再将装好的饭菜交给顾客并收钱
就像管道一样,一个进程的输出必须传送给第二个进程,然后沿着管道继续传递下去
今有3个并发进程R、S、T,它们共享一个缓冲区B
进程R负责从输入设备读入信息,每读出一个记录后就把它存入缓冲区B中;进程S利用缓冲区B加工进程R存入的记录;进程T把加工完毕的记录打印输出
缓冲区B一次只能存放一个记录
只有在进程T把缓冲区里的记录输出后,才能再往里放新的记录
试用信号量及期P、