2.1_6_线程的实现方式和多线程模型
2.2.1 处理机调度的概念及层次
文章目录
0.思维导图
1.调度的基本概念
2.调度的三个层次
(1)高级调度( 作业调度)
(2)中级调度(内存调度)
(3)进程的挂起状态与七状态模型
(4)低级调度(进程调度)
(5)三层调度的联系和对比
思维导图
1.调度的基本概念
2.调度的三个层次
(1)高级调度( 作业调度)
(2)中级调度(内存调度)
(3)进程的挂起状态与七状态模型
注意:
不能由阻塞态直接转为运行态,也不能就绪态直接转为阻塞态,因为进入阻塞态是进程主动请求的,必然需要进程在运行的时候才能发出这种请求,也就是必须在运行态才可以转为阻塞态
七种状态注意点:
1 处于就绪态的进程因为内存占用较高或者系统负载较高可能会被调到外存的就绪挂起状态,直到空间足够才会被激活回到就绪态
2阻塞挂起态当它等待的阻塞事件发生时-》就绪挂起-》就绪态
3 运行态运行结束之后可能变成就绪挂起态
4、创建态之后若内存空间不够会变成就绪挂起态
(4)低级调度(进程调度)
(5)三层调度的联系和对比
2.2.2 操作系统之进程调度的时机(主动放弃与被动放弃)、切换与过程(广义与狭义)、方式(非剥夺与剥夺)
1.时机
(1)什么时候进行进程调度?
(2)什么时候不能进行进程调度?
2.进程调度的方式
3.进程的切换和过程
2.2.3 操作系统之调度算法的评价指标(cpu利用率、系统吞吐量、周转时间、等待时间、响应时间)
1.CPU利用率
2.系统吞吐量
3.周转时间
4.等待时间
5.响应时间
2.2.4 操作系统之作业/进程调度算法(FCFS先来先服务、SJF短作业优先、HRRN高响应比优先)
1.先来先服务—FCFS
1、 这里面特殊说明一下,作业周转时间以及作业实际运行时间可以举个例子
排队上厕所,上厕所时间即为实际运行时间
2.短作业优先—SJF
- 非抢占式的
这里说明一下时间如何计算的
p1先运行,然后根据短作业先运行的原则,p3就开始运行那么从开始到结束,p3在8结束,p1在7结束,然后p2在12结束,再减去到达时间,就是周转时间,周转时间包括的就是排队加实际做事的时间就是运行的时间,然后再用周转时间除以运行时间,越低越好,别问问什么你也可以反过来除,可能这样更符合常理,只不过前者越大效率越低,后者越大效率越高。
抢占式—SJF(SRTN)
3.高响应比优先—HRRN
2.2.5 操作系统之调度算法(时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法)
1.时间片轮转—RR
可能出现的问题,比如与FCFS对比
2.优先级调度算法
非抢占式例子
- 抢占式例子
补充
3.多级反馈队列调度算法
注意:
多级反馈队列调度算法的流程图里三个队列画了3个cpu(类似多核并行处理),对我来说感觉有点误导的倾向了,但其实并不是多核并行的情况,而是同一个cpu流转到了不同的队列去分配时间片并做相应处理工作,在这个模型里实际上任意时刻都只有一个cpu在工作,实际上还是并发
4.三种算法的对比总结
2.3.1 进程的同步与互斥
1.进程同步
- 同步也称为直接制约关系。
- 在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,如等待、传递信息等,引入了进程同步的概念。进程同步是为了解决进程的异步问题。
- 一个简单的例子来理解这个概念。例如,让系统计算1 + 2x3,假设系统产生两个进程: 一个是加法进程,一个是乘法进程。要让计算结果是正确的,一定要让加法进程发生在乘法进程之后,但实际上操作系统具有异步性,若不加以制约,加法进程发生在乘法进程之前是绝对有可能的,因此要制定一定的机制去约束加法进程,让它在乘法进程完成之后才发生。
异步性:进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。
2.进程互斥
- 互斥,亦称间接制约关系。进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能去访问临界资源。
- 在这里需复习一下临界资源的概念。我们把一个时间段内只允许一个进程使用的资源称为临界资源。许多物理设备(比如摄像头、打印机)都属于临界资源。此外还有许多变量、数据、内存缓冲区等都属于临界资源。
- 对临界资源的访问,必须互斥地进行。
为了禁止两个进程同时进入临界区,需遵循以下准则