【操作系统学习笔记】处理器管理1.3

【操作系统学习笔记】处理器管理1.3

参考书籍: 王道考研

视频地址: Bilibili

进程控制

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

进程控制需要使用原语实现。原语是一种特殊的、原子性的程序,它的执行必须一气呵成,不可中断

可以使用关中断指令和开中断指令这两个特权指令实现原语

进程的创建

流程:

  • 申请空白 PCB
  • 为新进程分配所需资源
  • 初始化 PCB
  • 将 PCB 插入就绪队列

事件:

  • 用户登录: 分时系统中,用户登录成功,系统会为其建立一个新的进程
  • 作业调度: 多道批处理系统中,有新的作业放入内存中,会为其建立一个新的进程
  • 提供服务: 用户向操作系统提出某些请求,会新建一个进程处理这些请求
  • 应用请求: 由用户进程主动请求创建一个子进程

进程的终止

流程:

  • 从 PCB 集合中找到终止进程的 PCB
  • 若进程正在运行,立即剥夺 CPU,将 CPU 分配给其他进程
  • 终止其所有子进程
  • 将该进程拥有的所有资源归还给父进程或操作系统
  • 删除 PCB

事件:

  • 正常结束: exit 系统调用
  • 异常结束: 分母为零
  • 外界干预

进程的阻塞

流程:

  • 找到要阻塞的进程对应的 PCB
  • 保护进程运行现场,将 PCB 状态信息设置为阻塞态,暂时停止该进程运行
  • 将 PCB 插入相应事件的等待队列

因何事被阻塞,就应该由何事来唤醒

进程的唤醒

流程:

  • 在等待队列中找到 PCB
  • 把 PCB 从等待队列移除,设置为就绪态
  • 将 PCB 插入就绪队列,等待被调度

进程的切换

流程:

  • 将运行环境存入 PCB
  • PCB 移入相应队列
  • 选择另一个进程执行,并更新其 PCB
  • 根据 PCB 恢复新进程所需的运行环境

事件:

  • 当前进程时间片到
  • 有更高优先级的进程到达
  • 当前进程主动阻塞
  • 当前进程终止
相关推荐
小码的头发丝、15 分钟前
Java进阶学习笔记|面向对象
java·笔记·学习
坊钰1 小时前
【Java 数据结构】移除链表元素
java·开发语言·数据结构·学习·链表
Purple Coder1 小时前
第6章 图论
笔记
阿七想学习2 小时前
数据结构《排序》
java·数据结构·学习·算法·排序算法
胡西风_foxww2 小时前
【ES6复习笔记】数值扩展(16)
前端·笔记·es6·扩展·数值
Somnus陳3 小时前
软考架构师笔记-计算机系统组成-1
笔记·系统架构
LuH11244 小时前
【论文阅读笔记】IC-Light
论文阅读·笔记
汤姆和佩琦4 小时前
2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。
学习·聚类·sklearn
是小菜呀!4 小时前
实验四 触发器
笔记
悲伤小伞4 小时前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法