1.什么是进程?
对于进程的定义,从不同的角度可以有不同的定义,典型的定义有:
(1)进程 是程序的一次执行。
(2)进程是一个程序以及其数据在处理机顺序执行时所发生的活动。
(3)进程是具有独立运行功能的程序在数据集合上运行的过程,它是资源分配的基本单位。
2.进程的特征:
(1)动态性
(2)并发性
(3)独立性
(4)异步性
3.进程的管理:
(1)进程的控制
(2)进程的同步
(3)进程的通信
4.对于进程的控制这部分有以下重点
(1)操作系统内核
1.支撑功能:
中断处理
时钟管理
原语操作
2.资源管理功能:
进程管理
存储器管理
设备管理
(2)进程的创建
1 .申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。
初始化处理机状态信息将系统分配的标志符和父进程的标识符填入新PCB中
初始化处理机控制信息
4.将新进程插入就绪队列中
1.正常结束
2.异常结束
3.外界干预
(4)进程的基本状态及转换
1.就绪状态
当进程已分配到除CPU以外的所有必要资源后,只要获得CPU,便可以立即执行,这时候的进程状态称为就绪状态,如果系统有很多就绪状态的进程,通常将它们按照一定的策略 (优先级策略)排成一个队列,称该队列为就绪队
2.执行状态
进程已获得CPU,其程序正在执行的状态。在单处理机系统中,只有一个进程处于执行状态,而多处理机系统中,有多个进程处于执行状态。
3.阻塞状态
正在执行的进程由于发生某事件(如I/0请求,申请缓冲失败)暂时无法执行状态,进程发生阻塞,把这种进程的状态称之为 阻塞状
出于用户观察需要,进程可以执行挂起和激活两种操作。挂起是将活跃状态转为挂起状态,使进程不再被系统调用;激活是将挂起状态转为活跃状态。
进程挂起的几种情况:
- 终端用户的需要:当终端用户在运行程序期间发现有可疑问题,希望暂停程序的运行以便研究其执行情况或做一定的修改;
- 父进程请求;
- 符合调节的需要;
- 操作系统的需要:有时希望挂起某些进程以便检查运行中的资源使用情况或进行记账。
挂起原语(Suspend)的执行过程如下:
- 检查被挂起的进程的状态;
- 若是活动就绪状态,便将其改成挂起就绪;若是活动阻塞状态,便将其改成挂起阻塞;
- 为方便用户或父进程考察该进程的运行情况,把该进程的 PCB 复制到某指定的内存区域;
- 若被挂起的进程正在执行,则转向调度程序重新调度。
激活原语(Active)的执行过程如下:
- 将进程从外存调入内存,检查该进程的现行状态;
- 若是挂起就绪,便将其改为活动就绪;若是挂起阻塞,便将其改为活跃阻塞;
- 假如采用的是抢占调度策略,则每当有挂起就绪进程被激活而加入就绪队列时,便检查是否需要重新调度,即由调度程序将被激活的进程和当前进程两者优先级进行比较;
- 若被激活进程优先级低,则不必重新调度;若当前进程优先级低,则把处理机分配给被激活的进程。
(6)进程状态
- 运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态;
- 就绪状态:进程已处于准备运行的状态,获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。
- 阻塞状态,又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。
- 创建状态:进程正在被创建,尚未转到就绪状态。创建步骤包括:申请空白的 PCB,向 PCB 中填写一些控制和管理信息,系统向进程分配运行时所需的资源。
- 结束状态:进程正常结束、发生错误或者系统中断退出运行。系统必须首先将进程置为结束状态,再进一步处理资源释放及回收工作。