写点什么

进程和处理机管理中的进程控制

用户头像
Regan Yue
关注
发布于: 3 小时前
进程和处理机管理中的进程控制

进程和处理机管理中的进程控制

在进程管理中我们会经常提到原语,那么原语是什么呢?根据资料:


一般来说,我们把系统态下执行的某些具有特定功能的程序称为原语。在操作系统中,通常把进程控制程序段做成原语。


有两类原语,一类是执行时不允许中断的原语,另一类是不允许并发执行的原语。

创建原语

创建原语负责添加 PCB 将程序变为进程。创建原语先查 PCB 链表看有无空 PCB,如果没有就创建失败,如果有空 PCB 就取空表 PCB(i),将调用者的有关参数填入 PCB(i)的相应项,然后将 PCB(i)调入就绪队列,最后 PCB(i)入进程家族或进程链。最后返回。


其中的有关参数包括进程名、进程优先级、进程正文段起始地址等。

撤销原语

当进程完成任务终止、遇到错误非正常终止以及父进程要求 kill 子进程时,进程要被撤销。此时就要用到撤销原语。


撤销原语会查进程链表或进程家族并会查之中有无 PCB 以及 PCB 中有无子进程,如果有子进程就去子进程查进程链表或进程家族并会查之中有无 PCB 以及 PCB 中有无子进程。如果没有子进程了,就释放该进程所占用的资源,并会释放该 PCB 结构本身。最后返回。

阻塞原语

阻塞原语完成进程的执行态到阻塞态的转变。阻塞原语是被进程自己调用来阻塞自己。阻塞原语被调用时,会保存当前进程的 CPU 现场,然后置该进程的状态,然后被阻塞的进程入等待队列,最后转进程调度。这里转进程调度是十分重要的,不然,CPU 会因为空转而浪费资源。

唤醒原语

唤醒原语是不能由一个被阻塞的进程调用来唤醒自己的。为什么呢?因为处于阻塞态的进程是不能调用 CPU 的。唤醒一个进程有两种方式,第一章是由系统进程唤醒,另一种是由事件发生进程唤醒。唤醒原语被调用时,从等待队列中摘下被唤醒的进程,将被唤醒的进程设置为就绪状态,然后将唤醒进程送入就绪队列,最后转进程调度或返回。

发布于: 3 小时前阅读数: 2
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

对Go、Python、网络安全、区块链感兴趣. · 华为云云享专家 · 掘金资讯创作者

评论

发布
暂无评论
进程和处理机管理中的进程控制