进程控制块(PCB)
进程控制块是进程的唯一标志。
PCB是有限的,创建进程需要申请PCB。
进程控制块中的内容:
为什么要区分就绪状态和等待状态?
就绪状态是指进程仅缺少处理机,只要获得处理机资源就立即执行;
等待状态是指进程需要其他资源(除了处理机)或等待某一事件。
之所以把处理机和其他资源划分开,是因为在分时系统的时间片轮转机制中,每个进程分到的时间片是若干毫秒。也就是说,进程得到处理机的时间很短且非常频繁,进程在运行过程中实际上是频繁地转换到就绪状态的;而其他资源(如外设)的使用和分配或者某一事件的发生(如I/O操作的完成)对应的时间相对来说很长,进程转换到等待状态的次数也相对较少。这样看来,就绪状态和等待状态是进程生命周期中两个完全不同的状态,显然需要加以区分。
进程状态转换
1、就绪状态→运行状态
处于就绪状态的进程获得了处理机资源。
2、运行状态→就绪状态
时间片用完了让出处理机;
可剥夺操作系统中,优先级更高的进程被调度,正在执行的低优先级进程从运行状态转为就绪状态。
3、运行状态→阻塞状态
进程请求某一资源或等待某一事件的发生。
4、阻塞状态→就绪状态
进程等待的时间到来了(I/O操作结束或中断结束)。
进程控制
进程的创建
子进程可以继承父进程所拥有的资源。
子进程被撤销时,将从父进程那里获得的资源归还给父进程。
撤销父进程时,必须同时撤销其所有的子进程。
进程的终止
正常结束:进程的任务完成和准备退出运行。
异常结束:进程运行时,发生了某种异常事件,使程序无法继续运行。(存储区越界、保护错、非法指令、特权指令错、I/O故障)
外界干预:进程应外界的请求而终止运行。(操作员或操作系统干预、父进程请求和终止)
进程的阻塞和唤醒
正在执行的进程,由于期待的某些事件未发生,如请求系统资源失败、等待某种操作的完成、新数据尚未到达或无新工作可做等,则有系统自动执行阻塞源于,使自己由运行状态变为阻塞状态。可见,进程的阻塞是进程自身的一种主动行为,也因此只有处于运行态的进程(获得CPU),才可能将其转换为阻塞状态。
进程切换
对于通常的进程,其创建、撤销以及要求有系统设备完成的I/O操作都是利用系统调用而进入内核,再由内核中相应处理程序予以完成的。进程切换同样是在内核的支持下实现的,因此可以说,任何进程都是在操作系统内核的支持下运行的,是与内核紧密相关的。