赞
踩
以下是操作系统的各部分知识点的目录:
第一章:操作系统的概述
https://blog.csdn.net/weixin_44751294/article/details/104172847
第二章:启动、中断、异常和系统调用
https://blog.csdn.net/weixin_44751294/article/details/104172778
第三章:续内存分配
https://blog.csdn.net/weixin_44751294/article/details/104183639
第四章:非连续内容分配
https://blog.csdn.net/weixin_44751294/article/details/104190197
第五章:虚存技术
https://blog.csdn.net/weixin_44751294/article/details/104196572
第六章:页面置换算法
https://blog.csdn.net/weixin_44751294/article/details/104204687
第七章:进程与线程
https://blog.csdn.net/weixin_44751294/article/details/104228830
第八章:处理机调度
https://blog.csdn.net/weixin_44751294/article/details/104229011
第九章:同步互斥问题
https://blog.csdn.net/weixin_44751294/article/details/104235209
第十章:信号量与管程
https://blog.csdn.net/weixin_44751294/article/details/104248160
第十一章:死锁与进程通信
https://blog.csdn.net/weixin_44751294/article/details/104259732
第十二章:文件系统
https://blog.csdn.net/weixin_44751294/article/details/104268956
1、上下文切换:
2、CPU调度
从就绪队列中挑选一个进程/线程作为CPU将要运行的下一个进程/线程
调度程序:挑选进程/线程的内核函数(通过一些调度策略)
什么时候进程调度?调度算法实现
问题:在进程/线程的生命周期中的什么时候进行调度?
3、内核运行调度程序的条件(满足一条即可)
1)一个进程从运行状态切换到等待状态
2)一个进程被终结了
4、是否可以抢占
不可抢占:
可以抢占:(常用,针对用户态的)
抢占使得系统程序更加的灵活和高效。
根据什么原则去选择一个进程去执行,这个就是调度的原则
1、执行模型
程序在CPU突发和I/O中交替
2、评价的指标
1)CPU利用率:CPU处于忙碌状态所占时间的百分比
2)吞吐量:在单位时间内完成的进程数量
3)周转时间:一个进程从初始化到结束,包括所有等待时间所花费的时间。
4)等待时间:进程在就绪队列中的总时间
5)响应时间:从一个请求被提交到产生第一次响应所花费的总时间
以上可以对cpu调度的指标有一个分析。
人们通常都需要“更快”的服务
什么是更快:
和水管类比:
3、算法需达到的效果
1)减少响应时间
及时处理用户的输出并且尽快将输出提供给用户
2)减少平均响应时间的波动
在交互系统中,可虞可预测性比高差异低平均更重要
3)增加吞吐量–两个方面
减少开销(操作系统开销,上下文切换)
系统资源的高效利用(CPU,I/O设备)
4)减少等待时间
减少每个进程的等待时间
其实很难满足以上的全部效果,只能泽中或者在特定场合中选择某种特定效果。
4、公平性
公平的定义:
调度算法有三类:
1)通常操作系统设计的基本调度算法
2)嵌入式设备实时的调度算法
3)针对多处理器的调度算法与考虑
一、常用系统的调用算法
二、先来先服务调度(FCFS)
如图所示,如果前面的进程越长,后面的进程等待的时间就越长,从而会影响整个系统的周转时间。
优点:
简单
缺点:
1)平均等待时间波动较大,平均的周转时间也会比较大
2)花费时间少的任务可能排在花费时间长的任务后面,没有考虑抢占
3)可能导致I/O和CPU之间的重叠处理(cpu密集型进程会导致I/O设备闲置时,I/O密集型进程也在等待)
三、短任务优先算法
当一个更短时间进程来了之后,有两种策略:
1)不理,将这个时间更短的程序排在前面,但是继续执行本来在执行的进程,这种是非抢占性的。(SPN)
2)将这个时间更短的程序与正在执行的程序剩余所需要执行的时间进行比较,如果跟多,这打断正在执行的程序,这种是可抢占的。(SRT)
优点:
平均等待时间最短
缺点:
1)可能导致饥饿
2)需要预知未来
根据过去,预测未来,大致的预测方法如下:
结果大致的相同
四、最高响应比优先算法
在SPN调度的基础上改进
R值越高表示等待的时间越长,就会优先的调度这种进程。
优点:
充分的考虑到了进程的等待时间,所有之前的饥饿现象会得到有效的化解。
缺点:
1)不可抢占
2)依然需要知道执行的时间是多长,所以还是要预估
五、轮循算法
各个cpu轮流占用cpu去执行,在叫做量子(或时间切片)的离散单元中分配处理器,时间片结束后,切换到下一个准备好的进程。
每一个进程都有机会去被cpu执行
例子:
可见,轮流算法的平均等待时间是比较大的。
特点:
1)会比较到的切换时间,进程上下文的切换,确保公平
2)时间片太大(有可能退化为先来先服务)
3)时间片太小(切换过于频繁)
目标:
进程的执行过程中
与先来先服务算法 进行比较:
六、多级反馈队列
首先完成高优先级的进程,待其完成了所以的任务之后,再去完成第优先级的进程,这样通过分层不同级别的队列,可以实现调度的区分,使得调度的策略更加的合适。
而且进程在不同阶段的特点是不同的,所以调度算法可以考虑到进程各阶段的特点来调整其在队列中的级别。这个就是多级反馈队列可以体现。
特点:
1)时间量子大小随优先级级别增加而增加
2)如果任务在当前的时间量子中没有完成,则降到下一个优先级
3)能够区分进程在动态执行过程中动态的调整进程优先级,使得IO密集型的任务可以很快的执行,而CPU密集型的任务放在优先级较低位置。
七、公平共享调度
FFS控制用户对系统资源的访问
八、小结
1)FCFS先来先服务
2)SPN/SRT段进程优先
3)HRRN最好响应比优先
4)Round Robin轮循
5)MLFQ舵机反馈对列
6)公平共享调度
面向的是实时的系统,更多的是工业控制(火车,机床等等)
1、定义
正确性依赖于其时间和功能两个方面的一种操作系统
2、性能指标
1)时间约束的及时性(deadlines)
2)速度和平均性能相对不重要
3、主要特征
时间约束的可预测性
4、分类
1)强实时系统
需要在保证的时间内完成重要的任务,必须完成
2)弱实时系统
要求重要的进程的优先级更高,尽量完成,并非必须
Released :让进程处于就绪态的时间
Execution time:执行时间
Absolute deadline:绝对的截止时间,任务的执行不可以操作这个时间
Relative deadline:相对截止时间,因为任务是间隔的,一段时间完成一个任务
(周期是5,执行的时间就是蓝色的区域)
5、特点
硬时限:
软时限:
表示一个实时系统是否能够满足deadline要求
6、实时系统中的两类调度算法:
1)RM(Rate Monotonic)速率单调调度
2)EDF(Earliest Deadline First)最早期限调度
一、多处理器调度
1、多处理器的cpu调度更加复杂
2、对称多处理器(SMP)
二、优先级反转
出现的原因:
T1的执行时间受制于T2的执行时间,因为T2抢占了T3的cpu时间去执行,而T1的执行有必须等待T3处理完共享内容,所以T1的执行时间被T2延长了。从而导致T1不能及时的完成其任务,导致系统处于不稳定状态而重启。
特点:
可以发生在任何基于优先级的可抢占的调度机制中。
当系统内的环境强制性使高优先级任务等待低优先级任务时发生。
解决方法:
1、优先级继承(将问题发生时,提升T3的优先级)
低优先级继承高优先级任务的优先级依赖于他们共享的资源
2、天花板优先级
1)“资源”的优先级和“所有可以锁定该资源的任务中优先级最高的那个任务”的优先级相同。
2)除非优先级高于系统中所有被锁定的资源的优先级上限,否则任务尝试执行临界区的时候会被阻塞
3)持有最高优先级上限信号量锁的任务,会继承被该锁所阻塞的任务的优先级
参考链接:https://www.bilibili.com/video/av6538245
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。