定义
进程控制的主要功能是对系统中的索引进程实施有效的管理, 它具有创建新进程, 撤销已有进程, 实现进程状态转换的功能
简而言之, 就是实现进程状态的转换
如何实现
原语
原语也是一系列指令, 但是这些指令的执行会一口气执行完而不会因为中断导致执行部分, 即原语的执行具有"原子性"
进程控制需要用原语实现
考虑, 当进程控制执行到一半时因为某些原因被取消了
例如某进程要从就绪状态转到阻塞状态
执行步骤如下:
1 将其PCB中的state设为1 (假设state为1表示就绪态, 为2表示阻塞态)
2 将其PCB从阻塞队列放入就绪队列
当上述两个步骤执行了1却因为中断结束了继续执行, 导致该进程PCB的state=2然而它却被放在阻塞队列中
所以进程的控制需要使用 “原语” 实现
如何实现原语的"原子性"?
简单的说就是执行原语前, 将计算机的中断机制取消
特权指令:
“关中断指令” 与"开中断指令"
如果执行了关中断指令, 那么接下来指令的执行不会受中断信号的干扰
直到执行了 开中断指令之后才会恢复检查是否有中断信号
期间产生的中断信号会被延迟到 开中断指令 执行之后处理
进程的创建
进程的终止
进程的阻塞和唤醒
进程的切换
进程的运行环境信息:
执行到一半时, 产生了很多中间结果, 有些结果是存放于cpu寄存器中的, 下次回到该进程时还需要使用, 将其放入PCB然后cpu去执行其他进程的指令, 执行其他指令时难免会导致记录原来那个进程的寄存器等信息被修改, 所以就需要记录原来进程的那些信息, 当再执行回原来那个进程的时候, 直接读取pcb中的信息就行了