进程控制:创建与终止、阻塞与唤醒、挂起与激活

1. 进程的创建

  ①  进程的结构层次(操作系统中允许一个进程创建另一个进程,最终形成一个进程的层次结构 )

    (Windows中不存在进程层次结构,所有进程地位相同,一个进程在创建另外的进程同时,获得一个句柄,可以控制被创建进程,句柄是可传递的)

    父进程:创建进程的进程

    子进程:被创建的进程(子进程继承了父进程所拥有的资源,子进程撤销时,应归还从父进程所获取的资源 撤销父进程,同时撤销其所有子进程)

    孙进程:子进程创建的进程

    

    进程图:即一棵有向树,结点表示进程,有向边表示父子关系

  ③ 引起进程调度的事件:用户登录、作业调度、提供服务、应用请求

  ②  进程创建过程:操作系统调用 创建原语Creat

   申请空白PCB并为新进程申请获得唯一数字标识符

    为新进程分配运行所需的资源

    初始化PCB

      初始化标志信息:将系统分配标识符与父进程标识符填入PCB

      初始化处理机状态信息:使PC指向程序入口地址,栈指针指向栈顶

      初始化处理机控制信息:将进程的状态设为就绪或静止就绪

    将新进程插入就绪队列

2. 进程的终止

 ① 引发进程终止的事件:

    正常结束:进程任务结束,退出运行

    异常结束:进程在运行时发生某种异常事件,程序无法继续运行

      越界错:程序访问的存储器,越出进程区域

      保护错:进程在试图访问一个不允许的资源、文件

      非法指令:

      特权指令错:

      运行超时,等待超时,算术运算错,I/O故障

   外界干预:进程应外界请求终止运行

      操作员/操作系统干预

      父进程请求

      因父进程终止

  ②  进程终止的过程

    根据被终止进程的标识符

    被终止进程正处于执行状态,终止执行,置调度标志为真(指示终止后应该重新调度)

    终止其子孙进程

    归还资源给父进程或系统

    将该PCB从队列中移出

3. 进程的阻塞、唤醒

 ① 引发阻塞、唤醒的事件

    向系统请求共享资源失败

    等待某种操作完成

    新数据尚未到达

    等待新任务到达

  ② 进程阻塞:是进程自身的一种主动行为,调用阻塞原语Block

    找到被阻塞进程标识号对应的PCB

    若该进程为运行态,保护现场,转为阻塞态

    把该PCB插入等待队列,将处理机资源调度给其他就绪进程

  ③ 进程唤醒:调用唤醒原语Wakeup

    在该事件的等待队列找到相应进程的PCB

    从等待队列中移出,将该状态修改为就绪态

     PCB插入就绪队列,系统调度程序调度

4. 进程的挂起和激活

  ① 进程的挂起:调用挂起原语 Suspend

  ② 进程的激活:调用激活原语 Active

 

posted @ 2022-08-22 10:42  nixwl  阅读(772)  评论(0)    收藏  举报