操作系统概论课件_第1页
操作系统概论课件_第2页
操作系统概论课件_第3页
操作系统概论课件_第4页
操作系统概论课件_第5页
已阅读5页,还剩390页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

18:51:391操作系统概论18:51:3921.1操作系统的概念1.2操作系统的历史回顾1.3操作系统的类型1.4操作系统的特征1.5操作系统与用户的接口1.6操作系统的结构1.7操作系统的硬件环境第一章引言18:51:3931.1操作系统的概念一、操作系统的地位裸机(BareMachine):没有任何的软机支持的计算机。它仅仅构成了计算机系统的物质基础。一个完整的计算机系统由两大部分组成:计算机硬件和计算机软件。

18:51:394

(一)计算机的硬件1.硬件的概念

指计算机系统中由电子、机械和光电元件等组成的各种计算机部件和计算机设备。2.计算机硬件系统的基本组成①运算器②控制器③存储器中央处理器④输入设备⑤输出设备18:51:395(二)计算机的软件1.软件的概念

软件是由计算机硬件执行以完成一定任务的所有程序及其数据。2.软件的分类分为系统软件和应用软件18:51:396其中,系统软件由操作系统、程序设计语言、语言处理程序、数据库管理系统、网络系统和常用服务系统等组成。

应用软件是指专门为某一应用目的而用系统软件编制的软件系统。18:51:397计算机系统的层次结构用户应用软件其他系统软件裸机操作系统操作系统系统软件的核心将文件存到磁盘上遵命!遵命文件正确保存将文件存盘报告长官:文件保存完成18:51:3910二、操作系统的目标:公司的管理部门,要提高经济效益,至少需要实现三个管理目标:

(1)为客户提供种种方便,以争取接到尽量多的订单;(2)制定生产计划,组织加工流程,提高生产效率,保证产品质量;(3)及时获取并管理好所需各种资源,充分发挥资源作用,尽量消除浪费资源现象。

举例18:51:3911操作系统的目标是:1.方便性(用户的观点):提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别2.有效性(系统管理人员的观点):管理和分配硬件、软件资源,合理地组织计算机的工作流程.3.

可扩充性随着VLSI技术和计算机技术的迅速发展,计算机硬件和体系结构也随之发展,对OS提出了更高的功能和性能要求。4.开放性:各种类型的计算机硬件系统,出自不同的厂家,要使之通过网络加以集成化并能协调工作,实现应用程序的可移植性和互操作性。要求具有同一的开放环境。18:51:3912操作系统的五大管理功能:处理机管理、存储器管理、设备管理、文件管理和作业管理。打开一个word处理程序,OS需要作什么?系统需要为word处理程序进行存储资源的分配=》进程的管理=》将结果输出到外部设备系统还需要有极强的容错性和稳定性,能够避免由于应用程序的不稳定,而影响整个应用程序的不稳定18:51:3913操作系统的定义操作系统是合理组织计算机的工作流程,有效控制和管理计算机系统的各类资源,并方便用户使用计算机的程序集合。(补充:是用户和计算机的接口)18:51:39141.2操作系统的历史回顾“需求推动发展”(1)提高资源的利用率和系统性能(2)方便用户:用户上机、调试程序(3)

分散计算时的事务处理和非专业用户(商业和办公、家庭)(4)

器件的发展18:51:3915=》1946年到50年代

第一代电子管计算机

工作方式:用户既是程序员,又是操作员;编程语言:为机器语言;

输入输出:纸带或卡片;

工作特点:用户独占全机,资源不共享CPU利用率低;主要矛盾:计算机处理能力的提高,手工操作的低效率(造成浪费);

提高效率的途径:专门的操作员,批处理

18:51:3916=》50年代末~60年代中单道批处理系统

(simplebatchprocessing)

(晶体管)

利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理。可使用汇编语言开发。

存在问题:CPU和I/O设备使用忙闲不均(取决于当前作业的特性)。对计算为主的作业,外设空闲;对I/O为主的作业,CPU空闲。人机矛盾仍然存在。18:51:3917=》操作系统的完善通道技术和中断技术的出现使监督程序在负责作业运行的同时提供I/O控制功能。通道:专用的I/O处理器,可与CPU并行工作,使I/O联机处理。

中断:是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。18:51:391860年代中多道程序批处理系统:为进一步提高资源的利用率和系统的吞吐量,引入多道程序批处理系统操作系统终于代替人工成了计算机系统的“管家”,其发展进入了成熟期,UNIX是这个时期的典型代表。18:51:3919=》操作系统的发展从1980年至今建立在大规模集成电路基础上的第四代计算机蓬勃发展。从个人计算机到并行机,再到网络,计算机体系结构也不断发展变化。微机操作系统、并行操作系统、分布式操作系统、网络操作系统和嵌入式操作系统等相继产生。操作系统的使用界面也从字符界面变成了图形界面。操作系统的结构除了有序分层的模块化结构外,还出现了虚拟机结构和客户/服务器加微内核结构等。DOS、OS/2、Windows和Linux等是这一时期的典型代表。18:51:39201.3操作系统的类型*

※按机器硬件的结构与规模可分为:

大型机操作系统、中型机操作系统、小型机操作系统、微型机操作系统、网络操作系统、嵌入式操作系统※按系统能同时响应的用户与任务个数分为:

单用户单任务操作系统、单用户多任务操作系统多用户多任务操作系统等

按系统处理任务的方式分为:多道批处理操作系统、分时操作系统、实时操作系统、分布式操作系统18:51:3921一、批处理操作系统(OS/360MVT)

多道批处理系统(multiprogrammingsystem)多道:内存中同时存放几个作业

1。运行方式:宏观上并行运行:都处于运行状态,但都未运行完;微观上串行运行:各作业交替使用CPU;18:51:39222。多道批处理系统的特征:

优点:(1)资源利用率高

(2)作业吞吐量大(3)系统开销小缺点:(1)用户交互性差(2)作业平均周转时间长18:51:3923二、分时操作系统

(Time-sharingOperatingSystem)

主机终端终端终端………分时系统示意图18:51:39241.分时的概念与实现

分时:指若干并发程序对CPU时间的共享,通过系统软件实现。指多个用户分享使用同一台计算机。两个或多个事件按时间划分轮流使用计算机系统中的某一资源。

实现分时的基本方法是设立一个时间分享单位——时间片(timeslice)。它是系统规定进程一次使用处理机的最长时间。时间片的长短可以因不同系统而异,通常100ms左右。18:51:3925实现思想如下:每个用户在各自的终端上以问答方式控制程序运行,系统把中央处理器的时间划分成时间片,轮流分配给各个联机终端用户,每个用户只能在极短时间内执行,若时间片用完,而程序还未做完,则挂起等待下次分得时间片。

18:51:39262.分时系统的引入

分时系统的产生则是为了满足用户的需求在批处理系统中,用户不能干预自己程序的运行,无法得知程序运行情况,对程序的调试和排错不利。

CTSS是最早的分时操作系统,Unix是目前广泛使用的一个分时操作系统18:51:39273.分时系统的特征

(1)交互性。有人把分时系统称为交互系统。(2)及时性。终端用户的请求能在很短的时间内获得响应,通常为2~3秒钟。(3)独占性。每个用户各占一个终端,彼此独立操作,互不干扰,感觉好象自己独占主机一样。(4)同时性(也叫多路性)提高了系统资源利用率,节省了开支。18:51:3928三、实时操作系统

(RealTimeOperatingSystem)

实时系统则是指系统对特定输入做出反应的速度足以控制发出实时信号的对象,或者说计算机能够实时地响应外部事件的请求,在规定的短时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地运行。18:51:39291.实时系统的类型

实时控制系统和实时信息处理系统(信息查询系统和事务处理系统)。

导弹制导系统,飞机自动驾驶系统,火炮自动控制系统???气象预报系统、飞机订票系统和股票交易系统

情报检索系统??18:51:39302.实时系统的特征

除了多路性,独占性外,还有下面的特征(1)稍弱的交互性

它仅允许操作人员访问系统中某些特定的专用服务程序,一般不许写入或修改现有程序,不象分时系统那样能向终端用户提供数据处理和资源共享等服务。(2)实时性

对及时性的要求比分时系统要高,常以控制对象所能接受的延迟时间来确定,可以是秒级,也可以是毫秒级,甚至是微秒级。(3)可靠性

常采用多级容错措施,以保证系统的安全可靠。18:51:3931说明:批处理系统、分时系统和实时系统是三种基本的操作系统类型。而一个实际的操作系统,可能兼有三者或其中两者的功能。例如,在VAX-11系列机上所配置的VMS操作系统,便是一个兼有分时、实时和批处理功能的操作系统。18:51:3932四、单用户操作系统

单用户单任务操作系统:

在同一段时间内仅为一个用户提供服务。由于一个用户独占整个计算机系统,操作系统资源管理的任务变得不重要,为用户提供良好的工作环境成了这类操作系统最主要的目标。如MS-DOS、CP/M等。

单用户多任务操作系统:只允许一个用户上机,但允许将一个用户程序分为若干任务,使他们并发执行。Windows9x就是图形用户界面的单用户多任务操作系统的典型代表。

18:51:3933五、网络操作系统

将地理上分散的自主计算机通过通信系统的线路互连而成计算机网络。网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。网络操作系统为网上计算机进行方便而有效的网络资源共享,提供网络用户所需各种服务的软件和相关规程的集合。三大阵营:UNIX、WindowsNT、Netware

等18:51:3934

六、分布式操作系统*

集中式计算机系统:

以往的计算机系统中,其处理和控制功能都高度地集中在一台计算机上,所有的任务都由它完成

分布式计算机系统

指由多台分散的计算机,经互连网络连接而成的系统。每台计算机高度自治,又相互协同,能在系统范围内实现资源管理,任务分配、能并行地运行分布式程序。

18:51:39351.分布式操作系统与网络操作系统比较

(1)分布性:系统中的若干台机器可以互相协作来完成同一个任务(2)并行性:它的任务分配程序可将多个任务甚至单一应用分配到多个处理单元并行执行

(3)统一性:

每个计算机共享一个统一的分布式操作系统,它们都装有这个操作系统内核的副本,内核对该计算机系统进行基本的控制

(4)透明性:

将所有的软件和硬件集合成单系统,使用户感觉这样一群机器与一台单处理机分时系统是一样的

(5)可靠性:可靠性与健壮性非常好

18:51:39362.分布式系统的主要优缺点

优点:性价比高、可靠性高、可扩展性强、适合分布式的应用等。缺点:需要复杂的软件、存在潜在的通信瓶颈、数据安全性较弱等。

真正实用的分布式操作系统:荷兰Virije大学研制的Amoeba和美国CarnegieMello研制的Mach、X树系统、Plan9

18:51:39371.4操作系统的特征

一、并发性二、共享性三、虚拟性四、异步性

18:51:3938并发与并行并发:Concurrence是指两个或多个事件在同一时间间隔内发生。并行:Parallel是指两个或多个事件在同一时刻发生。单处理机系统中采用多道程序技术后,可以实现硬件之间的并行操作和程序之间的并发执行。18:51:3939程序A请求I/O程序B请求I/O程序C请求I/O

C完成I/OB完成I/OA完成I/OC再次被调度

A再次被调度

A完成

程序A程序C程序B调度程序

时间轴t多道程序并发执行示意图单线表示程序占用cpu,双线表示外设在执行相应程序的I/O请求18:51:3940小注:在单处理机中,有没有并行(并发)运行的程序?在单处理机中,有没有并行运行的情况?两道程序分别在两个处理机(多CPU)或两套处理部件中独立运行,可以实现并行。并发程序要达到“在同一时间间隔内进行”,也需要相应的硬件或软件支持。例如,两道程序分别在一个处理机或一套处理部件上运行,由于每一时刻仅能执行一道程序,所以微机上这两道程序是交替和顺序执行的,但从宏观上看,在一段时间间隔内这两道程序同时运行。所以,并发和并行都需要多道程序技术的支持。18:51:3941二、共享性

共享:是指计算机系统中的各种硬、软件资源都可以为多个用户同时使用。共享可分互斥共享和同时共享两种方式。互斥共享也叫顺序共享:是指多个进程(进程的定义在第二章)互斥地或者排他性地使用某个资源。同时共享又叫并发共享:是指在一段时间内,多个程序可以同时使用系统中的某个资源。这里的“同时”是个宏观概念,微观上,这多个进程是交替使用该资源

18:51:3942小注:并发与共享是现代操作系统的两个最基本特征,它们之间是相辅相成、互为依存的。一方面,资源共享是以程序(进程)并发执行为条件的,如果系统不允许并发执行,自然不存在资源共享问题;另一方面,程序并发执行以资源共享为基础,如果系统不能对资源共享实施有效管理,则也必将影响到程序的并发执行,甚至根本无法并发执行。只有系统能够高度并发,资源才能充分共享;也只有资源被充分共享,系统才能更好地并发。

18:51:3943三、虚拟性

在操作系统中所谓的虚拟:是通过某种技术物理上的一个实体映射为逻辑上的多个对应物。前者是实际存在的,后者是虚的,是感觉性的存在。

如WINDOWS操作系统使用了虚拟存储技术,它把外部存储器映射为用户自由使用的“无限大”的内存空间,即虚拟内存,这样保证了需要内存空间比实际内存空间大的程序能正常运行。

18:51:3944四、异步性

—不确定性

所谓异步是指内存中的多个进程都按照各自独立的、不可预知的速度向前推进。这是由于它们共享资源、并发执行的缘故。

内存中的每个进程什么时候执行,向前推进速度快慢,共需多少时间都是由执行的现场所决定。很有可能先进入内存的作业后完成,后进入内存的作业先完成。但同一程序在相同的初始数据下,无论何时运行都应获得同样的结果。所以,异步运行方式是运行的。18:51:39451.5操作系统与用户的接口

一、命令接口1、脱机命令接口2、联机命令接口二、程序接口三、图形用户接口

18:51:39461.6操作系统的结构

一、整体式结构二、层次式结构三、虚拟机系统四、客户-服务器系统

18:51:39471.7操作系统的硬件运行环境

一、通道与中断的作用二、管态与目态三、三级存储结构四、存储保护机制

18:51:39481.7.3管态与目态管态指操作系统的管理程序在执行时CPU所处的状态,又名特权态、系统态、核心态)目态指用户程序在执行时CPU所处的状态,又名用户态。CPU处于管态时既可执行特权指令,也可执行非特权指令;而CPU处于目态时只可执行非特权指令。从目态转换为管态的唯一途径是中断。从管态到目态可以通过修改程序状态字来实现,这将伴随这由操作系统程序到用户程序的转换。

18:51:3949在计算机系统中,为什么要区分管态与目态?【解答】操作系统是计算机系统中最重要的系统软件,为了能正确地进行管理和控制,其本身是不能被破坏的。因此,系统采用了区分处理机状态的办法,为操作系统程序建立一个保护环境。这样,用户程序只能在管态下运行,只能执行非特权指令,只能访问自己的存储区,从而保护了操作系统程序的正常运行。502.1多道程序设计

多道程序设计是指允许多道程序同时进入内存,并允许它们共享资源、并发执行的程序设计技术。采用这一技术的系统叫多道程序系统。多道程序设计技术根本性地推进了操作系统技术发展。是现代操作系统所采用的最基本、最重要的技术,但它也带来一些单道程序系统中没有的新问题,这些多道程序设计中的新问题可以概括为进程间的互斥与同步,另外,对系统各类资源的管理也都复杂了。对这些问题的解决导致多道程序设计的实现代价比单道程序设计高,也使得现代操作系统变得日益复杂、庞大和精巧。

51一、顺序程序的执行单道系统中,程序是顺序执行的,即程序在执行时,必须按照某种先后次序进行,仅当前一操作执行完后,才能执行其后续操作。因此在某一时刻,系统的各个部分中只有一部分在工作。

I1C1P2P1I2C2程序的顺序执行52如对于以下三条语句的程序段:

P1:a=x+yP2:b=a+1P3:c=b-6其中的语句P2必须在a被赋值后才能执行。同样,P3也只能在b被赋值后才能执行。

53二、程序顺序执行时的特征1.顺序性处理机的操作,严格按照程序所规定的顺序执行。2.封闭性程序在运行时,它独占全机资源,因而机内各资源的状态(除初始状态外),只有本程序才能改变它。程序一旦运行,执行结果不受外界因素的影响。3.可再现性

只要程序执行时的环境和初始条件相同,当程序多次重复执行,不论是“走走停停”还是“不停顿”,都获得相同的结果。54I1I2I3I4C1C2C4C3P1P2P3P4三、程序并发执行55四、并发程序执行的条件1.定义程序Pi在执行期间所需引用的诸变量ai的集合,称为Pi的读集,记作R(Pi)={a1,a2,a3,…,am}。程序Pi在执行期间所需改变的诸变量bj的集合,称为Pi的写集,记作W(Pi)={b1,b2,b3,…,bm}。

56写出下列4条语句的读集、写集。语句读集写集P1:a=x+yR(P1)={x,y}W(P1)={a}P2:b=z+1R(P2)={z}W(P2)={b}P3:c=a+bR(P3)={a,b}W(P3)={c}P4:d=c-2R(P4)={c}W(P4)={d}572.定理

如果两个程序P1和P2满足下述条件,它们便能并发执行,否则不能。

R(P1)∩W(P2)∪R(P1)∩W(P2)∪W(P2)∩W(P2)={}

即当两个程序的读集与写集的交集以及写集与写集的交集都为空集时,它们可以并发执行,否则不行。该定理是程序并发执行的条件,是Bernstein在1966年提出的,故称Bernstein条件。

58

p1p2p3p4画出这四条语句的前趋图

:程序并发执行时的特征:间断性程序在并发执行时,由于共享资源,或者为完成同一任务而相互合作,致使在并发程序间形成了相互制约的关系。失去封闭性程序在并发执行时,是多个程序共享系统中的各种资源,所以这些资源的状态可以由多个程序来改变,,使其失去了封闭性。不可再现性程序在并发执行时,由于失去了封闭性,也导致失去了可再现性。60例如:有两个循环程序A和B,A每执行一次时,都要作m=m+1操作。B每执行一次时,先执行print(m)操作,然后再将m置成“0”。A和B以不同速度运行,可能出现以下三种情况(假定某时刻变量m的值为m):m=m+1在print(m)和m=0之前。此时得到的m值分别为m+1,m+1,0m=m+1在print(m)和m=0之后。此时得到的m值分别为m,0,1m=m+1在print(m)和m=0之间。此时得到的m值分别为m,m+1,0612.2进程的描述

程序并发执行时,产生了一些新特征,所以一般的程序是不能并发执行的。为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,引入“进程”的概念。现在,“进程”已经成为操作系统乃至并发程序设计中最核心的概念,它是对正在运行的程序的抽象,操作系统的其他所有内容都是围绕着进程展开的。掌握进程的概念对于理解操作系统的实质以及分析、设计操作系统都有非常重要的意义

62一、进程的定义

“进程”这一术语,在60年代初期,首先在美国MIT的MULTICS系统和IBM公司的CTSS/360系统中引入。其中能反映进程实质的定义有:

(1)进程是程序的一次执行。(2)进程是可以和其他计算并发执行的计算。(3)进程是一个程序及其数据在处理机上顺序执行时发生的活动。(4)进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。(5)进程是进程实体的一次活动。

63我国1978年在庐山召开的全国OS研讨会上将“进程”定义为:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

一个程序为实现不同的任务可以同时有多次运行活动,每个运行活动分别作为不同的进程64二、进程的特性及与程序的区别

1.进程的五个特性

(1)动态性:生命周期。即它由系统“创建”而诞生,因被“调度”而执行,因得不到资源而暂停,最后因被“撤消”而消亡。

(2)并发性:是指不同进程的动作在时间上可以重叠,即系统内的多个进程是可以并发执行的。

(3)独立性:指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调动的基本单位。

(4)异步性:指进程按各自独立的、不可预知的速度向前推进

(5)结构特性:从结构上看,每个进程都由程序段、数据段和一个PCB三部分组成。2.进程与程序的区别

(1)从定义上看,进程是程序处理数据的过程,而程序是一组指令的有序集合;(2)进程具有动态性、并发性、独立性和异步性等,而程序不具有这些特性;(3)从进程结构特性上看,它包含程序(以及数据和PCB);(4)进程和程序并非一一对应。

66在操作系统中引入“进程”概念的主要目的是()。A.改善用户编程环境B.描述程序动态执行过程的性质C.使程序与计算过程一一对应D.提高程序的运行速度67三、进程的基本状态及其转换

1.进程的三种基本状态

(1)就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要能再获得处理机,便可立即执行

(2)执行(Running)状态:当进程已获得处理机,其程序正在处理机上执行,(3)阻塞(Blocked)状态:正在执行的进程,由于等待某事件发生而无法执行时,便放弃处理机而处于暂停状态。

在不少系统中,又增加了两种基本状态:

①新状态

②终止(Terminated)状态

68引入新状态和终止状态的原因:由于OS在建立一个新进程时,通常分为2步:第一步是为新登录的用户程序(分时系统)创建进程,并为他分配资源,此时进程即处于新状态。第二步是把新创建的进程送入就绪队列,一旦进程进入就绪队列,它便由新状态变为就绪状态。

一个结束了的进程,其退出系统的过程也分为两步:第一步是将该进程从就绪队列中移出,使之成为一个不可能再运行的进程,相应的进程处于终止状态。此时系统并不立即撤销它,而是将它暂时留在系统中,以便其它进程去收集该进程的有关信息。

69新进程就绪执行结束阻塞接纳完成I/O完成或等待的事件发生I/O请求或等待某事件2.进程三种基本状态间的转换调度时间片用完70其他的状态例如,在有的系统中,为了暂时缓和内存的紧张状态,或为了调节系统负荷,又引入了挂起功能。即暂时挂起一部分进程,把它们从内存临时换出到外存,使它们暂时和系统脱离联系。这样,就需要把进程的就绪状态进一步细分为活动就绪状态(未被挂起的就绪进程)和静止就绪状态(被挂起的就绪进程)两种。把进程的阻塞状态也细分为活动阻塞状态(未被挂起的阻塞进程)和静止阻塞状态(被挂起的阻塞进程)

71问题:1.在进程状态转换时,下列哪一种状态转换是不可能发生的?

A)就绪态→运行态B)运行态→就绪态

C)运行态→等待态D)阻塞态→运行态2.某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将(

)。

A.从就绪变为运行B.从运行变为就绪

C.从运行变为阻塞D.从阻塞变为就绪

72四、进程控制块——PCB

(ProcessControlBlock)PCB是系统为了描述和控制进程的运行而为进程定义的一种数据结构,它是进程实体的一部分,是进程存在的唯一标志,也是操作系统中最重要的结构体类型的数据结构。PCB中存放着操作系统所需的用于描述进程的当前情况以及控制进程运行的全部信息。731.PCB的作用(1)标识进程的存在:系统创建进程时,就为之创建一个PCB;进程结束时,系统又回收其PCB,进程便随之消亡。

(2)为系统提供可并发执行的独立单位:PCB使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。没有为之建立PCB的程序是不能并发执行的。

(3)为系统控制和管理进程提供所需的一切信息。

742.PCB中的信息

(1)进程标识符:(2)进程的现行状态:(3)处理机的现场保留区:(4)进程相应的程序和数据地址:(5)进程资源清单:(6)进程优先级:

(7)进程同步与通信机制:(8)进程所在PCB的链接字:(9)与进程有关的其他信息:75五、进程的队列

所谓进程队列指的是把具有相同状态的进程按照某种原则链接在一起组成的队列,它其实是PCB的一种组织形式,有时也称PCB链

因为PCB是系统中最重要也是被频繁访问的数据结构,系统中的许多模块,如调度程序、资源分配程序、中断处理程序以及监督和分析程序等,特别是运行频率很高的进程分派程序,都要对它进行读或写操作,所以PCB常驻内存的系统区中,系统将所有的PCB以数组形式连续存放组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内。

76空闲PCB队列头指针阻塞进程队列头指针就绪进程队列头指针执行进程指针PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB9430879015….77一、进程控制机构

1.操作系统的内核

通常将一些与硬件密切相关的模块,例如,中断处理程序、各种常用设备的驱动程序,以及运行频率较高的模块等安排在紧靠硬件的软件层中,并将它们常驻内存,以提高操作系统运行效率,并对它们加以特殊的保护。上述这一部分程序称为操作系统内核。操作系统的内核是计算机硬件扩充的第一层软件,是在核心态运行的操作系统程序。

2.3进程的控制

782.内核中与进程控制有关的机构

(1)原语操作:

原语本身是由若干条指令构成、用于完成特定功能的一个过程。

原子操作:一个操作中的所有动作,与一般过程的区别:要么全作,要么全不作。即:原子操作是不可分割的,它是机器指令的延伸。

79现代操作系统常采用屏蔽中断的方法来保证原语在执行时的不可分割性,这种原子性对于解决进程同步互斥问题是非常重要的。在内核中可能有许多原语,常见的内核原语有进程控制原语、用于链表操作的原语和用于控制进程互斥、同步的原语等。80(2)进程管理:

进程管理的全部或大部分功能都在内核中,这主要是因为这些功能模块的运行频率较高,例如,进程调度与分派、进程的创建、进程的撤消等,或是因为它们为多种功能模块所调用,例如,实现进程的同步和进程通信的原语等。此外,内核中的进程管理,还需要管理好进程控制块PCB.81ABCGFEHDIJKLM二、进程的控制原语

进程树

祖先进程控制原语是对进程生命期控制和实现进程状态转换的原语。821.进程创建原语Creat()引起创建进程的事件:用户登录作业调度提供服务应用请求进程创建的主要步骤:申请空白PCB为新进程分配资源初始化PCB的内容将新进程插入就绪队列832.进程撤销原语Tenminat()引起创建进程的事件:正常结束异常结束外界干扰进程撤销的过程:检索进程当前的状态,结束并置调度标志,撤销其所有的子进程,归还资源,移出队列应由父进程调用进程撤销原语来撤销,以便及时的释放其所占的资源843.进程阻塞原语Block()引起进程阻塞的事件:请求系统服务启动某种操作新数据尚未到达无新工作可作进程堵塞的过程:发现堵塞事件,调用阻塞原语把自己阻塞,停止进程的执行,修改PCB的状态信息,将其插入到自己的堵塞队列。最后转调度程序,将处理机分配给另一个就绪进程。进程的阻塞是进程自身的一种主动行为854.进程唤醒原语Wakeup()引起进程唤醒的事件:当被阻塞进程所期待的事件出现时,或者所期待的数据已经到达。由该有关进程调用进程唤醒原语,将等待该资源而阻塞的一个进程唤醒成……进程唤醒的过程:把被阻塞进程从等待该事件的阻塞队列中移出,将其PCB的现行状态,由阻塞改为就绪,再将该进程插入到PCB就绪队列中。865.挂起原语Suspend():

当出现了引起挂起的事件时,如为了暂时缓和内存的紧张状态,用户进程请求将自己挂起或者当父进程请求将自己的某个子进程挂起时,系统将利用挂起原语suspend()将制定的进程或处于阻塞状态的进程挂起。

6.激活原语Active():

将进程从外存调入内存,检查该进程的状态,改为相应的活动状态872.4进程的互斥

——你要,我也要

多道程序设计带来的问题:

并发执行的多个进程可能产生互斥或同步的相互制约关系,不采取措施,可能导致结果的不可再现性。影响系统效率,而且还可以导致系统崩溃。

为此,现代操作系统都在内核中设有进程的互斥同步机制,以控制并发执行的诸进程能有效的共享资源和相互合作,同时使并发程序的执行仍具有可再现性。88一、互斥的定义所谓进程互斥,指的是对某个系统资源,一个进程正在使用它,另外一个想用它的进程就必须等待,而不能同时使用。进程互斥是多道程序系统中进程间存在的一种源于资源共享的制约关系,也称间接制约关系,主要是由被共享资源的使用性质所决定的。89这种限定进程只能互斥地访问它的资源叫临界资源(指一次仅允许一个进程使用的资源)。

临界资源限定了使用者只能互斥地使用它。操作系统也不能中途从抢先者手中把临界资源抢来给其他进程用。因此,临界资源也是不可剥夺性资源。例:打印机、共享变量等。计算机系统中可剥夺性使用的资源主要有CPU、内存和磁盘等。9091临界区:进程中访问临界资源的那段程序代码称为临界区或临界段。使用同一临界资源的不同进程中的临界区称为同类临界区或相关临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区。

但无论采用何种方法,都应遵循临界区的使用原则,即“空则让进,忙则等待,等则有限,等则让权”。

92二、上锁和开锁原语

现代操作系统用来实现进程的互斥、同步的工具有多种,如上锁与开锁原语、信号灯机制、管程机制等。

上锁与开锁是一种最简单的进程互斥方法,它使用一个锁变量W来表示某种临界资源的状态,W=0表示资源空闲可用W=1表示资源正被使用

931.上锁原语:LOCK(W)L1:如果W=1那么转向L1;否则W=1返回voidlock(锁变量w){test:if(w为1)gototestelsew=1;/*上锁*/}

/*lock(w)*/1.考察锁位的值;2.如果原来的值为0,将锁位置1;3.如果为1,则返回第一步再次考察942.开锁原语:UNLOCK(W)

W=0;返回voidunlock(锁变量w){w=0;/*开锁

*/}/*unlock(w)*/当进程使用完资源后,它必须将锁位置成“0”,称为开锁操作。95三、用上锁和开锁原语可以解决并发进程的互斥

任何欲进入临界区的进程,必须先执行上锁原语。若上锁原语顺利通过,则进程可进入临界区;当完成对临界区资源的访问后再执行开锁原语,以释放该临界资源。

即在相关进程的程序里由上锁和开锁原语紧夹着临界区,就能保证这些进程互斥地进入各自的临界区。

96例如,甲、乙两进程要访问同一类临界资源

甲进程:其他代码;

LOCK(W);甲进程的临界区;

UNLOCK(W);其他代码;乙进程:其他代码;

LOCK(W);乙进程的临界区;

UNLOCK(W);其他代码;用上锁用上锁原语和开锁原语来实现进程的互斥的确很简单,但处理机效率不高,因为上锁原语中的条件测试操作可能引起CPU“忙等”。

972.5信号量机制

荷兰著名科学家,后来的计算机图灵奖获得者,E.W.Dijkstra于1965年提出了用作进程同步工具的信号量(semaphore)机制,这是一种卓有成效的进程互斥同步工具,已被广泛应用于现代计算机系统中。

98信号量机制的基本原理是:

两个或多个进程可以利用彼此间收发的简单的信号来实现“正确的”并发执行,一个进程在收到一个指定信号前,会被迫在一个确定的或者需要的地方停下来,从而保持同步或互斥。经典的整型信号量=》经记录型信号量=》信号量集机制CPU忙等造成死锁不易死锁,可能导致资源利用率低99一、信号量的概念

信号量,也叫信号灯,一般是由两个成员组成的数据结构,是一个确定的二元组(S,Q)S是个具有非负初值的整型变量,表示该信号量的值,且S的值只能由定义在信号量上的P操作原语和V操作原语来改变;Q是个初始状态为空的队列。

100另一定义:信号量类型是个复合类型,其一个分量是个整型分量S,另一个分量是个等待队列指针Q(一个是指向PCB的指针,当多个进程都等待同一信号量时,它们就排成一个队列,由信号量的指针项指出该队列的头。)

信号量通常可以简单反映出相应资源的使用情况,它与P,V操作原语一起使用可实现进程的同步和互斥。

101**信号量的整型分量S的值的物理含义:当S≥0时,表示某类可用资源的数目,或者说表示可以执行P操作而不会被阻塞的进程的数目;当S<0时,其绝对值表示信号量S的阻塞队列中的进程数,即系统中因请求该类资源而被阻塞的进程的数目,亦即被信号灯挡住的进程数目,这些进程需要别的进程发出相应的信号灯来唤醒。

另外,S的值只能由P、V操作来改变。

102二、P、V操作原语

P代表荷兰语的proberen,意为“测试”;V代表荷兰语的verhogen,意为“增加”。现在很多国外的文献都使用wait和signal操作(或者down和up操作)代替P、V操作。1031.定义在信号量S上的P(S)原语操作的算法描述为:

(1)S减1;(2)若S≥0,则调用P(S)的进程返回,继续执行;(3)若S<0,调用者进程调用阻塞原语Block(Q),把自己插入到信号量S的阻塞队列Q中(把相应的PCB连入该信号量队列的末尾,并放弃处理机,进入等待)。

1042.定义在信号量S上的V(S)原语操作的算法描述为:

(1)S加1;(2)若S>0,则调用V(S)的进程继续执行,返回;(3)若S<0,调用者进程调用唤醒原语Wakeup(Q)把信号量S的阻塞队列Q中的队首进程移出并唤醒,返回。105P(s)入口S-1=>SS≥0Block(Q)

返回YNP(S)操作的算法描述106V(s)入口S+1=>SS>0Wakeup(Q)

返回YNV(S)操作的算法描述107注意P(S)操作和V(S)操作的物理含义:

P(S)操作表示“等信号”,即测试一个要等的信号是否到达;V(S)操作表示“发信号”。这个信号在实现同步时就是“合作者的伙伴进程已完成前趋任务”,在实现互斥时就是“临界资源可用”。另外,在互斥问题中,每执行一次P(S)操作的含义,也可理解为进程请求一个单位的S类资源;每执行一次

V(S)操作的含义,也可理解为进程释放一个单位的S类资源。

108三、用P、V操作原语实现进程的互斥

用P、V操作原语实现进程的互斥也一样简单,只需在相关进程的临界区的前后分别施以P操作和V操作即可,即在相关进程的程序里由P操作和V操作原语紧夹着临界区,就能保证这些进程互斥地进入各自的临界区。这里所用信号量的初值一般为1,表示临界资源未被占用,且其可用数目为1。

用P、V操作原语实现进程互斥的效率更高一些,因为P操作中引入了阻塞机制,所以消除了CPU忙等现象。109P(S)V(S)P(S)V(S)P(S)V(S)P1P2P3互斥区110一个简化的异地售票程序,假设几乎同时两地有两个乘客要购买同一班次的车票各一张

两个终端售票程序都要访问存放该次车票的数据单元Pk假设它们都要对Pk做如下的访问操作“若Pk≥1,则将Pk的值减1,卖出一张票,返回否则打印‘无票’信息,返回”如果不加任何限制让这两个程序并发执行的话,结果可能会导致错误,甚至两地各卖出一张重票的现象111例2.1试用P、V操作实现火车联网订票系统中北京、天津两地的两个终端售票进程发售同一班次车票的过程。主要步骤是:

(1)分析清楚题目涉及的进程间的制约关系。(2)设置信号量(包括信号量的个数和初值,对于同步问题还要写出信号量的物理含义)。(3)给出进程相应程序的算法描述或流程控制,并把P、V操作加到程序的适当处。

112北京售票终端进程:①根据顾客订票要求找到公共数据单元PK;②P(S);③把PK的值读到工作寄存器R1中;④根据顾客订票数修改R1;⑤将R1的值回写到PK中;

⑥V(S);⑦售出顾客所订的票,返回;

113天津售票终端进程:

①根据顾客订票要求找到公共数据单元PK;②P(S);③把PK的值读到工作寄存器R2中;④根据顾客订票数修改R2;⑤将R1的值回写到PK中;⑥V(S);⑦售出顾客所订的票,返回;1142.6进程的同步(synchronism):

——你等我,我也等你

多道程序系统中,许多进程之间可能存在以下两种制约关系:

1.源于资源共享的直接制约关系(互斥)

2.源于合作相互的间接制约关系(同步)后者即一种合作进程在独自并发执行过程中的某些确定的时序点上“你等我,我也等你”的同步约束,前者可视为后者的特例(前面已经介绍)。1151.资源共享关系很多进程之间彼此无关,它们并不知道其它进程的存在。例如在分时系统中,系统分别为每个用户(终端)建立一个进程。但这些进程既然同处于一个系统中,也就必然存在着资源共享的关系,如共享CPU和I/O设备等。此时,进程的主要任务,是保证各个进程能互斥地访问临界资源。所以,系统中的资源应该不允许用户进程直接使用,而应该由系统同一分配。例如:在仅有一台打印机的系统中,两个进程提出打印请求2.相互合作关系例如输入进程、计算进程、打印进程合作完成一批数据的输入、计算和打印时的关系;中断响应过程;生活中下棋、看病时等化验结果等等。

116一、同步的定义进程同步:指的是两个或多个进程为了合作完成同一个任务,在执行速度或某些个确定的时序点上必须相互协调,即一个进程的执行依赖于另一个进程——其合作伙伴的消息,当一个进程到达了某一确定点而没有得到合作伙伴发来的“已完成某些操作”的消息时必须等待,直到该消息到达被唤醒后,才能继续向前推进。进程同步是多道程序系统中进程之间存在的一种主要源于进程间合作的制约关系,也称直接制约关系。

117父子进程就是典型的合作进程:

它们之间的同步关系有时也被形象地称为“生产者与消费者”之间的关系,“产品”(即生产者进程的输出,亦即消费者进程的输入)是它们的纽带,它们在执行过程中的某个或某些确定的时序点上有着固定的前趋后继的同步约束,即先“生产”后“消费”,这是一种“你等我”的关系。而在稍微复杂一点的进程同步问题里,合作进程间的“生产者与消费者”的关系或身份是可以经常转换的,因此,这些合作进程在执行过程中就会出现时而你等我,时而我等你的现象。

118进程同步和互斥间的关系:相似处:进程的互斥实际上是进程同步的一种特殊情况;进程的互斥和同步统称为进程同步。差别:进程互斥是进程间共享资源的使用权,这种竞争没有固定的必然联系,哪个进程竞争到使用权就归那个进程使用,直到不需要使用时再归还;而进程同步则涉及共享资源的并发进程间有一种必然的联系,当进程必须同步时,即使无进程在使用共享资源时,那么尚未得到同步消息的进程也不能去使用这个资源。119

P、V操作也都是配对出现,但对同一个信号量的P、V操作却不是同时出现在每一个进程的程序里,而是分别出现在一个进程和它的合作伙伴的代码中。而且P、V操作的出现位置都在各个合作进程中确定的时序点,即一个生产者进程在完成了前趋的生产任务后,应立即给合作伙伴——消费者进程发送一条“已完成前趋生产任务”的消息,这要执行V操作;而后继的消费者进程在消费前,应该执行对同一个信号量的P操作,以测试其合作伙伴——生产者进程“已完成前趋生产任务”的消息是否到来,如果到来就开始消费,否则就阻塞自己。

二、用P、V操作原语实现进程的同步120解答这类进程同步问题的主要步骤也是三大步:

(1)分析清楚题目涉及的进程间的制约关系(2)设置信号量(包括信号量的个数和初值及其物理含义),合作进程间需要收发几条消息相应就设置几个信号量。同步信号量的初值一般为0,表示……

(3)给出进程相应程序的算法描述或流程控制,并把P、V操作加到程序的适当处。

121=》例2.2

生产者——消费者问题

公用缓冲池,有n个缓冲区一组生产者生产产品一组消费者取走产品122生产者-消费者问题是相互合作进程关系的一种抽象

输入——计算——打印

生产者消费者生产者消费者系统中使用资源的进程——消费者系统中释放同类资源的进程——生产者123问题分析:

①生产者—消费者之间的同步关系表现为:一旦缓冲池中所有缓冲区均装满产品时,生产者必须等待消费者提供空缓冲区;一旦缓冲池中所有缓冲区全为空时,消费者必须等待生产者提供满缓冲区。

②生产者—消费者之间还有互斥关系:由于缓冲池是临界资源,所以任何进程在对缓冲区进行存取操作时都必须和其他进程互斥进行。

124问题解答:

①所用信号量设置如下:

Ⅰ)同步信号量empty,初值为n,表示消费者已把缓冲池中全部产品取走,有n个空缓冲区可用。

Ⅱ)同步信号量full,初值为0,表示生产者尚未把产品放入缓冲池,有0个满缓冲区可用。

Ⅲ)互斥信号量mutex,初值为1,以保证同时只有一个进程能够进入临界区,访问缓冲池。

125②用信号量机制解决生产者—消费者问题的算法描述如下:生产者i

消费者j生产出一产品;

P(full);P(empty);

P(mutex);P(mutex);

从缓冲区取出一产品;将该产品放入缓冲区;

V(mutex);V(mutex);

V(empty);V(full);

消费该产品;

126如果将生产者的两个P操作对调??生产者i

消费者j生产出一产品;

P(full);P(mutex);

P(mutex);P(empty)

从缓冲区取出一产品;将该产品放入缓冲区;

V(mutex);V(mutex);

V(empty);V(full)

消费该产品;127如果将消费者的两个P操作对调??生产者i

消费者j生产出一产品;

P(mutex);P(empty

);

P(full);P(mutex

从缓冲区取出一产品;将该产品放入缓冲区;

V(mutex);V(mutex

);

V(empty);V(full

消费该产品;128如果将两个V操作对调??生产者i

消费者j生产出一产品;

P(full);P(mutex);

P(mutex);P(empty)

从缓冲区取出一产品;将该产品放入缓冲区;

V(mutex);V(full);

V(empty);V(mutex)

消费该产品;129=》例2.3读者——写者问题

该问题描述的是:一组读者与一组写者循环访问共享的同一个数据对象。读者:指能对共享数据对象读的进程,写者:指对共享数据对象只要求写的进程。规定:多个读者可以同时读这个数据对象,但决不允许多个写者同时对这个数据对象进行写操作,也不允许读者、写者同时访问这个数据对象。

130读者—写者问题是共享数据对象的非合作进程关系的一种抽象

如文件管理模块中读文件、写文件等许多操作进程之间异地售票程序也可看成是写者与写者的问题读者—写者问题是指保证一个写者进程必须与其他写者或读者进程互斥地访问一个共享数据对象的同步问题。131问题分析:

①读者—写者之间的互斥关系:

写者与写者的互斥、写者与读者的互斥。设一个公用的初值为1的互斥信号量RW_mutex?但是实现了读者与读者的互斥。引入一个读者计数器变量RC。②读者—读者之间又有了互斥关系:

再设一个读者公用的初值为1的互斥信号量R_mutex

实现各个读者间互斥的访问RC132问题解答:

①所用信号量和其他变量设置如下:Ⅰ)互斥信号量RW_mutex,初值为1,用于实现写者与其他写者或读者互斥地访问共享的数据对象。Ⅱ)互斥信号量R_mutex,初值为1,用于实现诸读者互斥地访问读者计0数器变量。Ⅲ)整型变量RC,初值为0,用于对读者进行记数。

133②用信号量机制解决读者—写者问题的算法描述如下:

读者写者P(R_mutex);

P(RW_mutex);若RC=0则

P(RW_mutex);对数据对象进行写操作;RC加1;

(RW_mutex);V(R_mutex);读数据对象;P(R_mutex);RC减1;若RC=0则

V(RW_mutex);

V(R_mutex);

134=》例2.4试用用信号量机制描述两人下象棋的过程。两人下象棋的过程可以概括为:一开始只能是“红先黑后”,以后两人要循环轮流走子,直至某一方获胜或双方和棋为止。这是个只有一个生产者和一个消费者的生产者——消费者问题,是个典型的“你等我,我也等你”的问题。红方是总的前趋任务——生产者进程,黑方是总的后继任务——消费者进程,但由于下棋过程必须轮流走子,所以红黑双方的生产者消费者身份会轮流改变。棋盘则是生产者与消费者共享的缓冲。

135二人对弈过程是个纯粹的同步过程解答:①所用信号量设置如下:

Ⅰ)同步信号量hei,初值为1,表示黑方已走子,开始时可使红方先行不受阻。

Ⅱ)同步信号量hong,初值为0,表示红方尚未走子,开始时可使黑方先行受阻。136②用信号量机制描述的二人下象棋过程如下:

P(hei);P(hong);若被黑方将死,则投子认负,结束;若被红方将死则投子认负,结束;若同意与黑方作和,则结束;若同意与红方作和,则结束;否则,根据棋局思考后走一子;否则,根据棋局思考后走一子;V(hong);V(hei);137=》例2.5某小型超级市场,可容纳50人同时购物。入口处有篮子,每个购物者可拿一只篮子入内购物。出口处结帐,并归还篮子(出、入口禁止多人同时通过)。试用信号量和P、V操作写出购物者的同步算法。这是个典型的进程互斥问题138解答:①所用信号量设置如下:Ⅰ)互斥信号量S,初值为50,用以保证最多可以有50个购物者同时进入超市。Ⅱ)互斥信号量mutex,初值为1,用以保证同时只能有一个购物者进程进入出入口拿起篮子或者结帐后放下篮子。②用信号量机制给出的每个购物者购物过程的算法描述如下:139购物者i进程(解法一)购物者i进程(解法二):P(S);P(S);P(mutex);P(mutex1);从入口处进超市,并取一只篮子;同左;V(mutex);V(mutex1);进超市内选购商品;同左;P(mutex);P(mutex2);到出口结帐,并归还篮子;同左;V(mutex);V(mutex2);从出口离开超市;同左;V(S);V(S);

↓↓结束.结束.

140=》例2.6桌上有个只能盛得下一个水果的空盘子。爸爸可向盘中放苹果或桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定:当盘子空时,一次只能放入一个水果供吃者取用。试用信号量和P、V操作实现爸爸、儿子和女儿这三个循环进程之间的同步。

本题属于生产者——消费者问题的变形,相当于一个能生产两种产品的生产者(爸爸)向两个消费者(儿子和女儿)提供产品的同步问题。因此,可参考生产者与消费者问题的解法。

141解答:①所用信号量设置如下:Ⅰ)同步信号量empty,初值为1,表示盘子是空的,即儿子或女儿已把盘中的水果取走。Ⅱ)同步信号量orange,初值为0,表示爸爸尚未把桔子放入盘中。Ⅲ)同步信号量apple,初值为0,表示爸爸尚未把苹果放入盘中。

142②使用信号量机制的三个进程的同步描述如下:

爸爸进程(P):儿子进程(C1):女儿进程(C2):P(empty);

P(orange);P(apple);将水果放入盘中;从盘中取出桔子;从盘中取出苹果;若放入的是桔子,

V(empty);V(empty);则V(orange);吃桔子;吃苹果;否则,V(apple);143=》例2.7

设A、B两点之间是一段东西向的单行车道,现在要设计一个AB路段自动管理系统,管理规则如下:当AB间有车辆在行驶时同方向的车可以同时驶入AB段,但另一方向的车必须在AB段外等待;当AB段之间无车辆行驶时,到达AB段的任一方向的车都可进入AB段,但不能从两个方向同时驶入,即只能有一个方向的车驶入;当某方向在AB段行驶的车辆驶出了AB段且暂无车辆进入AB段时,应让另一方向等待的车辆进入AB段行驶。试用信号量和P、V操作管理AB路段车辆的行驶。

144解答:①所用信号量和其他变量设置如下:

Ⅰ)整型变量Car_A,初值为0,用于对从A点(东)驶入AB段的车辆进行记数。Ⅱ)整型变量Car_B,初值为0,用于对从B点(西)驶入AB段的车辆进行记数。Ⅲ)互斥信号量mutex,初值为1,用于实现不同方向的第一辆车互斥驶入AB路段。Ⅳ)互斥信号量ma,初值为1,用于实现东西向的车互斥地访问计数器变量Car_A。Ⅴ)互斥信号量mb,初值为1,用于实现西东向的车互斥地访问计数器变量Car_B。

145通过AB路段向西行驶的车辆i

向东行驶的车辆jP(ma);P(mb);若Car_A=0则P(mutex);若Car_B=0则P(mutex);Car_A加1;Car_B加1;V(ma);V(mb);车辆从A点通过AB路段到达B点;车辆从B点通过AB路段到达A点;P(ma);P(mb);Car_A减1;Car_B减1;Car_A=0则V(mutex);Car_B=0则V(mutex);

V(ma);

V(mb);

146总结上述几个有趣的实例的解题过程,可以得出这样的结论:实现进程的同步互斥实际就是给进程的并发执行增加一定的限制,以保证被访问的共享数据的完整性和进程执行结果的可再现性。147用信号量机制解这类题的三个步骤:(1)分析进程间的制约关系(2)设置信号量(3)实施P、V操作。第一步是基础、关键,第三步是核心。掌握实现进程互斥与进程同步的第三步在形式上差异:即P、V操作总是配对出现的。但P,V在互斥问题中总是出现在同一个进程的代码中,且紧紧夹着临界区;而在同步问题中,却是分别出现在两个合作进程的代码中,需要等消息的一方用P操作,相应的对同一信号量的V操作则在发出此消息的另一方中。

148练习题:1、有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果。试说明A、B两进程之间存在什么样的制约关系?为保证这两个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。要求给出信号量的含义和初值。

149解:(1)A、B两进程之间存在互斥的制约关系。因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。(2)mutex:用于互斥的信号量,初值为1。

进程A

进程B...

...

P(mutex)

P(mutex)

申请打印机

申请打印机使用打印机

使用打印机

V(mutex)

V(mutex)

1502、有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论