操作系统(王道)第二章 进程与线程

文章目录(持续更新)

    • 2.1 进程的定义
      • ✨2.1.1 进程的组成
      • ✨2.1.2 进程的组织
      • ✨2.1.3 进程的特征
    • 2.2 进程的状态与转换
      • ✨2.2.1 进程的三种状态
      • ✨2.2.2 进程状态的转换
    • 2.3 进程控制
      • ✨2.3.1 如何实现进程控制
      • ✨2.3.2 原语
    • 2.4 进程间的通信
      • ✨2.4.1 什么是进程通信
      • ✨2.4.2 共享存储
      • ✨2.4.3 管道通信
      • ✨2.4.4 消息传递
    • 2.5 线程概念和多线程模型
      • ✨2.5.1 线程的概念
      • ✨2.5.2 线程的属性
      • ✨2.5.3 线程的实现方式
      • ✨2.5.4 多线程模型
    • 2.6 处理机调度的概念层次
      • ✨2.6.1 调度的基本概念
      • ✨2.6.2 高级调度
      • ✨2.6.3 中级调度
      • ✨2.6.4 低级调度
      • ✨2.6.5 三层调度的对比
    • 2.7 进程调度的时机、切换与过程、方式
      • ✨2.7.1 进程调度的时机
      • ✨2.7.2 进程调度的方式
      • ✨2.7.3 进程的切换与过程
    • 2.8 调度算法的评价指标
      • ✨2.8.1 CPU利用率
      • ✨2.8.2 系统吞吐量
      • ✨2.8.3 周转时间
      • ✨2.8.4 等待时间
    • 2.9 磁盘调度算法
      • ✨2.9.1 先来先服务算法
      • ✨2.9.2 短作业优先算法
      • ✨2.9.3 高响应比优先
      • ✨2.9.4 时间片轮转调度算法
      • ✨2.9.5 优先级调度算法
      • ✨2.9.6 多级反馈调度算法
    • 2.10 进程同步与进程互斥
      • ✨2.10.1 进程同步
      • ✨2.10.2 进程互斥
    • 2.11 进程互斥的软件实现方法
      • ✨2.11.1 单标志法
      • ✨2.11.2 双标志法
      • ✨2.11.3 PeterSon算法
    • 2.12 进程互斥的硬件实现方法
      • ✨2.12.1 中断屏蔽方法
      • ✨2.12.2 TestAndSet指令
      • ✨2.12.3 Swap指令
    • 2.13 信号量机制
      • ✨2.13.1 信号量机制
      • ✨2.13.2 整型信号量
      • ✨2.13.3 记录型信号量
    • 2.14 使用信号量机制实现进程互斥、同步和前驱关系
      • ✨2.14.1 使用信号量机制实现进程互斥
      • ✨2.14.2 使用信号量机制实现进程同步
      • ✨2.14.3 使用信号量机制实现前驱关系
    • 2.15 同步互斥问题
      • ✨2.15.1 生产者-消费者问题
      • ✨2.15.2 多生产者-多消费者问题
      • ✨2.15.3 吸烟者问题
      • ✨2.15.4 读者-写者问题
      • ✨2.15.5 哲学家进餐问题
    • 2.16 管程
      • ✨2.16.1 为什么引入管程
      • ✨2.16.2 管程的基本定义和特征
      • ✨2.16.3 使用管程解决生产者消费者问题
    • 2.17 死锁的基本概念
      • ✨2.17.1 什么是死锁
      • ✨2.17.2 死锁的产生条件
    • 2.18 死锁的处理
      • ✨2.18.1 破坏互斥条件
      • ✨2.18.2 破坏不剥夺条件
      • ✨2.18.3 破坏请求和保持条件
      • ✨2.18.4 破环循环等待条件
    • 2.19 避免死锁
      • ✨2.19.1 安全序列
      • ✨2.19.2 银行家算法
      • ✨2.19.3 使用代码实现银行家算法
    • 2.20 死锁的处理策略-检测和解除
      • ✨2.20.1 死锁的检测
      • ✨2.20.2 死锁的解除

操作系统(王道)第二章 进程与线程_第1张图片

2.1 进程的定义

操作系统(王道)第二章 进程与线程_第2张图片
操作系统(王道)第二章 进程与线程_第3张图片
操作系统(王道)第二章 进程与线程_第4张图片
操作系统(王道)第二章 进程与线程_第5张图片

✨2.1.1 进程的组成

操作系统(王道)第二章 进程与线程_第6张图片
操作系统(王道)第二章 进程与线程_第7张图片
PCB
操作系统(王道)第二章 进程与线程_第8张图片

✨2.1.2 进程的组织

操作系统(王道)第二章 进程与线程_第9张图片

  1. 链接方式
    操作系统(王道)第二章 进程与线程_第10张图片
  2. 索引方式
    操作系统(王道)第二章 进程与线程_第11张图片

✨2.1.3 进程的特征

操作系统(王道)第二章 进程与线程_第12张图片

2.2 进程的状态与转换

操作系统(王道)第二章 进程与线程_第13张图片

✨2.2.1 进程的三种状态

操作系统(王道)第二章 进程与线程_第14张图片
操作系统(王道)第二章 进程与线程_第15张图片

✨2.2.2 进程状态的转换

操作系统(王道)第二章 进程与线程_第16张图片

2.3 进程控制

操作系统(王道)第二章 进程与线程_第17张图片
操作系统(王道)第二章 进程与线程_第18张图片

✨2.3.1 如何实现进程控制

操作系统(王道)第二章 进程与线程_第19张图片
操作系统(王道)第二章 进程与线程_第20张图片

✨2.3.2 原语

状态转换时需要保证对应的状态数据也被修改,所以为了不一致的情况的发生,采用了原语
操作系统(王道)第二章 进程与线程_第21张图片
与进程控制相关的原语
操作系统(王道)第二章 进程与线程_第22张图片
操作系统(王道)第二章 进程与线程_第23张图片
操作系统(王道)第二章 进程与线程_第24张图片
操作系统(王道)第二章 进程与线程_第25张图片

2.4 进程间的通信

操作系统(王道)第二章 进程与线程_第26张图片
操作系统(王道)第二章 进程与线程_第27张图片

✨2.4.1 什么是进程通信

操作系统(王道)第二章 进程与线程_第28张图片

✨2.4.2 共享存储

操作系统(王道)第二章 进程与线程_第29张图片

✨2.4.3 管道通信

操作系统(王道)第二章 进程与线程_第30张图片

✨2.4.4 消息传递

操作系统(王道)第二章 进程与线程_第31张图片

2.5 线程概念和多线程模型

操作系统(王道)第二章 进程与线程_第32张图片
操作系统(王道)第二章 进程与线程_第33张图片

✨2.5.1 线程的概念

操作系统(王道)第二章 进程与线程_第34张图片
操作系统(王道)第二章 进程与线程_第35张图片
操作系统(王道)第二章 进程与线程_第36张图片

✨2.5.2 线程的属性

操作系统(王道)第二章 进程与线程_第37张图片

✨2.5.3 线程的实现方式

  1. 用户级线程
    操作系统(王道)第二章 进程与线程_第38张图片
  2. 内核级线程
    操作系统(王道)第二章 进程与线程_第39张图片
    操作系统(王道)第二章 进程与线程_第40张图片

✨2.5.4 多线程模型

  1. 多对一模型
    操作系统(王道)第二章 进程与线程_第41张图片
  2. 一对一模型
    操作系统(王道)第二章 进程与线程_第42张图片
  3. 多对多模型
    操作系统(王道)第二章 进程与线程_第43张图片

2.6 处理机调度的概念层次

✨2.6.1 调度的基本概念

操作系统(王道)第二章 进程与线程_第44张图片
操作系统(王道)第二章 进程与线程_第45张图片

✨2.6.2 高级调度

操作系统(王道)第二章 进程与线程_第46张图片

✨2.6.3 中级调度

操作系统(王道)第二章 进程与线程_第47张图片
操作系统(王道)第二章 进程与线程_第48张图片

✨2.6.4 低级调度

操作系统(王道)第二章 进程与线程_第49张图片

✨2.6.5 三层调度的对比

操作系统(王道)第二章 进程与线程_第50张图片

2.7 进程调度的时机、切换与过程、方式

操作系统(王道)第二章 进程与线程_第51张图片
操作系统(王道)第二章 进程与线程_第52张图片

✨2.7.1 进程调度的时机

操作系统(王道)第二章 进程与线程_第53张图片
操作系统(王道)第二章 进程与线程_第54张图片
操作系统(王道)第二章 进程与线程_第55张图片

✨2.7.2 进程调度的方式

操作系统(王道)第二章 进程与线程_第56张图片

✨2.7.3 进程的切换与过程

操作系统(王道)第二章 进程与线程_第57张图片

2.8 调度算法的评价指标

操作系统(王道)第二章 进程与线程_第58张图片
操作系统(王道)第二章 进程与线程_第59张图片

✨2.8.1 CPU利用率

操作系统(王道)第二章 进程与线程_第60张图片

✨2.8.2 系统吞吐量

操作系统(王道)第二章 进程与线程_第61张图片

✨2.8.3 周转时间

操作系统(王道)第二章 进程与线程_第62张图片
操作系统(王道)第二章 进程与线程_第63张图片

✨2.8.4 等待时间

操作系统(王道)第二章 进程与线程_第64张图片

2.9 磁盘调度算法

操作系统(王道)第二章 进程与线程_第65张图片

✨2.9.1 先来先服务算法

操作系统(王道)第二章 进程与线程_第66张图片
操作系统(王道)第二章 进程与线程_第67张图片

✨2.9.2 短作业优先算法

  1. 非抢占式的短作业优先算法
    操作系统(王道)第二章 进程与线程_第68张图片
  2. 抢占式的短作业优先算法
    操作系统(王道)第二章 进程与线程_第69张图片
    在这里插入图片描述
    操作系统(王道)第二章 进程与线程_第70张图片
    操作系统(王道)第二章 进程与线程_第71张图片

✨2.9.3 高响应比优先

操作系统(王道)第二章 进程与线程_第72张图片
操作系统(王道)第二章 进程与线程_第73张图片
总结
操作系统(王道)第二章 进程与线程_第74张图片

✨2.9.4 时间片轮转调度算法

操作系统(王道)第二章 进程与线程_第75张图片
操作系统(王道)第二章 进程与线程_第76张图片
操作系统(王道)第二章 进程与线程_第77张图片
操作系统(王道)第二章 进程与线程_第78张图片
操作系统(王道)第二章 进程与线程_第79张图片

✨2.9.5 优先级调度算法

操作系统(王道)第二章 进程与线程_第80张图片

  1. 非抢占式
    操作系统(王道)第二章 进程与线程_第81张图片
  2. 抢占式
    操作系统(王道)第二章 进程与线程_第82张图片

✨2.9.6 多级反馈调度算法

操作系统(王道)第二章 进程与线程_第83张图片
操作系统(王道)第二章 进程与线程_第84张图片

2.10 进程同步与进程互斥

操作系统(王道)第二章 进程与线程_第85张图片

✨2.10.1 进程同步

操作系统(王道)第二章 进程与线程_第86张图片

✨2.10.2 进程互斥

操作系统(王道)第二章 进程与线程_第87张图片
操作系统(王道)第二章 进程与线程_第88张图片
操作系统(王道)第二章 进程与线程_第89张图片

2.11 进程互斥的软件实现方法

操作系统(王道)第二章 进程与线程_第90张图片
操作系统(王道)第二章 进程与线程_第91张图片

✨2.11.1 单标志法

操作系统(王道)第二章 进程与线程_第92张图片

✨2.11.2 双标志法

操作系统(王道)第二章 进程与线程_第93张图片
操作系统(王道)第二章 进程与线程_第94张图片

✨2.11.3 PeterSon算法

操作系统(王道)第二章 进程与线程_第95张图片
操作系统(王道)第二章 进程与线程_第96张图片

2.12 进程互斥的硬件实现方法

操作系统(王道)第二章 进程与线程_第97张图片
操作系统(王道)第二章 进程与线程_第98张图片

✨2.12.1 中断屏蔽方法

操作系统(王道)第二章 进程与线程_第99张图片

✨2.12.2 TestAndSet指令

操作系统(王道)第二章 进程与线程_第100张图片

✨2.12.3 Swap指令

操作系统(王道)第二章 进程与线程_第101张图片

2.13 信号量机制

操作系统(王道)第二章 进程与线程_第102张图片
操作系统(王道)第二章 进程与线程_第103张图片

✨2.13.1 信号量机制

在这里插入图片描述

✨2.13.2 整型信号量

操作系统(王道)第二章 进程与线程_第104张图片

✨2.13.3 记录型信号量

操作系统(王道)第二章 进程与线程_第105张图片
例题如下
操作系统(王道)第二章 进程与线程_第106张图片
操作系统(王道)第二章 进程与线程_第107张图片
操作系统(王道)第二章 进程与线程_第108张图片

2.14 使用信号量机制实现进程互斥、同步和前驱关系

✨2.14.1 使用信号量机制实现进程互斥

操作系统(王道)第二章 进程与线程_第109张图片

✨2.14.2 使用信号量机制实现进程同步

操作系统(王道)第二章 进程与线程_第110张图片
操作系统(王道)第二章 进程与线程_第111张图片

✨2.14.3 使用信号量机制实现前驱关系

操作系统(王道)第二章 进程与线程_第112张图片
操作系统(王道)第二章 进程与线程_第113张图片

2.15 同步互斥问题

✨2.15.1 生产者-消费者问题

操作系统(王道)第二章 进程与线程_第114张图片
操作系统(王道)第二章 进程与线程_第115张图片
操作系统(王道)第二章 进程与线程_第116张图片
在这里插入图片描述操作系统(王道)第二章 进程与线程_第117张图片
操作系统(王道)第二章 进程与线程_第118张图片

✨2.15.2 多生产者-多消费者问题

操作系统(王道)第二章 进程与线程_第119张图片
操作系统(王道)第二章 进程与线程_第120张图片
使用互斥信号量
操作系统(王道)第二章 进程与线程_第121张图片
不使用互斥信号量
操作系统(王道)第二章 进程与线程_第122张图片
操作系统(王道)第二章 进程与线程_第123张图片
假如盘子容量为2
操作系统(王道)第二章 进程与线程_第124张图片
操作系统(王道)第二章 进程与线程_第125张图片
操作系统(王道)第二章 进程与线程_第126张图片

✨2.15.3 吸烟者问题

操作系统(王道)第二章 进程与线程_第127张图片
操作系统(王道)第二章 进程与线程_第128张图片
操作系统(王道)第二章 进程与线程_第129张图片
操作系统(王道)第二章 进程与线程_第130张图片
操作系统(王道)第二章 进程与线程_第131张图片

✨2.15.4 读者-写者问题

操作系统(王道)第二章 进程与线程_第132张图片
操作系统(王道)第二章 进程与线程_第133张图片
操作系统(王道)第二章 进程与线程_第134张图片
操作系统(王道)第二章 进程与线程_第135张图片
操作系统(王道)第二章 进程与线程_第136张图片

✨2.15.5 哲学家进餐问题

操作系统(王道)第二章 进程与线程_第137张图片
操作系统(王道)第二章 进程与线程_第138张图片
操作系统(王道)第二章 进程与线程_第139张图片
方式3
操作系统(王道)第二章 进程与线程_第140张图片
操作系统(王道)第二章 进程与线程_第141张图片

2.16 管程

操作系统(王道)第二章 进程与线程_第142张图片

✨2.16.1 为什么引入管程

操作系统(王道)第二章 进程与线程_第143张图片
操作系统(王道)第二章 进程与线程_第144张图片

✨2.16.2 管程的基本定义和特征

操作系统(王道)第二章 进程与线程_第145张图片

✨2.16.3 使用管程解决生产者消费者问题

操作系统(王道)第二章 进程与线程_第146张图片
操作系统(王道)第二章 进程与线程_第147张图片

2.17 死锁的基本概念

✨2.17.1 什么是死锁

操作系统(王道)第二章 进程与线程_第148张图片
操作系统(王道)第二章 进程与线程_第149张图片
操作系统(王道)第二章 进程与线程_第150张图片
操作系统(王道)第二章 进程与线程_第151张图片

✨2.17.2 死锁的产生条件

操作系统(王道)第二章 进程与线程_第152张图片

2.18 死锁的处理

操作系统(王道)第二章 进程与线程_第153张图片

✨2.18.1 破坏互斥条件

操作系统(王道)第二章 进程与线程_第154张图片

✨2.18.2 破坏不剥夺条件

操作系统(王道)第二章 进程与线程_第155张图片

✨2.18.3 破坏请求和保持条件

操作系统(王道)第二章 进程与线程_第156张图片

✨2.18.4 破环循环等待条件

操作系统(王道)第二章 进程与线程_第157张图片

2.19 避免死锁

✨2.19.1 安全序列

操作系统(王道)第二章 进程与线程_第158张图片
操作系统(王道)第二章 进程与线程_第159张图片

✨2.19.2 银行家算法

操作系统(王道)第二章 进程与线程_第160张图片
操作系统(王道)第二章 进程与线程_第161张图片
操作系统(王道)第二章 进程与线程_第162张图片
操作系统(王道)第二章 进程与线程_第163张图片
操作系统(王道)第二章 进程与线程_第164张图片
操作系统(王道)第二章 进程与线程_第165张图片

✨2.19.3 使用代码实现银行家算法

操作系统(王道)第二章 进程与线程_第166张图片
操作系统(王道)第二章 进程与线程_第167张图片

2.20 死锁的处理策略-检测和解除

操作系统(王道)第二章 进程与线程_第168张图片
操作系统(王道)第二章 进程与线程_第169张图片

✨2.20.1 死锁的检测

操作系统(王道)第二章 进程与线程_第170张图片
操作系统(王道)第二章 进程与线程_第171张图片
操作系统(王道)第二章 进程与线程_第172张图片

✨2.20.2 死锁的解除

操作系统(王道)第二章 进程与线程_第173张图片

你可能感兴趣的:(操作系统,学习)