3.1知识点导图
无
3.2进程同步与互斥
【本章学习目标】
(1)了解进程通信的机制和通信方式。
(2)理解多道程序环境下进程间通信的机制;消息传递系统的实现。
(3)掌握临界资源和临界区的概念和访问准则;信号机制及控制进程间同步和互斥的模型。
【本节知识点】
并发是操作系统的特征之一。当多个进程并发执行时,就会产生冲突和合作的问题。并发的进程可以按多种方式进行交互,而在交互的过程中产生的主要问题是同步和互斥。解决进程同步和互斥的有效技术是信号量机制。
(1)基本概念
-
进程同步:多个进程中发生的事件存在着某种时序关系,它们必须按规定时序执行,以共同完成一 项任务 。
-
进程互斥:多个进程不能同时使用同一资源。
-
临界资源:某段时间内仅允许一个进程使用的资源。
-
临界区:每个进程中访问临界资源的那段代码。
(2)信号量是解决同步和互斥问题的有效工具,它只允许由P、V操作进行访问和修改。P操作表示申请临界资源,V操作表示表示释放资源。
(3)信号量的值与资源的关系:
-
信号量的值大于0,表示可用资源的数目
-
信号量的值等于0,表示可用资源已使用完
-
信号量的值小于0,其绝对值表示等待使用该资源的进程数。
(4)信号量解决互斥问题模型:
(5)信号量解决同步问题模型:
DM1、DM2分别为进程P1和P2的代码段。这个模型能实现控制P2进程先于P1进程执行。
【章节测试】
一. 填空题(共7题)
-
【填空题】 在信号量机制中,S.value>0时的值表示(可用的资源数目;可用的资源数量);每次P操作意味着(申请一个临界资源),因此应将S.value(减1;减一),当S.value(小于0;小于零;<0;小于零时),进程应阻塞。
- 解析: P操作会检查信号量的值,如果信号量值大于0,表示有可用资源,然后将其减1。如果信号量值小于或等于0,进程必须等待。
-
【填空题】 在信号量机制中,每次signal操作意味着(释放一个临界资源),因此应将S.value(加1;加一),当S.value<=0时表示(仍有请求该资源的进程被阻塞),此时应(唤醒相应阻塞队列中的首进程)。
- 解析: signal操作会增加信号量的值,表示有资源被释放。如果信号量的值小于或等于0,表示有进程在等待这个资源,需要唤醒等待队列中的进程。
-
【填空题】 在利用信号量实现进程互斥时,应将临界区置于(P操作;p操作)和(V操作;v操作)之间。
- 解析: 临界区的代码应该被放置在P操作和V操作之间,以确保同一时间只有一个进程可以执行临界区代码。
-
【填空题】 设有10个进程共享一个互斥段,如果最多允许有1个进程进入互斥段,则所采用的互斥信号量初值应设置为(1),而该信号量的取值范围为([-9,1];-9~1;(-9,1);-9,1;【-9,1】);如果最多允许有3个进程同时进入互斥段,则所采用的互斥信号量初值应设置为(3)。
- 解析: 互斥信号量的初始值表示可以进入临界区的进程数量。如果允许3个进程同时进入,初始值应为3,取值范围从-9到3。
-
【填空题】 用信号量S实现对系统中4台打印机的互斥使用,S.value的初值应设置为(4),若S.value的当前值为-2,则表示S.L队列中有(2)个等待进程。
- 解析: 信号量的初始值设置为资源的数量,这里是4台打印机。如果信号量的值为-2,表示有2个进程正在等待这些打印机。
-
【填空题】 在多道程序环境中,进程之间存在的相互制约关系可以分为互斥和同步两种,,其中(互斥;互斥关系)是指进程之间使用共享资源时的相互约束关系,而(同步;同步关系)是指进程之间的相互协调,相互配合关系。
- 解析: 互斥关系确保同一时间只有一个进程可以访问共享资源,而同步关系确保进程按照某种顺序执行。
-
【填空题】 使用临界区的四个准则是(空闲让进)、(忙则等待)、(有限等待)和(让权等待)。
- 解析: 这四个准则是确保临界区正确使用的基本规则,它们确保了进程互斥和同步的正确性。
二. 单选题(共6题)
-
【单选题】 如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为( )。
- A、3
- B、2
- C、1
- D、0
- 正确答案: B
- 解析: 信号量的初始值应设置为允许同时进入程序段的最大进程数,这里是2。
-
【单选题】 设有四个进程共享资源,如果每次只允许一个进程使用该资源,则用P,V操作管理时信号量S的可能取值是( )。
- A、3,2,1,0,–1
- B、2,1,0,–1,–2
- C、1,0,–1,–2,–3
- D、4,3,2,1,0
- 正确答案: C
- 解析: 信号量的初始值应为1,表示一个资源可用。当资源被使用时,信号量值减少,直到所有进程都在等待时,信号量值为-3。
-
【单选题】 对于两个并发进程都想进入临界区,设互斥信息量为S,若某时S=0,表示( )。
- A、没有进程进入临界区
- B、有1个进程进入了临界区
- C、有2个进程进入临界区
- D、有1个进程进入了临界区并且另一个进程正等待进入
- 正确答案: B
- 解析: 当信号量S为0时,表示有一个进程正在使用临界资源。
-
【单选题】 以下关于临界区的说法,( )是正确的。
- A、对于临界区,最重要的是判断哪个进程先进入
- B、若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区
- C、信号量的初始值非负,在其上只能做P,V操作
- D、两个互斥进程在临界区,对共享变量的操作是相同的
- 正确答案: C
- 解析: 信号量的初始值非负,且只能通过P和V操作来改变其值。
-
【单选题】 对临界区的正确论述是( )。
- A、临界区是指进程中用于实现进程互斥的那段代码
- B、临界区是指进程中用于实现进程同步的那段代码
- C、临界区是指进程中用于实现进程通信的那段代码
- D、临界区是指进程中访问临界资源的那段代码
- 正确答案: D
- 解析: 临界区是进程中访问共享资源的那段代码。在多进程环境中,为了避免竞态条件和数据不一致,需要确保在同一时间内只有一个进程可以访问临界区。临界区的访问通常需要通过互斥机制来控制,但这并不意味着临界区本身是用来实现互斥的。互斥和同步是确保临界区正确访问的两个不同概念,互斥确保同一时间只有一个进程访问临界区,而同步则涉及到进程间的协调,确保它们按照某种顺序执行。
-
【单选题】 同步是指进程之间逻辑上的( )关系。
- A、制约
- B、调用
- C、连接
- D、排斥
- 正确答案: A
- 解析: 同步是指进程之间逻辑上的制约关系。在操作系统中,同步用于协调多个进程或线程的执行顺序,以确保它们在访问共享资源时不会发生冲突。同步机制可以保证进程或线程在执行到某个关键点时,如果所需资源不可用,它们会等待直到资源变得可用。这种逻辑上的制约关系确保了进程间的协调执行,防止了资源竞争和数据不一致的问题。同步与互斥不同,互斥是同步的一种特殊形式,专注于确保同一时间只有一个进程可以访问特定的资源或代码段。
三. 判断题(共4题)
-
【判断题】 P,V操作中信号量的值永远代表着某类可用资源的数量。
- 正确答案: 错
-
【判断题】 对临界区应采用互斥访问的方式实现共享。
- 正确答案: 对
-
【判断题】 P,V操作既可以用来实现进程之间的同步,也可以实现互斥。
- 正确答案: 对
-
【判断题】 所有的共享资源都是临界资源。
- 正确答案: 错
3.3经典进程同步与互斥问题
无
3.4进程通信
【本节知识点】
进程通信是指进程之间的信息交换。各进程在执行过程中为合作完成一项共同任务,需要协调步伐,交流信息。进程通信方式有:共享存储器系统、消息传递系统、管道通信。
【章节测试】
一. 单选题(共3题)
-
【单选题】 信箱通信是一种( )方式。
- A、直接通信
- B、间接通信
- C、低级通信
- D、信号量
- 正确答案: B
- 解析: 信箱通信(Mailbox Communication)是一种间接通信方式,进程通过信箱发送和接收消息,而不是直接交换信息。这种方式允许进程在不同的时间发送和接收消息,从而实现异步通信。
-
【单选题】 在消息缓冲通信中,消息队列是一种( )资源。
- A、临界
- B、共享
- C、永久
- D、可剥夺
- 正确答案: A
- 解析: 消息队列是一种临界资源,因为它在同一时间只能被一个进程访问。多个进程可能会尝试同时访问消息队列来发送或接收消息,因此需要互斥机制来确保消息队列的一致性和完整性。
-
【单选题】 ( )不是进程之间的通信方式。
- A、过程调用
- B、消息传递
- C、共享存储器
- D、信箱通信
- 正确答案: A
- 解析: 过程调用(Procedure Call)不是进程间通信(IPC)的一种方式。它是一种在同一进程内的函数或方法调用。而消息传递、共享存储器和信箱通信都是进程间通信的不同机制,允许不同进程之间交换信息。