具有挂起状态的状态转换:等待态→挂起等待态:当前不存在就绪进程,至少一个等待态进程将被对换出去成为挂起等待态;
挂起等待态→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态。
挂起就绪态→就绪态:内存中没有就绪态进程,或挂起就绪态进程具有比就绪态进程更高的优先级,将把挂起就绪态进程转换成就绪态。
就绪态→挂起就绪态:系统根据当前资源状况和性能要求,决定把就绪态进程对换出去成为挂起就绪态。
挂起进程具有如下特征:该进程不能立即被执行。
挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。
进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。
结束进程挂起状态的命令只能通过操作系统或父进程发出。
5 进程控制块
概念:为了描述一个进程和其它进程以及系统资源的关系,为了刻画一个进程在各个不同时期所处的状态,采用了一个与进程相联系的数据结构,称为进程控制块(PCB)。
PCB是OS中最重要的记录型数据结构。
功能:将一个不能独立运行的程序变成一个可以独立运行的基本单位,一个能与其他进程并发执行的进程。
特征:OS利用PCB来对并发执行的进程进行控制和管理,PCB是OS感知进程存在的唯一标志。
进程与PCB是一一对应的。
PCB随进程创建而建立,随进程结束而回收。
PCB应常驻内存。
内容:
进程描述信息:进程标识符(process ID):唯一,通常是一个整数
进程名:通常基于可执行文件名(不唯一)
用户标识符(user ID):进程组关系
进程控制信息:当前状态
优先级(priority)
代码执行入口地址
程序的外存地址
运行统计信息(执行时间、页面调度)
进程间同步和通信;阻塞原因
进程的队列指针
进程的消息队列指针
所拥有的资源和使用情况:虚拟地址空间的现状、打开文件列表
CPU现场保护信息:寄存器值(通用、程序计数器PC、状态字PSW,地址包括栈指针)、指向赋予该进程的段/页表的指针
PCB表组织方式:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。
PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度。
链接结构:相同状态的进程PCB组成一个链表,不同状态对应多个不同的链表。就绪链表、阻塞链表
索引结构:对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址。
二、进程控制
1.概念:进程控制指对系统中的所有进程实施管理。
如:创建一个新进程;
终止一个已完成的进程;
终止一个因某事件而使其无法运行下去的进程;
进程运行中状态的转换
…
进程控制一般由OS的内核来实现。
2.OS的内核的功能:不同OS的内核包括功能不同,但都包括:支撑功能
中断处理:内核最基本的功能。如:系统调用 进程调度等
时钟管理:
原语操作:实现进程通信和控制。
资源管理功能:进程管理、存储器管理、设备管理
3.原语