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

下载本文档

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

文档简介

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

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

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

4、序执行程序顺序执行 t 输入:输入: 计算:计算: 输出:输出: I1 C1 P1 I2 C2 P2 I3 C3 P3 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、.程序顺序执行程序顺序执行 顺序性:顺序性:处理机的操作严格按程序所规定的顺处理机的操作严格按程序所规定的顺 序执行,即序执行,即每一操作必须在上一个操作结束后每一操作必须在上一个操作结束后 才能开始才能开始。 封闭性:封闭性:程序执行得到的最终结果由给定的初始程序执行得到的最终结果由给定的初始 条件决定,条件决定,不受其它程序和外界因素的影响不受其它程序和外界因素的影响。 可再现性:可再现性:只要只要程序运行的初始条件和执行环程序运行的初始条件和执行环 境相同境相同,则程序重复执行时会,则程序重复执行时会得到相同的结果得到相同的结果。 程序顺序执行的特性为程序员检测程序顺序执行的特性为程序员

6、检测 和校正程序错误带来很大的方便!和校正程序错误带来很大的方便! 8 2.1 2.1 进程的基本概念进程的基本概念 2.程序顺序执行程序顺序执行 并行并行 输入:输入: 计算:计算: 输出:输出: t0 t1 t2 t3 t4 t5 t6 tt t I1 三个程序并发执行的前趋图三个程序并发执行的前趋图 I2I3 C1C2C3 P1P2P3 时间时间:5个个t 并行并行 并行并行 前驱关系前驱关系 执行顺序执行顺序 9 2.1 2.1 进程的基本概念进程的基本概念 3.程序并发执行程序并发执行 在处理一批作业时,有的程序可并发执行。在处理一批作业时,有的程序可并发执行。 程序内保持程序内保持

7、 IiCiPi 程序程序逻辑顺序性逻辑顺序性。 存在存在IiIi+1;CiCi+1; PiPi+1:表明:表明系统资源竞争系统资源竞争 带来带来顺序性前趋关系顺序性前趋关系。 不同程序之间不同程序之间 Ii+2、Ci+1 和和Pi ,没有前趋关没有前趋关 系,说明可以并发执行系,说明可以并发执行,这是,这是系统的并发性系统的并发性, 提高提高(9-5)/9 * 100% = 44%。 I1I2I3 C1C2C3 P1P2P3 10 2.1 2.1 进程的基本概念进程的基本概念 3.程序并发执行程序并发执行 相互作用和制约性。相互作用和制约性。并发执行程序既有相互并发执行程序既有相互 独立的一面

8、,表现为每个程序为用户提供特独立的一面,表现为每个程序为用户提供特 定的功能,它们之间相互独立;也有时也会定的功能,它们之间相互独立;也有时也会 直接或间接制约的一面。直接或间接制约的一面。 间断性间断性/异步性。异步性。程序在并发执行过程中,由程序在并发执行过程中,由 于等待资源或与其它程序协作完成任务,每于等待资源或与其它程序协作完成任务,每 个程序的执行过程往往不是个程序的执行过程往往不是“一气呵成一气呵成”, 而是呈现出而是呈现出“走走停停走走停停”的间断性活动规律。的间断性活动规律。 11 2.1 2.1 进程的基本概念进程的基本概念 3.程序并发执行程序并发执行 失去封闭性。失去封

9、闭性。程序并发执行时程序并发执行时,多个程序共享多个程序共享 系统资源系统资源,系统资源的状态将由多个程序改变。系统资源的状态将由多个程序改变。 一个程序在运行时,其运行环境会受其它程一个程序在运行时,其运行环境会受其它程 序的影响,失去了顺序执行的封闭性。序的影响,失去了顺序执行的封闭性。 不可再现性。不可再现性。程序并发执行时,由于失去了程序并发执行时,由于失去了 封闭性,导致其失去可再现性。即使初始条封闭性,导致其失去可再现性。即使初始条 件相同,程序多次执行的结果也可能不同。件相同,程序多次执行的结果也可能不同。 12 2.1 2.1 进程的基本概念进程的基本概念 3.程序并发执行程序

10、并发执行 推进顺序不可再现推进顺序不可再现- -支持支持 运行结果不可再现运行结果不可再现- -应避免应避免 例:两个程序例:两个程序A和和B共享一个变量共享一个变量 N (当前值为当前值为 n)。 程序程序A: N = N+1; 程序程序B: print(N ); 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=

11、0; (B, A交替运行交替运行) n1,n1,0,最终,最终N的结果为的结果为 0 n, 0 ,1, 最终最终N的结果为的结果为 1 n, 1 , 0 , 最终最终N的结果为的结果为 0 说明程序在并说明程序在并 发执行时,由发执行时,由 于失去了封闭于失去了封闭 性,其性,其计算结计算结 果已与并发程果已与并发程 序的序的执行速度执行速度 有关,有关,使程序使程序 失去可再现性失去可再现性。 13 2.1 2.1 进程的基本概念进程的基本概念 3.程序并发执行程序并发执行 在某些情况下,程序的并发执行使得执行结果在某些情况下,程序的并发执行使得执行结果 不再具有封闭性和可再现性,且可能造成

12、出现错误不再具有封闭性和可再现性,且可能造成出现错误 (执行结果受执行速度影响执行结果受执行速度影响)。)。 为了使在并发执行时不出现错误结果,必须为了使在并发执行时不出现错误结果,必须 采取某些措施来制约、控制各并发程序段执行速采取某些措施来制约、控制各并发程序段执行速 度度( (并发控制并发控制) )。 为了控制和协调各程序执行过程中的软、硬件资为了控制和协调各程序执行过程中的软、硬件资 源的共享和竞争源的共享和竞争,显然,显然,必须要有一个描述各必须要有一个描述各程序段程序段 执行过程和共享资源的执行过程和共享资源的基本单位基本单位(进程或任务进程或任务)。 14 2.1 2.1 进程的

13、基本概念进程的基本概念 3.程序并发执行程序并发执行 一、进程的定义、特征一、进程的定义、特征 1. 进程进程process的定义的定义 15 进程是一个可并发执行进程是一个可并发执行 的具有独立功能的的具有独立功能的程序程序 在某个在某个数据数据集合的一次集合的一次 执行执行过程,它也是过程,它也是OSOS进进 行资源分配和保护的基行资源分配和保护的基 本单位。本单位。 为了更好地描述和管理为了更好地描述和管理 进程,进程,OSOS中为每个进程中为每个进程 配置一个进程控制块。配置一个进程控制块。 进程的构成进程的构成 一、进程的定义、特征一、进程的定义、特征 16 程序程序进程进程 概念概

14、念/形态形态静态。面向用户静态。面向用户动态。面向动态。面向OS 存在时间存在时间永久永久的的暂时暂时的的(从创建到撤消,从创建到撤消, 有生命周期有生命周期) 组成组成代码序列代码序列程序程序 + 数据数据 + PCB 位置位置外存外存内存内存(至少其至少其PCB在内存在内存 ,如挂起状态时,如挂起状态时) 对应关系对应关系 进程和程序之间是多对多的关系。一个程序可被多进程和程序之间是多对多的关系。一个程序可被多 个进程共用,一个进程在其活动中又可调用若干个个进程共用,一个进程在其活动中又可调用若干个 程序。程序。 进程是一个独立的运行单位,能与其它进程并发活动,而程序则不是。进程是一个独立

15、的运行单位,能与其它进程并发活动,而程序则不是。 特征:结构性、特征:结构性、动态性动态性、独立性、并发性、异步性、独立性、并发性、异步性 一、进程的定义、特征一、进程的定义、特征 2. 进程进程process的基本特征的基本特征 n结构性结构性 为了描述和记录进程的运动变化过程,为了描述和记录进程的运动变化过程, 并使之能正确运行,每个进程都应配置一个并使之能正确运行,每个进程都应配置一个 PCB。所以,从结构上看,每个进程。所以,从结构上看,每个进程(进程实进程实 体体)都是由都是由程序段、相关数据段及进程控制块程序段、相关数据段及进程控制块 (PCB)组成。组成。 进程进程 = PCB

16、+ 程序程序 + 数据集合数据集合 17 一、进程的定义、特征一、进程的定义、特征 2. 进程进程process的基本特征的基本特征 动态性动态性 进程的实质是进程的实质是程序在处理机上的一次执程序在处理机上的一次执 行过程行过程,因此是动态的。所以动态性是进程,因此是动态的。所以动态性是进程 的的最基本的特征最基本的特征。同时动态性还表现在。同时动态性还表现在进程进程 是有生命周期是有生命周期的,它因创建而产生,因调度的,它因创建而产生,因调度 而执行,因得不到资源而暂停,因撤消而消而执行,因得不到资源而暂停,因撤消而消 亡。亡。 18 2. 进程进程process的基本特征的基本特征 独立

17、性独立性 进程是一个能进程是一个能独立运行独立运行的基本单位,也的基本单位,也 是是系统进行资源分配和调度的独立单位系统进行资源分配和调度的独立单位。 并发性并发性 多个进程实体多个进程实体同时存在于内存中,同时存在于内存中,在一在一 段时间内同时运行段时间内同时运行。 异步性异步性 进程以各自独立的、进程以各自独立的、不可预知的速度向不可预知的速度向 前推进前推进。 一、进程的定义、特征一、进程的定义、特征 19 二、进程状态二、进程状态 由于多道程序系统中各进程之间存在相互制由于多道程序系统中各进程之间存在相互制 约关系,约关系,使得进程的状态不断发生变化使得进程的状态不断发生变化(OS

18、的异步性的异步性)。 进程分为两大类:系统进程、用户进程。进程分为两大类:系统进程、用户进程。 进程可能由于进程可能由于等待等待I/O操作操作、竞争资源竞争资源以及以及 相互协作相互协作等原因产生了等原因产生了“走走停停走走停停”的动态性。的动态性。 因此,进程在生存期内至少具有因此,进程在生存期内至少具有三种基本状三种基本状 态。态。 20 二、二、 进程状态进程状态 进程三进程三(基本基本)状态转换图状态转换图 21 阻塞原语block() 或被抢占或被抢占 等待事件发生如等待事件发生如 事件已发生如事件已发生如 唤醒原语wakeup() 二、二、 进程状态进程状态 n一个单一个单CPU的

19、系统共有的系统共有n个进程,不考虑进程个进程,不考虑进程 状态过渡的情况,请给出:运行进程的个数。状态过渡的情况,请给出:运行进程的个数。 就绪进程的个数。等待进程的个数。就绪进程的个数。等待进程的个数。 n分析:单分析:单CPU在任一时刻只能处理一道程序,在任一时刻只能处理一道程序, 在不考虑状态过渡的情况下,任一进程只有在不考虑状态过渡的情况下,任一进程只有3 种状态,即运行、就绪和等待。但此时该系统种状态,即运行、就绪和等待。但此时该系统 其他条件未知(如资源分配情况),故无法确其他条件未知(如资源分配情况),故无法确 定就绪进程和等待进程的数目。定就绪进程和等待进程的数目。 n01。不

20、一定。不一定(0n-1)。不一定。不一定(0n)。 22 二、进程状态二、进程状态 进程五状态转换图进程五状态转换图 23 二、进程状态二、进程状态 New(新建新建/创建创建):进程正在创建:进程正在创建(作业调度时作业调度时) Ready(就绪就绪):进程已获得了除:进程已获得了除CPU以外的以外的 所有资源,所有资源,等待分配等待分配CPU。 Running(运行运行/执行执行):正在:正在CPU上执行。上执行。 Waiting(等待等待/睡眠睡眠/阻塞阻塞):因某事件:因某事件(如遇如遇 到到I/O操作请求操作请求)而而暂时无法执行下去暂时无法执行下去。 Terminated(终止终止

21、/撤消撤消/退出退出):进程:进程执行完执行完 毕毕,释放所占资源。,释放所占资源。 1. 进程的进程的5种状态种状态 24 2. 进程的状态转换进程的状态转换 进程在生存期间进程在生存期间,可以多次地从一个,可以多次地从一个状态状态 转换到另一个状态转换到另一个状态(新建和退出状态只经过一新建和退出状态只经过一 次次),即多次地处于,即多次地处于运行状态运行状态、就绪状态就绪状态、阻塞阻塞 状态状态,反映了并发程序,反映了并发程序“走走停停走走停停”的运行轨的运行轨 迹。迹。 进程不断地从一个状态转换到另一个状态进程不断地从一个状态转换到另一个状态 是有条件或原因的。这些状态随着进程的执行是

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

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

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

25、文件打开的文件 n 空空 新建;通常新建;通常 有四个事件可能导有四个事件可能导 致创建一个新进程,致创建一个新进程, 见补充表见补充表 n 新建新建 就绪;操就绪;操 作系统接纳一个进作系统接纳一个进 程时,将程时,将新建状态新建状态 修改为修改为就绪状态就绪状态。 n 就绪就绪运行;从就运行;从就 绪队列选择一个进绪队列选择一个进 程占用处理机程占用处理机,将将就就 绪态绪态改为改为运行态运行态 n 运行运行就绪;通就绪;通 常原因是正在运行常原因是正在运行 进程时间片到,从进程时间片到,从 运行态运行态进入进入就绪态就绪态 n 运行运行阻塞;阻塞; 若当前进程所请若当前进程所请 求事件,

26、或条件求事件,或条件 未能得到满足,未能得到满足, 则进入阻塞态。则进入阻塞态。 由由运行运行进入阻塞进入阻塞 态原因可能很多态原因可能很多 n 阻塞阻塞就绪;就绪; 系统内发生事件系统内发生事件 时,根据事件原时,根据事件原 因查找阻塞队列因查找阻塞队列 中的进程,查到,中的进程,查到, 将阻塞态转换为将阻塞态转换为 就绪态就绪态。 n 运行运行完成;完成; 任务执行完成,任务执行完成, 或由于其它原因或由于其它原因 无法继续运行,无法继续运行, 系统将当前进程系统将当前进程 从从运行态运行态转变为转变为 完成状态完成状态。 26 二、二、 进程状态进程状态 引起进程创建的事件:引起进程创建

27、的事件: OS 初初 始化始化 当当OS 启动时,通常会创建若干进程,特别是启动时,通常会创建若干进程,特别是 创建一些常驻系统进程。创建一些常驻系统进程。 作业作业 调度调度 在多道在多道批处理批处理OSOS中中,当,当调度一作业进内存调度一作业进内存,系系 统统为之分配必要资源,同时为之创建一进程。为之分配必要资源,同时为之创建一进程。 用户用户 登录登录 在在分时分时OSOS中中,用户在终端键入登录命令后用户在终端键入登录命令后,如,如 是合法用户,则是合法用户,则系统系统为该终端创建一个进程。为该终端创建一个进程。 OSOS提供提供 服务服务 在进程运行中,若在进程运行中,若用户需某种

28、服务用户需某种服务(如需打印如需打印 服务服务),则,则系统系统创建一进程为用户提供服务。创建一进程为用户提供服务。 应用应用 请求请求 在进程运行中,由于在进程运行中,由于进程本身的应用需求进程本身的应用需求,自自 己己创建一进程。创建一进程。 事件事件 说明说明 正常完成正常完成进程执行完任务,自行执行一个进程执行完任务,自行执行一个OS服务调用,表示已经结束运行服务调用,表示已经结束运行 无可用内存无可用内存系统无法满足进程所需要的内存空间系统无法满足进程所需要的内存空间 父进程终止父进程终止当一个父进程终止,当一个父进程终止,OS自动终止所有子孙进程自动终止所有子孙进程 父进程请求父进

29、程请求父进程具有终止后代进程的权利父进程具有终止后代进程的权利 时间超出时间超出进程等待某一事件发生的时间超过了规定的最大值进程等待某一事件发生的时间超过了规定的最大值 地址越界地址越界进程试图访问不允许访问的内存单元进程试图访问不允许访问的内存单元 保护权限错保护权限错进程试图使用不允许使用的资源或文件,或以一种不正当方式使进程试图使用不允许使用的资源或文件,或以一种不正当方式使 用,如向只读文件进行写的操作用,如向只读文件进行写的操作 数据溢出数据溢出执行了除执行了除“0”,或机器硬件无法表示的数据,或机器硬件无法表示的数据 I/O失败失败在在I/O期间发生错误,如查不到所需求的文件,期间

30、发生错误,如查不到所需求的文件,I/O设备经过多次设备经过多次 启动失败(一般启动失败(一般3-5次),从打印设备读取数据等次),从打印设备读取数据等 特权指令特权指令/ 无效指令无效指令 进程在用户态执行特权指令,或执行了一条不存在的指令(如进进程在用户态执行特权指令,或执行了一条不存在的指令(如进 入数据区,执行数据)入数据区,执行数据) 数据误用数据误用进程使用未初始化或类型错误的数据进程使用未初始化或类型错误的数据 系统操作员系统操作员 / OS干涉干涉 由于某些原因,系统操作员或由于某些原因,系统操作员或OS终止进程(如系统可能存在死锁)终止进程(如系统可能存在死锁) 补充:补充:导

31、致进程终止的原因导致进程终止的原因 28 二、二、 进程状态进程状态 n判断:进程是基于多道程序技术而提出来的。判断:进程是基于多道程序技术而提出来的。 其其最基本的特性是并发性和动态性最基本的特性是并发性和动态性;进程的;进程的 执行也即执行也即在各种状态之间多次转换的过程在各种状态之间多次转换的过程。 但但只有处于就绪、阻塞、执行这只有处于就绪、阻塞、执行这3种状态的进种状态的进 程位于内存。程位于内存。 n错误。去掉并发性;进程在新、死状态错误。去掉并发性;进程在新、死状态 上只经过一次上只经过一次(基本状态只有三个,不包括新、基本状态只有三个,不包括新、 死死);进程都在内存中。;进程

32、都在内存中。 29 二、二、 进程状态进程状态 n练习:设系统中只有进程练习:设系统中只有进程A和进程和进程B,除了互斥,除了互斥 地使用地使用CPU和打印机和打印机R外,进程外,进程A和和B不使用其不使用其 它资源。另外,进程它资源。另外,进程B的优先级比的优先级比A高,而进程高,而进程 A先于先于B准备好。进程准备好。进程A和和B的执行情况如下图的执行情况如下图 所示,其中粗实线表示进程在执行中,细实线所示,其中粗实线表示进程在执行中,细实线 表示打印机表示打印机R在使用中。(每个进程具有三种在使用中。(每个进程具有三种 状态:运行、就绪和阻塞)状态:运行、就绪和阻塞) n请说明进程请说明

33、进程A和和B在下图所示的在下图所示的T1、T2、T3、 T4时刻所处的状态;若是阻塞状态,请说明阻时刻所处的状态;若是阻塞状态,请说明阻 塞原因。塞原因。 进程进程A进程进程B t1阻塞阻塞(等待等待I/0结束结束)运行运行 t2阻塞阻塞(等待等待I/0结束结束) 阻塞阻塞(等待临界资源等待临界资源R) t3运行运行阻塞阻塞(等待等待I/0结束结束) t4就绪就绪运行运行 32 三、进程状态的扩展及其转换三、进程状态的扩展及其转换 . 挂起状态挂起状态(静止状态静止状态) 1) 引入挂起状态的原因引入挂起状态的原因 (3) 负荷调节负荷调节的需要的需要(实时系统中把不紧迫实时系统中把不紧迫 的

34、进程挂起以保证实时任务的正常运行的进程挂起以保证实时任务的正常运行) (4) OS的需要的需要(检查资源的使用情况及进行检查资源的使用情况及进行 记帐,改善系统的运行性能记帐,改善系统的运行性能) (1) 终端用户终端用户的请求的请求(发现有可疑问题时发现有可疑问题时) (2) 父进程父进程请求请求(考察、修改、协调子进程考察、修改、协调子进程) (5) 对换对换的需要的需要(缓和内存紧张的情况缓和内存紧张的情况) 33 三、进程状态的扩展及其转换三、进程状态的扩展及其转换 . 挂起状态挂起状态(静止状态静止状态) 2) 进程状态的转换进程状态的转换 (1) 活动就绪活动就绪静止就绪。挂起原语

35、静止就绪。挂起原语 (2) 活动阻塞活动阻塞静止阻塞。挂起原语静止阻塞。挂起原语 (3) 静止就绪静止就绪活动就绪。激活原语活动就绪。激活原语 (4) 静止阻塞静止阻塞活动阻塞。激活原语活动阻塞。激活原语 34 时间片到 运行 就绪阻塞 进程调度 等待某事件发生 而阻塞 所等待的事件发生 而唤醒 进程七状态转换图进程七状态转换图 三、进程状态的扩展及其转换三、进程状态的扩展及其转换 外存 内存 就绪等待 所等待的事件发生 而唤醒 换出 换出 换进换进 新建 终止 许可 挂起 许可 终止 三、进程控制块三、进程控制块(PCB) nOS是如何刻画进程的?是如何刻画进程的? nOS根据什么知道进程当

36、前所处的状态?根据什么知道进程当前所处的状态? nOS如何知道进程当前占用了哪些系统资源?如何知道进程当前占用了哪些系统资源? n如何控制进程在各个状态之间进行转换?如何控制进程在各个状态之间进行转换? nOS如何知道内存中有哪些进程?如何知道内存中有哪些进程? 35 进程控制块进程控制块PCBPCB的作用:的作用: 是是OSOS对并发执行的进程进行控制和管理的根据。对并发执行的进程进行控制和管理的根据。 也是系统用来感知进程存在的根据,即也是系统用来感知进程存在的根据,即PCBPCB是是 进程存在的唯一标志。进程存在的唯一标志。 三、进程控制块三、进程控制块(PCB) 进程控制块进程控制块(

37、PCB)是是OS为了管理和控制为了管理和控制 进程的运行,而为每一个进程定义的一个数进程的运行,而为每一个进程定义的一个数 据结构,它记录了据结构,它记录了系统管理进程所需的全部系统管理进程所需的全部 信息信息。 PCB 程序程序 代码代码 进程的组成进程的组成 (a) (b) 程序程序 代码代码 PCB 数 据数 据 集合集合 正是由于建立了正是由于建立了PCB,进程才成为了资源,进程才成为了资源 分配、分配、CPU调度的单位。调度的单位。 进程标识信进程标识信 息息 进程标识进程标识 进程名进程名 进程号进程号 用户标识用户标识 用户名用户名 用户号用户号 家族联系家族联系 父进程父进程

38、子进程子进程 CPU状态信状态信 息(现场)息(现场) 通用寄存器内容通用寄存器内容 指令计数器内容指令计数器内容 程序状态字寄存器内容程序状态字寄存器内容 用户栈指针用户栈指针 进程调度信进程调度信 息息 进程状态进程状态 进程优先数(级进程优先数(级/权)权) 等待原因等待原因 调度算法参数等调度算法参数等 进程控制信进程控制信 息息 程序和数据地址程序和数据地址 进程同步和通信机制进程同步和通信机制 资源清单资源清单 队列指针队列指针 访问权限访问权限 打开的文件打开的文件 PCB 3. 进程控制块进程控制块PCB的组织方式的组织方式 常用的三种组织方式:常用的三种组织方式: n顺序方式

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

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

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

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

43、么全部都完成,要么全部都不做。 许多系统调用就是原语。许多系统调用就是原语。 n原语可以看成是对机器指令的延伸。一般用原语可以看成是对机器指令的延伸。一般用 屏蔽中断屏蔽中断来实现。来实现。 n特性:不可分割、不可间断、不可并发的原特性:不可分割、不可间断、不可并发的原 子特性。子特性。 44 补充:原语补充:原语(primitive) 进程控制原语 进程的创建原语进程的创建原语create()() OS调用进程创建原语调用进程创建原语create()创建新进程的创建新进程的 过程过程(UNIX通过系统调用通过系统调用fork()创建进程创建进程): n申请一个空闲的申请一个空闲的PCBPCB

44、,无则创建失败,无则创建失败 n为新进程分配资源为新进程分配资源( (内存、栈、寄存器等内存、栈、寄存器等) ) n对对PCBPCB进行初始化进行初始化 n将将PCBPCB插入就绪队列插入就绪队列 n返回进程标识号返回进程标识号 一、进程创建一、进程创建 46 1. 导致进程撤消的事件导致进程撤消的事件 n进程完成功能正常结束进程完成功能正常结束 n由于某种错误导致进程异常结束由于某种错误导致进程异常结束 n祖先进程要求撤消某个子进程祖先进程要求撤消某个子进程 2. 进程的撤消原语进程的撤消原语destroy() OS调用撤消原语调用撤消原语destroy()撤消进程的过程撤消进程的过程 (U

45、NIX通过系统调用通过系统调用exit()来撤消进程来撤消进程): 二、二、进程撤消进程撤消 47 二、进程撤消二、进程撤消 N Y 由标识符在由标识符在PCB集中找集中找PCB并读状态并读状态 归还占有资源归还占有资源 从所在队列从所在队列(或链表或链表)撤消撤消PCB 中止运行、置调度标志中止运行、置调度标志 终止所有子孙进程终止所有子孙进程有子孙进程?有子孙进程? 48 n当一个进程期待的事件尚未出现时,该进程调当一个进程期待的事件尚未出现时,该进程调 用阻塞原语用阻塞原语block()将自己阻塞将自己阻塞起来。对于处于起来。对于处于 阻塞状态的进程,当该进程期待的事件出现时,阻塞状态的

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

47、阻塞队列 转进程调度转进程调度 将阻塞进程移出阻塞队列将阻塞进程移出阻塞队列 插入到就绪队列插入到就绪队列 修改修改PCBPCB中的状态中的状态 (阻塞(阻塞-就绪)就绪) 2、进程的阻塞过程、进程的阻塞过程3、进程的唤醒过程、进程的唤醒过程 50 转进程调度或返回转进程调度或返回 填空填空:为了实现进程由等待状态转换成就绪状态的状态为了实现进程由等待状态转换成就绪状态的状态 变化,操作系统应提供变化,操作系统应提供_原语原语。 51 四、进程控制原语的使用四、进程控制原语的使用 例:y=f1(x)+f2(x) main p1=create(f1(x),); p2=create(f2(x),)

48、; y=y1+y2; p1,p2为进程名 主进程 创建 子进程1 子进程2 52 四、进程控制原语的使用四、进程控制原语的使用 例:y=f1(x)+f2(x) main p1=create(f1(x),); p2=create(f2(x),); y=y1+y2; p1,p2为进程名 p1 y1=f1(x); p2 y2=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(

49、f1(x),); p2=create(f2(x),); y=y1+y2; p1,p2为进程名 p1 y1=f1(x); p2 y2=f2(x); flag1=1;flag2=1; flag1=0;flag2=0; while (flag1=0) do; 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

50、.3 2.3 进程同步进程同步 n进程同步进程同步是指对是指对多个相关进程在执行次序上进多个相关进程在执行次序上进 行协调行协调,目的是使系统中诸进程之间能有效地,目的是使系统中诸进程之间能有效地 共享资源和相互合作共享资源和相互合作,从而使程序的执行具有,从而使程序的执行具有 可再现性。或指可再现性。或指系统中诸进程之间在逻辑上的系统中诸进程之间在逻辑上的 相互制约的关系相互制约的关系( (间接间接-互斥;直接互斥;直接-同步同步) )。 n同步机制或同步机制或并发控制:并发控制:用来实现同步的机制。用来实现同步的机制。 如:信号量机制、管程机制。如:信号量机制、管程机制。 一一. .进程同

51、步的基本概念进程同步的基本概念 二二. .信号量机制信号量机制 三三. .信号量的应用信号量的应用 2.3 2.3 进程同步进程同步 一、进程同步的基本概念一、进程同步的基本概念 1. 1. 两种进程关系两种进程关系 并发进程之间在逻辑上存在着两种制约关系:并发进程之间在逻辑上存在着两种制约关系: n进程同步:进程同步:直接直接制约关系,进程之间为了制约关系,进程之间为了协作协作 完成某项任务而完成某项任务而有意识地有意识地相互相互“交换信息交换信息”。 如前分别将如前分别将I、C和和P都看成是进程都看成是进程。 n进程互斥:进程互斥:间接间接制约关系,是制约关系,是无意识无意识安排的,安排的

52、, 进程之间通过进程之间通过竞争竞争系统某些资源系统某些资源(中介中介)产生的产生的 关系关系。原因是某些资源。原因是某些资源(互斥资源互斥资源)不能同时被不能同时被 多个进程使用,进程独占分配到的资源。多个进程使用,进程独占分配到的资源。 用户用户A CPU 打印机打印机 (系统负责打印系统负责打印) 打印请求打印请求 CPU 空闲空闲 用户用户B 打印请求打印请求 A打印完打印完 A完成完成 B打印完打印完 CPU 空闲空闲B完成完成 A打印打印 B打印打印 A进入进入等待等待 打印完成打印完成 阻塞队列阻塞队列 B进入进入申申 请打印机请打印机 阻塞队列阻塞队列 A被被唤醒唤醒从阻塞进入

53、从阻塞进入 就绪队列就绪队列,后投入运后投入运 行行;B分配打印机分配打印机 B被被唤醒唤醒从阻塞从阻塞 进入就绪队列进入就绪队列, 后投入运行后投入运行 间接制约关系示例间接制约关系示例 一、进程同步的基本概念一、进程同步的基本概念 一、进程同步的基本概念一、进程同步的基本概念 同同 步步互互 斥斥 进程进程- -进程进程进程进程- -资源资源- -进程进程 时间次序上受到某种限制时间次序上受到某种限制竞争不到某一物理资源时竞争不到某一物理资源时 不允许进程工作不允许进程工作 相互清楚对方的存在及作用,相互清楚对方的存在及作用, 直接合作直接合作 不清楚其它进程情况,只不清楚其它进程情况,只

54、 是共享同一临界资源是共享同一临界资源 多个进程合作完成一个任务多个进程合作完成一个任务 各个进程之间没有任何合各个进程之间没有任何合 作任务作任务 例:发送消息进程与接受消例:发送消息进程与接受消 息进程之间;息进程之间;输入进程、计输入进程、计 算进程和输出进程之间等。算进程和输出进程之间等。 例:例:共享打印机的若干进共享打印机的若干进 程之间;共享同一全局变程之间;共享同一全局变 量的若干进程之间等。量的若干进程之间等。 2 2. . 临界资源与临界区临界资源与临界区 一、进程同步的基本概念一、进程同步的基本概念 临界资源临界资源 (互斥资源、共享变量互斥资源、共享变量):系统中:系统

55、中 某些某些一段时间内只允许一个进程使用一段时间内只允许一个进程使用的资源。的资源。 如打印机等硬件资源,以及只能互斥使用的变量、表如打印机等硬件资源,以及只能互斥使用的变量、表 格、队列等软件资源。格、队列等软件资源。 临界区:临界区:在进程中在进程中访问临界资源的代码段访问临界资源的代码段。 一、进程同步的基本概念一、进程同步的基本概念 2 2. . 临界资源与临界区临界资源与临界区 各进程互斥进入临界区各进程互斥进入临界区 进入区进入区 退出区退出区 临界区临界区 剩余区剩余区 进程中访问临界进程中访问临界 资源的代码段资源的代码段 在进入临界区之前,检查可否进在进入临界区之前,检查可否

56、进 入临界区的一段代码。如果可入临界区的一段代码。如果可 以进入临界区,通常设置相应以进入临界区,通常设置相应 “正在访问临界区正在访问临界区”标志标志 用于将用于将“正在访问正在访问 临界区临界区”标志清除标志清除 代码中的其代码中的其 余部分余部分 3. 同步机制应遵循的规则同步机制应遵循的规则 各进程需要互斥访问临界资源,即不能各进程需要互斥访问临界资源,即不能 同时进入各自的临界区。应遵守的原则:同时进入各自的临界区。应遵守的原则: 空闲让进:空闲让进:无进程在临界区时,要求进入临界无进程在临界区时,要求进入临界 区的进程可进入。区的进程可进入。 忙则等待(互斥):忙则等待(互斥):不

57、允许两个以上的进程同不允许两个以上的进程同 时进入临界区。时进入临界区。 有限等待有限等待:要求进入临界区的进程不能无限等要求进入临界区的进程不能无限等 待待, ,以免陷入以免陷入“死等死等( (饥饿饥饿)”)”。 让权等待:让权等待:当进程不能进入自己的临界区时,当进程不能进入自己的临界区时, 应立即释放处理机,以免进程陷入应立即释放处理机,以免进程陷入“忙等忙等”。 一、进程同步的基本概念一、进程同步的基本概念 二、信号量机制 信号量机制是荷兰科学家信号量机制是荷兰科学家E.W.Dijkstra在在1965 年提出的一种同步机制,由最初的年提出的一种同步机制,由最初的整型信号整型信号 量量

58、发展为发展为记录型信号量记录型信号量,进而发展为,进而发展为信号量信号量 集集。 基本原则基本原则 在多个在多个相互制约的进程相互制约的进程之间之间使用简单的信使用简单的信 号来同步号来同步,一个进程被强制停止在一个特,一个进程被强制停止在一个特 定的地方直到收到一个专门的信号。定的地方直到收到一个专门的信号。 63 在在OS中,信号量中,信号量实际上就是用来控制进程状态 的一个代表某类资源的存储单元。只能被初始化一次,只能被初始化一次, 其后其后其值仅能由其值仅能由PV操作来改变操作来改变。OS利用信号量的利用信号量的 状态对进程和资源进行管理状态对进程和资源进行管理。所以,。所以,建立一个

59、信号建立一个信号 量时,必须说明该信号量所代表的意义,并赋初值。量时,必须说明该信号量所代表的意义,并赋初值。 二、信号量机制 PV操作是操作是P操作原语操作原语P(s)和和V操作原语操作原语V(s)的的 简称,是定义在信号量上的两个操作原语,分别简称,是定义在信号量上的两个操作原语,分别 表示通过和释放。表示通过和释放。 二、信号量机制-记录型信号量 n基本思想基本思想 1.设置一个整型变量设置一个整型变量 value 代表资源数目代表资源数目; 2.设置一个链表设置一个链表 L 链接所有等待进程链接所有等待进程; 3.初始化一次初始化一次后,仅能被后,仅能被P、V操作操作(也称为(也称为

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

温馨提示

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

评论

0/150

提交评论