第2章处理机管理_第1页
第2章处理机管理_第2页
第2章处理机管理_第3页
第2章处理机管理_第4页
第2章处理机管理_第5页
已阅读5页,还剩193页未读 继续免费阅读

下载本文档

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

文档简介

第二章第二章处理机管理处理机管理学习要点学习要点 概述 进程与线程 进程通信 进程调度 死锁 实用系统中的进程第第 1节节 概述概述 多用户 程序 并发程序多用户多用户 多用户 是指多个用户同时通过终端连接到计算机主机上,同时要求计算机处理希望实现的功能,同时使用主存储器、辅助存储器、输入 /输出设备。 这里的 “ 同时 ” 是一个 宏观的概念 ,是指若干个用户在不感知其他用户存在的情况下,在同一时间范围内独立地使用计算机系统。 事实上,大部分计算机资源都是 不可能同时使用 的,如处理器,所以从微观上看,各用户程序并不能同时使用计算机的资源。 上述 宏观和微观上的巨大差异 ,就要求操作系统通过高超的策略、细致的分配和有效的管理来实现。程序程序 程序 是由适合于计算机处理的一系列指令,按照一定的逻辑要求被划分为多个相关模块,而这些模块必须顺序地执行。 程序具有如下三个本质的特点: 程序的运行是 顺序的 ; 程序的运行时 封闭的 ; 程序的运行过程 可以再现 。 当一个程序在计算机系统中 单独运行 时,上述程序的本质特点是能够保证的,因此程序的运行也就不会出现错误。 但在多用户环境中, 多个程序同时运行 ,上述程序的本质特点是将由于程序间对资源的争夺而无法保证,因此程序的运行也就会出现错误。并发程序并发程序 并发程序即指在多用户环境中存在的宏观上并行运行的程序。 并发程序在逻辑上是并行的,而在物理上是串行的,如图所示。 并发程序具有以下三个特点: 动态性:运行的时间和顺序是不可预测的。 制约性:对计算机资源的争夺使程序运行受到制约。 并发性:在程序运行顺序不确定的情况下,需避免导致程序运行结果的不确定。程序 A程序 B程序 CCPU t微观上串行宏观上并行A B C A B C程序 A程序 B程序 C并发程序:并发程序运行图第第 2节节 进程与线程进程与线程 进程的定义 进程的状态及其转换 进程描述机构和进程实体 原语 线程的定义进程进程 进程的引入 “ 程序 ” 一词大家都非常熟悉,接触计算机的人、学计算机的人,多少都需要会写点程序代码。程序的定义是: 指令的有序集合 ,由它规定计算机完成某一任务时所需做的各种操作及操作顺序。 程序是顺序执行的,如图所示 程序的顺序执行有如下特点:程序执行的特点程序执行的特点( 1)程序执行的 顺序性 : CPU的操作严格按照程序所规定的顺序执行,即前一步操作完成后,才能进入下一步操作。( 2)程序运行时对资源的 独占性 :程序运行时,运行程序独占系统全部资源,没有其它程序与之争夺,只有程序本身的动作才能改变资源的状态。( 3)程序结果的 可再现性 :当对某一程序重复执行时,只要初始条件相同,必然获得相同的结果,程序执行的结果与执行速度、时间无关。( 4)程序结果的 封闭性 :程序运行时间的长短和最终结果,只由初始条件和程序本身来确定,不会受到来自它以外的其它因素的影响,也就是说,单道程序的运行自成一体,具有封闭性。程序的并发执行程序的并发执行 多个程序的 并发执行 ,如图所示( I-输入、 C-处理、 P-输出)并行执行的特性并行执行的特性 程序的并行执行产生了一些和程序顺序执行时不同的特点,这些特性概括如下:( 1)程序执行时的 资源共享性 :程序并发执行时,整个系统资源已经不能被某一个程序所独占,多个程序共享计算机系统中的各种软、硬件资源。硬资源包括 CPU、内存、外设等;软件资源除指各种系统软件之外,还包括各种共享的数据等。( 2)程序 失去了封闭性和可再现性 :程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,即资源的状态不能反映出某一个程序执行的情况,致使程序的结果失去封闭性。这样某程序在执行时,必然会受其它程序的影响。程序在并发执行时失去了封闭性,也将要导致其失去可再现性。(3) 并发程序之间的 相互制约性 :由于程序并发执行,它们共享系统内的各种资源,因此程序之间的关系就要复杂得多,产生相互制约关系。并发程序实例(并发程序实例( n为共享变量)为共享变量)/* Program A */int n=0; / 设置一个全局变量 n初值为 0 main() / 进入并发执行 while(1) / 无限循环 n+; / 程序 A每次对 n+1 /* Program B */main() / 进入并发执行 while(1) / 无限循环 printf(“%d“,n); / 程序 B每次打印 n的值n=0; / 并将 n置为 0并发程序的制约性并发程序的制约性 例如在上图中 P1、 C2和 I3是并行的程序段。但如果 C1程序段未完成,则不仅 P1程序段无法执行,而且 C2程序段也不能进行。因为 C1和 C2不能共用一个处理器完成计算操作,使得 C2处于暂时等待状态,只有 C1完成后, C2才能恢复执行。所以 程序并发执行使本来相互无逻辑关系的用户程序之间产生了相互关系 ,使得并发执行的程序具有了 “ 执行 暂停 执行 ” 的活动规律,产生了程序执行的间断性特征。如果想要并发程序还能保证封闭性和可再现性,那么几段程序间就要保证 无共享变量 。并发与顺序的比较并发与顺序的比较顺序程序 并发程序执行过程 顺序执行 并发执行程序与执行对应 一一对应 一个程序可对应多个执行封闭性 独占资源,具有封闭性 共享资源,不具有封闭性确定性 具有 无可再现性 具有 无程序间关系 无 有直接或间接制约关系进程的概念进程的概念 进程的概念 进程( Process)这个名词最早是 1960 年在 MIT 的MULTICS 和 IBM 公司的 TSS/360系统中提出的,直到目前对进程的定义和名称均不统一,不同的系统中采用不同的术语名称,例如, MIT 称进程 (Process), IBM 公司称任务( Task)和 Univac 公司称活动( Active)。可以说进程的定义多种多样,国内学术界较为一致的看法是:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位 ( 1978 年全国操作系统学术会议)。 进程的属性进程的属性 进程具有如下属性( 1)结构性:进程包含了数据集合和运行于其上的程序,为了描述和记录进程的动态变化过程使其能正确运行,还需配置一个进程控制块,所以,每个进程至少有三要素组成: 程序、数据和进程控制块 。( 2)共享性:同一程序同时运行于不同数据集合上时,构成不同的进程。或者说,多个不同的进程可以共享相同的程序,所以, 进程和程序不是一一对应的 。( 3)动态性: 进程是程序在数据集合上的一次执行过程,是动态概念 ,同时,它还有生命周期,由创建而产生,由调度而执行,由撤销而消亡;而 程序是一组有序指令序列,是静态概念 ,所以,程序作为一种系统资源是永久存在的。进程的属性进程的属性( 4)独立性: 进程既是系统中资源分配和保护的基本单位,也是系统调度的独立单位 (单线程进程)。凡是未建立进程的程序,都不能作为独立单位参与运行。通常,每个进程都可以以各自独立的速度在 CPU 上推进(有的教材称之为异步性)。( 5)制约性:并发进程之间存在着制约关系, 进程在进行的关键点上需要相互等待或互通消息 ,以保证程序执行的可再现性和计算结果的唯一性。( 6)并发性:进程可以并发地执行,进程的并发性能 改进资源利用率和提高系统效率 。进程与程序的联系与区别进程与程序的联系与区别 进程和程序的联系及区别( 1)进程是动态的,程序是静态的( 2)进程是暂时的,程序是永久的( 3)进程与程序的组成不同( 4)进程与程序的对应关系:进程和程序之间不存在一一对应关系。一个程序可以对应多个进程;反之,一个进程至少要对应一个程序,或对应多个程序,多个进程也可对应相同的程序。( 5)进程具有并发特征(独立性和异步性)进程的状态进程的状态 进程的状态 进程的三状态模型运行态( running) :进程占有 CPU正在运行。进程已获得必要的资源并占有 CPU,正在执行的状态。在单 CPU系统中,只能有一个进程处于运行状态。在多 CPU系统中则可能有多个进程处于运行状态。就绪态( ready) :进程具备运行条件,等待系统分配 CPU以便运行。进程已得到除 CPU以外的全部资源,是一旦获得 CPU就可以执行的状态,此时的进程是在就绪队列中。阻塞态( blocked) :又称为等待( wait)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。进程的状态图进程的状态图进程状态转换进程状态转换 引起进程状态转换的具体原因如下: 就绪态 运行态 : CPU空闲时,调度程序选中一个就绪进程来执行,也就是说处于就绪态的某进程被进程调度程序的执行选中; 运行态 阻塞态 :等待使用资源或某事件发生,如等待外设数据、等待人工干预。它是由运行进程自己主动改变的,一个正在运行的进程启动了某一外围设备后,等待该外围设备传输完成时,使自己由运行态变为阻塞态。进程状态转换进程状态转换 阻塞态 就绪态 :资源得到满足或某事件己经发生,如外设传输结束、人工干预完成。它是由外界事件引起的,外围设备传输已经完成时,请求中断,由 I/O中断处理程序把因等待这一 I/O完成而阻塞的进程变为就绪态。 运行态 就绪态 :运行时间片到、或出现有更高优先级的进程到来。此时,处于运行态的进程被剥夺 CPU。采用时间片轮转法调度时,当前运行进程用完分给它的时间片后,将由运行态变为就绪态;或采用优先级调度时,若有更高优先级的进程变为就绪态,当前进程被迫放弃 CPU,使自己由运行态变为就绪态,之后转进程调度。进程的五状态模型进程的五状态模型 进程的 五状态 模型 NULL 创建态 :执行一个程序,创建一个子进程。 创建态 就绪态 :操作系统完成了进程创建的必要操作,并且当前系统的性能和内存的容量均允许时,提交执行。 运行态 终止态:当一个进程到达了自然结束点、或是出现了无法克服的错误、或是被操作系统所终结、或是被其他进程终结。 终止态 NULL :完成善后操作,回收资源,退出内存。 就绪态 终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。 阻塞态 终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。进程的五状态模型进程的五状态模型进程的七状态模型进程的七状态模型 进程的 七状态 模型:引起 进程挂起 的 原因 是多样的,主要有 系统中的进程均处于等待状态, CPU空闲,此时需要把一些等待进程对换出去,以腾出足够的内存装入就绪进程运行。 进程竞争资源,导致系统资源不足,负荷过重,此时需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。进程的七状态模型进程的七状态模型 把一些定期执行的进程(如审计程序、监控程序、记账程序)对换出去,以减轻系统负荷。 用户要求挂起自己的进程,以便根据中间执行情况和中间结果进行某些调试、检查和改正。 父进程要求挂起自己的后代进程,以进行某些检查和改正。 操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。进程的七状态模型进程的七状态模型七种状态的转换七种状态的转换 引起进程状态转换的具体原因如下: 阻塞态 挂起阻塞态:如果当前不存在就绪进程,也就是CPU目前处于空闲状态,那么就必须将一个阻塞态进程对换出去成为挂起阻塞态,以便 腾出内存 ,装入新的就绪进程。 挂起阻塞态 挂起就绪态:引起进程等待的事件发生之后,相应的挂起阻塞态进程将转换为挂起就绪态。 挂起就绪态 就绪态:当内存中没有就绪态进程,或者挂起就绪态进程具有比就绪态进程 更高的优先级 ,系统将把挂起就绪态进程调回内存并转换成就绪态。 就绪态 挂起就绪态:内存中的进程都处于就绪状态,此时外存中有一个 更高优先级 的任务需要运行,但内存的空间不够,则必须把内存中的就绪态进程对换出去成为挂起就绪态。七种状态转换七种状态转换 挂起阻塞态 阻塞态:当一个进程等待一个事件时,原则上不需要把它调入内存。但是在下面一种情况下,这一状态变化是可能的。当一个进程退出后,内存已经有了足够的自由空间,而某个挂起阻塞态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件 即将结束 ,便可能发生这一状态变化。 运行态 挂起就绪态:当一个具有 较高优先级 的挂起阻塞态进程的等待事件结束后,它需要抢占 CPU,而此时内存空间不够,从而,可能导致正在运行的进程转化为挂起就绪态。另外,处于

温馨提示

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

评论

0/150

提交评论