第一范文网 - 专业文章范例文档资料分享平台

操作系统(1~8章的课后习题答案)

来源:用户分享 时间:2025/5/22 7:30:39 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

4-12: n个并发进程共用一个共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。 main() {

int mutex=1; cobegin P1(); P2(); Pn(); coend }

P1() P2() Pn() { { { ... ... ...

P(mutex); P(mutex); P(mutex); cs1; cs2; csn;

v(mutex); v(mutex); v(mutex); } } }

对于两个并发进程,互斥信号灯的值仅取1、0、-1三个值。 若mutex=1,表示没有进程进入临界区; 若mutex=0,表示有一个进程进入临界区;

若mutex=-1,表示一个进程进入临界区,另一个进程等待进入。

4-13 :图4.30(a)、(b)分别给出了两个进程流图。试用信号灯的P、V操作分别实现图4.30(a)、(b)所示的两组进程之间的同步,并写出程序描述。 a:

P1 P2 P3 M P(S2); P(S3) v(S1); M M

v(S2); M M v(S3); 4-15 : main() {

int sa=1,sb=0;// sa 表示缓冲区s 是否为空,sb 表示是否有数据可被处理。 int ta=1,tb=0;// ta 表示缓冲区t 是否为空,tb 表示是否有数据可被处理。 cobegin get; copy; put; coend }

Get(){ Copy(){ Put(){ while(1){ while(1){ while(1){

P(sa); P(sb); P(tb);

input data to buffer s copy data from buffer s; output data to buffer s;

V(sb); V(sa); V(ta);

} P(ta); }

} input copy-data to buffer t; } V(tb); } }

4-16:a:进程的互斥是当某一进程正在访问某一存储区域时,就不允许其他进程来读出或者修改该存储区的内容,否则,就会发生后果无法估计的错误。进程之间的这种制约关系称为互斥。

b: 进程的同步是:就是并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通信息称为进程同步。

c: 同步与互斥这两个概念的区别与联系:相交进程之间的关系主要有两

种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。 显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。 也就是说互斥是两个线程之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥),

互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

4-20:进程创建的主要功能是:(1)为新建进程申请一个PCB。 (2)将创建者(即父进程)提供的新建进程的信息填入PCB中。

(3)将新建进程设置为就绪状态,并按照所采用的调度算法,把PCB排入就绪队列中

4.17 : Mian() { int full=0;int empty=n;int

mutex=1; cobegin p1(); p2(); … ;pm(); c1(); c2(); …

;ck(); coend} producer() { while{ …

生产一个产品; p(empty);

p(mutex);送一个产品到有界缓冲区; v(metex); v(full); }}

consumer(){ while{ p(full); p(mutex);

从有界缓冲区中取产品; v(mutex); v(empty) …

消 费一个产品;}}

搜索更多关于: 操作系统(1~8章的课后习题答案) 的文档
操作系统(1~8章的课后习题答案).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7ygxi6gmk12mdyx423a46cyp27lz4y01bpe_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top