原语(Process Control Primitives)
原语有以下几种:
- 进程切换
- 创建与中止
- 阻塞与唤醒
- 挂起和激活
进程切换
什么时候切换进程
- 时钟中断(time out):基于时间片的系统,进程执行了到了最大时间片长度。
- I/O中断:程序执行到了I/O语句,需要中断当前进程的执行,切换新的进程执行。
- 存储访问失效:主要针对虚拟存储,当我们访问数据时发现它不在内存,此时中断执行,当访问的数据重新装进内存进入就绪队列后,才执行。
- 陷阱:当错误发生时,中断执行,或是直接退出
- 管理程序调入:打开文件等
切换进程的过程
- 保存现场,保存上下文:当前程序计数器与其他寄存器
- 更新当前进程的PCB内容
- 将PCB移动到一个相应的队列中:就绪 OR 阻塞
- 选择另外的进程进来执行:启动调度程序
- 更新所选进程的PCB内内容:状态等
- 更新内存管理的数据结构:占用了哪些内存等
- 恢复被选中的进程的现场/上下文内容