第4章进程同步与进程通信
4.2 进程同步习题
【例】现有4个进程R1,R2,W1,W2。它们共享 可以存放一个数据的缓冲器B。进程R1每次把磁 盘上读出的一个数据存到缓冲器B中,供进程W1 打印输出;进程R2每次从键盘上读一个数据存放 到缓冲器B,供W2打印输出。当一个进程把数据 存放到缓冲器后,在该数据还没有打印输出之前 不准任何进程再想缓冲器中存数据。当一个进程 已把缓冲器中的数据打印输出后,在缓冲器中还 没有存如新数据之前不准任何进程再从缓冲器中 取数打印。问怎样用PV操作使这4个进程并发执 行时能相互协作地工作?
• Semaphore Customers = 0; • Semaphore Barber = 0; • Mutex accessSeats = 1; • int NumberOfFreeSeats = N; //total number of seats
Customer() { while(true) Barbers() { { P(accessSeats); //lock while(true) if(NumberOfFreeSeats >0) { { P(customers); NumberOfFreeSeats--; //等待顾客,睡眠 V(customers);//通知理发师 P(accessSeats); //lock V(accessSeats);//unlock NumberOfFreeSeats++; P(barbers);//等待理发师 V(accessSeats); //unlock 顾客理发 理发中… } V(barbers) ; else }//while V(accessSeats); } }//while }
3 两个进程可以改为 semaphore S1=1 semaphore S2=0 Process X L1:P(S1) 使用资源r V(S2) goto L1
精品课件-Linux操作系统原理与应用(张玲)-第4章
第4章 进 程 管 理
2. 进程的特性 进程与程序的不同主要体现在进程有一些程序所没有的特 性。要真正理解进程,首先应了解它的基本性质。进程具有以 下几个基本特性: (1) 动态性:进程由“创建”而产生,由“撤销”而消 亡,因“调度”而运行,因“等待”而停顿。进程从创建到消 失的全过程称为进程的生命周期。 (2) 并发性:在同一时间段内有多个进程在系统中活动。 它们宏观上是在并发运行,而微观上是在交替运行。
第4章 进 程 管 理
(3) 独立性:进程是可以独立运行的基本单位,是操作 系统分配资源和调度管理的基本对象。因此,每个进程都独立 地拥有各种必要的资源,独立地占有CPU并独立地运行。
(4) 异步性:每个进程都独立地执行,各自按照不可预 知的速度向前推进。进程之间的协调运行由操作系统负责。
第4章 进 程 管 理
第4章 进 程 管 理
4) 现场信息 现场信息一般包括CPU的内部寄存器和系统堆栈等,它们 的值刻画了进程的运行状态。退出CPU的进程必须保存好这些 现场状态,以便在下次被调度时继续运行。当一个进程被重新 调度运行时,要用PCB中的现场信息来恢复CPU的运行现场。 现场一旦切换,下一个指令周期CPU将精确地接着上次运行的 断点处继续执行下去。
第4章 进 程 管 理
4.1.1 程序的顺序执行与并发执行 1. 程序的顺序执行 如果程序的各操作步骤之间是依序执行的,程序与程序之
间是串行执行的,这种执行程序的方式就称为顺序执行。顺序 执行是单道程序系统中的程序的运行方式。
程序的顺序执行具有如下特点: (1) 顺序性:CPU严格按照程序规定的顺序执行,仅当一 个操作结束后,下一个操作才能开始执行。多个程序要运行时, 仅当一个程序全部执行结束后另一个程序才能开始。
操作系统习题第四章
第四章互斥、同步与通讯一、单项选择题1.一个正在访问临界资源的进程由于申请等待I/O操作而被中断时,__________.A.可以允许其他进程进入与该进程相关的临界区B.不允许其他进程进入任何临界区C. 可以允许其他就绪进程抢占处理器,继续运行D.不允许任何进程抢占处理器2.两个并发进程之间______A 一定存在互斥关系B 一定存在同步关系C 一定彼此独立无关D 可能存在同步或互斥关系3.为了使两个进程能同步运行,最少需要_______个信号量。
A 一B 二C 三D 四4.共享变量是指__________访问的变量。
A. 只能被系统进程B. 只能被多个进程互斥C. 只能被用户进程D. 可被多个进程5.临界区是指并发进程中访问共享变量的__________.A.管理信息 B.数据 C.信息存储 D.程序段6.设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是___________A.1,0,-1,-2B.2,0,-1,-2C.1,0,-1D.3,2,1,07.进程的并发执行是指若干个进程__________.A. 同时执行B. 在执行的时间上是重叠的C. 在执行的时间上是不可重叠的D. 共享系统资源8.在进程通信中,__________常用信件交换信息。
A.低级通信 B.高级通信 C.消息通信 D.管道通信9.实现进程同步时,每一个消息与一个信号量对应,进程_________可把不同的消息发送出去。
A.在同一信号量上调用P操作B.在不同信号量上调用P操作C.在同一信号量上调用V操作D.在不同信号量上调用V操作10._________是只能有P和V操作所改变的整形变量。
A.共享变量B.锁C.整型信号量D.记录型信号量11.在执行V操作时,当信号量的值_________时,应释放一个等待该信号量的进程。
A.大于0B.小于0C.大于等于0D.小于等于012.进程和程序的主要区别是__________.A.占用处理器和不占用处理器B.占用主存和不占用主存C.动态和静态D.连续执行和非连续执行13.有三个进程P1,P2,P3共享同一个程序段,而每次最多允许两个进程进入该程序段,则信号量S的初值为___________.A. 0B. 1C. 2D. 314.若P、V操作的信号量S初值为2,当前值为-1,则表示有_________等待进程。
第4章 进程的同步与互斥
mxh
同步
生产者活动:
Repeat 加工一件物品
消费者活动:
Repeat wait(full)
wait(empty)
物品放入箱中 signal(full)
箱中取一物品
signal(empty) 消耗这件物品
Until false
Until false
mxh
互斥
生产者活动:
Repeat
认为缓冲区同一时刻只有一个人可
mxh
4.1 进程的同步和互斥
信号量定义(记录型信号量)
semaphore是一个结构体: typedef struct {
int value;
//资源的个数
//进程链表
struct process *L;
} semaphore;
mxh
4.1 进程的同步和互斥 申请一个
• 信号量操作wait现在可按如 下来定义: void wait (semaphore S) { S.value - -; if (S.value <0) { add this process to S.L; block(); } }
mxh
4.1 进程的同步和互斥
• 信号量的应用
–合作进程的执行次序 –共享缓冲区的进程的同步
mxh
4.1 进程的同步和互斥
• 合作进程的执行次序:
–保证一组合作进程按照逻辑需要所确定 的次序进行。
mxh
4.1 进程的同步和互斥
• 合作进程的执行次序
–可以用一个图来表示进程集合的执行次 序。图的连接描述了进程开始和结束的 次序约束,此图称为进程流图. –例如P78,图4-2。 –使用信号量机制实现图4-2的同步。(练 习)
进程同步与通信作业习题与答案
第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。
A.管道B.管程C.通道2.以下_B__不是操作系统的进程通信手段。
A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。
4.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V 操作管理时信号量S的可能取值是_C_。
,2,1,0,-1,1,0,-1,-2C.1,0,-1,-2,-3,3,2,1,05.下面有关进程的描述,是正确的__A__oA.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误、V操作不是原语操作6.信号灯可以用来实现进程之间的_B_。
A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B__0A.没有进程进入临界区8.有1个进程进入了临界区C.有2个进程进入了临界区D.有1个进程进入了临界区并且另一个进程正等待进入8.信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_CA.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C.信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10.并发是指_C__。
A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11.临界区是_C__。
A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C_。
A.进程之间无关,系统是封闭的B.进程之间相互依赖相互制约C.进程之间可能有关,也可能无关D.以上都不对13.在消息缓冲通信中,消息队列是一种__A_资源。
操作系统进程通信报告
实验四:进程同步实验一、实验任务:1、熟悉操作系统进程通信原理2、设计程序,实现共享内存、管道通信、消息通信二、实验原理:1、进程间通信的几种方法简介(1)消息队列:消息队列是消息的链接表,包括Posix消息队列systemV消息队列。
有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。
(2)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。
是针对其他通信机制运行效率较低而设计的。
往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
(3)无名管道(Pipe)及有名管道(named pipe):有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;无名管道可用于有亲缘关系的进程之间彼此的通信,进行通信时候必须有一定的机制保证对管道写和读的互斥:即在读是要关闭写的端口,而在写的时候也要保证读的一端是关闭的。
2、进程通信函数(1)消息队列有关系统调用函数a.创建消息队列使用msgget()函数:#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>int msgget(key_t key, int flag) ;该函数成功调用返回消息队列标识符。
其中的key是关键字,可以由ftok()函数得到:key=ftok(“.”,’a’);其中”.”可以是任何目录,’a’是任意字符,即所有群组标识。
flag是标识,IPC_CREAT位表示创建,一般由服务器程序创建消息队列时使用。
如果是客户程序,必须打开现存的消息队列,必须不使用IPC_CREAT。
发送和接收的消息都必须使用一个类似msgbuf的结构表示,msgbuf结构定义如下:struct msgbuf{long mtype;char mtext[1];}上面的定义,消息内容只有一个字节,是不实用的,一般我们需要重新定义一个结构:struct amsgbuf{long mtype;char mtext[200];}其中的mtype都是消息类型。
进程同步与进程通信
if Ri>=1 then begin Ri:= Ri -1; Ak = Ri 输出一张票; end; else 输出”票已售完“ end;
假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票
process P2 begin Ri:=Ak;
if Ri>=1 then Ri = 4 begin Ri:= Ri -1; Ak = Ri 输出一张票; end; else 输出”票已售完“ end;
if Ri>=1 then begin Ri:= Ri -1; Ak = Ri 输出一张票; end; else 输出”票已售完“ end;
假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票
process P2 begin Ri:=Ak;
if Ri>=1 then begin Ri:= Ri -1; Ak = Ri 输出一张票; end; else 输出”票已售完“ end;
process P3 begin Ri:=Ak;
if Ri>=1 then begin Ri:= Ri -1; Ak = Ri 输出一张票; end; else 输出”票已售完“ end;
假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票
process P2 begin Ri:=Ak;
if Ri>=1 then begin Ri:= Ri -1; Ak = Ri 输出一张票; end; else 输出”票已售完“ end;
例2
(1) 假设count的初值为5,先运行P1再运行P2的结果是? (2) 如果P1和P2并发执行,可能会出现什么运行结果?
P1 R1 = count; R1++; count = R1; P2 R2 = count; R2++; count = R2;
操作系统习题第四章
第四章互斥、同步与通讯一、单项选择题1.一个正在访问临界资源的进程由于申请等待I/O操作而被中断时,__________. A.可以允许其他进程进入与该进程相关的临界区B.不允许其他进程进入任何临界区C. 可以允许其他就绪进程抢占处理器,继续运行D.不允许任何进程抢占处理器2.两个并发进程之间______ A 一定存在互斥关系B 一定存在同步关系C 一定彼此独立无关D 可能存在同步或互斥关系3.为了使两个进程能同步运行,最少需要_______个信号量。
A 一B 二C 三D 四4.共享变量是指__________访问的变量。
A. 只能被系统进程B. 只能被多个进程互斥C. 只能被用户进程D. 可被多个进程5.临界区是指并发进程中访问共享变量的__________. A.管理信息 B.数据 C.信息存储 D.程序段6.设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是___________ A.1,0,-1,-2 B.2,0,-1,-2 C.1,0,-1 D.3,2,1,0 7.进程的并发执行是指若干个进程__________. A. 同时执行B. 在执行的时间上是重叠的C. 在执行的时间上是不可重叠的D. 共享系统资源8.在进程通信中,__________常用信件交换信息。
A.低级通信 B.高级通信 C.消息通信 D.管道通信9.实现进程同步时,每一个消息与一个信号量对应,进程_________可把不同的消息发送出去。
A.在同一信号量上调用P操作B.在不同信号量上调用P操作C.在同一信号量上调用V操作D.在不同信号量上调用V操作10._________是只能有P和V操作所改变的整形变量。
A.共享变量B.锁C.整型信号量D.记录型信号量11.在执行V操作时,当信号量的值_________时,应释放一个等待该信号量的进程。
A.大于0 B.小于0 C.大于等于0 D.小于等于0 12.进程和程序的主要区别是__________. A.占用处理器和不占用处理器B.占用主存和不占用主存C.动态和静态D.连续执行和非连续执行13.有三个进程P1,P2,P3共享同一个程序段,而每次最多允许两个进程进入该程序段,则信号量S的初值为___________. A. 0 B. 1 C. 2 D. 3 14.若P、V操作的信号量S初值为2,当前值为-1,则表示有_________等待进程。
计算机操作系统作业
答:操作系统的基本类型有多批道处理系统、分时系统和实时系统。特点分别为:
多批道处理系统:多道性、无序性、调度性;
分时系统:多路性、独立性、及时性、交互性;
实时系统:多路性、独立性、及时性、交互性、高可靠性。
第二章中断
2.1为什么说操作系统是由中断驱动的?
3.9处理机的状态与进程的状态有何区别?
答:处理机有时可能执行系统程序,有时又执行用户程序为了保证OS中的关键表格不被用户的程序所破坏,因而引进了用户态和核心态两种状态。从进程管理的角度出发,将进程划分程三种基本的状态:运行状态,就绪状态、等待状态、新建状态和终止状态。进程之间的状态有三个特点:
(1)进程之间的状态转换在大多数情况下是不可逆的。
综合上述,可得Байду номын сангаас作系统是由中断驱动的。
2.1什么是系统调用?
所谓系统调用,指运行在用户态的应用程序请求操作系统为之服务的一种手段。它由运行在核心态的操作系统的一段程序来完成特定功能,属于一种特殊的过程调用。
2.3什么是系统调用?系统调用与一般程序有什么区别?
答:所谓系统调用,指运行在用户态的应用程序请求操作系统为之服务的一种手段。它由运行在核心态的操作系统的一段程序来完成特定功能,属于一种特殊的过程调用。
答:1)虚拟机观点:即OS是添加在硬件上的第一层软件,是对硬件功能的首次扩充与直接延伸,每对计算机作一次扩充,就使其功能更加强大,使用更加方便。
2)资源管理观点:操作系统是管理计算机系统资源的程序,主要是指在多道程序之间合理地分配和回收各种资源,是资源得到充分有效的使用,是程序得以有条不紊地运行。
3)服务用户观点:操作系统作为软件,它是一个为用户服务的大型的复杂程序。
计算机操作系统习题及答案(4)
第4章进程同步与通信1)选择题(1)在操作系统中,P、V操作是一种_D__。
A. 机器指令B. 系统调用命令C. 作业控制命令D. 低级进程通信原语(2)若信号量S的初值为2,当前值为-1,则表示有_B__等待进程。
A. 0个B. l个C. 2个D. 3个(3)在直接通信方式中,系统提供两条通信原语进行发送和接收,其中Send原语中参数应是_C_。
A. sender,messageB. sender,mailboxC. receiver,messageD. receiver,mailbox(4)下述那个选项不是管程的组成部分_A__。
A. 管程外过程调用管程内数据结构的说明B. 管程内对数据结构进行操作的一组过程C. 局部于管程的共享数据说明D. 对局部于管程的数据结构设置初值的语句(5)某通信方式通过共享存储区来实现,其属于_D__。
A. 消息通信B. 低级通信C. 管道通信D. 高级通信(6)用P、V操作管理临界区时,信号量的初值应定义为__C__。
A. -1B. 0C. 1D. 任意值(7)临界区是_B__。
A. 一个缓冲区B. 一段程序C. 一段共享数据区D. 一个互斥资源(8)信箱通信是一种_D__通信方式。
A. 直接通信B. 信号量C. 低级通信D. 间接通信(9)对于两个并发进程,设互斥信号量为mutex,若mutex=0则__A_。
A. 表示有一个进程进入临界区B. 表示没有进程进入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区(10)对信号量S执行V操作后,下述选项正确的是_C__。
A. 当S小于等于0时唤醒一个阻塞进程B. 当S小于0时唤醒一个阻塞进程C. 当S小于等于0时唤醒一个就绪进程D. 当S小于0时唤醒一个就绪进程(11)在消息缓冲通信中,消息队列属于_A__资源。
A. 临界B. 共享C. 永久D. 可剥夺(12)在消息缓冲通信机制中,使用的临界资源是_D__。
进程同步的概念
进程同步的概念
进程同步是指多个进程之间为了完成某个共同任务而协调各自的执行顺序和相互之间的访问,以避免因并发执行而引发的竞争条件或死锁等问题。
在多道程序系统中,进程同步是实现进程间通信的重要手段。
常用的进程同步方法包括信号量、互斥锁、条件变量等。
通过这些方法,进程可以实现互斥访问共享资源、防止死锁和协调进程的执行顺序等功能。
进程同步是操作系统中一个十分重要的概念,对于保证操作系统的健壮性和系统的稳定性有着重要的作用。
- 1 -。
习题解答第4章概要
习题解答第四章并发进程的同步与互斥1、进程间同步和互斥的含义是什么?答:同步:并发进程之间存在的相互制约和相互依赖的关系。
互斥:若干进程共享一资源时,任何时刻只允许一个进程使用。
2、用文字描述银行家算法的基本思想?答:银行家算法的基本思想是:将系统中的所有资源比做银行家的资金,每进行一次资源的分配,银行家都要从当前的资源分配情况出发,计算这种分配方案的安全性,如果是安全的,则进行分配,否则选择其它可能的分配方案。
这样,每次分配都计算安全性,从而可以避免死锁的发生。
3、简述死锁的防止与死锁的避免的区别。
答:死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。
4、试说明资源的静态分配策略能防止死锁的原因。
答:资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。
这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。
5、有三个进程P1,P2和P3并发工作。
进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。
回答:(1)若对资源分配不加限制,会发生什么情况?为什么?(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?答:.(1)可能会发生死锁例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待(2分),这是循环等待。
(或进程在等待新源时均不释放已占资源)(2)可有几种答案:A.采用静态分配由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。
或B.采用按序分配不会出现循环等待资源现象。
或C.采用银行家算法因为在分配时,保证了系统处于安全状态。
第4章进程同步与进程通信
第4章进程同步与进程通信第4章进程同步与进程通信⼀、填空1.信号量的物理意义是当信号量值⼤于零时表⽰可⽤资源个数;当信号量值⼩于零时,其绝对值为等待进程个数。
2.所谓临界区是指进程程序中。
3.⽤P、V操作管理临界区时,⼀个进程在进⼊临界区前应对信号量执⾏p 操作,退出临界区时应对信号量执⾏v 操作。
4.有m个进程共享⼀个临界资源。
若使⽤信号量机制实现对临界资源的互斥访问,则该信号量取值最⼤为 1 ,最⼩为1-m 。
5.对信号量S的P操作原语中,使进程进⼊相应信号量队列等待的条件是s<0 。
6.信箱在逻辑上被分为信箱头和信箱体两部分。
7.在操作系统中进程间的通信可以分为⾼级通信与低级通信两种。
⼆、选择1.P、V操作是。
A.两条低级进程通信原语B.两条⾼级进程通信原语C.两条系统调⽤命令D.两条特权指令2.进程的并发执⾏是指若⼲个进程。
A.共享系统资源B.在执⾏的时间上是重叠的C.顺序执⾏D.相互制约3.若信号量S初值为2,当前值为?1,则表⽰有个进程在与S相关的队列上等待。
A.0 B.1 C.2 D.34.⽤P、V操作管理相关进程的临界区时,信号量的初值应定义为。
A.?1 B.0 C.1D.随意5.⽤V操作唤醒⼀个等待进程时,被唤醒进程的状态变为。
A.等待B.就绪C.运⾏D.完成6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是。
A.没有进程进⼊临界区(MUTEX=1)B.有⼀个进程进⼊临界区(MUTEX=0)C.有⼀个进程进⼊临界区,另⼀个在等待进⼊临界区(MUTEX=-1)D.不定7.信箱通信是进程间的⼀种通信⽅式。
A.直接B.间接C.低级D.信号量三、问答1.进程A 和B 共享⼀个变量,因此在各⾃的程序⾥都有⾃⼰的临界区。
现在进程A 在临界区⾥。
试问进程A 的执⾏能够被别的进程打断吗(可以)?能够被进程B 打断吗(这⾥,“打断”的含义是调度新进程运⾏,使进程A 暂停执⾏)(不可以)?2.信号量上的P 、V 操作只是对信号量的值进⾏加1或减1操作吗(否)?在信号量上还能够执⾏除P 、V 操作外的其他操作吗?(不能)3. 进程在运⾏时存在哪两种形式的制约?并举例说明之。
926411-计算机操作系统教程-04第四章 互斥同步与通讯(2)
会合引入背景—分布系统
PV操作问题:
P1:
… P(S) CR1 V(S) …
共享变量 (被动) Semaphore s;
站点1
P2:
…
P(S) CR2 V(S) …
站点2
共享变量与访问进程在同一存储区,不适合分布环境。
会合引入背景—分布系统
管程问题:
P1: ... ...
管程(被动) 共享变量 CR1 CR2
end single_resource;
task body single_resource is begin loop accept acquire; accept return; end loop end single_resource;
single_resource.acquire;
使用
single_resource.return;
Bounded buffer problem
loop select when (count<k) => accept putin(item:in integer) do b(ip):=item end putin; ip:=(ip+1)mod k; count:=count+1;
Bounded buffer problem
4.3.6 会合(Rendezvous)
背景
80年代, Ada, Initiated by DOD; Ada 95, (Object-oriented)
Augusta Ada Lovlace 1815—1852 世界上第一位程序设计师 原名: Augusta Ada Byron
Lord George Gorden Byron的女儿 1788—1824
第4章(401)
进程 A …
P(S); CSA; V(S); …
进程 B …
P(S); CSB; V(S) …
第 4 章 进程同步与通信
对于两个并发进程,互斥信号量的值仅取1、0、-1三个 值。
若S=1,表示没有进程进入临界区; 若S=0,表示有一个进程进入临界区; 若S= -1,表示一个进程进入临界区,另一个进程等待进 入。 下面请大家思考这样一个问题,如果N个并发进程共用 一个公共变量Q,用信号量和PV操作实现这N个进程的互斥, 信号量的取值范围如何呢?
第 4 章 进程同步与通信
若系统中存在一组进程的执行在时间上是重叠的,就称 该组进程具有并发性,这组进程就被称为“并发进程”。
并发进程相互之间可能是无关的,也可能是有交往的。 如果一个进程的执行不影响其他进程的执行,且与其他进程 的进展情况无关,即它们是各自独立的,则称这些并发进程 相互之间是无关的。如果一个进程的执行可能影响其他进程 的执行结果,则称这些并发进程相互之间是有交往的。对于 有交往的并发进程来说,可能有若干并发进程同时使用共享 资源,即一个进程一次使用未结束,另一进程就开始使用, 形成交替使用共享资源。如果对这种情况不加控制,在共享 资源时就会出错。
while(1) { observe a lorry;
count=count+1; } }
第 4 章 进程同步与通信
Process Reporter { while(1) { printf("%d",count); count=0; } }
coend }
第 4 章 进程同步与通信
在cobegin 和coend之间的进程为可并发执行的进程。观 察者进程和报告者进程并发执行时可能有如下两种情况:
58064《计算机操作系统实验指导》实验思考解答.docx[5页]
《计算机操作系统实验指导》(Linux版)(附微课视频)实验思考解答第1章操作系统实验体系介绍第1章无实验思考。
第2章实验环境的搭建与使用1. 实验2.1 Linux常用命令的使用(1)在Linux 中,图形界面与终端控制台以及各终端控制台之间在如何切换?使用ALT+F1~ALT+F6进行各终端控制台切换2. 实验2.2 Linux下C程序的编写(1)make 工具的编译原理是什么?make 是一个命令工具,它解释 Makefile 中的指令(规则)。
在 Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
在执行 make 之前,需要一个命名为Makefile 的特殊文件(本文的后续将使用Makefile 作为这个特殊文件的文件名)来告诉 make 需要做什么(完成什么任务),该怎么做。
(2)如何直接使用gcc 命令完成myapp.c、greeting.h、greeting.c 三个文档的编译?输入以下两条命令:①gcc –c greeting.c //生成greeting.o文件② gcc –o greeting myapp.c greeting.o //把greeting.o和myapp.c一起编译成可执行文件greeting。
第3章进程控制与进程调度1. 实验3.1 进程的创建(1)总结调用fork()函数后的三种返回情况。
fork()系统调用有3种返回情况:返回值>0,表示当前进程是父进程,这个返回值为子进程的进程ID值;等于0,表示当前进程是子进程;小于0,表示进程创建失败,需要报错。
(2)总结fork()和wait()配合使用的情况,并尝试在父进程中取消wait()函数,观察进程的运行情况。
当父进程中同时使用fork()和wait()/waitpid()函数时,父进程会处于阻塞状态等待子进程的运行结束。
如果父进程中没有调用wait()/waitpid()函数,则父进程和其创建的子进程属于并发进程,也就是父进程和子进程几乎是独立运行的。
操作系统知识点复习总结
计算机操作系统第0章计算机系统概述计算机系统由操作员、软件系统和硬件系统组成。
软件系统:有系统软件、支撑软件和应用软件三类。
系统软件是计算机系统中最靠近硬件层次不可缺少的软件;支撑软件是支撑其他软件的开发和维护的软件;应用软件是特定应用领域的专用软件。
硬件系统:借助电、磁光、机械等原理构成的各种物理部件的组合,是系统赖以工作的实体。
如今计算机硬件的组织结构仍然采用冯诺依曼基本原理(有控制器、运算器、存储器、输入设备和输出设备—通常把控制器和运算器做一起称为中央处理机cpu,把输入输出设备统称为I/O设备)。
关于计算机系统的详细:Cpu的四大组件构成:ALU、CU、寄存器和中断系统。
存储器:理想存储器是大容量、高速度和低价位。
在计算机系统中存储器的分层结构:寄存器、高速缓存(cache)(用于解决cpu和内存读写速度过于不匹配)、主存(RAM和ROM)、磁盘和磁带。
I/O系统:由I/O软件和I/O硬件组成,前者用于将数据输入主机和将数据计算的结果输出到用户,实现I/O系统与主机工作的协调。
I/O硬件包括接口模块和I/O设备。
关于系统中断:利用中断功能,处理器可以在I/O操作执行过程中执行其他指令。
第1章操作系统引论操作系统的定义:控制和管理计算机软、硬件资源,合理组织计算机的工作流程,以便用户使用的程序集合。
计算机的四代发展:(1)没有操作系统的计算机(没有晶体管,使用机器语言写成的)(2)有监控系统的计算机(出现晶体管,使用汇编语言和高级语言,出现了单道批处理系统)(3)带操作系统的计算机(出现了小规模的集成电路,出现了多道程序设计技术—相当于系统中断,由于多道程序不能很好的满足用户对响应时间的要求,出现了分时系统。
多批道处理系统和分时系统的出现标志着操作系统的形成。
)(4)多元化操作系统的计算机(出现了大规模集成电路,分布式操作系统)操作系统的特征并发性:两个或两个以上的事物在同一个时间间隔内发生。
第四章进程管理
等待队列 2
4.进程控制
创建、撤消进程以及完成进程各状态之间的转 换,由具有特定功能的原语完成 进程创建原语 进程撤消原语 阻塞原语 唤醒原语 挂起原语 激活(解挂)原语 改变进程优先级
进程的创建
创建一个PCB 赋予一个统一进程标识符 为进程映象分配空间 初始化进程控制块
许多默认值 (如: 状态为 New,无I/O设备 或文件...) 如: 把新进程加到就绪队列的链表中
静态部分(PCB和资源表格) 动态部分:核心栈(核心过程的栈结构,不同进程在 调用相同核心过程时有不同核心栈)
PCB的内容
进程描述信息:
进程标识符(process ID),唯一,通常是一个整数 进程名,通常基于可执行文件名(不唯一) 用户标识符(user ID);进程组关系 当前状态 优先级(priority) 代码执行入口地址 程序的外存地址 运行统计信息(执行时间、页面调度) 进程间同步和通信;阻塞原因
顺序程序(续)
特征: 程序执行的顺序性 程序执行的封闭性
独占资源,执行过程中不受外界影响
程序执行结果的确定性 即:程序结果的可再现性
程序运行结果与程序执行速度无关,只要 初始状态相同,结果应相同
2.并发程序
并发环境: 在一定时间内物理机器上有两个或两个以 上的程序同处于开始运行但尚未结束的状 态,并且次序不是事先确定的
运行 --> 就绪
进程转换(续1)
运行 --> 等待
当一进程必须等待时
OS尚未完成服务 对一资源的访问尚不能进行 初始化I/O 且必须等待结果 等待某一进程提供输入 (IPC)
(第4章进程及进程管理)习题四答案介绍
4-16 图 4-30(a)、4-30(b)分别给出了两个进程流图。试用信号灯的 P、V 操作实 现如图中所示进程之间的同步,并写出程序描述。
s p5 P1 s p6
P2
P3
P4
p7
f 图4.22(a)
f 图4.22(b)
答:(a) main() { var s12, s13, s14 : semaphore := 0, 0, 0; cobegin
Email: nancy78733@ 8
《操作系统原理与 Linux 系统实验》课后习题参考答案
沈华
湖北工业大学计算机学院
P1(); P2(); P3(); P4(); coend } P1() { p1 execute; V(s12); V(s13); V(s14); } P2() { P(s12); p2 execute; } P3() { P(s13); p3 execute; } P4() { P(s14); p4 execute; }
Email: nancy78733@
2
《操作系统原理与 Linux 系统实验》课后习题参考答案
沈华
湖北工业大学计算机学院
4-5 如下图所示,设一誊抄程序,将 f 中记录的序列正确誊抄到 g 中,这一程序 由 get、copy、put 三个程序段组成,它们分别负责获得记录、复制记录、输出 记录。请指出这三个程序段对 f 中的 m 个记录进行处理时各种操作的先后次序, 并画出誊抄此记录序列的先后次序图。 (假设 f 中有 1,2,…,m 个记录,s,t 为设置在主存中的软件缓冲区,每次只能装一个记录。 )
沈华
湖北工业大学计算机学院
P 对公共变量 Q 的访问 V
end coend 信号量 mutex 的取值范围为:mutex.value ∈[1, - (n-1)]。 ①值为 1 时,表示没有进程访问公共变量 Q; ②值为 0 时,表示有一个进程正在访问公共变量 Q; ③值<0 时,表示有一个进程正在访问公共变量 Q,同时又| mutex.value |个进程 等待访问公共变量 Q。
操作系统原理 第四章 进程通信
一、进程的同步和互斥
1、进程的间的相互作用 相关进程:逻辑上具有某种联系的进程 无关进程:逻辑上没有任何联系的进程
2、相关进程间的关系 1)直接作用(相互合作) 同步关系:合作进程之间再执行次序上 的协调关系 2)间接作用(资源共享) 互斥关系:一个进程正在访问共享资源, 另一个要访问该资源的进程必须等待。
利用TS指令实现的进程互斥算法是:每个临界资源设 置一个公共布尔变量lock,True表示正被占用,False 表示空闲,初值为False. 进程使用临界资源时,应该按照如下三步: 1)测试lock值,如果为真,表示资源已经被占用,则不 断等待测试;如果为假,则表示资源可用,这时候把 lock 设置为真,用来排斥其他进程使用资源,我们可 以把这个过程叫做关锁。 2)进程进入临界区,访问临界资源 3)使用完毕,推出临界区,再把lock设置为假,以释放 资源,让其他进程使用。这个过程可以叫做开锁。
为了让缓冲区得到循 环利用,将缓冲区做 成环形的,以方便每 个区域都可以循环利 用
• 采用信号量机制: – full是"满"缓冲区数目,初值为0,empty 是"空"缓冲区数目,初值为N。记为同步 信号量。实际上, full 和 empty 是同一个 含义:full + empty == N – mutex用于访问缓冲区时的互斥,初值 是1 另外设置整形变量in,out,分别用于指示 空缓冲区和满缓冲区的位置
wait 和 signal 操作必须成对出现,有一个 wait操作就有一个 signal操作,当为互斥 操作时,他们处于同一个进程,当为同 步操作时,则不在一个进程出现。
3 、AND信号量集机制 信号量集用于同时需要多个资源时的信号量操 作 AND型信号量集用于同时需要多种资源且每种 占用一个时的信号量操作; • 一段处理代码需要同时获取两个或多个临界 资源――可能死锁:各进程分别获得部分临界 资源,然后等待其余的临界资源,"各不相让"
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S2=10;/*有10个空座位*/
S3=0;/*顾客人数*/
cobegin
{
process顾客i
{p(s2);
P(s1);
从取号机获得一个号码;
V(s1);
V(s3);
等待叫号;
获得服务;
}
process营业员
{
while(TRUE)
{p(s3);
叫号;
2、进程P0和P1的共享变量定义及其初值为.【2010】
Booleanflag[2];
int turn=0;
flag[0]=faulse; flag[1]=faulse;
若进程P0和P1访问临界资源的类C代码实现如下。
Void P0 () //进程P0
{
while (TURE){
Flag[0]=TURE;turn=1;
当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。
请添加必要的信号量和P、V(或wait, signed)操作,以实现上述过程的同步,要求写出完整过程,并说明信号量的含义和初值。【2015】
7、某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用pv操作实现生产者甲和生产者乙的同步可以设置三个信号量s,S1和S2,其同步模型如下图所示。
6、有A、B两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中,设A的信箱最多放M个邮件,B的信箱最多放N个邮件。初始时A的信箱中有x个邮件(0<x<M). B中有y个(0<y<N)。辩论者每取出一个邮件,邮件数减1.
A、B两人操作过程:
第
一、填空
1.信号量的物理意义是当信号量值大于零时表示可用资源个数;当信号量值小于零时,其绝对值为等待进程个数。
2.所谓临界区是指进程程序中。
3.用P、V操作管理临界区时,一个进程在进入临界区前应对信号量执行p操作,退出临界区时应对信号量执行v操作。
4.有m个进程共享一个临界资源。若使用信号量机制实现对临界资源的互斥访问,则该信号量取值最大为1,最小为1-m。
9、如果系统采用信箱通信方式,当进程调用Send原语被设置成“等信箱”状态时,其原因是
(23)A.指定的信箱不存在B.调用时没有设置参数
C.指定的信箱中无信件D.指定的信箱中存满了信件
10、进程P1、P2、P3和P4的前趋图如下:
若用PV操作控制这儿个进程并发执行的过程,则需要设置4个信号量S1、S2、S3和S4且信号量初值都等于零。下图中a和b应分别填写(25),c和d应分别填写(26)。
A.直接B.间接C.低级D.信号量
三、问答
1.进程A和B共享一个变量,因此在各自的程序里都有自己的临界区。现在进程A在临界区里。试问进程A的执行能够被别的进程打断吗(可以)?能够被进程B打断吗(这里,“打断”的含义是调度新进程运行,使进程A暂停执行)(不可以)?
2.信号量上的P、V操作只是对信号量的值进行加1或减1操作吗(否)?在信号量上还能够执行除P、V操作外的其他操作吗?(不能)
{ while(1)
{ p(s3);
将b中记录取出;
V(s1);
打印记录;
}
}
3.假定有3个进程R、W1、W2共享一个缓冲区B,B中每次只能存放一个数。进程R从输入设备读入一个数,把它存放到缓冲区B里。如果存入的是奇数,则由进程W1取出打印;如果存入的是偶数,则由进程W2取出打印。规定进程R只有在缓冲区B为空或内容已经被打印后才能进行存放;进程W1和W2不能从空缓冲区里取数,也不能重复打印。试用信号量及其P、V操作管理这3个进程,让它们能够协调地正确工作。
A.共享系统资源B.在执行的时间上是重叠的
C.顺序执行D.相互制约
3.若信号量S初值为2,当前值为−1,则表示有个进程在与S相关的队列上等待。
A.0B.1C.2D.3
4.用P、V操作管理相关进程的临界区时,信号量的初值应定义为。
A.−1B.0C.1D.随意
5.用V操作唤醒一个等待进程时,被唤醒进程的状态变为。
A.等待B.就绪C.运行D.完成
6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是。
A.没有进程进入临界区(MUTEX=1)
B.有一个进程进入临界区(MUTEX=0)
C.有一个进程进入临界区,另一个在等待进入临界区(MUTEX=-1)
D.不定
7.信箱通信是进程间的一种通信方式。
C. V(S1) V(S2)和P(S3) P(S4)D. P(S1) V(S3)和P(S2) V(S4)
(25)A. P(S3) P(S4)和V(S5) V(S6)B. V(S5) V(S6)和P(S5) P) P(S6)D. P(S4) V(S5)和P(S5) V(S6)
Code Begin
A{
While(TRUE){
从A的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入B的信箱;
}
}
B{
While(TRUE){
从B的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入A的信箱;
}
}
Code End
当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。
(25)A.P(S1)P(S2)和P(S3)B.P(S1)P(S2)和V(S1)
C.V(S1)V(S2)和P(S1)D.V(S1)V(S2)和V(S3)
(26)A.P(S1)P(S2)和P(S4)B.P(S2)P(S3)和P(S4)
C.V(Sl)V(S2)和V(S4)D.V(S2)V(S3)和V(S4)
5.对信号量S的P操作原语中,使进程进入相应信号量队列等待的条件是s<0。
6.信箱在逻辑上被分为信箱头和信箱体两部分。
7.在操作系统中进程间的通信可以分为高级通信与低级通信两种。
二、选择
1.P、V操作是。
A.两条低级进程通信原语B.两条高级进程通信原语
C.两条系统调用命令D.两条特权指令
2.进程的并发执行是指若干个进程。
解:设信号量s1=0;/*不能启动车辆*/
S2=0;/*不能开车门*/
图1司机与售票员
2.今有3个并发进程R、S、T,它们共享一个缓冲区B。进程R负责从输入设备读入信息,每读出一个记录后就把它存入缓冲区B中;进程S利用缓冲区B加工进程R存入的记录;进程T把加工完毕的记录打印输出。缓冲区B一次只能存放一个记录。只有在进程T把缓冲区里的记录输出后,才能再往里存放新的记录。试用信号量及其P、V操作控制这3个进程间的的正确工作关系。
解:设信号量:s1=1;/*缓冲区b能放一个记录*/
S2=0;/*缓冲中没有可以加工的记录*/
S3=0;/*缓冲中没有可以打印的记录*/
R()
{ while(1)
{取到一个记录;
P(s1);
将记录放入缓冲;
V(s2);
}
}
S( )
{while(1)
{ p(s2);
将b中记录加工;
V(s3);
}
}
T( )
A.不能保证进程互斥进入临界区,会出现“饥饿”现象
B.不能保证进程互斥进入临界区,不会出现“饥饿”现象
C.能保证进程互斥进入临界区,会出现“饥饿”现象
D.能保证进程互斥进入临界区,不会出现“饥饿”现象
3、有两个并发执行的进程P1和P2,共享初值为1的变量x。P1对x加1,P2对x减1。加1和减1操作的指令序列分别如下所示。【2011】
//加1操作//减1操作
load R1, x //取x的值到寄存器R1中load R2, x
inc R1 dec R2
store x,R1 //将R1的内容存入x store x,R2
两个操作完成后,x的值为()。
A.可能为-1或3B.只能为1
C.可能为0、1或2D.可能为-1、0、1或2
4、某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下。【2011】
While (flag[1]&&(turn==1));
临界区;
Flag[0]=FALSE;
}
}
Void P1 () //进程P1
{
while (TURE){
Flag[1]=TURE;turn=0;
While (flag[0]&&(turn==0));
临界区;
Flag[1]=FALSE;
}
}
则并发执行进程P0和P1时产生的情况是()。
3.进程在运行时存在哪两种形式的制约?并举例说明之。(互斥和同步)
4.同步机构应遵循哪些基本准则?为什么?(空闲让进,忙则等待,让权等待,有限等待)
5.试比较进程间的低级与高级通信工具。
6.当前有哪几种高级通信机制?
7.消息队列通信机制有哪几方面的功能?
四、计算
1.在公共汽车上,司机和售票员的工作流程如图1所示。为了确保行车安全,试用信号量及其P、V操作来协调司机和售票员的工作。
4. 如果有n个进程共享一个互斥段:
(1)如果每次只允许一个进程进入互斥段。S=1,[-1,1]
(2)如果每次最多允许m个进程同时进入互斥段(m<n)。s=m,[m-n,m]
问采用的信号量初值是否相同?信号量值的变化范围如何?
五、软考
1、三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。【2009】