第三章 进程控制(2)
第三章进程管理 - PowerPoint 演示文稿

浙江教育学院 信息学院
3.6.3用P,V原语操作实现同步
解:由题意可知,进程PA调用的过程deposit(data)和进 程PB调用的过程remove(data)必须同步执行,因为过 程deposit(data)的执行结果是过程remove(data)的执 行条件,而当缓冲队列全部装满数据时,remove(data) 的执行结果又是deposit(data)的执行条件,满足同步 定义。从而,我们按以下三步描述过程deposit(data) 和remove(data): 1)设Bufempty为进程PA的私用信号量,Buffull为进 程PB的私用信号量; 2)令Bufempty的初始值为n(n为缓冲队列的缓冲区个 数),Buffull的初始值为0, 3)描述:
浙江教育学院 信息学院
信号量和P,V原语
P原语
申请资源的进程如果s<0,进 程自我阻塞,因此进程放弃 了CPU。 图3.12P原语操作功能
浙江教育学院 信息学院
信号量和P,V原语
V原语
释放资源的进程A,如果 有进程B在等待资源,A要 唤醒B进程后再返回原进 程程序执行,如果原进程 程序执行完毕,则把CPU 交给进程调度程序。
浙江教育学院 信息学院
3.7进程通信
进程通信(IPC, Inter-Process Communication)
在进程间传送数据。 操作系统可以被看作是各种进程组成的,例如用户 进程、计算进程、打印进程等。这些进程都具有各 自独立的功能,且大多数被外部需要而启动执行。 一般来说,进程间的通信根据通信的内容可以划分 为两种:
3.6同步的概念
并发进程同时访问公有数据和公有变量引出了 互斥的概念.现在研究进程的合作关系.
操作系统 题库 判断题

第一章计算机系统概论1.操作系统类似于计算机硬件和人类用户之间的接口。
答案:T。
2.处理器的一个主要功能是与内存交换数据。
答案:T。
3.一般用户对系统程序无障碍,对应用程序有障碍。
答案:F4.数据寄存器一般是通用的,但可能局限于像浮点数运算这样的特定任务。
T5.程序状态字(PSW)通常包含条件码等状态信息。
条件码是由程序员为操作结果设置的位。
答案:F6.一个单一的指令需要的处理称为执行周期。
答案:F(称为指令周期)7.取到的指令通常被存放在指令寄存器中(IR)。
答案:T8.中断是系统模块暂停处理器正常处理过程所采用的一种机制。
答案:T9.为适应中断产生的情况,必须在指令周期中增加一个额外的读取阶段。
F10.在处理器控制控制例行的中断处理器之前,需要储存的最少信息有程序状态字和当前指令地址。
答案:F11.多中断的一个处理方法是在处理一个中断时禁止再发生中断。
答案:T12.多道程序设计允许处理器使用长时间等待的中断处理的空闲时间。
答案:T13.在两级存取优先级中,命中率定义为对较慢存储器的访问次数与对所有存储器访问次数的比值。
答案:F14.高速缓冲存储器的开发利用了局部性原理,即在处理器与主存储器之间提供一个容量小而快速的存储器。
T15.在高速缓冲存储器的设计中,块大小与高速缓冲存储器和主存储器间的数据交换单位有关。
答案:T16.可编程I/O的一个主要问题是,处理器必须等到I/O模块准备完毕,并且在等待的过程中必须反复不停的检查I/O模块的状态。
答案:T第二章操作系统概述1.操作系统是控制应用程序执行的程序,并充当应用程序和计算机硬件之间的接口。
(对)2.在多用户系统中,操作系统管理那些用作重要目的的资源。
(对)3.操作系统通常在它的专用O/S处理器上并行应用程序。
(错)4.操作系统演化的动力之一就是基本硬件技术的进步。
(对)5. 早期的计算机中没有操作系统,用户直接与硬件打交道。
(对)6 在一个批处理系统,“control is passed to a job”意味着处理器正在取指令和执行用户程序。
数据库作业第二章第三章

第二章一、思考题1.什么是PSW,它有何作用?psw:操作系统将程序运行时的一组动态信息会聚在一起,称为程序的状态字作用:实现程序状态的保护和恢复3.为什么要把机器指令分成特权指令和非特权指令?应用程序在执行有关资源管理的机制指令时易于导致系统混乱,造成系统或用户信息被破坏,因此在多道程序设计环境中,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分成这两类。
4.试分别从中断事件的性质、来源和实现角度对其进行分类从中断事件的性质和激活的手段来说,可以分成两类:(1)强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:机器故障中断事件。
程序性中断事件。
外部中断事件。
输入输出中断事件。
(2)自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。
按事件来源和实现手段分类:(1)硬中断;硬中断分为外中断(中断、异步中断)和内中断(异常、同步中断);(2)软中断;软中断分为信号和软件中断。
9.什么是系统调用?试述API、库函数及系统调用间的关系。
叙述系统调用执行流程。
由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。
系统调用是一种API,是应用程序同系统之间的接口。
库函数是语言本身的一部分,可以调用多个系统调用;系统调用(函数)是内核提供给应用程序的接口,属于系统的一部分,可以认为是某种内核的库函数;操作系统API是有系统调用(函数)的集合(也就是将许多的系统调用封装在了一起)。
一是编写系统调用服务例程;二是设计系统调用入口地址表,每个入口地址都指向一个系统调用的服务例程,有的还包括系统调用自带的参数个数;三是陷阱处理机制,需要开辟现场保护区,以保存发生系统调用时应用程序的处理器现场。
应用程序执行系统调用,产生中断指向内核态,进入陷阱处理程序,它将按功能查询入口地址表,并转至对应服务例程执行,完成后退出中断,返回应用程序断点继续运行。
第3章-进程管理与调度详解

孙清
房地产E网 西安财经学院
LOGO
Contents
课程内容安排
第一章 第二章 第三章 第四章 第五章 第六章 第七章
操作系统概述 系统启动及用户界面 进程管理与调度 进程同步 存储器管理 文件管理 设备管理
房地产E网 西安财经学院
管态(核心态):系统态 目态:用户态
状态之间的转换
• 目态→管态:唯一途径是中断 • 管态→目态:设置程序状态字PSW
房地产E网 西安财经学院
LOGO
进程控制块(PCB)
PCB:用于存放管理进程运行的必要信息。 PCB处于核心段,用户不能直接访问和修改PCB。 OS把所有PCB组织在一起,放在固定的内存区域, 构成PCB表。
房地产E网 西安财经学院
LOGO
进程的状态迁移
房地产E网 西安财经学院
LOGO
3.2 进程的控制
进程的控制使用原语实现。
原语(primitive)是在管态下运行,执行期间不 允许被中断。
原语的实现方法是以系统调用方式提供原语接口, 采用中断屏蔽方式来实现原语功能。
进程的控制原语包括:
创建、撤销、阻塞、唤醒、挂起、激活。
房地产E网 西安财经学院
LOGO
1、进程的创建
父进程创建子进程时,系统从空PCB池中取一个 空PCB,并在进程表中增加一项; 为新进程分配地址空间,传递环境变量,构造共 享地址空间; 查找辅存,将新进程正文装到内存;
LOGO
4、进程的唤醒 当进程所等待的事件发生,由系统进程或 事件发生进程调用唤醒原语。
将被唤醒的进程置为就绪态,并将其PCB 加入相关的就绪队列。
房地产E网 西安财经学院
操作系统进程管理

Process Management
处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的 分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序。
通常把正准备进入内存的程序称为作业,当这个作业进入内 存后我们把它称为进程。处理机管理分为作业管理和进程管 理两个阶段去实现处理机的分配,常常又把直接实行处理机 时间分配的进程调度工作作为处理机管理的主要内容。
3、系统进程在管态下活动,而用户进程则在用户态 (目态)下活动。
另一种分类:计算进程,I/O进程等 注意:在UNIX系统中没有这样对进程进行分类。
动。 (4)在进程调度中,系统进程的优先级高于用
户进程。
2.5 进程的类型与区别
系统进程与用户进程的区别:
1、系统进程被分配一个初始的资源集合,这些资源 可以为它独占,也能以最高优先权的资格使用。用 户进程通过系统服务请求的手段竞争使用系统资源;
2、用户进程不能直接做I/O操作,而系统进程可以 做显示的、直接的I/O操作。
2.3进程的特征
5)结构特征:为能正确的执行并发,为每一个进程配置
了一个数据结构,称为进程控制块(PCB)。则一个进 程实体就由数据段、程序段、PCB三部分构成。
• 进程实体 = 数据段+程序段+PCB
PCB
私有 数据块
程 序 段
进程的结构
• 程序和进程不一定具有一一对应的关系。
2.4 与程序的区别
2、进程是一个独立的运行单位,能与其它进程并行(并 发)活动。而程序则不是。
3、进程是竞争计算机系统有限资源的基本单位,也是进 行处理机调度的基本单位。
4、一个程序可以作为多个进程的运行程序,一个进程也 可以运行多个程序。
chap进程管理

3) 初始化进程控制块
初始化标识符信息(填入)、处理机的状态信息(指令指 针, 栈指针)和控制信息(状态,优先级...)
1) 设置相应的链接
如: 把新进程加到就绪队列的链表中
3.25
计算机操作系统
第三章 进程管理
二、 进程的终止(撤消) 1. 进程何时终止? 1) 正常结束 批处理系统中,进程已运行完成遇到 Halt 指令 分时系统中, 用户退出登录 2) 异常结束 本进程发生出错和故障事件 存储区越界、保护性错(如:写只读文件)、特权 指令错、非法指令(如:程序错转到数据区)、算 术运算错、运行超时、等待超过时、I/O 失败、 3) 外界干预 操作系统干预、父进程请求、父进程终止
N的值
1
1
1
3.9
1
2
2
计算机操作系统
第三章 进程管理
资源共享 系统中硬件和软件资源不再为单个用户程序所独占,而
由几个用户程序共同使用。 程序并发执行和资源共享是现代操作系统的基本特性,它 们之间互为依存。 并发的特征 1.程序结果的不可再现性:并发程序执行的结果与其执行 的相对速度有关,是不确定的 2.在并发环境下程序的执行是间断性的:执行——停—— 执行 3.程序和机器执行程序的活动不再一一对应 4.并发程序间的相互制约
End;
end;
int N=1; 是AA和BB都能访问的外部公共变量,这两 个程序在并发执行, N:=N+1;可分解为3条机器指令, 它们的执行顺序不同有可能导致N的值结果不同。
3.8
计算机操作系统
第三章 进程管理
(a) 顺序 执行
时间 程序A
程序B
T0 A←N 1
T0 A←N
T1 A←A+1 1
操作系统 题库 判断题
第一章计算机系统概论1.操作系统类似于计算机硬件和人类用户之间的接口。
答案:T。
2.处理器的一个主要功能是与内存交换数据。
答案:T。
3.一般用户对系统程序无障碍,对应用程序有障碍。
答案:F4.数据寄存器一般是通用的,但可能局限于像浮点数运算这样的特定任务。
T5.程序状态字(PSW)通常包含条件码等状态信息。
条件码是由程序员为操作结果设置的位。
答案:F6.一个单一的指令需要的处理称为执行周期。
答案:F(称为指令周期)7.取到的指令通常被存放在指令寄存器中(IR)。
答案:T8.中断是系统模块暂停处理器正常处理过程所采用的一种机制。
答案:T9.为适应中断产生的情况,必须在指令周期中增加一个额外的读取阶段。
F10.在处理器控制控制例行的中断处理器之前,需要储存的最少信息有程序状态字和当前指令地址。
答案:F11.多中断的一个处理方法是在处理一个中断时禁止再发生中断。
答案:T12.多道程序设计允许处理器使用长时间等待的中断处理的空闲时间。
答案:T13.在两级存取优先级中,命中率定义为对较慢存储器的访问次数与对所有存储器访问次数的比值。
答案:F14.高速缓冲存储器的开发利用了局部性原理,即在处理器与主存储器之间提供一个容量小而快速的存储器。
T15.在高速缓冲存储器的设计中,块大小与高速缓冲存储器和主存储器间的数据交换单位有关。
答案:T16.可编程I/O的一个主要问题是,处理器必须等到I/O模块准备完毕,并且在等待的过程中必须反复不停的检查I/O模块的状态。
答案:T第二章操作系统概述1.操作系统是控制应用程序执行的程序,并充当应用程序和计算机硬件之间的接口。
(对)2.在多用户系统中,操作系统管理那些用作重要目的的资源。
(对)3.操作系统通常在它的专用O/S处理器上并行应用程序。
(错)4.操作系统演化的动力之一就是基本硬件技术的进步。
(对)5. 早期的计算机中没有操作系统,用户直接与硬件打交道。
(对)6 在一个批处理系统,“control is passed to a job”意味着处理器正在取指令和执行用户程序。
第三章Operating_System进程管理
作业的概念主要用于批处理操作系统;而进程 的概念几乎用于所有的多道系统中。
5. 进程的组成
程序:描述进程要完成的功能。 数据:程序执行时需要的数据。 进程控制块(PCB):存储有关进程的
各种信息,操作系统根据它来控制和管 理进程。
6 进程控制块 (PCB, process control block)
进程控制信息:
– 当前状态; – 优先级(priority); – 代码执行入口地址; – 程序的外存地址; – 运行统计信息(执行时间、页面调度); – 进程间同步和通信信息;阻塞原因
资源管理信息:虚拟地址空间的现状、打开文件列 表
CPU现场保护结构:寄存器值(通用、程序计数器 PC、状态PSW)
进程与程序的组成不同:进程的组成包括程序、数据和 进程控制块(即进程状态信息)。
进程具有并发特征(独立性和异步性) ;而程序没有。 进程与程序的对应关系:通过多次执行,一个程序可对
应多个进程;通过调用关系,一个进程可包括多个程序。
4.作业与进程的区别
作业是用户向计算机提交任务的实体,被提交 后进入外存的作业等待队列。而进程是完成用 户任务的执行实体,被创建后,总有相应部分 常驻内存;
分配处理机资源;
2. 转换
进程创建(Enter):系统创建进程,形成 PCB,分配所需资源,排入暂停进程表 (可为一个队列);
调度运行(Dispatch):从暂停进程表中选 择一个进程(要求已完成I/O操作),进入 运行状态;
暂停运行(Pause):用完时间片或启动I/O 操作后,放弃处理机,进入暂停进程表;
顺序执行的特征
– 顺序性:按照程序结构所指定的次序(可能有分支或循环)
进程概念、进程控制
3.1 进程的概念
进程的概念是60年代初首先由麻省理工学院 进程的概念是60年代初首先由麻省理工学院 60 MULTICS系统和IBM公司的CTSS/360系统 系统和IBM公司的CTSS/360 的MULTICS系统和IBM公司的CTSS/360系统 引入的。进程有很多各式各样的定义, 引入的。进程有很多各式各样的定义,如: 进程是一个可以并行执行的计算部分 进程是一个抽象实体,当它执行某个任务时, 进程是一个抽象实体,当它执行某个任务时, 将要分配和释放各种资源 进程是一个独立的可以调度的活动 等等
2.进程控制信息: 2.进程控制信息: 进程控制信息
当前状态(就绪态、执行态、等待态) 当前状态(就绪态、执行态、等待态) 进程优先级(priority) 进程优先级(priority) 进程开始地址 运行统计信息, 运行统计信息,进程占有和利用资源的情况 通信信息
27
ห้องสมุดไป่ตู้
3.资源管理信息: 3.资源管理信息: 资源管理信息 有关存储器的信息 使用输入输出设备的信息 有关文件系统的信息等 4.CPU现场保护信息 现场保护信息: 4.CPU现场保护信息: 存储退出执行时的进程现场数据, 存储退出执行时的进程现场数据,当该进 程重新恢复运行时恢复处理器现场。 程重新恢复运行时恢复处理器现场。 •包括通用寄存器内容、控制寄存器内容、 包括通用寄存器内容、控制寄存器内容、 包括通用寄存器内容 用户堆栈指针、系统堆栈指针等。 用户堆栈指针、系统堆栈指针等。
25
PCB的内容 不同系统不尽相同) PCB的内容 (不同系统不尽相同)
26
PCB的内容 PCB的内容
1.进程描述信息: 1.进程描述信息: 进程描述信息
进程标识符(process ID,唯一, 进程标识符(process ID,唯一,通常是一个整 数)或进程名 用户名或用户标识符(user 用户名或用户标识符(user ID) 家族关系
(完整版)操作系统第3章习题带答案
第三章一、问答题1、用户级线程与内核级线程的区别是什么?2、PCB 中包含哪些信息?进程状态属于哪类信息?3、什么是操作系统的内核?4、简述时间片轮转调度算法的基本思想。
5、某系统采用时间片轮转调度算法的处理机调度算法,某个时刻根据用户要求创建了一个进程P,进程P 在其存在过程中依次经历了:进程调度选中了进程P 占用处理机运行,进程P 运行中提出资源申请,要求增加内存使用量,没有得到;进程等待一段时间后得到内存;进程调度再次选中了进程P 占用处理机运行;进程P 的时间片到;一段时间后,进程P 再次占用处理机;有紧急进程Q 进入,系统停止进程P 的运行,将处理机分配进程Q;进程Q 运行完,进程调度再次选中了进程P 占用处理机运行;进程P 运行完。
请分析进程P 在其整个生命过程中的状态变化。
进程调度选中了进程P 占用处理机运行(就绪→运行),进程P 运行中提出资源申请,要求增加内存使用量,没有得到(运行→阻塞);进程等待一段时间后得到内存(阻塞→就绪);进程调度再次选中了进程P 占用处理机运行(就绪→运行);进程P 的时间片到(运行→就绪);一段时间后,进程P 再次占用处理机(就绪→运行);有紧急进程Q 进入,系统停止进程P 的运行,将处理机分配进程Q(运行→就绪);进程Q 运行完,进程调度再次选中了进程P 占用处理机运行(就绪→运行);进程P 运行完。
请分析进程P 在其整个生命过程中的状态变化。
6、试比较进程与程序的异同。
7、引起创建进程的事件通常有哪些?简述进程的创建过程。
8、简述进程的阻塞过程。
910、进程控制块的作用是什么?它主要包括哪几部分内容?11、简述操作系统的三级调度。
12、为什么要了解进程间的家族关系?因为父进程和子进程之间是隶属关系,子进程可以继承使用父进程的资源;如果父进程被撤销,还应撤销其所有的子孙进程。
13、什么是进程?。
14、试比较进程和线程的区别。
15、简述进程的基本状态,画出其状态转换图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即在相关进程的程序里由上锁和开锁原语紧夹着临
界区,就能保证这些进程互斥地进入各自的临界区。
例如,甲、乙两进程要访问同一类临界资源
甲进程:
乙进程: 其他代码;
其他代码;
LOCK(W);
LOCK(W);
乙进程的临界区;
甲进程的临界区;
UNLOCK(W);
UNLOCK(W);
其他代码;
其他代码;
用上锁用上锁原语和开锁原语来实现进程的互斥 的确很简单,但处理机效率不高,因为上锁原语中 的条件测试操作可能引起CPU“忙等”。
进程同步是多道程序系统中进程之间存在的一种主要源于进
程间合作的制约关系,也称直接制约关系。
父子进程就是典型的合作进程 :
它们之间的同步关系有时也被形象地称为‚生产者与
消费者‛之间的关系,‚产品‛(即生产者进程的输出,
亦即消费者进程的输入)是它们的纽带,它们在执行过程 中的某个或某些确定的时序点上有着固定的前趋后继的同
3.4 进程的互斥
——你要,我也要
多道程序设计带来的问题 :
并发执行的多个进程可能产生互斥或同步的相互
制约关系,不采取措施,可能导致结果的不可再现
性。影响系统效率,而且还可以导致系统崩溃。
为此,现代操作系统都在内核中设有进程的互斥 同步机制,以控制并发执行的诸进程能有效的共享 资源和相互合作,同时使并发程序的执行仍具有可 再现性。
一、 互斥的定义
所谓进程互斥,指的是对某个系统资源,一个进程
正在使用它,另外一个想用它的进程就必须等待,
而不能同时使用 。
进程互斥是多道程序系统中进程间存在的一种源于
资源共享的制约关系,也称间接制约关系,主要是
由被共享资源的使用性质所决定的。
一、 互斥的定义
这种限定进程只能互斥地访问它的资源叫临界资源(指一
程序 段 n
共享变 量
一、 互斥的定义
临界区:进程中访问临界资源的那段程序代码称为
临界区或临界段。
使用同一临界资源的不同进程中的临界区称为同类
临界区或相关临界区。
为实现对临界资源的互斥访问,应保证诸进程互斥
地进入各自的临界区。
但无论采用何种方法,都应遵循临界区的使用原则,
即‚空则让进,忙则等待,等则有限,等则让权‛。
进程的临界区的前后分别施以P操作和V操作即可,即在相
关进程的程序里由P操作和V操作原语紧夹着临界区,就能
保证这些进程互斥地进入各自的临界区。
这里所用信号量的初值一般为1,表示临界资源未被占用,
且其可用数目为1。
用P、V操作原语实现进程互斥的效率更高一些,因为P操
作中引入了阻塞机制,所以消除了CPU忙等现象。(lock 原语存在CPU忙等现象)
‚若Pk≥1 ,则将Pk的值减1,卖出一张票,返回
否则打印‘无票’信息,返回‛
如果不加任何限制让这两个程序并发执行的话 ,结果可能会导
致错误,甚至两地各卖出一张重票的现象
三、 用P、V操作原语实现进程的互斥
例3.1 试用P、V操作实现火车联网订票系统中北京、天津 两地的两个终端售票进程发售同一班次车票的过程。
W=0;
void unlock(锁变量w) { w=0; /* 开锁 */ } /* unlock(w) */
返回
当进程使用完资 源后,它必须将锁 位置成“0”,称为 开锁操作。
三、用上锁和开锁原语可以解决并发进程的互斥
任何欲进入临界区的进程,必须先执行上锁原语。 若上锁原语顺利通过,则进程可进入临界区;当完 成对临界区资源的访问后再执行开锁原语,以释放 该临界资源。
量S,另一个分量是个等待队列指针Q (一个是指 向PCB的指针,当多个进程都等待同一信号量时, 它们就排成一个队列,由信号量的指针项指出该队
信号量通常可以简单反映出相应资源的使用情况,它与P,V
操作原语一起使用可实现进程的同步和互斥。
列的头。)
**信号量的整型分量S的值的物理含义:
当S≥0时,表示某类可用资源的数目,或者说表示
一、
同步的定义
进程同步:指的是两个或多个进程为了合作完成同一个任务,
在执行速度或某些个确定的时序点上必须相互协调,即一个 进程的执行依赖于另一个进程——其合作伙伴的消息,当一 个进程到达了某一确定点而没有得到合作伙伴发来的‚已完 成某些操作‛的消息时必须等待,直到该消息到达被唤醒后, 才能继续向前推进。
3.6进程的同步(synchronism)
1.资源共享关系(互斥) 很多进程之间彼此无关,它们并不知道其它进程的存在。 例如在分时系统中,系统分别为每个用户(终端)建立一 个进程。但这些进程既然同处于一个系统中,也就必然存 在着资源共享的关系,如共享CPU和I/O设备等。此时,进 程的主要任务,是保证各个进程能互斥地访问临界资源。 所以,系统中的资源应该不允许用户进程直接使用,而应 该由系统同一分配。例如:在仅有一台打印机的系统中, 两个进程提出打印请求 2.相互合作关系(同步) 例如输入进程、计算进程、打印进程合作完成一批数据的 输入、计算和打印时的关系;中断响应过程;生活中下棋、 看病时等化验结果等等。
次仅允许一个进程使用的资源 )。
临界资源限定了使用者只能互斥地使用它。 操作系统也不能中途从抢先者手中把临界资源抢来给其他 进程用。 因此,临界资源也是不可剥夺性资源。例:打印机、共享
变量等。
计算机系统中可剥夺性使用的资源主要有CPU、内存和磁
盘等。
一、 互斥的定义
程序 段 1
程序 段 2
④根据顾客订票数修改R1;
⑤将R1的值回写到PK中; ⑥V(S); ⑦售出顾客所订的票,返回;
天津售票终端进程:
①根据顾客订票要求找到公共数据单元PK; ②P(S); ③把PK的值读到工作寄存器R2中; ④根据顾客订票数修改R2; ⑤将R1的值回写到PK中; ⑥V(S); ⑦售出顾客所订的票,返回;
前,应该执行对同一个信号量的P操作,以测试其合作伙
伴——生产者进程‚已完成前趋生产任务‛的消息是否到来, 如果到来就开始消费,否则就阻塞自己。
解答这类进程同步问题的主要步骤也是三大步: (1)分析清楚题目涉及的进程间的制约关系 (2)设臵信号量(包括信号量的个数和初值及其物理含义),
合作进程间需要收发几条消息相应就设臵几个信号量。
3.5 信号量机制
荷兰著名科学家,后来的计算机图灵奖获得
者,E.W.Dijkstra于1965年提出了用作进程同
步工具的信号量(semaphore)机制,这是一 种卓有成效的进程互斥同步工具,已被广泛 应用于现代计算机系统中。
信号量机制的基本原理是:
两个或多个进程可以利用彼此间收发的简
单的信号来实现‚正确的‛并发执行,一 个进程在收到一个指定信号前,会被迫在 一个确定的或者需要的地方停下来,从而 保持同步或互斥。
情况; 进程的互斥和同步统称为进程同步。
差别:进程互斥是进程间共享资源的使用权 ,这种竞争没有
固定的必然联系,哪个进程竞争到使用权就归那个进程使用, 直到不需要使用时再归还;而进程同步则涉及共享资源的并 发进程间有一种必然的联系,当进程必须同步时,即使无进 程在使用共享资源时,那么尚未得到同步消息的进程也不能 去使用这个资源。
唤醒进入就绪队列,返回。
P(S)操作的算法描述Leabharlann P(s)入口S-1=>S
S≥0
N
Y
返回
Block(Q)
V(S)操作的算法描述
V(s)入口
S+1=>S
S>0
N
Y
返回
Wakeup(Q)
注意P(S)操作和V(S)操作的物理含义:
P(S)操作表示‚等信号‛,即测试一个要等的信号是
否 到达;
V(S)操作表示‚发信号‛。这个信号在实现同步时就
是‚合作者的伙伴进程已完成前趋任务‛,在实现互斥 时就是‚临界资源可用‛。
另外,在互斥问题中,每执行一次P(S)操作的含义,
也可理解为进程请求一个单位的S类资源;每执行一次
V(S)操作的含义,也可理解为进程释放一个单位的S类 资源。
三、 用P、V操作原语实现进程的互斥
用P、V操作原语实现进程的互斥也一样简单,只需在相关
主要步骤是:
(1)分析清楚题目涉及的进程间的制约关系。
(2)设臵信号量(包括信号量的个数和初值,
对于同步问题还要写出信号量的物理含义)。
(3)给出进程相应程序的算法描述或流程控
制,并把P、V操作加到程序的适当处。
北京售票终端进程:
①根据顾客订票要求找到公共数据单元PK; ②P(S); ③把PK的值读到工作寄存器R1中;
二、 上锁和开锁原语
现代操作系统用来实现进程的互斥、同步的
工具有多种,如上锁与开锁原语、信号灯机
制、管程机制等。
上锁与开锁是一种最简单的进程互斥方法,
它使用一个锁变量W来表示某种临界资源的
状态,
W=0表示资源空闲可用
W=1表示资源正被使用
1.上锁原语:LOCK(W)
L1:如果 W=1那 么转向L1;
二、用P、V操作原语实现进程的同步
P、V操作也都是配对出现,但对同一个信号量的P、V操 作却不是同时出现在每一个进程的程序里,而是分别出现在
一个进程和它的合作伙伴的代码中。
而且P、V操作的出现位臵都在各个合作进程中确定的时 序点,即一个生产者进程在完成了前趋的生产任务后,应立 即给合作伙伴——消费者进程发送一条‚已完成前趋生产任 务‛的消息,这要执行V操作;而后继的消费者进程在消费
三、 用P、V操作原语实现进程的互斥