操作系统---进程与线程__处理机调度

目录

2.2_1_处理机调度的概念、层次

2.2_1_1调度的基本概念

2.2_1_2.1调度的三个层次--高级调度

2.2_1_2.2调度的三个层次-- 中级调度

2.2_1_2.3调度的三个层次--低级调度

2.2_1_3 三层调度的联系和对比

2.2_1_4进程的挂起态与七状态模型

2.2_2_进程调度的时机、切换与过程、方式

2.2_2_1进程调度的时机

2.2_2_2进程调度的方式

2.2_2_3进程的切换与过程

 2.2_3_调度算法的评价指标

2.2_3_1CPU利用率

2.2_3_2系统吞吐量

2.2_3_3周转时间

2.2_3_4等待时间

2.2_3_5响应时间

 2.2_4_FCFS、SJF、HRRN调度算法

2.2_4_1先来先服务FCFS

2.2_4_2短作业优先

2.2_4_2.2抢占式

2.2_4_3高响应比优先

 2.2_5_调度算法:时间片轮换、优先级、多级反馈队列

2.2_5_2优先级调度算法

2.2_5_3多级反馈队列调度算法


2.2_1_处理机调度的概念、层次

知识总览:

2.2_1_1调度的基本概念

2.2_1_2.1调度的三个层次--高级调度

2.2_1_2.2调度的三个层次-- 中级调度

2.2_1_2.3调度的三个层次--低级调度

2.2_1_3 三层调度的联系和对比

2.2_1_4进程的挂起态与七状态模型

暂时调到外存等待的进程状态为挂起状态(挂起态,suspend)

挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态

五状态模型->七状态模型:

 本节小结:

2.2_2_进程调度的时机、切换与过程、方式

2.2_2_1 进程调度的时机

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

但,并不是随时都可就行进程调度与切换,以下情况不能进行进程调度与切换的情况:

  1. 处理机中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行经常切换。
  2.  进程在操作系统内核程序临界区
  3. 原子操作过程中(原语)。原子操作不可中断,要一气呵成(如之前讲过的修改PCB中进程状态标志,并把PCB放到相应队列)

进程在操作系统内核程序临界区不能进行调度与切换

下面,我们来看一道2012年联考真题---进程处于临界区不能进行处理机调度(X)

(但,普通临界区访问的临界资源不会直接影响操作系统内核的管理工作。因此在访问普通临界区时可以进行调度与切换)

2.2_2_2进程调度的方式

2.2_2_3进程的切换与过程

本节小结:

 

 2.2_3_调度算法的评价指标

2.2_3_1 CPU利用率

 

2.2_3_2 系统吞吐量

 

2.2_3_3 周转时间

 2.2_3_4等待时间

2.2_3_5 响应时间

对于计算机用户来说,会希望自己的提交的请求(比如通过键盘输入了一个调试命令)尽早地开始被系统服务、回应。

响应时间,指从用户提交请求首次产生响应所用的时间。

本节小结:

 2.2_4_FCFS、SJF、HRRN调度算法

 2.2_4_1先来先服务FCFS

  2.2_4_2短作业优先

2.2_4_2.1非抢占式

2.2_4_2.2抢占式

 

 注意几个小细节:

  1. 如果题目中未特别说明,所提到的“短作业/进程优先算法”默认非抢占式
  2. 很多书上都会说“SJF调度算法的平均等待时间、平均周转时间最少”(严格来说,这个表述是错误的,不严谨的。之前的例子已经表明,最短剩余时间优先算法得到的平均等待时间、平均周转时间还要更少;       应该加上一个条件“在所谓进程同时可运行时,采用SJF调度算法的平均等待时间、平均周转时间最少”;       或者说“在所有进程都几乎同时到达时,采用SJF调度算法的平均等待时间、平均周转时间最少”;   如果不加上述前提条件,则应该说“抢占式的短作业/进程优先调度算法(最短剩余时间优先,SRNT算法)的平均等待时间、平均周转时间最少”)
  3. 虽然严格来说,SJF的平均等待时间、平均周转时间并不一定最少,但相比于其他算法(如FCFS),SJF依然可以获得较少的平均等待时间、平均周转时间
  4. 如果选择题中遇到’SJF算法的平均等待时间、平均周转时间最少“的选项,那组好判断一下其他选项是不是有很明显的错误,如果没有更合适的选项,那也应该选择该选项

  

 对FCFS和SJF 两种算法的思考:

  • FCFS算法是在每次调度的时候选择一个等待时间最长的作业(进程)为其服务。但是没有考虑到作业的运行时间,因此导致了对短作业不友好的问题
  • SJF算法是选择一个执行时间最短的作业为其服务。但是又完全不考虑各个作业的等待问题,因此导致了对对长作业不友好的问题,甚至还会造成饥饿问题

那么能不能设计一个算法,即考虑到各个作业的等待时间,也能兼顾运行时间呢?

高响应比优先算法

2.2_4_3高响应比优先

 

本节小结:

 

 2.2_5_调度算法:时间片轮换、优先级、多级反馈队列

 2.2_5_1时间片轮转

 

 

 时间片大小为5的情况:

 若按照先来先服务调度算法:

一般来说,设计时间片时要让切换进程的开销占比不超过1%

2.2_5_2优先级调度算法

2.2_5_2.1非抢占式:

  2.2_5_2.2抢占式:

优先级调度算法 补充:

 就绪队列未必只有一个,可以按照不同优先级来组织。另外,也可以把优先级高的进程排在更靠近对头的位置

根据优先级是否可以动态改变,可以将优先级分为静态优先级动态优先级两种

静态优先级:创建进程时确定,之后一直不变

动态优先级:创建进程时有一个初始值,之后会根据情况动态地调整优先级

  

2.2_5_3多级反馈队列调度算法

 ·

 本节小结:

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

INGING666

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

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

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

打赏作者

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

抵扣说明:

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

余额充值