1、第五讲 进程表示与进行状态变化目的与要求:理解进程概念,掌握进程在系统中的表示方法,理解进程的创建及其状态变化.重点与难点:进程表示与进程创建,状态转换.习题:1,2,4,5,第三章 进程与处理机管理 3.1进程描述,进程:是系统中占用处理机及争夺其它系统资源的实体。用户程序必须在进程中运行。,进程的引入: 为了能在作业内某作业步等I/O时,另一逻辑上可并行作业步能使用CPU。引入进程后,逻辑上可并行的作业步可在不同进程中运行。处理机能在进程间切换。*,程序与进程的区别:相同的程序可以在两个以上的进程中运行(如可以创建多个进程运行网页浏览器程序)。 程序是作为文件存放在磁盘中,运行时读到内存。
2、而进程是在系统运行期间动态创建的,生命周期不会跨越系统运行周期。 程序只有程序语句及有初值数据变量和无初值变量。而进程需要有要处理的输入数据。,并发与共享的问题:并行运行的程序访问共享数据问题举例:(count为共享变量初值=300),存款程序: N=countN=N+100count=N,取款程序:M=countM=M200count=M,如果按以下次序占处理机运行:,N=count,N=N+100; M=count,M=M200,count=M; count=N. 结果count=400(应为200)*,1.进程定义,进程:是有独立功能的程序关于某个数据集合的一次运行活动。 特点: 动态性
3、:可动态创建,结束,也可是精灵进程 并发性:可以被独立调度,占用处理机运行 独立性:尽量把并发事务安排到不同的进程 制约性:因访问共享数据或进程间同步而产生制约. 组成:操作系统表示/管理进程的PCB表以及 执行程序及处理数据; 一片存放程序和数据的空间; 一个栈区(一个用户栈,一个核心栈); 进程使用的其他系统资源.*,2.进程控制结构进程映像:进程执行程序,数据,用户栈。进程映像如何存放在内存取决于存储管理机制. 进程控制块PCB:系统管理控制进程运行用的信息集合.*,PCB含有以下三大类信息: 进程标识信息。如本进程的标识;本进程的产生者标识(父进程标识);进程所属用户标识。 处理机状态
4、信息保存区(栈式结构)。实质就是核心栈。保存进程的运行现场信息: 通用寄存器。这是指任何程序都可以使用的数据、地址寄存器。 控制和状态寄存器。如程序计数器(PC);程序状态字(PS)*,进程控制信息 调度和状态信息,用于操作系统调度进程占用处理机。 进程间通讯信息,为支持进程间的通讯相关的各种标识,信号,信件等,这些信息存在接收方的进程控制块中。 存储管理信息。包含有指向本进程映像存储空间的数据结构。 进程所用资源。说明由进程打开,使用的系统资源,如打开的文件等。 有关数据结构链接信息,进程可以链接到一个进程队列中,或链接到相关的其它进程PCB. *,3.2进程状态 3.2.1.进程的创建与结
5、束等系统调用,一.进程创建处理过程大致为: 接收进程运行现场初始值,初始优先级,初始执行程序描述,其它资源等参数。 请求分配进程描述块PCB空间,得到一个内部数字进程标识。 用从父进程传来的参数初始化PCB表。 产生描述进程空间的数据结构,用初始执行文件初始化进程空间,建立程序段,数据段、栈段等。*,5.用进程运行现场初始值设置处理机现场保护区。造一个进程运行栈帧。 6.置好父进程等关系域。 7.将进程置成就绪状态。 8.将PCB表挂入就绪队列,等待时机被调度运行。*,二.进程结束大致处理过程如下:1.将进程状态改到结束状态 2.关闭所有打开文件,设备 3.释放用户进程程序文件映射和其他资源
6、4.进行相关信息统计 5.清理其相关进程的链接关系,如在UNIX中,将该结束进程的所有子进程链到1号进程,作为1号进程的子进程,并通知父进程自己已结束。 6.释放进程映像空间(对于虚存来说如:交换区,所占物理页,将页表所占空间返还系统) 7.释放进程控制块(PCB)。 8.调用进程调度与切换程序。*,三、进程等待系统调用,如waitpid(pid,&statloc,opts)系统调用. 进程发出此系统调用阻塞于内核等待pid所指进程运行结束.*,3.2.2进程状态及变化,运行状态(Running):当一个进程正在处理机上运行时。 就绪状态(Ready):一个进程获得了除处理机之外的一切所需资源
7、,一旦得到处理机即可运行. 阻塞状态又称等待状态(Blocked):一个进程正在等待某一事件而暂 停运行时,如等待某资源成为可用,等待输入 /输出完成。 创建状态(New):一个进程正在被创建,还没到转到就绪状态之前的状态。 结束状态(Exit):一个进程正在从系统中消失时的状态,这是因为进程结束或其它原因流产所导致。*,状态变化图,New,Running,Exit,Ready,Blocked,被调度,时间片完,事件发生,等待事件,结束,进入就绪队列,可能的状态变化如下: 空创建:一个新进程被产生来执行一个程序, 创建就绪:当进程被创建完成,初始化后,一切就绪准备运行时变到就绪态。(为了限制系
8、统资源不过份分散,也可以限制从New进入Ready状态的进程数,这样做可以使系统内存,内核用户页表空间等系统资源集中给有限的进程使用。因此可能进程进入创建状态但很长时间不能挂入就绪队列,等操作系统把它调入时才可以分配好所有资源,变为就绪状态。)*,就绪运行:处于就绪状态的进程被进程调度程序选中后,就分配到处理机上来运行. 运行结束:当进程指示它已经完成或者因错流产,当前运行进程会由操作系统作结束处理。 运行就绪:处于运行状态的进程在其运行过程中,分给它的处理机时间片用完而让出处理机;在可剥夺的操作系统中,当有更高优先级的进程就绪时,操作系统调度程序可以将正运行进程从运行状态改变为就绪状态,让更
9、高优先级进程运行.*,运行阻塞:当进程请求某样东西且必须等待时,例如,当进程请求操作系统服务,而操作系统得不到所需的资源,或进程请求一个输入/输出操作,操作系统已启动外设,但输入/输出尚未完成,或进程要与其它进程通讯,要接收对方还未发出的信件时进程都会被阻塞。 阻塞就绪:当进程要等待事件到来时,它从阻塞变到就绪。*,接收进程,就绪队列1,就绪队列2,.,就绪队列n,超时,事件1发生,事件2发生,等事件1,等事件2,.,处理机,终止进程,事件m发生,等事件m,状态表示方法:,3.2.3进程挂起 进程在挂起(Suspend)状态意味着进程没有占用内存空间,处在挂起状态的进程映像在磁盘上。,主要内容总结进程描述 进程定义 进程控制结构 进程状态 进程的创建与结束 进程状态变化模型 进程挂起,