计算机操作系统课件复习资料_第2章_第1页
计算机操作系统课件复习资料_第2章_第2页
计算机操作系统课件复习资料_第2章_第3页
计算机操作系统课件复习资料_第2章_第4页
计算机操作系统课件复习资料_第2章_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章进第二章进 程程 管管 理理s以进程的观点研究以进程的观点研究OSOS*处理器的主要功能是执行程序。处理器的主要功能是执行程序。OSOS要实现对要实现对处理器的管理离不开与程序有关的许多概念,处理器的管理离不开与程序有关的许多概念,如进程就是如进程就是CPUCPU管理中最基本、最重要的概管理中最基本、最重要的概念。念。*很多很多OSOS的设计是的设计是基于进程的概念基于进程的概念的。的。1课程主要内容课程主要内容操作系统引论(操作系统引论(1章)章)进程管理(进程管理(2-3章)章)进程控制、进程同步、进程通信、进程控制、进程同步、进程通信、进程调度进程调度存储管理(存储管理(4章)章)

2、设备管理(设备管理(5章)章)文件管理(文件管理(6章)章)2.1进程的基本概念进程的基本概念 2.2进程控制进程控制 2.3进程同步进程同步 2.4经典进程的同步问题经典进程的同步问题 2.5 进程通信进程通信 (自学自学)2.6线程线程(自学自学) 第二章进第二章进 程程 管管 理理32.1 2.1 进程的基本概念进程的基本概念s程序执行过程程序执行过程s前趋图前趋图s程序顺序执行程序顺序执行s程序并发执行程序并发执行s进程的描述进程的描述n进程的定义、特征进程的定义、特征n进程的状态进程的状态n进程控制块进程控制块PCB42.1 2.1 进程的基本概念进程的基本概念有向有向无循环无循环图

3、图,记作记作DAG结点,可表示一语句、结点,可表示一语句、程序段或进程程序段或进程前趋关系前趋关系初始结点初始结点终止结点终止结点前趋关系前趋关系:P1P2, P2 P5, P5 P7 P1 P3, P3 P5 P1 P4, P4 P6, P6 P7直接后继直接后继51.前趋图前趋图2.1 2.1 进程的基本概念进程的基本概念程序执行时,必须按照某种先后次序逐个执程序执行时,必须按照某种先后次序逐个执行。行。例:例: s1: a:=x+y s2: b:=a-5 s3: c:=b+1s1s2s362.程序顺序执行程序顺序执行t输入:输入:计算:计算:输出:输出:I1C1P1I2C2P2I3C3P

4、3 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10三个程序顺序执行的前趋图三个程序顺序执行的前趋图t程序程序1 1:I1C1P1程序程序2 2:程序程序3 3:I2C2P2I3C3P3时间:时间:9个个t 2.1 2.1 进程的基本概念进程的基本概念7例:假定用例:假定用 I I、 C C 和和 P P 分别表示输入、计算分别表示输入、计算和输出操作(或语句)。和输出操作(或语句)。考虑时间上关系,可有下面示例。考虑时间上关系,可有下面示例。2.程序顺序执行程序顺序执行顺序性:顺序性:处理机的操作严格按程序所规定的顺处理机的操作严格按程序所规定的顺序执行,即序执行,即每一操

5、作必须在上一个操作结束后每一操作必须在上一个操作结束后才能开始才能开始。封闭性:封闭性:程序执行得到的最终结果由给定的初始程序执行得到的最终结果由给定的初始条件决定,条件决定,不受其它程序和外界因素的影响不受其它程序和外界因素的影响。 可再现性:可再现性:只要只要程序运行的初始条件和执行环程序运行的初始条件和执行环境相同境相同,则程序重复执行时会,则程序重复执行时会得到相同的结果得到相同的结果。 程序顺序执行的特性为程序员检测程序顺序执行的特性为程序员检测和校正程序错误带来很大的方便!和校正程序错误带来很大的方便!82.1 2.1 进程的基本概念进程的基本概念2.程序顺序执行程序顺序执行并行并

6、行 输入:输入:计算:计算:输出:输出: t0 t1 t2 t3 t4 t5 t6tttI1三个程序并发执行的前趋图三个程序并发执行的前趋图I2I3C1C2C3P1P2P3时间时间:5个个t并行并行并行并行前驱关系前驱关系执行顺序执行顺序92.1 2.1 进程的基本概念进程的基本概念3.程序并发执行程序并发执行在处理一批作业时,有的程序可并发执行。在处理一批作业时,有的程序可并发执行。程序内保持程序内保持 IiCiPi 程序程序逻辑顺序性逻辑顺序性。 存在存在IiIi+1;CiCi+1; PiPi+1:表明:表明系统资源竞争系统资源竞争带来带来顺序性前趋关系顺序性前趋关系。 不同程序之间不同程

7、序之间 Ii+2、Ci+1 和和Pi ,没有前趋关没有前趋关系,说明可以并发执行系,说明可以并发执行,这是,这是系统的并发性系统的并发性,提高提高(9-5)/9 * 100% = 44%。 I1I2I3C1C2C3P1P2P3102.1 2.1 进程的基本概念进程的基本概念3.程序并发执行程序并发执行相互作用和制约性。相互作用和制约性。并发执行程序既有相互并发执行程序既有相互独立的一面,表现为每个程序为用户提供特独立的一面,表现为每个程序为用户提供特定的功能,它们之间相互独立;也有时也会定的功能,它们之间相互独立;也有时也会直接或间接制约的一面。直接或间接制约的一面。间断性间断性/异步性。异步

8、性。程序在并发执行过程中,由程序在并发执行过程中,由于等待资源或与其它程序协作完成任务,每于等待资源或与其它程序协作完成任务,每个程序的执行过程往往不是个程序的执行过程往往不是“一气呵成一气呵成”,而是呈现出而是呈现出“走走停停走走停停”的间断性活动规律。的间断性活动规律。112.1 2.1 进程的基本概念进程的基本概念3.程序并发执行程序并发执行失去封闭性。失去封闭性。程序并发执行时程序并发执行时,多个程序共享多个程序共享系统资源系统资源,系统资源的状态将由多个程序改变。系统资源的状态将由多个程序改变。一个程序在运行时,其运行环境会受其它程一个程序在运行时,其运行环境会受其它程序的影响,失去

9、了顺序执行的封闭性。序的影响,失去了顺序执行的封闭性。不可再现性。不可再现性。程序并发执行时,由于失去了程序并发执行时,由于失去了封闭性,导致其失去可再现性。即使初始条封闭性,导致其失去可再现性。即使初始条件相同,程序多次执行的结果也可能不同。件相同,程序多次执行的结果也可能不同。122.1 2.1 进程的基本概念进程的基本概念3.程序并发执行程序并发执行推进顺序不可再现推进顺序不可再现- -支持支持运行结果不可再现运行结果不可再现- -应避免应避免例:两个程序例:两个程序A和和B共享一个变量共享一个变量 N (当前值为当前值为 n)。 程序程序A: N = N+1;程序程序B:print(N

10、 );N = 0;在处理机上执行关于在处理机上执行关于N的的3条指令,由于并条指令,由于并发性,有理由假定发性,有理由假定3个可能的执行序列个可能的执行序列: N=N+1; print(N); N=0;(完全顺序完全顺序AB) print(N); N=0; N=N+1;(完全顺序完全顺序BA) print(N); N=N+1; N=0; (B, A交替运行交替运行)n1,n1,0,最终,最终N的结果为的结果为 0 n, 0 ,1, 最终最终N的结果为的结果为 1 n, 1 , 0 , 最终最终N的结果为的结果为 0 说明程序在并说明程序在并发执行时,由发执行时,由于失去了封闭于失去了封闭性,其

11、性,其计算结计算结果已与并发程果已与并发程序的序的执行速度执行速度有关,有关,使程序使程序失去可再现性失去可再现性。 132.1 2.1 进程的基本概念进程的基本概念3.程序并发执行程序并发执行 在某些情况下,程序的并发执行使得执行结果在某些情况下,程序的并发执行使得执行结果不再具有封闭性和可再现性,且可能造成出现错误不再具有封闭性和可再现性,且可能造成出现错误(执行结果受执行速度影响执行结果受执行速度影响)。)。 为了使在并发执行时不出现错误结果,必须为了使在并发执行时不出现错误结果,必须采取某些措施来制约、控制各并发程序段执行速采取某些措施来制约、控制各并发程序段执行速度度( (并发控制并

12、发控制) )。 为了控制和协调各程序执行过程中的软、硬件资为了控制和协调各程序执行过程中的软、硬件资源的共享和竞争源的共享和竞争,显然,显然,必须要有一个描述各必须要有一个描述各程序段程序段执行过程和共享资源的执行过程和共享资源的基本单位基本单位(进程或任务进程或任务)。142.1 2.1 进程的基本概念进程的基本概念3.程序并发执行程序并发执行一、进程的定义、特征一、进程的定义、特征1. 进程进程process的定义的定义15进程是一个可并发执行进程是一个可并发执行的具有独立功能的的具有独立功能的程序程序在某个在某个数据数据集合的一次集合的一次执行执行过程,它也是过程,它也是OSOS进进行资

13、源分配和保护的基行资源分配和保护的基本单位。本单位。为了更好地描述和管理为了更好地描述和管理进程,进程,OSOS中为每个进程中为每个进程配置一个进程控制块。配置一个进程控制块。进程的构成进程的构成一、进程的定义、特征一、进程的定义、特征16程序程序进程进程概念概念/形态形态静态。面向用户静态。面向用户动态。面向动态。面向OS存在时间存在时间永久永久的的暂时暂时的的(从创建到撤消,从创建到撤消,有生命周期有生命周期)组成组成代码序列代码序列程序程序 + 数据数据 + PCB位置位置外存外存内存内存(至少其至少其PCB在内存在内存,如挂起状态时,如挂起状态时)对应关系对应关系进程和程序之间是多对多

14、的关系。一个程序可被多进程和程序之间是多对多的关系。一个程序可被多个进程共用,一个进程在其活动中又可调用若干个个进程共用,一个进程在其活动中又可调用若干个程序。程序。进程是一个独立的运行单位,能与其它进程并发活动,而程序则不是。进程是一个独立的运行单位,能与其它进程并发活动,而程序则不是。特征:结构性、特征:结构性、动态性动态性、独立性、并发性、异步性、独立性、并发性、异步性一、进程的定义、特征一、进程的定义、特征2. 进程进程process的基本特征的基本特征n结构性结构性 为了描述和记录进程的运动变化过程,为了描述和记录进程的运动变化过程,并使之能正确运行,每个进程都应配置一个并使之能正确

15、运行,每个进程都应配置一个PCB。所以,从结构上看,每个进程。所以,从结构上看,每个进程(进程实进程实体体)都是由都是由程序段、相关数据段及进程控制块程序段、相关数据段及进程控制块(PCB)组成。组成。 进程进程 = PCB + 程序程序 + 数据集合数据集合17一、进程的定义、特征一、进程的定义、特征2. 进程进程process的基本特征的基本特征动态性动态性 进程的实质是进程的实质是程序在处理机上的一次执程序在处理机上的一次执行过程行过程,因此是动态的。所以动态性是进程,因此是动态的。所以动态性是进程的的最基本的特征最基本的特征。同时动态性还表现在。同时动态性还表现在进程进程是有生命周期是

16、有生命周期的,它因创建而产生,因调度的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤消而消而执行,因得不到资源而暂停,因撤消而消亡。亡。182. 进程进程process的基本特征的基本特征独立性独立性 进程是一个能进程是一个能独立运行独立运行的基本单位,也的基本单位,也是是系统进行资源分配和调度的独立单位系统进行资源分配和调度的独立单位。并发性并发性 多个进程实体多个进程实体同时存在于内存中,同时存在于内存中,在一在一段时间内同时运行段时间内同时运行。异步性异步性 进程以各自独立的、进程以各自独立的、不可预知的速度向不可预知的速度向前推进前推进。一、进程的定义、特征一、进程的定义、特

17、征19二、进程状态二、进程状态由于多道程序系统中各进程之间存在相互制由于多道程序系统中各进程之间存在相互制约关系,约关系,使得进程的状态不断发生变化使得进程的状态不断发生变化(OS的异步性的异步性)。进程分为两大类:系统进程、用户进程。进程分为两大类:系统进程、用户进程。进程可能由于进程可能由于等待等待I/O操作操作、竞争资源竞争资源以及以及相互协作相互协作等原因产生了等原因产生了“走走停停走走停停”的动态性。的动态性。因此,进程在生存期内至少具有因此,进程在生存期内至少具有三种基本状三种基本状态。态。20二、二、 进程状态进程状态进程三进程三(基本基本)状态转换图状态转换图21阻塞原语blo

18、ck()或被抢占或被抢占等待事件发生如等待事件发生如事件已发生如事件已发生如唤醒原语wakeup()二、二、 进程状态进程状态n一个单一个单CPU的系统共有的系统共有n个进程,不考虑进程个进程,不考虑进程状态过渡的情况,请给出:运行进程的个数。状态过渡的情况,请给出:运行进程的个数。就绪进程的个数。等待进程的个数。就绪进程的个数。等待进程的个数。n分析:单分析:单CPU在任一时刻只能处理一道程序,在任一时刻只能处理一道程序,在不考虑状态过渡的情况下,任一进程只有在不考虑状态过渡的情况下,任一进程只有3种状态,即运行、就绪和等待。但此时该系统种状态,即运行、就绪和等待。但此时该系统其他条件未知(

19、如资源分配情况),故无法确其他条件未知(如资源分配情况),故无法确定就绪进程和等待进程的数目。定就绪进程和等待进程的数目。n01。不一定。不一定(0n-1)。不一定。不一定(0n)。22二、进程状态二、进程状态进程五状态转换图进程五状态转换图23二、进程状态二、进程状态New(新建新建/创建创建):进程正在创建:进程正在创建(作业调度时作业调度时)Ready(就绪就绪):进程已获得了除:进程已获得了除CPU以外的以外的所有资源,所有资源,等待分配等待分配CPU。Running(运行运行/执行执行):正在:正在CPU上执行。上执行。Waiting(等待等待/睡眠睡眠/阻塞阻塞):因某事件:因某事

20、件(如遇如遇到到I/O操作请求操作请求)而而暂时无法执行下去暂时无法执行下去。Terminated(终止终止/撤消撤消/退出退出):进程:进程执行完执行完毕毕,释放所占资源。,释放所占资源。1. 进程的进程的5种状态种状态242. 进程的状态转换进程的状态转换 进程在生存期间进程在生存期间,可以多次地从一个,可以多次地从一个状态状态转换到另一个状态转换到另一个状态(新建和退出状态只经过一新建和退出状态只经过一次次),即多次地处于,即多次地处于运行状态运行状态、就绪状态就绪状态、阻塞阻塞状态状态,反映了并发程序,反映了并发程序“走走停停走走停停”的运行轨的运行轨迹。迹。 进程不断地从一个状态转换

21、到另一个状态进程不断地从一个状态转换到另一个状态是有条件或原因的。这些状态随着进程的执行是有条件或原因的。这些状态随着进程的执行和外界条件发生变化而转换。和外界条件发生变化而转换。二、二、 进程状态进程状态25二、二、 进程状态进程状态进程五进程五状态及转换图状态及转换图事件发生事件发生如如 I / O 完完成成运行运行就绪就绪等待事件发生等待事件发生如等待如等待I/O时间片到时间片到调调度度阻塞阻塞新建新建完成完成接纳接纳终止终止系统设置多少状态系统设置多少状态与系统对进程管理与系统对进程管理方式有关,也与系方式有关,也与系统资源利用有关统资源利用有关但要注意,但要注意,系统中设置系统中设置

22、过多状态会过多状态会造成系统参造成系统参数和状态转数和状态转换过程增加换过程增加标识符信息标识符信息进程标识符进程标识符进程名进程名进程号进程号用户标识用户标识用户名用户名用户号用户号家族联系家族联系父进程父进程子进程子进程处理机状态信息处理机状态信息(现场)(现场)通用寄存器通用寄存器指令计数器指令计数器程序状态字程序状态字用户栈指针用户栈指针进程调度信息进程调度信息等待原因等待原因调度算法参数等调度算法参数等进程控制信息进程控制信息程序和数据地址程序和数据地址进程同步和通信机制进程同步和通信机制资源清单资源清单链接指针链接指针访问权限访问权限打开的文件打开的文件进程优先数进程优先数=45新

23、建新建标识符信息标识符信息进程标识符进程标识符进程名进程名进程号进程号用户标识用户标识用户名用户名用户号用户号家族联系家族联系父进程父进程子进程子进程处理机状态信息(现场)处理机状态信息(现场)通用寄存器通用寄存器指令计数器指令计数器程序状态字程序状态字用户栈指针用户栈指针进程调度信息进程调度信息就绪就绪进程优先数进程优先数=pid等待原因等待原因调度算法参数等调度算法参数等进程控制信息进程控制信息程序和数据地址程序和数据地址进程同步和通信机制进程同步和通信机制资源清单资源清单链接指针链接指针访问权限访问权限打开的文件打开的文件n 空空 新建;通常新建;通常有四个事件可能导有四个事件可能导致创

24、建一个新进程,致创建一个新进程,见补充表见补充表n 新建新建 就绪;操就绪;操作系统接纳一个进作系统接纳一个进程时,将程时,将新建状态新建状态修改为修改为就绪状态就绪状态。n 就绪就绪运行;从就运行;从就绪队列选择一个进绪队列选择一个进程占用处理机程占用处理机,将将就就绪态绪态改为改为运行态运行态n 运行运行就绪;通就绪;通常原因是正在运行常原因是正在运行进程时间片到,从进程时间片到,从运行态运行态进入进入就绪态就绪态n 运行运行阻塞;阻塞;若当前进程所请若当前进程所请求事件,或条件求事件,或条件未能得到满足,未能得到满足,则进入阻塞态。则进入阻塞态。由由运行运行进入阻塞进入阻塞态原因可能很多

25、态原因可能很多 n 阻塞阻塞就绪;就绪;系统内发生事件系统内发生事件时,根据事件原时,根据事件原因查找阻塞队列因查找阻塞队列中的进程,查到,中的进程,查到,将阻塞态转换为将阻塞态转换为就绪态就绪态。 n 运行运行完成;完成;任务执行完成,任务执行完成,或由于其它原因或由于其它原因无法继续运行,无法继续运行,系统将当前进程系统将当前进程从从运行态运行态转变为转变为完成状态完成状态。26二、二、 进程状态进程状态引起进程创建的事件:引起进程创建的事件:OS 初初始化始化当当OS 启动时,通常会创建若干进程,特别是启动时,通常会创建若干进程,特别是创建一些常驻系统进程。创建一些常驻系统进程。作业作业

26、调度调度在多道在多道批处理批处理OSOS中中,当,当调度一作业进内存调度一作业进内存,系系统统为之分配必要资源,同时为之创建一进程。为之分配必要资源,同时为之创建一进程。用户用户登录登录在在分时分时OSOS中中,用户在终端键入登录命令后用户在终端键入登录命令后,如,如是合法用户,则是合法用户,则系统系统为该终端创建一个进程。为该终端创建一个进程。OSOS提供提供服务服务在进程运行中,若在进程运行中,若用户需某种服务用户需某种服务(如需打印如需打印服务服务),则,则系统系统创建一进程为用户提供服务。创建一进程为用户提供服务。应用应用请求请求在进程运行中,由于在进程运行中,由于进程本身的应用需求进

27、程本身的应用需求,自自己己创建一进程。创建一进程。事件事件 说明说明正常完成正常完成进程执行完任务,自行执行一个进程执行完任务,自行执行一个OS服务调用,表示已经结束运行服务调用,表示已经结束运行无可用内存无可用内存系统无法满足进程所需要的内存空间系统无法满足进程所需要的内存空间父进程终止父进程终止当一个父进程终止,当一个父进程终止,OS自动终止所有子孙进程自动终止所有子孙进程父进程请求父进程请求父进程具有终止后代进程的权利父进程具有终止后代进程的权利时间超出时间超出进程等待某一事件发生的时间超过了规定的最大值进程等待某一事件发生的时间超过了规定的最大值地址越界地址越界进程试图访问不允许访问的

28、内存单元进程试图访问不允许访问的内存单元保护权限错保护权限错进程试图使用不允许使用的资源或文件,或以一种不正当方式使进程试图使用不允许使用的资源或文件,或以一种不正当方式使用,如向只读文件进行写的操作用,如向只读文件进行写的操作数据溢出数据溢出执行了除执行了除“0”,或机器硬件无法表示的数据,或机器硬件无法表示的数据I/O失败失败在在I/O期间发生错误,如查不到所需求的文件,期间发生错误,如查不到所需求的文件,I/O设备经过多次设备经过多次启动失败(一般启动失败(一般3-5次),从打印设备读取数据等次),从打印设备读取数据等特权指令特权指令/无效指令无效指令进程在用户态执行特权指令,或执行了一

29、条不存在的指令(如进进程在用户态执行特权指令,或执行了一条不存在的指令(如进入数据区,执行数据)入数据区,执行数据)数据误用数据误用进程使用未初始化或类型错误的数据进程使用未初始化或类型错误的数据系统操作员系统操作员/OS干涉干涉由于某些原因,系统操作员或由于某些原因,系统操作员或OS终止进程(如系统可能存在死锁)终止进程(如系统可能存在死锁)补充:补充:导致进程终止的原因导致进程终止的原因28二、二、 进程状态进程状态n判断:进程是基于多道程序技术而提出来的。判断:进程是基于多道程序技术而提出来的。其其最基本的特性是并发性和动态性最基本的特性是并发性和动态性;进程的;进程的执行也即执行也即在

30、各种状态之间多次转换的过程在各种状态之间多次转换的过程。但但只有处于就绪、阻塞、执行这只有处于就绪、阻塞、执行这3种状态的进种状态的进程位于内存。程位于内存。n错误。去掉并发性;进程在新、死状态错误。去掉并发性;进程在新、死状态上只经过一次上只经过一次(基本状态只有三个,不包括新、基本状态只有三个,不包括新、死死);进程都在内存中。;进程都在内存中。29二、二、 进程状态进程状态n练习:设系统中只有进程练习:设系统中只有进程A和进程和进程B,除了互斥,除了互斥地使用地使用CPU和打印机和打印机R外,进程外,进程A和和B不使用其不使用其它资源。另外,进程它资源。另外,进程B的优先级比的优先级比A

31、高,而进程高,而进程A先于先于B准备好。进程准备好。进程A和和B的执行情况如下图的执行情况如下图所示,其中粗实线表示进程在执行中,细实线所示,其中粗实线表示进程在执行中,细实线表示打印机表示打印机R在使用中。(每个进程具有三种在使用中。(每个进程具有三种状态:运行、就绪和阻塞)状态:运行、就绪和阻塞)n请说明进程请说明进程A和和B在下图所示的在下图所示的T1、T2、T3、T4时刻所处的状态;若是阻塞状态,请说明阻时刻所处的状态;若是阻塞状态,请说明阻塞原因。塞原因。进程进程A进程进程Bt1阻塞阻塞(等待等待I/0结束结束)运行运行t2阻塞阻塞(等待等待I/0结束结束) 阻塞阻塞(等待临界资源等

32、待临界资源R)t3运行运行阻塞阻塞(等待等待I/0结束结束)t4就绪就绪运行运行32三、进程状态的扩展及其转换三、进程状态的扩展及其转换. 挂起状态挂起状态(静止状态静止状态)1) 引入挂起状态的原因引入挂起状态的原因(3) 负荷调节负荷调节的需要的需要(实时系统中把不紧迫实时系统中把不紧迫的进程挂起以保证实时任务的正常运行的进程挂起以保证实时任务的正常运行)(4) OS的需要的需要(检查资源的使用情况及进行检查资源的使用情况及进行记帐,改善系统的运行性能记帐,改善系统的运行性能)(1) 终端用户终端用户的请求的请求(发现有可疑问题时发现有可疑问题时)(2) 父进程父进程请求请求(考察、修改、

33、协调子进程考察、修改、协调子进程)(5) 对换对换的需要的需要(缓和内存紧张的情况缓和内存紧张的情况)33三、进程状态的扩展及其转换三、进程状态的扩展及其转换. 挂起状态挂起状态(静止状态静止状态) 2) 进程状态的转换进程状态的转换(1) 活动就绪活动就绪静止就绪。挂起原语静止就绪。挂起原语(2) 活动阻塞活动阻塞静止阻塞。挂起原语静止阻塞。挂起原语(3) 静止就绪静止就绪活动就绪。激活原语活动就绪。激活原语(4) 静止阻塞静止阻塞活动阻塞。激活原语活动阻塞。激活原语34时间片到运行就绪阻塞进程调度等待某事件发生而阻塞所等待的事件发生而唤醒进程七状态转换图进程七状态转换图三、进程状态的扩展及

34、其转换三、进程状态的扩展及其转换 外存 内存就绪等待所等待的事件发生而唤醒换出换出换进换进新建终止许可挂起许可终止三、进程控制块三、进程控制块(PCB)nOS是如何刻画进程的?是如何刻画进程的?nOS根据什么知道进程当前所处的状态?根据什么知道进程当前所处的状态?nOS如何知道进程当前占用了哪些系统资源?如何知道进程当前占用了哪些系统资源?n如何控制进程在各个状态之间进行转换?如何控制进程在各个状态之间进行转换?nOS如何知道内存中有哪些进程?如何知道内存中有哪些进程?35进程控制块进程控制块PCBPCB的作用:的作用:是是OSOS对并发执行的进程进行控制和管理的根据。对并发执行的进程进行控制

35、和管理的根据。也是系统用来感知进程存在的根据,即也是系统用来感知进程存在的根据,即PCBPCB是是进程存在的唯一标志。进程存在的唯一标志。三、进程控制块三、进程控制块(PCB) 进程控制块进程控制块(PCB)是是OS为了管理和控制为了管理和控制进程的运行,而为每一个进程定义的一个数进程的运行,而为每一个进程定义的一个数据结构,它记录了据结构,它记录了系统管理进程所需的全部系统管理进程所需的全部信息信息。PCB程序程序代码代码进程的组成进程的组成(a)(b)程序程序代码代码PCB数 据数 据集合集合 正是由于建立了正是由于建立了PCB,进程才成为了资源,进程才成为了资源分配、分配、CPU调度的单

36、位。调度的单位。进程标识信进程标识信息息进程标识进程标识进程名进程名进程号进程号用户标识用户标识用户名用户名用户号用户号家族联系家族联系父进程父进程子进程子进程CPU状态信状态信息(现场)息(现场)通用寄存器内容通用寄存器内容指令计数器内容指令计数器内容程序状态字寄存器内容程序状态字寄存器内容用户栈指针用户栈指针进程调度信进程调度信息息进程状态进程状态进程优先数(级进程优先数(级/权)权)等待原因等待原因调度算法参数等调度算法参数等进程控制信进程控制信息息程序和数据地址程序和数据地址进程同步和通信机制进程同步和通信机制资源清单资源清单队列指针队列指针访问权限访问权限打开的文件打开的文件PCB3

37、. 进程控制块进程控制块PCB的组织方式的组织方式常用的三种组织方式:常用的三种组织方式:n顺序方式顺序方式链接方式链接方式三、进程控制块三、进程控制块(PCB)38 393. 进程控制块进程控制块PCB的组织方式的组织方式 索引方式索引方式2.2 进程控制进程控制n创建进程、使进程运行或暂停、终止进程等创建进程、使进程运行或暂停、终止进程等这些这些对进程的操作叫作进程控制。对进程的操作叫作进程控制。n进程控制是进程管理进程控制是进程管理( (包括进程控制、进程同包括进程控制、进程同步、进程通信、进程调度步、进程通信、进程调度) )中最基本的功能。中最基本的功能。对系统中所有的进程实施有效的管

38、理对系统中所有的进程实施有效的管理,其功,其功能包括能包括进程的创建、撤消、阻塞与唤醒进程的创建、撤消、阻塞与唤醒等。等。40 定义:是常驻内存定义:是常驻内存的、用于提高的、用于提高 OS运行效率的、紧靠运行效率的、紧靠硬件的软件层次的硬件的软件层次的功能模块(功能模块(与硬件与硬件紧密相关的、常用紧密相关的、常用设备的驱动程序及设备的驱动程序及运行频率较高的运行频率较高的)的统称。的统称。 补充:补充:OS 内核内核41存储管理CPU管理设备管理文件管理其他用户接口用户用户用户用户OS的(层次)组成结构内核shell补充:补充:OS 内核内核功能功能描述描述进程进程管理管理进程控制进程控制

39、进程同步进程同步进程通信进程通信进程调度进程调度内存内存管理管理进程地址空间的分配、回收进程地址空间的分配、回收交换交换页、段的管理页、段的管理I/O管管理理设备驱动设备驱动缓冲区管理缓冲区管理进程进程I/O设备、控制器、通道设备、控制器、通道的分配、回收的分配、回收支持支持功能功能中断处理中断处理时钟管理(其中包括中断)时钟管理(其中包括中断)监视监视OS内核典型功能内核典型功能42n为防止为防止OS及其关键数据及其关键数据(如如PCB等等)被用户有被用户有意或无意破坏,通常将意或无意破坏,通常将CPU的运行状态分为的运行状态分为两种:两种:CPUCPU状态状态特权特权( (执行指令执行指令

40、, ,访问)访问) 程序程序系统态系统态( (核心态核心态) ) 较高较高( (一切指令一切指令, ,所有所有R R及存储区及存储区) )OSOS内核内核用户态用户态较低较低( (规定指令规定指令, ,指定指定R R及存储区及存储区) )用户用户程序程序补充:补充:CPU的执行状态的执行状态43补充:原语补充:原语(primitive)nOS内核内核中中由若干条指令构成由若干条指令构成的用于完成特定的用于完成特定功能的功能的“原子操作原子操作”过程,作为一个过程,作为一个整体整体且且不不可分割可分割要么全部都完成,要么全部都不做。要么全部都完成,要么全部都不做。许多系统调用就是原语。许多系统调

41、用就是原语。n原语可以看成是对机器指令的延伸。一般用原语可以看成是对机器指令的延伸。一般用屏蔽中断屏蔽中断来实现。来实现。n特性:不可分割、不可间断、不可并发的原特性:不可分割、不可间断、不可并发的原子特性。子特性。44补充:原语补充:原语(primitive)进程控制原语进程的创建原语进程的创建原语create()()OS调用进程创建原语调用进程创建原语create()创建新进程的创建新进程的过程过程(UNIX通过系统调用通过系统调用fork()创建进程创建进程):n申请一个空闲的申请一个空闲的PCBPCB,无则创建失败,无则创建失败n为新进程分配资源为新进程分配资源( (内存、栈、寄存器等

42、内存、栈、寄存器等) )n对对PCBPCB进行初始化进行初始化n将将PCBPCB插入就绪队列插入就绪队列n返回进程标识号返回进程标识号一、进程创建一、进程创建461. 导致进程撤消的事件导致进程撤消的事件n进程完成功能正常结束进程完成功能正常结束n由于某种错误导致进程异常结束由于某种错误导致进程异常结束n祖先进程要求撤消某个子进程祖先进程要求撤消某个子进程2. 进程的撤消原语进程的撤消原语destroy() OS调用撤消原语调用撤消原语destroy()撤消进程的过程撤消进程的过程(UNIX通过系统调用通过系统调用exit()来撤消进程来撤消进程):二、二、进程撤消进程撤消47二、进程撤消二、

43、进程撤消NY由标识符在由标识符在PCB集中找集中找PCB并读状态并读状态归还占有资源归还占有资源从所在队列从所在队列(或链表或链表)撤消撤消PCB中止运行、置调度标志中止运行、置调度标志终止所有子孙进程终止所有子孙进程有子孙进程?有子孙进程?48n当一个进程期待的事件尚未出现时,该进程调当一个进程期待的事件尚未出现时,该进程调用阻塞原语用阻塞原语block()将自己阻塞将自己阻塞起来。对于处于起来。对于处于阻塞状态的进程,当该进程期待的事件出现时,阻塞状态的进程,当该进程期待的事件出现时,由其它由其它相关相关进程进程( (系统进程或事件发生进程系统进程或事件发生进程) )调调用用唤醒唤醒原语原

44、语wakeup()将阻塞的进程唤醒,使其将阻塞的进程唤醒,使其进入就绪状态。进入就绪状态。1.1.引起进程阻塞和唤醒的事件引起进程阻塞和唤醒的事件请求系统服务请求系统服务 启动某种操作启动某种操作新数据尚未到达新数据尚未到达 无新工作可做无新工作可做三、进程的阻塞与唤醒三、进程的阻塞与唤醒49停止执行停止执行保存其保存其CPUCPU现场现场修改修改PCBPCB中的状态中的状态(执行(执行-阻塞)阻塞)插入到相应的阻塞队列插入到相应的阻塞队列转进程调度转进程调度将阻塞进程移出阻塞队列将阻塞进程移出阻塞队列插入到就绪队列插入到就绪队列修改修改PCBPCB中的状态中的状态(阻塞(阻塞-就绪)就绪)2

45、、进程的阻塞过程、进程的阻塞过程3、进程的唤醒过程、进程的唤醒过程50转进程调度或返回转进程调度或返回填空填空:为了实现进程由等待状态转换成就绪状态的状态为了实现进程由等待状态转换成就绪状态的状态变化,操作系统应提供变化,操作系统应提供_原语原语。51四、进程控制原语的使用四、进程控制原语的使用例:y=f1(x)+f2(x)main p1=create(f1(x),); p2=create(f2(x),); y=y1+y2;p1,p2为进程名主进程创建子进程1 子进程252四、进程控制原语的使用四、进程控制原语的使用例:y=f1(x)+f2(x)main p1=create(f1(x),);

46、p2=create(f2(x),); y=y1+y2;p1,p2为进程名p1y1=f1(x);p2y2=f2(x);flag1=1;flag2=1;flag1=0;flag2=0;while (flag1=0) do;while (flag2=0) do;53四、进程控制原语的使用四、进程控制原语的使用例: y=f1(x)+f2(x)main p1=create(f1(x),); p2=create(f2(x),); y=y1+y2;p1,p2为进程名p1y1=f1(x);p2y2=f2(x);flag1=1;flag2=1;flag1=0;flag2=0;while (flag1=0) do

47、;while (flag2=0) do;flag1=0; flag2=0;flag11=0; flag21=0;if (flag1=0) flag11=1;block(*); if (flag2=0) flag21=1;block(*); if (flag11=1)wakeup(*);if (flag21=1)wakeup(*);2.3 2.3 进程同步进程同步n进程同步进程同步是指对是指对多个相关进程在执行次序上进多个相关进程在执行次序上进行协调行协调,目的是使系统中诸进程之间能有效地,目的是使系统中诸进程之间能有效地共享资源和相互合作共享资源和相互合作,从而使程序的执行具有,从而使程序的执

48、行具有可再现性。或指可再现性。或指系统中诸进程之间在逻辑上的系统中诸进程之间在逻辑上的相互制约的关系相互制约的关系( (间接间接-互斥;直接互斥;直接-同步同步) )。n同步机制或同步机制或并发控制:并发控制:用来实现同步的机制。用来实现同步的机制。如:信号量机制、管程机制。如:信号量机制、管程机制。一一. .进程同步的基本概念进程同步的基本概念二二. .信号量机制信号量机制三三. .信号量的应用信号量的应用2.3 2.3 进程同步进程同步一、进程同步的基本概念一、进程同步的基本概念1. 1. 两种进程关系两种进程关系并发进程之间在逻辑上存在着两种制约关系:并发进程之间在逻辑上存在着两种制约关

49、系:n进程同步:进程同步:直接直接制约关系,进程之间为了制约关系,进程之间为了协作协作完成某项任务而完成某项任务而有意识地有意识地相互相互“交换信息交换信息”。如前分别将如前分别将I、C和和P都看成是进程都看成是进程。 n进程互斥:进程互斥:间接间接制约关系,是制约关系,是无意识无意识安排的,安排的,进程之间通过进程之间通过竞争竞争系统某些资源系统某些资源(中介中介)产生的产生的关系关系。原因是某些资源。原因是某些资源(互斥资源互斥资源)不能同时被不能同时被多个进程使用,进程独占分配到的资源。多个进程使用,进程独占分配到的资源。用户用户ACPU 打印机打印机(系统负责打印系统负责打印)打印请求

50、打印请求CPU空闲空闲用户用户B打印请求打印请求A打印完打印完A完成完成B打印完打印完CPU空闲空闲B完成完成A打印打印B打印打印A进入进入等待等待打印完成打印完成阻塞队列阻塞队列B进入进入申申请打印机请打印机阻塞队列阻塞队列A被被唤醒唤醒从阻塞进入从阻塞进入就绪队列就绪队列,后投入运后投入运行行;B分配打印机分配打印机B被被唤醒唤醒从阻塞从阻塞进入就绪队列进入就绪队列,后投入运行后投入运行间接制约关系示例间接制约关系示例一、进程同步的基本概念一、进程同步的基本概念一、进程同步的基本概念一、进程同步的基本概念同同 步步互互 斥斥进程进程- -进程进程进程进程- -资源资源- -进程进程时间次序

51、上受到某种限制时间次序上受到某种限制竞争不到某一物理资源时竞争不到某一物理资源时不允许进程工作不允许进程工作相互清楚对方的存在及作用,相互清楚对方的存在及作用,直接合作直接合作不清楚其它进程情况,只不清楚其它进程情况,只是共享同一临界资源是共享同一临界资源多个进程合作完成一个任务多个进程合作完成一个任务 各个进程之间没有任何合各个进程之间没有任何合作任务作任务例:发送消息进程与接受消例:发送消息进程与接受消息进程之间;息进程之间;输入进程、计输入进程、计算进程和输出进程之间等。算进程和输出进程之间等。例:例:共享打印机的若干进共享打印机的若干进程之间;共享同一全局变程之间;共享同一全局变量的若

52、干进程之间等。量的若干进程之间等。2 2. . 临界资源与临界区临界资源与临界区一、进程同步的基本概念一、进程同步的基本概念 临界资源临界资源 (互斥资源、共享变量互斥资源、共享变量):系统中:系统中某些某些一段时间内只允许一个进程使用一段时间内只允许一个进程使用的资源。的资源。如打印机等硬件资源,以及只能互斥使用的变量、表如打印机等硬件资源,以及只能互斥使用的变量、表格、队列等软件资源。格、队列等软件资源。 临界区:临界区:在进程中在进程中访问临界资源的代码段访问临界资源的代码段。一、进程同步的基本概念一、进程同步的基本概念2 2. . 临界资源与临界区临界资源与临界区各进程互斥进入临界区各

53、进程互斥进入临界区进入区进入区退出区退出区临界区临界区剩余区剩余区进程中访问临界进程中访问临界资源的代码段资源的代码段在进入临界区之前,检查可否进在进入临界区之前,检查可否进入临界区的一段代码。如果可入临界区的一段代码。如果可以进入临界区,通常设置相应以进入临界区,通常设置相应“正在访问临界区正在访问临界区”标志标志用于将用于将“正在访问正在访问临界区临界区”标志清除标志清除代码中的其代码中的其余部分余部分3. 同步机制应遵循的规则同步机制应遵循的规则 各进程需要互斥访问临界资源,即不能各进程需要互斥访问临界资源,即不能同时进入各自的临界区。应遵守的原则:同时进入各自的临界区。应遵守的原则:空

54、闲让进:空闲让进:无进程在临界区时,要求进入临界无进程在临界区时,要求进入临界区的进程可进入。区的进程可进入。忙则等待(互斥):忙则等待(互斥):不允许两个以上的进程同不允许两个以上的进程同时进入临界区。时进入临界区。有限等待有限等待:要求进入临界区的进程不能无限等要求进入临界区的进程不能无限等待待, ,以免陷入以免陷入“死等死等( (饥饿饥饿)”)”。让权等待:让权等待:当进程不能进入自己的临界区时,当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入应立即释放处理机,以免进程陷入“忙等忙等”。一、进程同步的基本概念一、进程同步的基本概念二、信号量机制信号量机制是荷兰科学家信号量机制

55、是荷兰科学家E.W.Dijkstra在在1965年提出的一种同步机制,由最初的年提出的一种同步机制,由最初的整型信号整型信号量量发展为发展为记录型信号量记录型信号量,进而发展为,进而发展为信号量信号量集集。基本原则基本原则在多个在多个相互制约的进程相互制约的进程之间之间使用简单的信使用简单的信号来同步号来同步,一个进程被强制停止在一个特,一个进程被强制停止在一个特定的地方直到收到一个专门的信号。定的地方直到收到一个专门的信号。63 在在OS中,信号量中,信号量实际上就是用来控制进程状态的一个代表某类资源的存储单元。只能被初始化一次,只能被初始化一次,其后其后其值仅能由其值仅能由PV操作来改变操

56、作来改变。OS利用信号量的利用信号量的状态对进程和资源进行管理状态对进程和资源进行管理。所以,。所以,建立一个信号建立一个信号量时,必须说明该信号量所代表的意义,并赋初值。量时,必须说明该信号量所代表的意义,并赋初值。二、信号量机制 PV操作是操作是P操作原语操作原语P(s)和和V操作原语操作原语V(s)的的简称,是定义在信号量上的两个操作原语,分别简称,是定义在信号量上的两个操作原语,分别表示通过和释放。表示通过和释放。 二、信号量机制-记录型信号量n基本思想基本思想1.设置一个整型变量设置一个整型变量 value 代表资源数目代表资源数目;2.设置一个链表设置一个链表 L 链接所有等待进程

57、链接所有等待进程;3.初始化一次初始化一次后,仅能被后,仅能被P、V操作操作(也称为(也称为wait和和signal操作)两个原语访问。操作)两个原语访问。n数据结构数据结构 struct semaphore value: integer; /可用资源个数,初值=0 L: list of process; /该信号量的等待进程队列,初始为空 信号量的一般结构及信号量的一般结构及PCB队列队列信号量的声明与初始化:信号量的声明与初始化: var s:semaphore:= 初值;PCBPCB队列(阻塞进程队列)队列(阻塞进程队列) s.value 信号量信号量s 二、信号量机制-记录型信号量 P

58、、V操作定义操作定义P(s)/ wait(s) s.value=s.value - 1; /一次申请一个资源一次申请一个资源 if (s.value 0) /说明无资源可用说明无资源可用 block(s.L);/阻塞自己阻塞自己申请资源不成申请资源不成功功。该进程阻。该进程阻塞,该进程的塞,该进程的PCB插入等待插入等待队列队列s.L的末尾。的末尾。二、信号量机制-记录型信号量若申请成功,则进程继续执行。若申请成功,则进程继续执行。V(s) /signal(S) s.value=s.value + 1; /一次释放一个资源一次释放一个资源 if (s.value 0:表示有:表示有s.valu

59、e个资源可用且无进程在等个资源可用且无进程在等待该资源。待该资源。=0:表示无资源可用且无进程在等待该资源。:表示无资源可用且无进程在等待该资源。0:表示无资源可用且有:表示无资源可用且有|s.value|个进程在等个进程在等待该资源。待该资源。P、V操作的含义操作的含义P(s):表示申请一个资源:表示申请一个资源(可能成功或不成功可能成功或不成功) V(s):表示释放一个资源:表示释放一个资源(可能要唤醒其它进程可能要唤醒其它进程)二、信号量机制-记录型信号量三、信号量的应用三、信号量的应用n利用信号量实现前驱关系利用信号量实现前驱关系n利用信号量实现进程互斥:利用信号量实现进程互斥:互斥信

60、号量互斥信号量(公公有信号量有信号量)n利用信号量实现进程同步:利用信号量实现进程同步:同步信号量同步信号量(私私有信号量,资源信号量有信号量,资源信号量)利用信号量实现前驱关系利用信号量实现前驱关系P1P1P2P2三、信号量的应用三、信号量的应用var s:semaphore:=0; / s0 表示表示P1尚未执行完尚未执行完P1执行执行;V(s);P(s);P2执行执行;如此即可实现先执行如此即可实现先执行P1,再执行,再执行P2解决办法:解决办法:为为每个前驱关系每个前驱关系设置设置一个同步信号量一个同步信号量,初值均为,初值均为0例: y=f1(x)+f2(x)semaphore s1

温馨提示

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

评论

0/150

提交评论