首页 百科知识 1.5.2进程控制

1.5.2进程控制

时间:2022-10-15 百科知识 版权反馈
【摘要】:进程控制就是操作系统的内核通过原语来实现的。操作系统内核中含有许多原语,它们运行在系统状态下。而系统状态和用户状态是处理机的两种执行状态,通过这两种状态的划分,可防止用户程序破坏操作系统内核代码和数据。进程创建原语的主要任务是创建进程控制块PCB。当进程完成任务或遇到异常情况和外界干预需要结束时,应通过进程终止原语来终止进程。终止进程的实质是收回PCB。系统可利用激活原语激活一指定进程。

1.5.2 进程控制

进程控制是进程管理中最基本的功能,它用于创建和撤销进程,并对进程在整个生命周期中各种状态之间的转换进行有效控制。进程控制就是操作系统的内核通过原语来实现的。

所谓原语是指由若干条指令组成、用来实现某个特定操作的一个过程。原语的执行具有原子性,即原语在执行过程中不能被分割。操作系统内核中含有许多原语,它们运行在系统状态下。

而系统状态和用户状态是处理机的两种执行状态,通过这两种状态的划分,可防止用户程序破坏操作系统内核代码和数据。

(1)系统状态,也叫管态或核心状态。它具有较高的特权,能执行一切指令,访问所有寄存器和存储区。通常,操作系统内核就运行在系统状态下。

(2)用户状态,也叫目态,是一种具有较低特权的执行状态。它只能执行规定的指令、访问规定的寄存器和存储区。通常用户程序都运行在用户状态。

1.进程的创建

导致一个进程去创建另一个进程的典型事件有分时系统中的用户登录、批处理系统中的作业调度,另外,应用程序本身也可以根据需要去创建新的进程。

创建新进程是通过创建原语来完成的,被创建的进程称为子进程,而创建进程的进程则称为父进程;子进程又可以创建自己的子进程,从而形成一棵有向的进程树,即进程图。

进程创建原语的主要任务是创建进程控制块PCB。具体操作过程是:先从PCB集合中申请一个空闲的PCB,再为新进程分配内存等资源,并根据父进程提供的参数和分配到的资源情况来对PCB进行初始化,最后将新进程插入就绪队列。

2.进程的终止

当进程完成任务或遇到异常情况和外界干预需要结束时,应通过进程终止原语来终止进程。终止进程的实质是收回PCB。具体操作过程是:找到要终止进程的PCB;若该进程正在执行,则终止它的执行,并置重新调度标志;终止属于该进程的所有子进程;释放终止进程所拥有的全部资源;将终止进程移出它所在的队列并收回PCB。

3.进程的阻塞和唤醒

当正在执行的进程需要等待某种事件的完成或本身无新工作可做时,应调用阻塞原语将自己从执行状态转换成阻塞状态。具体的操作过程是:停止进程的执行,将其状态改为阻塞状态,并把它的PCB插入相应的阻塞队列,转调度程序进行重新调度。

当阻塞状态所等待的事件完成时,应调用唤醒原语将该进程的状态从阻塞状态转换成就绪状态。具体的操作过程是:在等待队列中移出该进程的PCB,将其置成就绪状态,并把它插入就绪队列。

4.进程的挂起与激活

系统可利用挂起原语将一指定的进程挂起。具体的操作过程是:若进程处于活动阻塞状态,则将它的状态转换成静止阻塞状态;否则将它转换成静止就绪状态;将PCB复制到指定的内存区域供用户或父进程考查;若挂起前进程正在执行,则转调度程序重新进行进程调度。如果挂起是为了对换,则在挂起进程时还必须将它换出到外存中。

系统可利用激活原语激活一指定进程。具体的操作过程是:若进程处于静止状态,则将它的状态转换成活动阻塞状态;否则将它转换成活动就绪状态;若进程转换成活动就绪状态,而系统又采用抢占调度策略,则应检查该进程是否有权抢占CPU,若有则应进行进程调度。同样,如果挂起是为了对换,则在激活被挂起的进程时还必须将它调入内存。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈