计算机操作系统笔记(3)--进程管理之进程控制

进程控制是对系统中的全部进程实施有效的管理,包括进程创建、终止、进程阻塞和唤醒。

一 进程的创建

操作系统发现要求创建新进程的事件后,调用进程创建原语Creat()创建新进程。

原语:由若干条指令组成、能够完成一定功能的程序段。特点:程序段要么全部执行,要么都不执行。

引起创建进程的行为:
a.用户登录,b.作业调度,c.提供服务

进程的创建过程:

Created with Raphaël 2.1.0 申请空白PCB 为新进程分配资源 初始化进程控制块 将新进程插入就绪队列

二 进程的终止

a.引起进程终止的事件
1)正常结束
2)异常结束:越界错误,非法指令等
3)外界干预:操作员或操作系统干预,父进程请求,父进程终止等。

b.进程的终止过程

Created with Raphaël 2.1.0 找出被终止进程的PCB 进程状态为运行态? 置CPU调度为真 有子孙进程? 终止其子进程并回收其资源 回收终止进程的资源 回收终止进程的PCB yes no yes no

三 进程的阻塞与唤醒

a.引起进程阻塞和唤醒的事件
1)请求系统服务
2)启动某种操作
3)新数据尚未到达
4)无新工作可做

b.进程阻塞的过程

Created with Raphaël 2.1.0 调用阻塞原语阻塞自己 将PCB中的状态改为阻塞,并加入阻塞队列 转进程调度

c.进程唤醒的过程
阻塞进程等待的事件发生,有关进程调用唤醒原语wakeup()唤醒等待该事件的进程。

Created with Raphaël 2.1.0 把阻塞进程从等待该事件的阻塞队列中移出 置进程状态为就绪态,将PCB插入到就绪队列中

阻塞原语与唤醒原语作用相反,成对使用。

四 进程的挂起和激活

当出现引起进程挂起的事件时,系统利用扶起原语suspend()将指定进程或处于阻塞的进程挂起。
a.进程的挂起过程

Created with Raphaël 2.1.0 检查被挂起进程的状态 若处于活动就绪? 改为静止就绪 yes
Created with Raphaël 2.1.0 检查被挂起进程的状态 若处于活动阻塞? 改为静止阻塞 yes
Created with Raphaël 2.1.0 检查被挂起进程的状态 若挂起的进程正在执行? 重新进行进程调度 yes

当发生激活进程的事件时,系统利用激活原语active()将指定进程激活。
b.进程的激活过程

Created with Raphaël 2.1.0 激活原语先将进程从外存调入内存 检查该进程的状态 若为静止就绪 改为活动就绪 yes
Created with Raphaël 2.1.0 激活原语先将进程从外存调入内存 检查该进程的状态 若为静止阻塞 改为活动阻塞 yes

你可能感兴趣的:(学习笔记)