什么是进程控制
- 进程控制是进程管理中最基本的功能,简单的理解就是实现进程状态的转换
原语实现对进程的控制
- 为什么用原语实现
- 如果我们的操作不是原语的,当进程状态转换的时候,将一个进程放到了另一个队列,但是并没有将PCB中相应的信息改变,那么肯定会发生重大的错误,所以要让这一系列的操作变成原子性的,所以采用原语实现
- 原语如何实现:
- 我们的原语是通过关中断和开中断来实现
- 关中断 拒绝响应中断
- 开中断:允许响应中断
- 开/关中断指令的权限非常大,所以肯定也是特权指令,而且对应的是直接通过硬件完成
进程控制大致图解
- 调度和切换的区别
调度
是指决定资源分配给哪个进程的行为,是一种决策行为切换
是指实际分配的行为,是执行行为- 一般来说现有资源调度,后有进程切换
进程控制原语的相同点
进程控制的五种原语
进程的创建原语
- 在OS中,允许一个进程创建另一个进程,被创建的进程为子进程,创建进程的进程是父进程,并且子进程是可以继承父进程的所拥有的资源
- 在Windows中不存在这种进程层次结构的概念,所有的进程都是相同的地位,如果一个进程创建了另一个进程,那么创建进程的进程会获得一个句柄,这个句柄是可以被传递的
进程的终止原语
进程的阻塞和唤醒原语
- 进程的阻塞和唤醒是成对存在的,必须成对使用
阻塞原语
是由被阻塞进程自我调用实现的唤醒原语
是由一个被唤醒进程合作或被其他相关的进程调用实现的- 由Block 和wakeup原语实现