进程控制

什么是进程控制

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创新进程、撤销已有进程、实现进程转换等功能。
简化理解:反正进程控制就是要实现进程状态转换。
在这里插入图片描述

如何实现进程控制

在这里插入图片描述
在这里插入图片描述
用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。
这种不可能被中断的操作即原子操作。
原语采用“关中断指令”和“开中断指令”实现
在这里插入图片描述
显然,关/开中断指令的权限非常大,必然是只允许在核心态下执行的特权指令。

进程控制相关的原语

原语:进程控制用的程序段。
原语的特点:执行期间不允许中断,是一个不可分割的基本单位。

学习技巧:进程控制会导致进程状态的转换。无论哪个原语,要做的无非三类事情:

  1. 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
    a.所有的进程控制原语一定都会修改进程状态标志
    b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    c.某进程开始运行前必然要恢复期运行环境
  2. 将PCB插入合适的队列
  3. 分配/回收资源

进程的创建
允许一个进程创建另一个进程。

父进程:此时创建者。
子进程:被创建的进程。

子进程可以继承父进程所拥有的资源。
当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。
在撤销父进程时,必须同时撤销其所有的子进程。

操作系统创建一个新进程的过程:
1)为新进程分配一个唯一的进程标识号,并申请一个空白的PCB。若PCB申请失败,则创建失败。
2)为进程分配资源:为新进程的程序和数据及用户栈分配必要的内存空间。若资源不足,则并不是创建失败,而是处于“等待态”或称“阻塞态”,等待的是内存这个资源。
3)初始化PCB:主要包括初始化标志信息、初始化处理机状态信息、初始化处理机控制信息、设置进程的优先级等。
4)若进程就绪队列能够接纳新进程,则将新进程插入就绪队列,等待被调度运行。
在这里插入图片描述
进程的终止
引起进程终止的事件主要:
正常结束:表示进程的任务已经完成并准备退出运行。
异常结束:表示进程在运行时,发生了某种异常事件,使程序无法继续运行,如存储区越界、保护错、非法指令、特权指令错、I/O故障等。
外界干预:进程应外界的请求而终止运行,如操作员或操作系统干预、父进程请求和父进程终止。

操作系统终止进程的过程如下(撤销原语):
1)根据被终止进程的标识符,检索PCB,从中读出该进程的状态。
2)若被终止进程处于执行状态,立即终止该进程的执行,将处理机资源分配给其他进程。
3)若该进程还有子进程,则应将其所有子进程终止。
4)将该进程所拥有的全部资源归还给其父进程,或归还给操作系统。
5)将该PCB从所在队列(链表)中删除。
在这里插入图片描述
进程的阻塞和唤醒
阻塞(Block):正在执行的进程,由于期待的某些事件未发生,如请求系统资源失败、等待某种操作的完成、新数据尚未到达或无新工作可做等,由系统自动执行阻塞原语,使自己由运行态变为阻塞态。

唤醒(Wakeup):当被阻塞进程所期待的事件出现时,如它启动的I/O操作已完成或其所期待的数据已到达,由有关进程调用唤醒原语,将等待该事件的进程唤醒。

Block原语和Wakeup原因是一对作用相反的原语,必须成对使用。
Block原语:是由被阻塞进程自我调用实现的。
Wakeup原语:是由一个与被唤醒进程合作或被其他相关的进程调用实现的。
在这里插入图片描述
进程切换
进程切换:处理机从一个进程的运行转到另一个进程上运行,在这个过程中,进程的运行环境产生了实质性的变化

进程切换的过程
1)保存处理机上下文,包括程序计数器和其他寄存器
2)更新PCB信息
3)把进程的PCB移入相应的队列,如就绪、在某事件阻塞等队列
4)选择另一个进程执行,并更新其PCB
5)更新内存管理的数据结构
6)恢复处理机上下文
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光开朗男孩

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值