进程控制学习卡片
进程控制概念 🧠
点击翻转查看详情
(内容较长时可上下滚动)
进程控制概念 🧠
- 🔧核心功能
- 对系统中所有进程实施有效管理,包括创建新进程、撤销已有进程、实现进程状态转换
- 💡本质
- 实现进程状态转换(创建态→就绪态→运行态→终止态/阻塞态)
- ⚛️原语原子性
- 通过关中断和开中断指令实现不可中断的操作序列
- ⚠️必要性
- 防止进程状态转换过程中出现数据不一致(如PCB状态变量与队列位置不符)
创建原语 🛠️
点击翻转查看详情
(内容较长时可上下滚动)
创建原语 🛠️
- 📝步骤
-
- 申请空白PCB
- 分配资源
- 初始化PCB
- 插入就绪队列
- 🎯触发事件
-
- 用户登录成功(分时系统)
- 作业调度(批处理系统)
- 服务请求(如I/O操作)
- 应用请求(创建子进程)
- 💡关键点
- PCB是进程存在的唯一标志
撤销原语 ❌
点击翻转查看详情
(内容较长时可上下滚动)
撤销原语 ❌
- 📝步骤
-
- 查找终止进程PCB
- 剥夺CPU
- 终止子进程(递归)
- 归还资源
- 删除PCB
- 🎯触发事件
-
- 正常结束(任务完成)
- 异常结束(如除零错误)
- 外界干预(如kill命令)
- 🌳进程树机制
- 子进程终止时资源需返还父进程(如Linux的0号1号进程)
阻塞与唤醒原语 ⏳🔔
点击翻转查看详情
(内容较长时可上下滚动)
阻塞与唤醒原语 ⏳🔔
- ⏸️阻塞原语
-
触发条件:运行态进程主动请求等待某事件(如I/O完成)
执行步骤:
- 保护进程现场(保存寄存器等)
- 修改PCB状态为阻塞态
- 将PCB移入对应等待队列
- ▶️唤醒原语
-
触发条件:进程等待的事件发生时(如I/O操作完成)
执行步骤:
- 从等待队列移除PCB
- 修改状态为就绪态
- 插入就绪队列
- ⚠️重要原则
- 唤醒原语必须与阻塞原语成对出现
进程切换原语 🔄
点击翻转查看详情
(内容较长时可上下滚动)
进程切换原语 🔄
- 📝功能步骤
-
- 保存运行环境到PCB
- 移PCB到就绪队列
- 选择新进程
- 恢复新进程环境
- ⏱️触发条件
-
- 时间片耗尽
- 更高优先级进程到达
- 当前进程主动阻塞或终止
- 💾关键寄存器
-
- PSW:程序状态字(CPU状态)
- PC:程序计数器(下条指令地址)
- IR:指令寄存器(当前执行指令)
- 通用寄存器(运算中间结果)