云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 操作系统(1-8章的课后习题答案)doc资料

操作系统(1-8章的课后习题答案)doc资料

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 21:29:41

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) …

消 费一个产品;}}

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com