栈指针:每进程有多个与之相关的栈,用于保存调用参数。
进程调度和状态信息
进程调度和状态信息用于存放与进程调度及对换有关的信息。包括:
进程状态:指明进程当前状态。
进程优先级:描述进程使用处理机的优先级别。
进程调度的其他信息:取决于进程调度算法,如等待时间。
等待事件:进程处于等待状态的原因。
进程控制信息
进程控制信息:包括:
程序和数据地址:指出进程的程序及数据在内存的地址。
进程同步及通讯机制:如信号量、消息队列等。
资源清单:记录进程所需的资源和已分配资源。
链接指针:处于同一状态的进程组成一个队列,链接指针指向队首。
进程特权:确定进程可以访问的内存空间及可以执行的指令类型。
3.3 进程控制
进程控制的职能是对系统中的所有进程实施有效的管理。
常见的进程控制功能有进程创建、撤消、阻塞与唤醒等。这些功能一般由操作系统内核来实现。
1.进程控制的有关概念
为了保护操作系统,将处理机的状态分为:
用户态:是用户程序执行时机器所处的状态。
核心态:是操作系统内核运行时机器所处的状态。
原语是由若干条机器指令构成的,用以完成特定功能的一段程序,这段程序在执行期间不可分割。
进程图
进程图又称进程树或进程家族树,是描述进程家族关系的一棵有向树。图中的结点表示进程,若进程A创建了进程B,则从结点A有一条边指向结点B,说明进程A是进程B的父进程,进程B是进程A的子进程。
进程图例
2. 进程创建
导致进程创建的原因有:
用户登录:用户登录后,若合法则为用户创建一个进程。
作业调度:为调度到的作业分配资源并创建进程。
OS服务:创建服务进程。
应用需要:应用程序根据需要创建子进程。
进程创建的方法
引导程序以特殊方式创建系统进程。如UNIX系统中的0进程。
由作业调度程序创建进程。
由父进程创建子进程。
创建原语的主要功能
进程创建原语的主要功能是为被创建进程建立一个PCB。其算法思想如下:
在PCB总链中查找同名进程,若有则出错返回;
向系统申请一个空闲PCB结构,若没有则出错返回;
初始化新进程的PCB:填写进程名、标识符、状态、程序地址等;
将进程PCB插入相应队列:插入就绪队列及PCB总链。
3. 进程终止
引起进程终止的原因有:
正常结束
异常结束:超时、内存不足、地址越界、算术错、I/O故障、非法指令等。
操作员或系统干预:因某种原因需要操作员或系统终止进程。