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

文章目录(持续更新)

在这里插入图片描述

📣2.1 进程的定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨2.1.1 进程的组成

在这里插入图片描述
在这里插入图片描述
PCB
在这里插入图片描述

✨2.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 线程的实现方式

  1. 用户级线程
    在这里插入图片描述
  2. 内核级线程
    在这里插入图片描述
    在这里插入图片描述

✨2.5.4 多线程模型

  1. 多对一模型
    在这里插入图片描述
  2. 一对一模型
    在这里插入图片描述
  3. 多对多模型
    在这里插入图片描述

📣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 短作业优先算法

  1. 非抢占式的短作业优先算法
    在这里插入图片描述
  2. 抢占式的短作业优先算法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

✨2.9.3 高响应比优先

在这里插入图片描述
在这里插入图片描述
总结
在这里插入图片描述

✨2.9.4 时间片轮转调度算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨2.9.5 优先级调度算法

在这里插入图片描述

  1. 非抢占式
    在这里插入图片描述
  2. 抢占式
    在这里插入图片描述

✨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
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨2.15.3 吸烟者问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨2.15.4 读者-写者问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨2.15.5 哲学家进餐问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
方式3
在这里插入图片描述
在这里插入图片描述

📣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 死锁的解除

在这里插入图片描述

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和安韩Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值