操作系统课后题答案第二版(操作系统课后作业答案第二章)

操作系统课后题答案第二版(操作系统课后作业答案第二章)第二章进程和线程作业答案 1 2 4 6 7 10 11 12 14 21 在操作系统中为什么要引入进程概念 它与程序的差别 和关系是怎样的 答 由于多道程序的并发执行时共享系统资源 共同决定这 些资源的状态 因 1 这个算法不对 进程 A B 共用一个缓冲区 同步 2 28 所示 进程 A 进程 A 进程 B 进程 B 图 2 27 进程 A B 的算法框图 临界区代码 CSa V S1 P S2 P S1 临界区代码 CSb V S2 信号量 S1 S2 的初值为 0



第二章进程和线程作业答案


1, 2, 4, 6, 7, 10, 11, 12, 14, 21


在操作系统中为什么要引入进程概念?它与程序的差别


和关系是怎样的?


答:由于多道程序的并发执行时共享系统资源,共同决定这 些资源的状态,因(1)这个算法不对。进程A, B共用一个缓冲区,同步


2-28所示。


进程A


进程A


进程B


进程B


图2-27进程A、B的算法框图


临界区代码CSa


V( S1)


P(S2)


P( S1)


临界区代码CSb


V( S2)


信号量S1,S2的初值为0


图2-28两个并发进程临界区的算法框图


关系。如果 A先运行,且信息数量足够多,则缓冲区 Q中 的信息会被后来的冲掉,造成信息丢失,进程 B不能从Q


中读出完整的信息。


改正:


进程A,B同步使用一个缓冲区, 设立两个信号量:


empty :缓冲区Q为空,初值为1 ;


full :缓冲区Q为满,初值为0;


算法框图如下图所示


进程A


进程B


进程A


P( empty) 向Q写入信息


V( full :


进程B


P( full :


从Q读出信息


V ( empty)


P( mutex)


临界区代码CSa


V ( mutex)


P( mutex)


临界区代码CSb


V( mutex)


图2-28的算法框图


改正后


图2-27的算法框图 改正后


(2)这个算法不对。进程A,B并发的,它们共享一个临界 资源,二者应互斥地使用该临界资源,在进入临界区时不存 在A先B后的时序关系,而是哪个进程先到一步就先进入


自己的临界区 改正:A,B两个进程应互斥地进入临界区。为此,设立一个


互斥信号量mutex,初值为1,算法框图如上所示。


,有两条 I/O通道,分别接一台卡片输 入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区


B1中,加工处理后再搬到缓冲区 B2中,并在打印机上打印


结果,问:


系统要设几个进程来完成这个任务?各自的工作是什么


这些进程间有什么样的相互制约关系?


用P, V操作写出这些进程的同步算法。


答:这是一个典型的生产者,消费者问题


1) 系统可设三个进程完成任务,第一个进程 R,从卡片输入


机中读入数据,并且把数据放入缓冲区 B1中,第二个进程C 从B1缓冲区中取数据,加工处理后放入缓冲区 B2中。第三


个进程P将缓冲区B2的容取出,在打印机上打印出来


2) 这三个进程之间是同步关系


R进程受C进程影响,B1放满信息后R进程要等待,等到 C 进程将其中的信息全部取走,才能继续读入信息; C进程受


R进程和P进程的约束,B1息放满后C进程才可从中取出它 们,且B2被取空后C进程才可将加工结果送入其中; P进程


受C进程的约束,B2息放满后P进程才可从中取出它们, 进


行打印。


3) 三个进程之间必须协调工作,需设置四个信号量:


Biempty:缓冲区 B1空,初值为1 ;


Bifull :缓冲区B1满,初值为0;


B2empty:缓冲区 B2空,初值为1 ;


B2full :缓冲区B2满,初值为0;


进程R


while (TRUE {


P(B1empty);


从卡片机中读入数据


进程C


while ( TRUE {


P( Bifull );


将B1中的数据取出计算


进程P


while ( TRUE {


P( B2full );


将缓冲区B2容


写入缓冲区B1;


V( B1full );


}


在打印机中输出;


V(B2empty);


}


V( B1empty);


P( B2empty);


计算结果送入B2中;


V(B2full);


}


14•假定一个阅览室最多可容纳 100个人,读者进入和离开


阅览室时都必须在阅览室门口的一登记表上做标识 (进入时


登记,离开时去掉登记项),而且每次只允许一人登记或去 掉登记。问:


①应编写几个程序完成此项工作 ?程序的主要动作是什 么,应设置几个进程?进程与程序间的对应关系如何?


②用P,V操作写出这些进程的同步通信关系。


①完成此项工作可编写一个或两个程序(函数),每个读者 对应一个进程。每个读者的动作包括:


进入阅览室前查表登记,这时要考虑阅览室里是否有座


位;


进入阅览室,阅读


写入缓冲区B1;


V( B1full );


}


在打印机中输出;


V(B2empty);


}


V( B1empty);


P( B2empty);


计算结果送入B2中;


V(B2full);


}


14•假定一个阅览室最多可容纳 100个人,读者进入和离开


阅览室时都必

今天的文章 操作系统课后题答案第二版(操作系统课后作业答案第二章)分享到此就结束了,感谢您的阅读。














































































































编程小号
上一篇 2025-10-10 15:30
下一篇 2025-03-15 14:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/4811.html