进程管理之进程控制

进程控制

什么是进程控制?

进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程,撤销已有进程,实现进程状态转换等功能

简化理解:进程控制就是要实现进程状态的转换。

怎么实现进程控制?

使用“原语”来实现进程控制。
原语是一种特殊的程序,它的执行具有原子性。也就是说,这段程序的运行必须是一气呵成的,不可中断。 
可以使用开中断指令关中断指令这两个特权指令实现原子性。

关中断指令和开中断指令之间的指令序列是不可被中断的。这就实现了“原子性”。

进程控制相关的原语

  • 创建原语:
    • 申请空白PCB
    • 为新进程分配所需资源
    • 初始化PCB
    • 将PCB插入到就绪队列
  • 撤销原语:
    • 从PCB集合中找到终止进程的PCB
    • 若进程正在运行,立即剥夺CPU,将CPU分配给其他进程
    • 终止其所有子进程
    • 将该进程拥有的所有资源归还给父进程或操作系统
    • 删除PCB
  • 阻塞原语:
    • 找到要阻塞的进程的PCB
    • 保护进程运行现场,将PCB状态信息设置为阻塞态,暂时停止进程运行
    • 将PCB插入到相应事件的等待队列。
  • 唤醒原语:
    • 在事件等待队列中找到PCB
    • 将PCB从等待队列中一处,设置进程为就绪态
    • 将PCB插入就绪队列,等待被调度
    • 一个进程被什么事件阻塞就应该被什么事件唤醒,阻塞与唤醒原语是成对使用的
  • 切换原语:
    • 将运行环境信息存入PCB
    • PCB移入相应队列
    • 选择另一个进程执行,并更新其PCB
    • 根据PCB恢复新进程所需的运行环境
    • 在进程切换时先在PCB中保存这个进程的运行环境(保存一些必要的寄存器信息)

总结

无论是哪个进程控制原语,要做的无非是三件事情:

    1. 更新 PCB中的信息(修改进程状态,保存/回复运行环境)
    2. 将PCB插入到合适的队列
    3. 分配/回收资源

进程管理之进程控制

上一篇:Linux中默认目录功能


下一篇:DiskCatalogMaker for mac磁盘文件管理工具 v8.3.6b2