您好,欢迎访问三七文档
进程描述和控制Chapter3本章主要内容进程状态两状态模型五状态模型七状态模型进程描述进程控制UNIXSVR4进程管理程序的顺序执行1.基本概念程序:一个在时间上按严格次序、顺序执行的操作序列。程序的顺序执行:一个具有独立功能的程序独占处理机,直至得到最终结果的过程。操作:数据处理的一种规则,一经启动就需要在有限时间内完成。计算:若干操作严格顺序执行的集合。程序的顺序执行的例子程序的顺序执行的特征顺序性:一个程序的各个部分的执行,严格地按照某种先后次序执行;封闭性:程序在封闭的环境下运行,即程序运行时独占全部系统资源;可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。程序顺序执行的特性,为程序员检测和校正程序的错误带来很大方便。程序的并发执行使一个程序分成若干个可同时执行的程序模块的方法称为并发程序设计,能够并发执行的程序成为并发程序,程序段的执行在时间上是重叠程序的并发执行的特征•不可再现性:由于程序的并发执行,打破了由另一程序独占系统资源的封闭性,因而破坏了可再现性。•间断性:程序并发执行时,由于它们共享资源或程序之间相互合作完成一项共同任务,因而使程序之间相互制约。•通信性:对于相互合作的程序,为了更有效地协调运行,相互之间进行通信。•独立性:并发程序在运行过程中,既然是作为一个独立的运行实体,它也必然具有作为一个单位去获得资源的独立性。进程的引入背景单机多用户,多任务,人机交互的需求需要程序并行,从而产生分时服务系统程序越来越大,使得计算机内存不能同时将它们装下,但计算机必须对用户的请求做出响应在这种情况下,为了描述程序在计算机系统内的执行情况引入了进程的概念进程是现代OS的基本处理对象,它不同于程序,但又与程序有密切联系。程序(用户任务):在外存中表现为“文件”,是静态的;在内存中表现为“进程”,是动态的。进程同程序的比较程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。进程更能真实地描述并发,而程序不能进程是由程序和数据、进程控制块等组成的进程具有创建其他进程的功能,而程序没有同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以对应多个进程OS的大多数需求与进程有关交替执行多个进程,在合理的响应时间范围内使处理器的使用率最大。给进程分配资源,同时避免死锁支持进程间的通信和用户创建进程什么是进程进程的定义有很多种:一个正在执行的程序计算机中正在运行的程序的一个实例可以分配给处理器并有处理执行的一个实体由一个顺序的执行线程、一个当前状态和一组相关的系统资源所描述的活动单元进程控制块PCBOS维持的用于管理进程的数据结构用于中断与恢复由OS创建、管理支持多道程序设计、多处理的关键工具PCB是进程存在的唯一证明PCB应该包含与进程相关的所有信息标识符状态优先级进程控制块PCBOS维持的用于管理进程的数据结构用于中断与恢复由OS创建、管理支持多道程序设计、多处理的关键工具PCB是一个结构体,由操作系统创建和维护PCB是进程存在的唯一证明PCB包含与进程相关的所有信息标识符状态优先级程序计数器内存指针上下文IO状态进程的身份证每个进程唯一两个进程,其它属性可以相同,标识符一定不同追查进程其它属性的入口只要知道进程的标识符,就可通过查找PCB获得关于这个进程的其它信息进程标识符进程的特征(注意与程序的对比)动态性:有一定的生命期并发性:多个进程实体,同存于内存中,能在一段时间内同时运行独立性:进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位异步性:进程按各自独立的、不可预知的速度向前推进,i.e.进程按异步方式运行结构特征:进程实体是由程序段、数据段及进程控制块等部分组成--进程映像从研究进程的执行轨迹出发,观察进程在执行过程中经历了哪些状态每种状态各自的特点操作系统根据进程所处的不同状态,区别管理3.2进程状态请注意,只有进程才有状态一说,程序无所谓状态进程的轨迹(进程代码+调度器代码)用来描述执行的指令序列可以用轨迹来描述单个进程的行为分派器(调度器)使一个进程切换到另一个进程3.2进程状态所谓调度器,即翻牌子选择器进程执行的例子处理器执行到第13个指令周期时三个进程在存储器中的布局进程的轨迹等待I/O操作进程A和C最初执行的12条指令,进程B执行4条指令22TracefromProcessor’spointofviewTimeoutI/OTimeoutTimeoutTimeslice:6instructioncycles3.2.1两状态进程模型OS为了描述进程的各个阶段的特征,控制和管理进程,定义了各种进程状态,理论上可分为二态、五态等一个进程可以处于两种状态之一:运行未运行两状态进程模型为了控制进程,需要描述它们的行为进程可以处于以下两种状态之一运行态未运行态队列轮状图分派器从队列中选择一个进程在处理机上执行。被中断的进程转移到进程等待队列,或者,因为任务结束而离开系统。未运行的进程必须保持在某种类型的队列中,等待执行。牌子列表3.2.2进程何时创建创建的原因新的批作业交互登录提供一项服务而创建,如打印由现有的进程生成进程派生:OS为另一个进程的显示请求创建一个进程动作建立管理该进程的数据结构在主存中给它分配地址空间3.2.2进程何时终止批处理作业中发出Halt指令用户退出系统结束一个应用程序错误和故障条件进程终止的原因正常完成超过时限无可用存储器越界保护错误例如写入一个只读文件算术错误时间超出进程等待某一事件发生的时间超过了规定的最大值进程终止的原因I/O失败无效指令试图执行一个不存在的指令特权指令数据误用操作员或操作系统干涉例如,如果存在死锁父进程终止父进程请求3.2.3五状态模型在两状态进程模型实现中,非运行状态的进程存在着:已经就绪等待执行的进程处于阻塞状态等待I/O操作结束的进程分派程序不能只考虑队列中最老的进程,而应该查找那些未被阻塞且在队列中时间最长的进程将非运行状态分成两个状态:就绪(ready)阻塞(blocked)进程的三种基本状态1)就绪(Ready)状态2)执行状态3)阻塞状态进程的三种基本状态及其转换就绪阻塞执行时间片完进程调度I/O完成I/O请求3.2.3五状态模型运行态占用CPU运行,运行态进程数目不大于CPU数目就绪态已占有除CPU之外的所有请求资源,只等待分配CPU即可运行阻塞态进程运行时需要等待I/O操作或其它相关事件无法继续运行新建态PCB已经创建,但还没有加载到主存中的新进程,退出态进程完成或致命错误而结束进程状态转换的事件类型1、Null→新建:创建执行一个程序的新进程,原因见表3.12、新建→就绪:OS准备好再接纳一个进程时,即为其建立PCB和资源分配的过程3、就绪→运行:从就绪进程表中选择一个进程进入运行态4、运行→退出:进程完成或取消进程状态转换5、运行→就绪:1、(时间片用尽)正在运行的进程到达了“允许不中断执行”的最大时间。2、(抢占)有更高优先级的进程处于就绪状态6、运行→阻塞:进程请求的事件未完成,如I/O未完成,申请资源等7、阻塞→就绪:当所等待的事件发生时,如I/O完成,申请资源成功等8、就绪/阻塞→退出:父进程终止一个子进程,或者父进程终止导致相关的所有子进程终止(任何一个状态都可以→退出)指令周期数五状态的队列模型进入系统的每个进程被放置在就绪队列中,当OS选择另一个进程运行时,将从就绪队列中选择3.2.4被挂起的进程五状态模型的问题没有使用虚存的系统,所有队列中的所有进程必须驻留在主存中I/O活动比计算速度慢很多即使是多道程序设计,大多时候CPU仍然可能是空闲的怎么办?扩充主存,以适应更多的进程主存价格问题程序对存储器空间的要求的增长速度快交换:把主存中某个进程的一部分或全部移到磁盘中(系统中最快的I/O操作)内存不足内存不足硬盘顶上3.2.4被挂起的进程把主存中某个进程的一部分或全部移到磁盘中换出到磁盘时阻塞状态变成挂起状态挂起队列:暂时保存从主存中被“驱逐”出的进程队列(或说被挂起来的进程队列)增加两个新状态阻塞/挂起:进程在辅存中并等待一个事件就绪/挂起:进程在辅存中,但是只要被载入主存就可以执行挂起的动机有两个:回收内存暂停进程有一个挂起状态不足:可能会把仍被阻塞的进程取回主存,这将没有任何意义激活挂起事件发生事件发生等待事件挂起调度超时释放活动激活七状态进程模型-有两个挂起状态新状态转换阻塞--阻塞挂起当内存紧缺造成所有进程都阻塞时,OS会将一些阻塞进程挂起,使得至少一个进程转化为就绪进程阻塞挂起--就绪挂起当等待的事件发生时(状态信息已在OS中)就绪挂起--就绪1、内存富余,且没有就绪进程时;2、有就绪进程,但挂起的进程优先级较高时就绪--就绪挂起(较少见)1、为了释放内存(在这之前,应优先执行阻塞--阻塞挂起);2、为了暂停进程进程挂起的原因表3.3(p90)理清七状态中的四个关键状态状态运行条件满足运行条件不满足在内存中就绪阻塞不在内存中就绪挂起阻塞挂起3.3进程描述P1:正在运行,至少一部分在主存中,控制着两个I/O设备P2:被阻塞,正在等待分配给P1的I/O设备Pn:已经被换出,处于挂起状态最基本的问题:OS为了控制进程和管理资源需要哪些信息?3.3.1操作系统的控制结构操作系统必须掌握关于每个进程和资源当前状态的信息方法:构造并维护它所管理的每个实体的信息表内存I/O设备文件进程……...………..0511510N21Task[]N+1nr_tasks任务结构体进程0Init_task任务结构体进程n任务结构体进程2任务结构体进程1图4.1linux任务结构体的管理PCB0PCB1PCB2PCBnPCB指针0PCB指针1PCB指针2PCB指针n存储表用于跟踪主存和虚拟内存包括的信息:分配给进程的主存分配给进程的虚拟内存主存块或虚存块的任何保护属性,如哪些进程可以访问某些共享存储器区域管理虚存所需要的任何信息I/O表管理计算机系统中的I/O设备和通道包括的信息I/O设备可用或者已分配I/O操作的状态作为I/O传送的源和目标的主存单元文件表管理文件包括的信息:文件是否存在文件在辅存中的位置当前状态其它属性大部分信息可能由文件管理系统维护和使用进程表管理进程包括的信息:进程的位置管理时所必需的属性进程ID进程状态存储器中的位置3.3.2进程控制结构管理和控制进程的前提条件进程的位置进程属性进程ID进程状态存储器中的位置进程位置进程的物理表示是?进程必须包括一个或一组被执行的程序局部变量、全局变量任何已定义常量的数据单元栈进程控制块(PCB)进程属性的集合进程映像(processimage)程序、数据、栈和属性的集合进程映像的位置依赖于使用的存储管理方案进程表中包含一个指向进程映像的指针进程控制块(PCB)系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志可以把进程控制块信息分成三类:进程标识号进程状态信息(处理器状态信息)进程控制信息进程控制块PCB中的典型元素:标识号同进程控制块一同存储的数字标识号进程标识号(简称进程ID)创建这个进程的进程(父进程)的标识号用户标识号(简称用户ID)进程控制块处理器状态信息用户可见寄存器是处理器执行的机器语言可以访问的寄存器。通常有8到32个此类寄存器,而在一些RISC实
本文标题:进程描述与控制
链接地址:https://www.777doc.com/doc-2002205 .html