操作系统学习笔记

操作系统

第一章

第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)]

上一篇:思特奇杯-云上蓝桥-算法训练营第一周 阶乘约数


下一篇:安利一款markdown编辑利器——Typora