北大操作系统第三章:操作系统习题课(三)

合集下载

操作系统本科第3章教材习题解答

操作系统本科第3章教材习题解答

第3章处理机调度“练习与思考”解答1.基本概念和术语调度、作业调度、进程调度、吞吐量、周转时间、带权周转时间、中断调度就是选出待分派的作业或进程。

作业调度就是根据一定的算法,从输入的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。

进程调度就是根据一定的算法将CPU分派给就绪队列中的一个进程。

吞吐量:单位时间内CPU完成作业的数量。

周转时间:从作业提交到作业完成的时间间隔。

带权周转时间:定义为作业的周转时间除以其实际运行时间。

中断是指CPU对系统发生的某个事件做出的一种反应,它使CPU暂停正在执行的程序,保留现场后自动执行相应的处理程序,处理该事件后,如被中断进程的优先级最高,则返回断点继续执行被“打断”的程序。

2.基本原理和技术(1)处理机调度的主要目的是什么?处理机调度的主要目的就是为了分配处理机。

(2)高级调度与低级调度的主要功能是什么?为什么要引入中级调度?高级调度的主要功能是根据一定的算法,从输入的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。

低级调度的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。

为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。

(3)作业在其存在过程中分为哪四种状态?作业在其存在过程中分为提交、后备、执行和完成四种状态。

(4)在操作系统中,引起进程调度的主要因素有哪些?在操作系统中,引起进程调度的主要因素有:正在运行的进程完成任务,或等待资源,或运行到时;核心处理完中断或陷入事件后,发现系统中“重新调度”标志被置上。

操作系统-第3章复习题答案

操作系统-第3章复习题答案

操作系统-第3章复习题答案(总4页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--操作系统第三章总复习题一、单选题1、进程调度又称低级调度,其主要功能是( D )。

A.选择一个作业调入内存B.选择一个主存中的进程调出到外存C.选择一个外存中的进程调入到主存D.将一个就绪的进程投入到运行2、若进程P一旦被唤醒就能够投入运行,系统可能为( D )。

A.分时系统,进程P的优先级最高B.抢占调度方式,就绪队列上的所有进程的优先级皆比P的低C.就绪队列为空队列D.抢占调度方式,P的优先级高于当期运行的进程。

3、一个进程P被唤醒后,( D )。

A.P就占有了CPU。

B.P的PCB被移到就绪队列的队首。

C.P的优先级肯定最高D.P的状态变成就绪4、若当期运行进程( C )后,系统将会执行进程调度原语。

A 执行了一个转移指令B 要求增加主存空间,经系统调用银行家算法进行测算认为是安全的。

C 执行了一条I/O指令要求输入数据。

D 执行程序期间发生了I/O完成中断。

5、当系统中( C )时,系统将不会执行进程调度原语。

A.一个新进程被创建B.当前进程执行了P操作。

C.在非抢占调度中,进程A正在运行而进程B恰好被唤醒。

D.分时系统中时间片用完。

6、在分时系统中,若当期运行的进程连续获得了两个时间片,原因可能是( B )。

A 该进程的优先级最高B 就绪队列为空C 该进程最早进入就绪队列D 该进程是一个短进程7、实时系统中采用的调度算法可以有如下几种:1、非抢占优先权调度算法2、立即抢占优先权调度算法3、时间片轮转调度算法4、基于时钟中断抢占的优先权调度算法按实时要求的严格程度由低到高的顺序( B )。

A 1-3-2-4B 3-1-4-2C 3-1-2-4D 1-3-4-28、三种主要类型的OS 中都必须配置的调度( C )。

A 作业调度B 中级调度C 低级调度D I/O调度9、设系统中n 个进程并发,共同竞争资源X,且每个进程都需要m个X资源,为使该系统不会发生死锁,资源X最少要有( C )个。

操作系统第三章作业讲解

操作系统第三章作业讲解

第三章 作业讲解1、有5个作业进入就绪队列等待运行,预计它们的运行时间分别为9、6、3、5与X ,它们以什么样的调度顺序运行时会取得最小的响应时间?(答案与X 值有关) 答:短作业优先调度算法是使响应时间最小的调度算法: 0 < X ≤ 3时,调度顺序为: X 、3、5、6、9 3 < X ≤ 5时,调度顺序为: 3、X 、5、6、9 5 < X ≤ 6时,调度顺序为: 3、5、X 、6、9 6 < X ≤ 9时,调度顺序为: 3、5、6、X 、9 X > 9时,调度顺序为: 3、5、6、9、X2、假设一个系统中有4个进程,它们的到达时间和服务时间如表所示,忽略I/O 以及其他开销时间,若分别按先来先服务(FCFS )、非抢占及抢占的短进程优先(SPF )、高响应比优先(HRRN )、时间片轮转(RR ,时间片=1)、多级反馈队列调度算法(FB ,第i 级队列的时间片=2i-1)进行CPU 调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。

算法时间 进程平均时间A B CDFCFS完成时间 周转时间 带权周转时间5 5 1 76 3 16 13 1.44 23 17 2.43 10.25 1.97 SPF (非抢占) 完成时间周转时间带权周转时间 5 5 1 7 6 3 23 20 2.22 14 8 1.14 9.75 1.835 SPF (抢占)完成时间 周转时间 带权周转时间 7 7 1.4 3 2 1 23 20 2.22 14 8 1.14 9.25 1.435 HRRN完成时间 周转时间 带权周转时间 5 5 1 7 6 3 16 13 1.44 23 17 2.43 10.25 1.97 RR (q=1)完成时间 周转时间 带权周转时间 12 12 2.4 4 3 1.5 23 20 2.22 22 16 2.29 12.75 2.1 FB (q=2i-1)完成时间 周转时间 带权周转时间13 13 2.66 5 2.523 20 2.22 21 15 2.1413.25 2.3653、若有4个周期性任务,任务A 要求每30ms 执行一次,执行时间为15ms ;任务B 要求每50ms 执行一次,执行时间为5ms ;任务C 要求每50ms 执行一次,执行时间为15ms ;任务D 要求每100ms 执行一次,执行时间为10ms ,应如何按最低松弛度优先算法对它们进行CPU 调试? (要求画出0-150ms 时段的调度时序图,并列出每次切换时每个任务的松弛度)进程 到达时间 服务时间 A 0 5B 1 2C 3 9D 6 7答:对于上面的4个周期性任务,利用最低松弛度优先算法进行调度的情况如图所示:4、3个进程共享4个同类型的资源,每个进程最大需要2个资源,请问该系统是否会因为竞争该资源而死锁?答:该系统不会因为竞争该类资源而死锁。

操作系统课后习题

操作系统课后习题

北京大学操作系统课后题参考答案操作系统1.什么是计算机系统?计算机系统是怎么构成的?了解PC的组成情况,说明:1)硬件组织的基本结构,画出硬件配置图;2)主要系统软件和应用软件(若有的话)他们的作用。

答:计算机系统就是按照人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的系统。

计算机系统由硬件子系统和软件子系统组成。

计算机系统的构成包括:如图 1.2计算机硬件系统的构成:如图 1.42.从功能以及程序涉设计的角度说明计算机系统中软件系统是如何构成的?答:计算机系统中软件系统分为系统软件,支撑软件和应用软件三层。

3.什么是操作系统?请举例说明操作系统在计算机系统中的重要地位。

答:操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。

它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能安全高效地运行4.请举一个实际的例子来说明操作系统的功能。

答:你能用用操作系统管理很多资源5.为什么说“操作系统是控制硬件的软件”的说法不确切?答:操作系统不仅能够控制硬件,也可以控制各种软件资源。

6.操作系统的基本特征是什么?说明他们之间的关系。

答:1.并发性2.共享性3.随机性7.试从独立性,并发性和交互性和实时性四个方面来比较批处理系统,分时系统以及实时系统。

答:分时系统:并发性是指同时有多个用户共同使用一个计算机,宏观上看是多个人同时使用一个CPU,微观上是多个人在不同时刻轮流使用CPU.独占性,是指用户感觉不到计算机为他们服务,就好像整个系统为他所独占。

交互性:是指用户根据系统响应结果进一步提出新要求,用户直接干预每一步。

实时性:是指系统对用户提出的请求及时响应。

8.引入多道程序设计技术的起因和目的是什么?多道程序系统的特征是什么?答:多道程序设计的基本思想在内存中保持多个作业,主机可以交替的方式同时处理多个作业,一般来说任何一道作业的运行总是要交替的使用处理器和外设子案9.多道程序设计的度是指在任一给定时刻,单个CPU所能支持的进程数目最大值。

(完整版)操作系统第3章习题带答案

(完整版)操作系统第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、简述进程的基本状态,画出其状态转换图。

操作系统第三版第三章习题答案

操作系统第三版第三章习题答案

第三章处理机调与死锁102260010065 黄兰10计科3班P1145.试说明低级调度的主要功能答:(1)保存处理的现场信息。

在进程调度进行调度时,首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的进程控制块(PCB)中的相应单位。

(2)按某种算法选取进程。

低级调度程序按某种算法如优先数算法、轮转法等,从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。

(3)把处理器分配给进程。

由分派程序把处理器分配给进程。

此时需为选中的静态进程恢复处理机现场,即把选中进程的进程控制块内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让它从取出的断点处开始运行。

P1159.何谓静态和动态优先级?确定静态优先级的依据是什么?答:(1)静态优先级定义:静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。

一般地,优先权是利用某一个整数来表示的,例如,0~7或0~255中的某一整数,又把该整数称为优先数,只是具体用法各异:有的系统用“0”表示优先权,当数值越大时,其优先权越低;而有的系统恰恰相反。

(2)动态优先级定义:动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。

(3)确定优先级的依据:①进程类型。

②进程对资源的需要。

③用户要求。

10.试比较FCFS和SPF两种进程调度算法。

答:(1)相同点:两种调度算法都是既可用于作业调度,也可用于进程调度。

(2)不同点:FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列的作业,将他们调入内存,为他们分配资源,创建进程,然后插入到就绪队列中。

该算法有利于长作业/进程,不利于短作业/进程。

SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存中运行。

操作系统习题(各章节精选)及答案

操作系统习题(各章节精选)及答案

第一章操作系统概述1.试从操作系统的设计目标、作用、分类、功能、特性、组织结构等方面分析目前的操作系统(如windows、Mac OS X、Andriod、Linux发行版或Unix操作系统)答:windows:Windows采用了图形化模式,比起从前的DOS需要键入指令使用的方式更为人性化。

随着电脑硬件和软件的不断升级,微软的Windows也在不断升级,从架构的16位、32位再到64位,系统版本从最初的Windows 1.0到大家熟知的Windows 95、Windows98、Windows 2000、Windows XP、Windows Vista、Windows 7、Windows 8,Windows8.1和Server服务器企业级操作系统,不断持续的在更新!Mac OS X:OS X 是先进的操作系统。

基于坚如磐石的UNIX 基础,设计简单直观,让处处创新的Mac 安全易用,高度兼容,出类拔萃。

UNIX 之威力,Mac 之简单OS X 既简单易用且功能强大。

所有的一切- 从启动Mac 后所看到的桌面,到你日常使用的应用程序,都设计得简约精致。

无论是浏览网络、查看邮件和外地朋友视频聊天,所有事情都简单高效、趣味盎然。

当然,简化复杂任务要求尖端科技,而OS X 正拥有这些尖端科技。

它不仅使用基础坚实、久经考验的UNIX 系统提供空前的稳定性,还提供超强性能、超炫图形并支持互联网标准。

Andriod:root通常是针对Android系统的手机而言,它使得用户可以获取Android操作系统的超级用户权限。

root通常用于帮助用户越过手机制造商的限制,使得用户可以卸载手机制造商预装在手机中某些应用,以及运行一些需要超级用户权限的应用程序。

Android系统的root与Apple iOS系统的越狱类似。

Linux:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

操作系统第三章练习题与答案

操作系统第三章练习题与答案

第三章一、填空1.将作业相对地址空间的相对地址转换成内存中的绝对地址的过程称为地址重定位。

2.使用覆盖与对换技术的主要目的是提高内存的利用率。

3.存储管理中,对存储空间的浪费是以内部碎片和外部碎片两种形式表现出来的。

4.地址重定位可分为静态重定位和动态重定位两种。

5.在可变分区存储管理中采用最佳适应算法时,最好按尺寸法来组织空闲分区链表。

6.在分页式存储管理的页表里,主要应该包含页号和块号两个信息。

7.静态重定位在程序装入时进行,动态重定位在程序执行时进行。

8.在分页式存储管理中,如果页面置换算法选择不当,则会使系统出现抖动现象。

9.在请求分页式存储管理中采用先进先出(FIFO)页面淘汰算法时,增加分配给作业的块数时,缺页中断的次数有可能会增加。

10.在请求分页式存储管理中,页面淘汰是由于缺页引起的。

二、选择1.虚拟存储器的最大容量是由 A 决定的。

A.内、外存容量之和 B.计算机系统的地址结构C.作业的相对地址空间 D.作业的绝对地址空间2.采用先进先出页面淘汰算法的系统中,一进程在内存占3块(开始为空),页面访问序列为1、2、3、4、1、2、5、1、2、3、4、5、6。

运行时会产生 D 次缺页中断。

A.7 B.8 C.9 D.10从图3-8中的“缺页计数”栏里可以看出应该选择D。

图3-8 选择题2配图3.系统出现“抖动”现象的主要原因是由于 A 引起的。

A.置换算法选择不当 B.交换的信息量太大C.内存容量不足 D.采用页式存储管理策略4.实现虚拟存储器的目的是 D 。

A.进行存储保护 B.允许程序浮动C.允许程序移动 D.扩充主存容量5.作业在执行中发生了缺页中断,那么经中断处理后,应返回执行 B 指令。

A.被中断的前一条 B.被中断的那条C.被中断的后一条 D.程序第一条6.在实行分页式存储管理系统中,分页是由 D 完成的。

A.程序员B.用户C.操作员D.系统7.下面的 A 页面淘汰算法有时会产生异常现象。

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

操作系统习题讲解进程的同步与互斥(三)赵俊峰P 、V 题的一般分析过程1问题的分析确定有哪些进程y1.问题的分析,确定有哪些进程;2y2.确定各个进程之间的同步互斥关系;y3.信号量的设计(初值以及用来实现哪些进程间的同步互斥、是否需要一般变量的辅助)辅助);y4、实现(避免出现不公平现象比如饥饿、避免出现死锁如P 操作的次序问题)。

同学们的问题1有几个进程进程的划分?y:有几个进程,进程的划分?y 2:if 判断语句与P/V 之间的区别?多余的判断?y 3:每个进程的行为划分?对于行为的控制?该谁去控制?触发行为的条件及被触发的行为?y 5:触发行为的条件及被触发的行为?y 6:需要全面考虑题目要求需要全面考虑题目要求y 7:什么时候需要计数?共享变量需要互斥使用y 8:共享变量需要互斥使用进程同步与互斥习题(四)请用信号量解决以下问题y 把学生和监考老师都看作进程, 学生有N 人, 考场门口每次只能进出个人教师1人. 考场门口每次只能进出一个人, 进考场原则是先来先进. 当N 个学生都进入考场后, 教师才能发卷子. 学生交卷后可以离开考场. 教师要等收上来全部卷子并封装卷子后才能离开考场.(1)(1)问共需设置几个进程?(2) 试用P 、V 操作解决上述问题中的同步和互斥关系.进程同步与互斥习题(四)共享资源:考场门口请用信号量解决以下问题y 把学生和监考老师都看作进程, 学生有N 人, 考场门口每次只能进出个人教师1人. 考场门口每次只能进出一个人, 进考场原则是先来先进.c 当N 个学生都进入考场后, 教师才能发卷子. 学生交卷后可以离开考场. d 教师要等收上来全部卷子并封离同步行为:c d 装卷子后才能离开考场.(1) ?()问共需设置几个进程(2) 试用P 、V 操作解决上述问题中的同步和互斥关系.信号量及其他变量的设置需设置以下的信号量S_Door = 1//能否进出门;S St d tR d 0学生是否到齐S_StudentReady = 0//学生是否到齐;S_Mutex1 = 1//互斥信号量;S M t 21互斥信号量S_Mutex2 = 1//互斥信号量;S_ExamBegin = 0//开始考试;S E O 0考试结束所有试卷S_ExamOver = 0//考试结束,所有试卷已交;int nStudentNum 0;int nStudentNum = 0;int nPaperNum = 0;student(){学生进程P(S_Door);进门;V(S Door);V(S_Door);P(S_Mutex1);// 增加学生的个数nStudentNum ++;if(nStudentNum N)V(S StudentReady);if(nStudentNum == N) V(S_StudentReady);V(S_Mutex1);P(S_ExamBegin);//等老师宣布考试开始考试;交卷;P(S Mutex2);P(S_Mutex2);//增加试卷的份数nPaperNum ++;if(nPaperNum == N) V(S_ExamOver);V(S Mutex2);V(S_Mutex2);P(S_Door);出门;V(S_Door);}Teacher()教师进程(){P(S_Door);进门进门;V(S_Door);P(S StudentReady);//P(S_StudentReady); 最后一个进来学生把老师唤醒;发卷子;for(i=1; i <= N; i++)(;;)V(S_ExamBegin);//开始考试;P(S_ExamOver);//等待考试结束;封装卷子P(S_Door);出门;V(S_Door);}进程同步与互斥习题(五)某商店有两种食品B A 和B, 最大数量各为m 个.该商店将A,B 两种食品搭配出售, 每次各取一个. 为避免食品变质, 遵循先到食品先出售的原则, 有两个食品公司分别不断地供应A,B 两)种食品(每次一个). 为保证正常销售, 当某种食品的数量比另一种的数量超过k(k<m)个时, 暂停对数量大的食品进货, 补充数量少的食品.◦(1)(1) 问共需设置几个进程?◦(2) 试用P ,V 操作解决上述问题中的同步和互斥关系.生产者-消费者中的消费者行为进程同步与互斥习题(五)某商店有两种食品B A 和B, 最大数量各为m 个. 该商店将A,B 两种食品搭配出售, 每次各取一个. 为避免食品变质, 遵循先到食品先出售的原则, 有两个食品公司分别不断地供应A,B 两)种食品(每次一个).为保证正常销售, 当某种食品的数量比另一种的数量超过k(k<m)个生产者-消费者中的生产者行为生产者之间时, 暂停对数量大的食品进货, 补充数量少的食品.的同步行为◦(1) 问共需设置几个进程?(2)PV ◦(2) 试用P ,V 操作解决上述问题中的同步和互斥关系.信号量及其他变量的设置设置以下的信号量 S_Mutex = 1 S Wait A = 0; S_Wait_A = 0; S_Num_A = 0; S BuffNum A = m; S_BuffNum_A = m; S_Wait_B = 0; S Num B 0; S_Num_B = 0 S_BuffNum_B = m; i t N int nNum_A = 0; A 0 int nNum_B = 0; //用于互斥访问的信号量 //A太多了,要等一等 太多了 要等一等B //食品A的空闲缓冲区个数; //B太多了,要等一等A //食品B的空闲缓冲区个数;Producer_A() A进程 { int b_TooMuch; while(1) { 生产产品; P(S_Mutex); if((nNum A nNum_B) == k) b_TooMuch = 1; if((nNum_A nNum B) == k) b TooMuch = 1; else b_TooMuch = 0; V(S_Mutex); if(b T M h) P(S W i A) //A太多了 if(b_TooMuch) P(S_Wait_A); 太多 P(S_BuffNum_A); 向商店提供一个 向商店提供 个A商品; V(S_Num_A); P(S_Mutex); nNum A ++; nNum_A ++; if(nNum_B - nNum_A == k-1)  V(S_Wait_B);  //可以进B了}}V(S Mutex); V(S_Mutex);Producer_B() B进程 { int b_TooMuch; while(1) { 生产产品; P(S_Mutex); if((nNum B nNum_A) == k) b_TooMuch = 1; if((nNum_B nNum A) == k) b TooMuch = 1; else b_TooMuch = 0; V(S_Mutex); if(b T M h) P(S W i B) //B太多了 if(b_TooMuch) P(S_Wait_B);  太多 P(S_BuffNum_B); 向商店提供一个 向商店提供 个B商品; V(S_Num_B); P(S_Mutex); nNum B ++; nNum_B ++; if(nNum_A - nNum_B == k-1)  V(S_Wait_A);  //可以进A了}}V(S Mutex); V(S_Mutex);Shop() Sh () { while(1) { P(S_Num_A); ( _Num_B); ); P(S 出售A、B食品各一个; V(S BuffNum A); V(S_BuffNum_A); V(S_BuffNum_B); } }Shop进程信号量和P、V原语的小结对信号量和P、V原语的使用可以归纳为三种情形:  第一,把信号量视为一个加锁标志位,其目的是为了 实现对某个唯一 实现对某个唯 唯一的共享数据 唯 的共享数据 共享数据的互斥访问 互斥访问,如数据库中 的某个记录,各个进程间的某个共享变量。

该共享数 据的取值与信号量本身的取值并没有什么直接的关系 ,信号量的作用仅仅是作为一个加锁标志位 加锁标志位。

其特征 是信号量的初始值为 信号量的初始值为1 1,然后在一个进程内部对它进 一个进程内部对它进 行 行配对的 行配对的P 对的P、V操作 操作。

P(mutex); ( ); // mutex的初始值为1 访问该共享数据; V(mutex); 非临界区信号量和P、V原语的小结 第二,把信号量视为是某种类型的共享资源的剩余个 第二 把信号量视为是某种类型的共享资源的剩余个 共享资源的剩余个 数,其目的是为了实现对这种类型的共享资源的访问 ,如各种 如各种I/O设备。

信号量的取值具有实际的意义, 设备。

信号量的取值具有实际的意义 就等于空闲资源的个数 等于空闲资源的个数。

多个进程可以同时使用这种 类型的资源,直到所有空闲资源均已用完。

其特征是 信号量的初始值为N(N 信号量的初始值为 N(N≥1) 1),然后在一个进程内部对它 一个进程内部对它 进行配对的P 进行配对的 P、V操作 操作。

P(resource); // resource的初始值为N 使用该资源; V(resource); 非临界区信号量和P、V原语的小结 第三,把信号量作为进程间同步 第三 把信号量作为进程间同步 进程间同步的工具 利用它来设定 进程间同步的工具,利用它来设定 两个进程在运行时的先后顺序。

比如说,它可以是某个 两个进程在运行时的先后顺序 共享资源的当前个数 但是由一个进程负责生成该资源 共享资源的当前个数,但是由 个进程负责生成该资源 ,而另一个进程负责消费该资源,由此引发了两个进程 之间的先后顺序。

其特征是信号量的初始值为 信号量的初始值为N N( N ≥ 0),然后在一个进程里面用对它使用 在一个进程里面用对它使用V V原语,增加资 源个数,而在另外一个进程里面对它使用P 源个数,而在另外一个进程里面对它使用 P原语,减 少资源个数,从而实现两个进程之间的同步关系。

相关文档
最新文档