操作系统第4章答案(上)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

赵盈盈 93 第四章作业上

1. 解释名词:程序的顺序执行;程序的并发执行。

答:程序的顺序执行:一个具有独立功能的程序独占cpu直到得到最终结果的进程。

程序的并发执行:两个或两个以上程序在计算机系统中同时处于一开始执行且尚未结束的状态。

2. 什么是进程进程与程序的主要区别是什么

答:进程:进程是具有独立功能的程序关于某个数据集合的一次运行活动,进程是系统进行资源分配和调度的独立单元。

进程和程序的区别:

●程序是静态的,进程是动态的

●进程有程序和数据两部分组成

●进程具有生命周期,有诞生和消亡,是短暂的;而程序是相对长久的

●进程能更真实的描述并发,而程序不行。

●一个进程可以对应多个程序。一个程序可以对应多个进程

●进程可以创建其他进程,程序不能

3. 图1所示,设一誊抄程序,将f中记录序列正确誊抄到g中,这一程序由get、copy、put三个程序段组成,它们分别负责获得记录、复制记录、输出记录。请指出这三个程序段对f中的m个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图(假设f中有1,2,…,m个记录,s,t为设置在主存中的软件缓冲区,每次只能装一个记录)。

图1 改进后的誊抄过程

答:

4. 进程有哪几种基本状态试画出进程状态变迁图,并标明发生变迁的可能原因。

答:进程基本状态:运行、就绪、等待

就绪到运行:调度程序选择一个新的进程运行 运行到就绪:运行进程用完了时间片

或运行进程被中断,因为一个高优先级的进程处于就绪状态 运行到等待:OS 尚未完成服务 或对一资源的访问尚不能进行

或初始化I/O 且必须等待结果 或等待某一进程提供输入(IPC ) 等待到就绪:当所有的事件发生时

5. 什么是进程控制块它有什么作用

答:PCB :为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义的一个专门的数据结构。

作用:系统用PCB 来控制和管理进程的调用,PCB 也是系统感知进程存在的唯一标志

G

C

G

P

C

P G

…C

P

6. n 个并发进程共用一个公共变量Q ,写出用信号灯的p 、v 操作实现n 个进程互斥时的程序描述,并说明信号灯值的取值范围。

答:main() pi() { {

int mutex=1; p(mutex); cobegin 执行进程Pi; for(i=1;1<=n;i++){ pi();} v(mutex); coend } }

对于N 并发进程,互斥子信号灯取值范围为【-(n-1),1】 Mutex = 1,表示没有进程进入缓冲区。

Mutex = 0,表示有一个进程进入缓冲区,没有进程等待 Mutex = -1,表示有一个进程进入缓冲区,一个进程等待 ……

Mutex =-(n-1),表示有一个进程进入缓冲区,n-1个进程等待

7. 我们用进程流图来描述一组合作进程执行的先后次序。试用信号灯的p 、v 操作实现如图2(a)、(b)中所示进程之间的同步,并写出程序描述。

图2

图3

答:PV 操作实现(a )及程序实现 main()

{int S2=0,S3=0,S4=0; P1() P2() P3() P4()

P 2

(S2)

P 4

S4)

P 6

S57、

S67)

S

(S2P 5(S35、 P 4

(S4)

Cobegin { { { {

P1();P2();P3();P4(); 执行P1; P(S2); P(S3); P(S4);

Coend V(S2);执行P2;执行P3;执行P4;

} V(S3); } } }

V(S4);

}

PV操作实现(b)及程序实现

main()

{int S5=0,S6=0; P5() P6() P7()

int S57=0,S67=0; { { {

Cobegin P(S5); P(S6); P(S57);

P5();P6();P7(); 执行P5;执行P6; P(S67);

Coend V(S57) V(S67);执行P7;

} } } }

8. 如图3所示的进程流图中,有五个进程合作完成某一任务,试说明这五个进程之间的同步关系,并用p、v操作实现之,并要求写出程序描述。

答:PV操作实现及程序实现

Main() P1() P2()

{int S1=0,S2=0,S3=0,S4=0;S35=0,S45=0; {执行P1; { P(S2);

Cobegin V(S2); 执行S2;

P1();P2();P3();P4();P5(); V(S3); }

Coend V(S4);

} }

P3() P4() P5()

{P(S3); { P(S4); {P(35);

执行P3;执行P4; P(45);

V(35); V(45);执行P5;

} } }

9. 如图4所示,get、copy、put三进程共用两个缓冲区s、t(其大小为每次存放一个

记录)。get 进程负责不断地把输入记录送入缓冲区s 中,copy 进程负责从缓冲区s 中取出记录复制到缓冲t 中,而put 进程负责把记录从缓冲区t 中取出打印。试用p 、v 操作实现这三个进程之间的同步,并写出程序描述。

图4

答:PV 操作实现及程序实现 Main ()

{int S1=1,S2=0;什么是进程的互斥与同步同步和互斥这两个概念有什么联系与区别

答:进程同步:是指进程之间一种直接的协同关系,是一些进程相互合作,共同完成一项任务,进程剪得直接相互作用构成进程的同步。

进程互斥:在系统中,许多进程需要共享资源,而这些资源往往要求排他性的使用,即一次只能为一个进程服务。因此,个进程间互斥使用这些资源,进程间的这种关系叫做进程互斥。

联系:进程互斥与同步是指在进程推进时的相互制约关系。在多道程序系统中,由于资源共享与进程合作,这种进程间的制约成为可能。

区别:进程同步主要源于进城合作,是进程间共同完成一项任务时直接发生相互作用,为进城提供直接制约关系。在多道环境下,这种进程在执行次序上的协调是必不可少的。

而进程互斥,主要源于资源共享,是进程间的间接制约关系。在多道系统中,每次只允许一个进程访问的资源成为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。

11. 在生产者一消费者问题中,我们设置三个信号灯,一个用于互斥的信号灯mutex ,其初值为1;另外两个信号灯是:full (初值为0,用以指示缓冲区内是否有物品)和empty (初值为n ,表示可利用的缓冲区数目)。试写出此时的生产者一消费者问题的描述。

答:该问题描述的是一个多个生产者 一个消费者

12. 判断正是列同步算法是否有错,请指出错误原因并改正。 (1)三个进程并发活动的进程流图5所示,其同步算法描述如下: main( ) 解(1) 答:改正如下: {

S

相关文档
最新文档