操作系统:进程控制
核心态和用户态
为了防止操作系统及关键的数据受到用户程序有意无意的破坏,通常将处理器的运行分为核心态和用户态两种。
- 核心态:又称为管态。它具有较高的特权,能够执行一切命令,并访问所有寄存器和存储区。
- 用户态:又称为目态。这是具有较低特权的运行状态,它只能执行规定的指令,访问制定的寄存器和存储区。
处理器管理的一个重要任务就是进程管理。
进程管理:系统使用一些具有特定功能的程序来创建、撤销进程以及完成进程各个状态之间的转换,从而达到多进程、高效率的并发执行和协调,实现资源共享的目的。
原语
在核心状态下执行的某些具有特定功能的程序称之为原语,其特点是执行期间不允许中断,是一个不可分割的单位。
原语的执行是顺序的不是并发,系统对应进程的控制使用原语来实现。
用于进程控制的原语有:进程创建、进程撤销、进程阻塞与唤醒、进程挂起与激活。
进程创建
在系统生成时,要创建一些必须的、承担系统资源分配和管理工作的系统进程。
对于用户作业,每当调入系统时,由操作系统的作业调度程序为它创建相应的进程。
创建者成为父进程、被创建者成为子进程,创建父进程的进程被称为祖父进程,这样就形成了一个进程家族。
无论是系统或是用户创建进程都必须调用创建原语来实现
创建原语的主要功能是创建一个指定标识符的进程,主要任务是形成该进程的PCB
进程撤销
操作系统通常提供撤销(或终止)进程的方法。
其分为:
- 正常终止
- 由于错误而非正常终止
- 由于祖先进程的要求而被终止。
当进程被撤销时,必须从系统队列中移除,并且释放所有资源,同时审查是否有子进程,如果有的话,一并撤销。
进程阻塞与唤醒
有了常见原语和撤销原语,还不能完成各个进程状态之间的转换。
还需要阻塞原语和唤醒原语。
阻塞原语:
当一个进程出现等待事件的时候,该进程调用阻塞原语将自己阻塞。
阻塞原语的功能是:把CPU现场送至该进程的现场保护区,置进程的状态为等待,并插入到相应的等待队列中去,然后转到进程调度程序,另选一个进程投入运行。
唤醒原语:
进程处于等待状态时不能唤醒自己。
有一个“发现者”进程能够在进程所期待的事件出现的时候用唤醒原语叫醒他。
唤醒原语的功能:唤醒处于某一等待队列中的进程,入口信息为唤醒进程名
进程的挂起与激活
由于输入输出的速度比处理机的运算速度更慢,经常会出现处理机等待输入输出的情况。这时操作系统需要将主存中的进程兑换至外存(或称为辅存)。为了刻画这种状态,新增一种为“挂起”的状态。当所有进程阻塞的时候,所有的进程都是等待态,处理机空闲。操作系统可以将一个或者一些进程置为挂起状态,并将他们交换到外存的交换区。
而当计算机中出现了或者空出了进程所需要的资源,操作系统调用激活原语激活进程,将挂起状态的进程从外存调入主存中使用空出的组员,修改这个进程状态为就绪态。
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15046229.html