操作系统原理课件.ppt
《操作系统原理课件.ppt》由会员分享,可在线阅读,更多相关《操作系统原理课件.ppt(96页珍藏版)》请在课桌文档上搜索。
1、1,第三章 进程管理,3.1 进程概述 3.2 进程控制块 3.3 调度 3.4 UNIX系统的进程调度 3.5 进程控制 3.6 进程的创建和图像改换 3.7 线程 3.8 Linux进程管理,2,3.1 进程概述,程序的执行有两种方式:顺序执行和并发执行。顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统;现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。,3,程序:是一个在时间上严格有序的指令集合。程序规定了完成某一任务时,计算机所需做的各种操作,以及这些操作的执行时间。程序的顺序执行:具有独立功能的程序独占CPU直至得到最终结果的过程。,程序
2、,4,程序顺序执行时的特征,(1)顺序性:(执行的顺序性)由于内存中每次只有一道程序,因此各个程序是按次序执行的,即执行完一个以后,再执行下一个。(2)封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定(3)可再现性:结果的再现性,初始条件相同则结果相同。,5,程序的并发执行及其特征,1.程序的并发执行,6,程序并发执行时的特征,间断(异步)性:执行的顺序性被打破,“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系;失去封闭性:资源的独占性被打破,共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。失去可再现性:失
3、去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。,7,不加控制的并发执行所带来的影响,例:为了了解某单行道的交通流量,在路口安放一个监视器,功能是有车通过该路段时,就向计算机发送一个信号。程序A功能:接收到监视器信号时,就在计数单元COUNT上加1;程序B功能:每个半个小时,打印COUNT的值,然后清零。,程序A:While(1)A1:收到监视器信号;A2:COUNT=COUNT+1;,程序B:While(1)B1:延迟半小时;B2:打印COUNT的值;B3:COUNT=0;,A1A2B1B2A1A2B3,8,3.1.1 进程的概念,程序本身完全是个静态的概
4、念(程序是完成某个功能的指令的集合),而系统及其中的各个程序实际上是处于不断变化的状态,程序的概念反映不了这种动态性;其次,程序概念也反映不了系统中的并行特性。综上所述,静态的程序概念已不敷使用,需要引用一个新的概念“进程”。,9,进程的概念,进程是程序处于一个执行环境中在一个数据集上的运行过程,它是系统进行资源分配和调度的一个可并发执行的独立单位。,10,进程的特征,(1)动态性 进程的实质是程序的一次执行过程,因此,动态性是进程的最基本特征。动态性还表现为:“它由创建而产生,由调度而执行,由撤消而消亡”。可见,进程有一定的生命期,而程序只是一组有序指令的集合,并存放于某种介质上,本身并无运
5、动的含义,因此是静态的。(2)并发性 这是指多个进程能在一段时间内同时运行,并发性是进程的重要特征。引入进程的目的也正是为了使其程序能和其他进程的程序并发执行,而程序(没有建立进程)是不能并发执行的(由于程序不反映执行过程)。,11,进程的特征,(3)独立性 这是指进程是一个能独立运行、独立分配资源和独立调度的基本单位,凡未建立进程的程序,都不能作为一个独立的单位参加运行。只有进程有资格向系统提出申请资源并获得系统提供的服务。(4)异步性 这是指进程按各自独立的、不可预知的速度向前推进,或说进程按异步方式运行。(5)结构性 为使进程能独立运行,应为之配置一个称为“进程控制块”的数据结构,简称P
6、CB。,12,进程和程序的联系与区别:,(1)联系。程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没有程序,进程就失去了其实际存在的意义。,13,进程和程序的联系与区别:,(2)区别。进程是程序的一次动态执行活动,而程序是进程运行的静态描述文本。一个进程可以执行一个或多个程序,反之,同一程序也可被多个进程同时执行。程序是一种软件资源,它可以长期保存,而进程是一次执行过程,它是暂时存在的、动态地产生和中止的。,14,特权指令、管态、目态,特权指令:只能由操作系统使用的指令。非特权指令:大家(用户和操作系统)都能使用的指令。用户执行状态,又称用户态,目态(目标程序态),
7、进程的用户程序段执行时,该程序处于用户态。用户态时不可直接访问受保护的OS代码;系统执行状态,又称系统态,核心态,管态(管理程序态),进程的系统程序执行时,该进程处于系统态。核心态时可以执行OS代码,可以访问全部进程空间。,15,3.1.2 进程的组成,进程是在一个上下文的执行环境中执行的,这个执行环境称为进程的映像,或称图像。它包括处理机中各通用寄存器的值、进程的内存映像、打开文件的状态和进程占用资源的信息等很多部分。进程映像的关键部分是存储器映像。进程存储器映像由以下几部分组成:进程控制块、进程执行的程序(code)、进程执行时所用的数据、进程执行时使用的工作区,16,进程的组成,17,1
8、.进程控制块,进程控制块PCB(ProcessControlBlock)是系统用于查询和控制进程运行的档案,它描述进程的特征,记载进程的历史,决定进程的命运。由于PCB较大,一些系统将其分割成两部分:一部分是进程基本控制块,这部分记录不管进程是否在执行,操作系统都需要访问的进程控制信息,因此,进程基本控制块要常驻内存;另一部分是进程扩充控制块,当进程不处于执行状态时,操作系统就不会访问这部分信息,扩充控制块能对换到盘交换区中。,18,2.共享正文段,用高级语言编写的程序一般是可重入的“纯代码”,也即是它可以被多个进程并发地执行的。共享正文段不限于包括程序,还可包括不可修改的常数。用户用C语言所
9、编的程序经编译后产生的代码也是作为共享正文段装入内存的,19,3.数据区,进程执行时用到的数据,如C程序中的外部变量和静态变量;如进程执行的程序为非共享程序(如用汇编语言编写,可以在执行时修改执行的代码和其中夹带的数据),则也可构成数据区的一部分。,20,4.工作区,进程在核心态运行时的工作区为核心栈;在用户态下运行时的工作区为用户栈;在调用核心的函数或用户函数时,两种栈分别用于传递参数、存放返回地址、保护现场以及为局部动态变量提供存储空间。此外,核心栈还可用于保护中断现场,用户栈还用于向主程序(main函数)传递命令行参数等。,21,3.1.3 进程的状态及其变化,进程具有生存期,它有一个创
10、建、活动及消亡的过程。进程在其活动期间可以因外部和内部的原因进入“睡眠”阶段。“睡眠”的进程会被“唤醒”而继续先前的活动。为了完成一组特定的任务,进程也可采用“克隆”技术,生成一个或多个子进程,互相配合地工作。进程在其整个生存期间可处于不同的状态,有一些不同的特征,22,就绪(Ready)状态:一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)。“万事俱备,只欠东风”。位于“就绪队列”中。2)执行状态(Running):进程占有了包括CPU在内的全部资源,并在CPU上运行。3)阻塞状态(Blocked):也称等待态、睡眠态、封锁态、挂起态等。指进程因
11、等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)。处于阻塞态的进程位于阻塞队列中。,23,运行Running,就绪Ready,阻塞Blocked,Dispatch,Timeout,Event,Wait,Event,Occurs,基本状态间的转换,24,在实际的操作系统中,为了管理和调度的便利,还将进程的状态进一步细分,例如,UNIX系统V定义了10种进程的状态:#define SSLEEP 1 睡眠状态#define SWAIT 2 等待状态,该状态已被废弃#define SRUN 3 执行状态或就绪状态#define SIDL 4 创建子进程状态#define SZ
12、OMB 5 等待善后处理状态#define SSTOP 6 进程处于被跟踪的暂停状态#define SXBRK 7 因数据段扩展时未满足的换出状态#define SXSTK 8 因栈段扩展时未满足的换出状态#define SXFRK 9 创建子进程时内存不够,父进程锁定在内存的状态#define SXTXT 10 因正文段扩展未满足而被换出的状态,25,3.2 进程控制块,为了掌握进程的运行状况和便于管理和控制进程的运行,操作系统为每一个进程设置了一个数据结构进程控制块(PCB)。进程控制块是进程的控制结构,包含了进程的描述信息、控制信息和资源信息以及现场保护区。,26,1.进程控制块的作用,
13、进程控制块是由OS维护的用来记录进程相关信息和管理进程设置的一个专门的数据结构。进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。PCB是进程动态特性的集中反映。系统通过PCB感知进程的存在,通过PCB中所包含的各项变量的变化,掌握进程的状态以达到控制进程活动的目的;,27,PCB随进程的创建而填写,随进程的撤消而释放;系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的PCB结构常驻内存;系统将所有PCB组织成
14、若干个队列,存放在操作系统中专门开辟的PCB区内。,28,2.进程控制块中的信息,1)进程标识符 进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符:(1)内部标识符。在所有的操作系统中,都为每一个进 程赋予一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。(2)外部标识符。它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。,29,2)处理机状态 处理机状态信息主要是由处理机的各种寄存器中的内容组成的。通用寄存器,又称为
15、用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有 832 个通用寄存器,在RISC结构的计算机中可超过 100 个;指令计数器,其中存放了要访问的下一条指令的地址;程序状态字PSW,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。,30,3)进程调度信息 在PCB中还存放一些与进程调度和进程对换有关的信息,包括:进程状态,指明进程的当前状态,作为进程调度和对换时的依据;进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优
16、先获得处理机;进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等;事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。,31,4)进程控制信息 程序和数据的地址,是指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;进程同步和通信机制,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;资源清单,是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;链接指针,它给出了本进程(PCB)所在队列中的下一
17、个进程的PCB的首地址。,32,PCB的存放,有些系统将进程控制块分成两个部分:一部分是进程无论处于什么状态,系统都可能要查询和处理的 PCB 成员,这部分就要常驻内存;另一部分是进程不在执行时系统就不需要访问的 PCB成员,在内存紧张时可以将它们换到盘交换区,以为其他进程腾出宝贵的内存空间。在UNIX中,常驻内存的进程PCB部分是proc结构;在UNIX中,非常驻内存的 PCB 部分是进程扩充控制块 user 结构;,33,3.进程控制块的组织方式,早期的UNIX系统将进程的proc结构组成一个顺序存放的线性表,系统中可以存在的最大进程数受表的大小的限制(如50个)。当要对处于某种状态的进程
18、控制或调度时,就要扫描整个proc表,这大大地降低了系统的效率。系统 V 用链式方式组织 PCB 队列,不同状态的进程链接成就绪队列、阻塞队列等不同的队列。为了便于系统的调度和控制,对于就绪状态进程,还可以将其分成优先级不同的几个就绪队列。对于阻塞进程,可根据原因不同,组成若干个队列。,34,35,3.3 调度,3.3.1 调度概述,1.高级调度(High Scheduling),又称为作业调度或长程调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行。因此有时也把作业调度称为接纳调度。在每次执行作业调度时,都
19、须做出以下两个决定。1)接纳多少个作业,取决于多道程序度。2)接纳哪些作业,取决于调度算法,36,2.中级调度(Intermediate-Level Scheduling),又称中程调度,它决定处于交换区中的就绪进程中哪一个可以调入内存,以便直接参与对CPU的竞争。在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞状态的进程调至交换区,以便为调入进程腾出空间。这相当于使处于内存中的进程和处于盘交换区中的进程交换了位置,故中级调度又称为“对换调度”。中级调度是为了缓解内存资源的紧张状态,在多道程序范畴内实现进程动态覆盖和进程级的虚拟存储器技术。一个进程在其运行期间可能需要经过多次中级调度
20、。,37,3.低级调度(Low Level Scheduling)(进程调度或短程调度),它决定驻在内存中的哪一个就绪进程可以占用CPU,使其获得实实在在的执行权力,故低级调度又可称处理机调度或分派调度。低级调度执行频度很高,调度算法也比较复杂,是操作系统中最活跃、最重要的调度程序,对系统的性能影响也最大。,38,39,3.3.2 进程调度策略,进程调度策略是指在什么情况下用什么方式,在内存中的就绪进程之间进行切换和分配处理机。进程切换的方式有两种:一种是不可剥夺(或不可抢占)方式,即一个进程在获得处理机后,除非因运行结束或进入了阻塞状态等原因自己放弃处理机,否则就可以一直运行下去,不会被其他
21、进程抢占处理机;另一种是可剥夺方式,即在某些条件下系统可以强制剥夺正在运行中进程使用处理机的权利,将其分配给系统中另一个合适的就绪进程,40,在设计一个调度算法时,应考虑以下的因素。针对不同的系统应当考虑不同的设计目标。如对于批处理系统应当以提高计算机系统的运行效率、取得最大的作业吞吐量和减少作业平均周转时间为主要目标;对于交互式分时系统,应当以能及时响应用户的请求为主要目标;对于实时系统,应当能对紧急事件做出及时处理和安全可靠为头等重要的考虑因素。调度算法应能充分使用系统中各种类型的资源,使多个设备能并行地工作,41,应当既能在某一原则下公平地对待系统中的各个进程,使它们能均衡地使用处理机,
22、也能考虑不同类型进程具有不同的优先权利,在一定程度下满足用户对优先级的要求,但也不能造成某些低优先权的进程可能无限期地推迟任务完成的时间。合理的系统开销,42,3.3.3 进程调度算法,在OS中调度的实质是一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法。目前存在的多种调度算法中,有的算法适用于作业调度,有的算法适用于进程调度;但也有些调度算法既可用于作业调度,也可用于进程调度。,43,1.先来先服务调度算法(FCFS-First Come First Serve),按照作业进入系统的先后次序进行调度,先进入系统者先调
23、度;即启动等待时间最长的作业。优点:实现简单、公平缺点:没考虑资源利用率和作业的特殊性,对短作业不公平。,44,先来先服务调度算法,带权周转时间周转时间/请求服务时间,45,短作业(进程)优先调度算法,短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法,是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法,则是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度。,46,
24、47,SJ(P)F调度算法也存在不容忽视的缺点:(1)该算法对长作业不利,如作业C的周转时间由10增至16,其带权周转时间由2增至3.1。更严重的是,如果有一长作业(进程)进入系统的后备队列(就绪队列),由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度。(2)该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理。(3)由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。,48,2.时间片轮转法 在早期的时间片轮转法中,系统将
25、所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间。,49,时间片轮转法比较适合于交互式的分时系统,对于用户输入的每一条命令,系统能保证在一个不太长的时间内对此做出响应。时间片轮转法是剥夺式调度算法,因此系统需要花费额外开销用于各个就绪进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 课件

链接地址:https://www.desk33.com/p-229659.html