操作系统
第一章
第1.1节 操作系统概念,功能和目标
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oFbyLEoB-1633352372925)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210727093407257.png)]、
一.操作系统概念
1.定义
指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
二.操作系统功能和目标
1.作为系统资源的管理者
(1)处理机管理
(2)存储器管理
(3)文件管理
(4)设备管理
2.作为用户和计算机硬件之间的接口
(1)命令接口:允许用户直接使用
-
联机命令接口:用户说一句,系统做一句
-
脱机命令接口:用户说一堆,系统做一堆
(2)程序接口(系统调用):允许用户通过程序间接使用
(3)GUI:现代操作系统中最流行的图形用户接口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qvjA8zUM-1633352372929)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210727113336494.png)]
3.作为最接近硬件的层次
1.实现对硬件机器的拓展
三.知识总结
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrKQYBBq-1633352372930)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210727114219827.png)]
第1.2节 操作系统的特征
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hpFC3VFS-1633352372932)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210727115623044.png)]
一.并发
1.定义
两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
*并行:两个或多个事件在同一时间同时发生
二.共享
1.定义
资源共享,系统中的资源可供内存中多个并发执行的进程共同使用
2.资源共享方式
(1)互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
(2)同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
*并发性和共享性的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYEJqzJl-1633352372934)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730112229657.png)]
三.虚拟
1.定义
把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的
2.虚拟技术
(1)空分复用技术
(2)时分复用技术
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F3XcDjQb-1633352372935)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730115939673.png)]
四.异步
1.定义
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
2.并发性与异步性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5c0ANe1B-1633352372936)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730120544102.png)]
五.知识回顾
并发和共享是操作系统最基本的特征
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vOJNjAzk-1633352372937)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730120747717.png)]
第1.3节 操作系统的发展与分类
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GP5T5quo-1633352372937)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730163652189.png)]
一.手工操作阶段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbzmWBeQ-1633352372938)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730163932880.png)]
二.批处理阶段
1.单道批处理系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9b04q8G-1633352372939)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730164521111.png)]
2.多道批处理系统*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wKvXhpsE-1633352372940)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730165600027.png)]
三.分时操作系统*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-agY27W9o-1633352372940)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730171455242.png)]
四.实时操作系统*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTh9Pqnd-1633352372941)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730171628388.png)]
五.其他操作系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lpe2Gyfz-1633352372942)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730171722151.png)]
六.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-64LZ7QI0-1633352372943)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730171905555.png)]
第1.4节 操作系统的运行机制,体系结构
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zT1IXPXf-1633352372944)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730172253184.png)]
一.两种指令,两种处理器,两种程序
1.指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DRvWl4a9-1633352372945)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730175517788.png)]
2.处理器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hrDg1QkA-1633352372946)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730175702366.png)]
3.程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qdCARIU3-1633352372946)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730175736054.png)]
二.操作系统运行机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a5WPQrj7-1633352372947)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730175825560.png)]
三.操作系统内核
1.计算机系统层次结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXn9OIa9-1633352372948)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730185051405.png)]
时钟管理,中断处理,原语的功能是最接近硬件的层次
2.操作系统内核
(1)内核定义
内核是计算机上配置的底层软件,是操作系统最基本,最核心的部分。实现操作系统内核功能的那些程序就是内核程序。
(2)内核层次结构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-APw6lWlB-1633352372949)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730190109778.png)]
四.操作系统体系结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WhpKyhM9-1633352372950)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730191107819.png)]
1.结构示意图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zpJAYwcJ-1633352372950)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730191701029.png)]
2.划分
(1)大内核:将操作系统的主要模块都作为系统内核,运行在核心态
(2)微内核:只把最基本的功能保留在内核
五.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADevDqgo-1633352372951)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730192305689.png)]
第1.5节 中断和异常
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iciKTTlT-1633352372952)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730193004599.png)]
一.中断机制的诞生
1.本质
发生中断就意味着需要操作系统介入,开展管理工作
二.中断的概念和作用*
1.特点
(1)中断发生时,CPU立即进入核心态
(2)中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
(3)对于不同的中断信号,会进行不同的处理
2.作用
中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
中断是CPU从用户态进入核心态的唯一途径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7y2e2Cfk-1633352372953)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730202401291.png)]
三.中断的分类*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UfaPsPU1-1633352372954)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730205047986.png)]
另一种分类方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCQNeLMl-1633352372954)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730205156677.png)]
四.外中断处理方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TNP5G1Zp-1633352372955)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730205937732.png)]
五.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hC2CkksI-1633352372956)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210730210203577.png)]
第1.6节 系统调用
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeEcl7t3-1633352372956)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801113545915.png)]
一. 什么是系统调用,有何作用
1.定义
是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
2.作用
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配,IO操作,文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
3.分类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LRrIJr3c-1633352372957)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801121356218.png)]
系统调用的相关处理需要在核心态下进行
二.系统调用与库函数的区别*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GuM99Wxr-1633352372958)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801124120134.png)]
三.系统调用背后的过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdPnvPW0-1633352372959)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801124432176.png)]
详细解读
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XgoPtYea-1633352372959)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801124825863.png)]
传递系统调用参数—》执行陷入指令(用户态)—》执行系统调用相应服务程序(核心态)—》返回用户程序
四.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s23hpCFB-1633352372960)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801125253420.png)]
第二章
2.1
第2.1节 进程的定义,组成,组织方式,特征
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Et79b9h-1633352372961)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801161418002.png)]
一.进程定义
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHD4FkGR-1633352372962)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801161953690.png)]
**1.PCB,程序段,数据段三部分构成了进程实体(进程映像)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oPgGpWmH-1633352372963)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801165910896.png)]
PCB是进程存在的唯一标志
强调动态性
二.进程的组成
进程(进程实体)由程序段,数据段,PCB三部分组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I7RRLS55-1633352372964)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801170402265.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dDnUuAPq-1633352372964)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801172229628.png)]
1.PCB
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tyVX0One-1633352372965)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801172106850.png)]
三.进程的组织
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zC6j1xIY-1633352372966)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801172426994.png)]
1.链接方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTfxSFGz-1633352372967)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801172931662.png)]
2.索引方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g7WO7Yge-1633352372968)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801173016161.png)]
四.进程的特征
动态性,并发性,独立性,异步性,结构性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OhFpLtat-1633352372969)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801173255153.png)]
动态性是进程最基本的特征
进程是资源分配,接受调度的基本单位
五.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uCBOzAaO-1633352372970)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801173643593.png)]
第2.1节 进程的状态与转换
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7lY2h2JV-1633352372970)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801175719458.png)]
一.进程的三种基本状态
运行态,就绪态,阻塞态
就绪态表示万事俱备,只欠处理机(CPU)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gsF84aHm-1633352372971)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801180017573.png)]
二.进程的另两种状态
创建态,终止态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADZ4tuv2-1633352372972)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801180305643.png)]
三.进程状态的转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cXEwc5D0-1633352372973)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801180716514.png)]
1.运行态—》阻塞态是一种进程自身做出的主动行为
2.阻塞态—》就绪态不是进程自身能控制的,是被动行为
3.不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)
四.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TATM3cGP-1633352372974)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801181259402.png)]
第2.3节 进程控制
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZuZeokhC-1633352372974)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801202757996.png)]
一.进程控制
1.定义
就是要实现进程状态转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Qlcg6pr-1633352372975)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801203041300.png)]
2.如何实现进程控制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dqDBBMGz-1633352372976)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801203829161.png)]
问题
某一个进程把它的PCB从一个队列放置到另一个队列中,但没有把PCB中的状态标志改成相应的新的状态。这种情况是很危险的,极有可能导致系统错误。
解决方法
用原语实现进程控制。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BbVlOWsZ-1633352372977)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801204552553.png)]
关开中断指令权限非常大,所以是只允许在核心态下执行的特权指令 。
二.进程控制相关的原语
1.原语做的事
(1)更新PCB中的信息(如修改进程状态标志,将运行环境保存到PCB,从PCB恢复运行环境)
a.所有的进程控制原语一定都会修改进程状态标志
b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
c.某进程开始运行前必然要恢复其运行环境
(2)将PCB插入合适的队列
(3)分配/回收资源
2.进程的创建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKynloiT-1633352372978)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801214136997.png)]
3.进程的终止
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tAANC0DJ-1633352372979)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801214649900.png)]
4.进程的阻塞和唤醒
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lrUWHYo8-1633352372979)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801214804985.png)]
阻塞和唤醒要成对出现
5.进程的切换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y83Wfqpo-1633352372980)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801214950277.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cFLgPCks-1633352372981)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801215210289.png)]
第2.4节 进程通信
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EddHu473-1633352372981)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801215332060.png)]
一.什么是进程通信
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G66AyRuG-1633352372982)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801221650725.png)]
进程通信就是指进程之间的信息交换
二.进程通信—共享存储
两个进程对共享空间的访问必须是互斥的(互斥访问通过操作系统提供的工具实现)
1.基于数据结构的共享
2.基于存储区的共享
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-07NYuo7T-1633352372983)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801222507702.png)]
三. 进程通信—管道通信
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7pDvoPJG-1633352372983)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801223207761.png)]
1.管道只能采用半双工通信,某一时间段内只能实现单向的传输。如果要实现双向同时通信,则要设置两个管道。
2.各进程要互斥地访问管道。
3.数据以字符流形式写入管道,当管道写满时,写进程的write()系统调用将被阻塞,等待读进程将数据取走。当读进程将数据全部取走后,管道变空,此时读进程的read()系统调用将被阻塞。
4.如果没写满,就不允许读。如果没读空,就不允许写。
5.数据一旦被读出,就从管道中抛弃,这就意味着读进程最多只能有一个,否则可能会有读错数据的情况。
四.进程通信—消息传递
进程间的数据交换以格式化的消息(Message)为单位。进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dSXQVPLT-1633352372984)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801231340689.png)]
1.直接通信方式
2.间接通信方式
五.知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QI6CIBBf-1633352372985)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210801231546151.png)]
第2.5节 线程概念,多线程模型
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yv88XW9e-1633352372985)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802094209292.png)] 一.什么是线程,为什么引入线程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8GG0NKpw-1633352372986)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802094807917.png)]
线程是一个基本的CPU执行单元,也是程序执行流的最小单元
二.引入线程后的变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CJgryL56-1633352372987)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802100713760.png)]
三.线程的属性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8sC9qgb-1633352372988)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802101043317.png)]
四.线程的实现方式*
1.用户级线程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vzK6ZyWG-1633352372988)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802102826203.png)]
(1)用户级线程由应用程序通过线程库实现。
(2)所有的线程管理工作都由应用程序负责(包括线程切换)。
(3)用户级线程中线程切换在用户态下即可完成,无需操作系统干预。
(4)在用户看来,是有多个线程。但在操作系统内核看来,意识不到线程的存在(用户级线程对用户不透明,对操作系统透明)。
2.内核级线程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZSCQTg2-1633352372989)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802105614475.png)]
(1)内核级线程管理工作都由操作系统内核完成,线程调度,切换等工作都由内核负责,因此内核级线程的切换要在核心态下完成。
3.组合方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7NzFYdU-1633352372990)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802110140134.png)]
操作系统只“看得见”内核级线程,因此只有内核级线程才是处理机分配的单位
五.多线程模型*
1.多对一模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2DI612ef-1633352372991)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802114035926.png)]2.一对一模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PpWZBYdz-1633352372991)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802114139149.png)]
3.多对多模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrGOVqxZ-1633352372992)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802114223668.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GanwCDkO-1633352372993)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802114410106.png)]
2.2
第2.6节 处理机调度的概念,层次
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j5XDMsHu-1633352372994)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802114514611.png)]
一.调度的三个层次
1.高级调度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WNfpLvW3-1633352372995)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802155015829.png)]
(1)高级调度(作业调度)。
(2)每个作业只调入一次,调出一次。
(3)高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定 ,但调出的时机必然是作业运行结束才调出
2.中级调度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SgAqcEfR-1633352372995)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802161108000.png)]
(1)暂时调到外存等待的进程状态为挂起状态。
(2)中级调度(内存调度),就是要决定将哪个处于挂起状态的进程重新调入内存。
(3)一个进程可能会被多次调出,调入内存,因此中级调度发生的频率比高级调度更高。
补充知识:七状态模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iIA0hyqU-1633352372996)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802162303005.png)]
3.低级调度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c2d4VjhS-1633352372997)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802162549800.png)]
(1)低级调度(进程调度),主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
(2)进程调度的频率很高,一般几十毫秒一次。
4.三种调度的联系,对比
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZKzbdlSU-1633352372998)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802163311290.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5hyafL3-1633352372999)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802163434931.png)]
第2.7节 进程调度的时机,切换与过程,调度方式
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yPBT14QD-1633352373000)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802172739401.png)]
一.进程调度的时机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yxny9uiA-1633352373001)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802173126130.png)]
进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MJ7K5O5i-1633352373002)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802173618753.png)]
进程在操作系统内核程序临界区中不能进行调度与切换
二.进程调度的方式
由当前运行的进程是否可以被强行剥夺处理机资源来分为以下两种
1.非剥夺调度方式(非抢占方式)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F75gBhV5-1633352373003)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802174215951.png)]
2.剥夺调度方式(抢占方式)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVEsOoKP-1633352373005)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802174226258.png)]
三.进程的切换与过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCEqUsLl-1633352373005)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802174442798.png)]
进程的切换过程主要完成了:
1.对原来运行进程各种数据的保存
2.对新的进程各种数据的恢复
进程切换是有代价的,过于频繁地进行进程调度,切换,会使整个系统效率降低。
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QlX3tvSQ-1633352373006)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802174903045.png)]
第2.8节 调度算法的评价指标
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cn6Yfed3-1633352373007)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802201805478.png)]
一.CPU利用率
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C1Ptr3XV-1633352373008)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802202146193.png)]
二.系统吞吐量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vajsDScE-1633352373009)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802202758348.png)]
三.周转时间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GOVKL3pa-1633352373010)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802203040144.png)]
带权周转时间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zWmX977G-1633352373011)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802203602124.png)]
四.等待时间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SI9DpsQe-1633352373012)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802204535897.png)]
五.响应时间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fW2aLAo2-1633352373012)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802204712740.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7eswwf2Y-1633352373013)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802204856105.png)]
第2.9节 调度算法—先来先服务,最短作业优先,最高响应比优先
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3431fUs-1633352373014)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210802205636040.png)]
一.先来先服务(FCFS)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pmrfCMwg-1633352373015)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210803114423655.png)]
二.短作业优先(SJF)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qavi5LHp-1633352373016)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210803122747255.png)]
注意点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CXi4wQFc-1633352373017)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210803122545215.png)]
三.高响应比优先(HRRN)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FvtIWzgC-1633352373017)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210803123412190.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xq6uv9Hz-1633352373018)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210803123617551.png)]
第2.10节 调度算法—时间片轮转,优先级调度,多级反馈队列
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-56pekpOM-1633352373019)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210805165752464.png)]
一.时间片轮转(RR)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TwFzLaRX-1633352373020)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210805171458048.png)]
注意点
时间片太大会导致退化为先来先服务算法,且增加进程响应时间
时间片太小导致进程切换过于频繁,系统花大量时间用于进程切换,导致实际进程执行时间比例减少
二.优先级调度算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4fwhD7QX-1633352373021)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807103608694.png)]
补充
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-InwaV1bH-1633352373022)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807103415353.png)]
三.多级反馈队列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dpKexyeK-1633352373023)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807104450841.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqCkMDln-1633352373024)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807110540007.png)]
2.3
第2.11节 进程同步,进程互斥
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K33XKaVg-1633352373025)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807115733178.png)]
一.什么是进程同步
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qR5X4Roa-1633352373026)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807115815632.png)]
二.什么是进程互斥
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iePoiJMd-1633352373027)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807120115499.png)]
遵循原则
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I1ZOs1x2-1633352373028)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807140552920.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RuvWun1N-1633352373028)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807120755154.png)]
第2.12节 进程互斥的软件实现方法
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCU657Fs-1633352373029)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807135945547.png)]
一.单标志法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzZ0yWX2-1633352373030)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807140354930.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7lpijGpB-1633352373030)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210807140416864.png)]
违背”空闲让进“原则
二.双标志先检查法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kdQrGD4m-1633352373031)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210808203155618.png)]
违背“忙则等待”原则
三.双标志后检查法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aRQBGjKw-1633352373032)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210808204103001.png)]
解决了“忙则等待”问题,但是又违背了“空闲让进”和“有限等待”原则
四.Peterson算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TBAkoA3z-1633352373032)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810120731904.png)]
遵循了“空闲让进”,“忙则等待”,“有限等待”的原则,但是未遵循“让权等待”的原则
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q5g1dnSM-1633352373033)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810121210586.png)]
第2.13节 进程互斥的硬件实现方法
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwkiBtZM-1633352373034)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810121324020.png)]
一.中断屏蔽方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uvp70Tcn-1633352373034)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810122006792.png)]
二.TestAndSet指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAia0bJE-1633352373035)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810122428209.png)]
三.Swap指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E9mGX13k-1633352373036)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810122719160.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cYYmZQWm-1633352373036)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210810122755280.png)]
第2.14节 信号量机制
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxtjDQzl-1633352373037)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811202427765.png)]
一.信号量机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBoEUwJ8-1633352373038)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811202922813.png)]
信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量。
1.整型信号量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-067BsTKE-1633352373039)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811211115787.png)]
存在的问题:不满足“让权等待”原则,会发生忙等
2.记录型信号量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vZn5C53L-1633352373039)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811215503588.png)]
注意
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0fAH667b-1633352373040)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811220721510.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0pSF0ZFl-1633352373041)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811220951388.png)]
第2.15节 用信号量机制实现进程互斥,同步,前驱关系
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jsSMHTs0-1633352373041)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210811221118274.png)]
一.信号量机制实现进程互斥
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wDvkTx8U-1633352373042)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812100927489.png)]
**注意:**对不同的临界资源需要设置不同的互斥信号量。
P、V操作必须成对出现。
二.信号量机制实现进程同步
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QUl84Rv9-1633352373043)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812101356616.png)]
操作步骤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xfMvk5ZN-1633352373043)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812101900839.png)]
分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FGF8Eaj3-1633352373044)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812110811859.png)]
三.信号量机制实现前驱关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uOelbteF-1633352373045)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812111318369.png)]
每一对前驱关系都是一个进程同步问题
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YYsTwLbo-1633352373045)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812113227460.png)]
第2.16节 生产者、消费者问题
问题描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6TnRaRUh-1633352373046)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812170424952.png)]
问题分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1w3CxXt-1633352373047)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210812170121577.png)]
1.能否改变相邻P、V操作的顺序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bSQxshs4-1633352373047)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210814142317495.png)]
实现互斥的P操作一定要在实现同步的P操作之后
V操作不会导致进程阻塞,因此两个V操作顺序可以交换
2.生产者生产产品,消费者消费产品者两操作能否放在P、V操作之内
逻辑上看是可以的,但会导致临界区的代码量变大,导致进程间的并发度降低
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bCb8ei3P-1633352373048)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210902233738129.png)]
第2.17节 多生产者,多消费者问题
问题描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wafLYXaA-1633352373049)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210902234128641.png)]
问题分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGskBgsM-1633352373050)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210903193328431.png)]
如何实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rP3UuCSh-1633352373051)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210903194405704.png)]
提问:可不可以不用互斥信号量
答:是可以的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q39AwpBb-1633352373051)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210903194645144.png)]
原因是
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VUwtNTMd-1633352373052)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210903194727660.png)]
结论:如果缓冲区大于1,就必须专门设置一个互斥信号量mutex来保证互斥访问缓冲区
等于1时,有可能不需要设置互斥信号量
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5TSNx28-1633352373053)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210903195231697.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjuSYu3s-1633352373053)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210903195712701.png)]
第2.18节 吸烟者问题
问题描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IzzaICKn-1633352373054)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905211316567.png)]
问题分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJaH4VDg-1633352373055)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905211743521.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZxaaz9C-1633352373056)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905212601030.png)]
如何实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmXAi4ZK-1633352373056)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905213207765.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C52xImoP-1633352373057)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905214419686.png)]
第2.19节 读者-写者问题
问题描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DTqCLWPR-1633352373057)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905215536278.png)]
问题分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iBihEkhv-1633352373058)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905220820301.png)]
如何实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQNjho3w-1633352373059)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905224339702.png)]
存在问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltv06uA2-1633352373060)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905224502827.png)]
解决办法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oJgWZhZh-1633352373060)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905231131908.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8PSMuxqk-1633352373061)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210905231513522.png)]
“写进程饥饿”解决办法:新增加了一个W的互斥信号量,并且在合适的位置对其进行PV操作
第2.20 哲学家进餐问题
问题描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZYsceRi7-1633352373061)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906215641966.png)]
问题分析
以下会有可能导致死锁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-22fby2IZ-1633352373062)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906215841801.png)]
解决办法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgjy8TPZ-1633352373063)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906220230266.png)]
办法三
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hoJFpzIT-1633352373063)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906220836932.png)]
代码实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6RvTfi0h-1633352373064)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906222410156.png)]
对于要求的3的条件,其实并不严谨
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zsXZonrB-1633352373065)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906222906931.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DFX9UCEU-1633352373066)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906223022214.png)]
关键在于解决进程死锁
第2.21节 管程
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v6Zpr1zC-1633352373066)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906225505258.png)]
一.为什么要引入管程
信号量机制存在的问题:编写程序困难、易出错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D06Y58Ea-1633352373067)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906230012561.png)]
二.管程的定义和基本特征
1.组成
(1)局部于管程的共享数据结构说明
(2)对该数据结构进行操作的一组过程
(3)对局部于管程的共享数据设置初始值的语句
(4)管程有一个名字
*2.特征
(1)局部于管程的数据只能被局部于管程的过程所访问
(2)一个进程只有通过调用管程内的过程才能进入管程访问共享数据
(3)每次仅允许一个进程在管程内执行某个内部过程
三.用管程解决生产者消费者问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-euVzPslV-1633352373068)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906233351778.png)]
文字解释
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VRSX6gps-1633352373069)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906233822699.png)]
四.JAVA中类似于管程的机制
synchronized 关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLx0Hd7k-1633352373069)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906234000459.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6586R2mb-1633352373070)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906234140278.png)]
2.4
第2.22节 死锁的概念
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PzhfOK9p-1633352373071)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210906234312240.png)]
一.什么是死锁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MGUdTjuA-1633352373071)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908213723217.png)]
二.死锁、饥饿、死循环的区别
1.死锁
各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的情况
2.饥饿
由于长期得不到想要的资源,某进程无法向前推进的现象。比如在短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”
3.死循环
某进程执行过程中一直跳不出某个循环的现象。有时是因为程序逻辑Bug导致,有时是程序员故意设计
4.三者联系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n3F4tHMq-1633352373072)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908220005571.png)]
三.死锁产生的必要条件
产生死锁必须同时满足四个条件,缺一不可
1.互斥条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TaDoPBZp-1633352373072)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908220149915.png)]
2.不剥夺条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T5qOPuDu-1633352373073)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908220258867.png)]
3.请求和保持条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ci2cx3yR-1633352373074)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908220401566.png)]
4.循环等待条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZ9sNTp6-1633352373075)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908220555982.png)]
四.什么时候会发生死锁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkzZA9HG-1633352373077)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908220902258.png)]
五.死锁的处理策略
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l5ICvWlD-1633352373077)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908221041325.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8VvVVmv-1633352373078)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908221152421.png)]
第2.23节 死锁的处理策略-预防死锁
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5c4MQe04-1633352373079)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210908221313312.png)]
一.破坏互斥条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V45J3yyD-1633352373080)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911092144387.png)]
二.破坏不剥夺条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAzxm5Q7-1633352373080)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911093138727.png)]
三.破坏请求和保持条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLe60VFI-1633352373081)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911093700512.png)]
四.破坏循环等待条件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F3Sil1a7-1633352373085)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911094259386.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TN0YnNRe-1633352373087)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911095103441.png)]
第2.24节 死锁的处理策略-避免死锁
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcpQ0dvi-1633352373088)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911095410940.png)]
一.安全序列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m38KJAip-1633352373089)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911110051780.png)]
二.安全序列、不安全状态、死锁的联系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w77h9YEw-1633352373089)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911110434985.png)]
三.银行家算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CUhFGyb5-1633352373090)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911153818291.png)]
1.核心思想
在进程提出资源申请时,先预判此次分配是否会导致系统进入不安全状态。如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pwUrmvEw-1633352373091)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911154355713.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UOmpywEA-1633352373092)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911165447116.png)]
2.代码实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6IJEGQmZ-1633352373093)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210911171332778.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eINc41sc-1633352373095)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210913233129188.png)]
1.银行家算法步骤
(1)检查此次申请是否超过了之前声明的最大需求数
(2)检查此时系统剩余的可用资源是否还能满足这次请求
(3)试探着分配,更改各数据结构
(4)用安全性算法检查此次分配是否会导致系统进入不安全状态
第2.25节 死锁的处理策略-检测和解除
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lOLAo0Ib-1633352373096)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210913234205720.png)]
一.死锁的检测
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zeVXsQeL-1633352373096)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210913234444445.png)]
为了能对系统是否发生死锁进行检测
1.用某种数据结构来保存资源的请求和分配信息
2.提供一种算法,利用上述信息来检测系统是否已进入死锁状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mr1JaUwx-1633352373097)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210913235212402.png)]
1.检测死锁的方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijpIdqnO-1633352373098)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210913235829805.png)]
二.死锁的解除
并不是系统中所有的进程都是死锁状态,用死锁检测算法化简资源分配图后,还连着边的那些检测就是死锁进程。
1.解除死锁的方法
(1)资源剥夺法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSwMW4XH-1633352373099)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210914000228249.png)]
(2)撤销进程法(终止进程法)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7AyfRF0-1633352373099)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210914000304846.png)]
(3)进程回退法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxnf2S6z-1633352373100)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210914000322628.png)]
2.该对谁解除
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvFLy9pU-1633352373101)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210914000447067.png)]
知识回顾
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1kR9IJMB-1633352373101)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210914000552039.png)]
第三章
3.1
第3.1节 内存的基础知识
知识总览
死锁的处理策略-避免死锁
知识总览
[外链图片转存中…(img-IcpQ0dvi-1633352373088)]
一.安全序列
[外链图片转存中…(img-m38KJAip-1633352373089)]
二.安全序列、不安全状态、死锁的联系
[外链图片转存中…(img-w77h9YEw-1633352373089)]
三.银行家算法
[外链图片转存中…(img-CUhFGyb5-1633352373090)]
1.核心思想
在进程提出资源申请时,先预判此次分配是否会导致系统进入不安全状态。如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。
[外链图片转存中…(img-pwUrmvEw-1633352373091)]
[外链图片转存中…(img-UOmpywEA-1633352373092)]
2.代码实现
[外链图片转存中…(img-6IJEGQmZ-1633352373093)]
知识回顾
[外链图片转存中…(img-eINc41sc-1633352373095)]
1.银行家算法步骤
(1)检查此次申请是否超过了之前声明的最大需求数
(2)检查此时系统剩余的可用资源是否还能满足这次请求
(3)试探着分配,更改各数据结构
(4)用安全性算法检查此次分配是否会导致系统进入不安全状态
第2.25节 死锁的处理策略-检测和解除
知识总览
[外链图片转存中…(img-lOLAo0Ib-1633352373096)]
一.死锁的检测
[外链图片转存中…(img-zeVXsQeL-1633352373096)]
为了能对系统是否发生死锁进行检测
1.用某种数据结构来保存资源的请求和分配信息
2.提供一种算法,利用上述信息来检测系统是否已进入死锁状态
[外链图片转存中…(img-Mr1JaUwx-1633352373097)]
1.检测死锁的方法
[外链图片转存中…(img-ijpIdqnO-1633352373098)]
二.死锁的解除
并不是系统中所有的进程都是死锁状态,用死锁检测算法化简资源分配图后,还连着边的那些检测就是死锁进程。
1.解除死锁的方法
(1)资源剥夺法
[外链图片转存中…(img-GSwMW4XH-1633352373099)]
(2)撤销进程法(终止进程法)
[外链图片转存中…(img-O7AyfRF0-1633352373099)]
(3)进程回退法
[外链图片转存中…(img-yxnf2S6z-1633352373100)]
2.该对谁解除
[外链图片转存中…(img-ZvFLy9pU-1633352373101)]
知识回顾
[外链图片转存中…(img-1kR9IJMB-1633352373101)]
第三章
3.1
第3.1节 内存的基础知识
知识总览
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qaTEFx4H-1633352373102)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210914000756455.png)]