第六章-处理机调度

[TOC]

处理机调度

主要内容

 进程调度概念

 进程调度算法

 Linux进程调度

教学重点

 典型调度算法

 Linux调度机制


课堂知识小结

6.1进程调度概念

定义:在合适的时候以一定策略选择一个就绪程序运行

调度分类:

长程调度/宏观调度/作业调度 【作业/磁盘】

中程调度/交换调度【进程/内存/磁盘】

短程调度/进程调度【进程/内存】

I/O调度/设备调度 【进程/设备】

进程调度的目标

【红线连接部分会自相矛盾】

两个可以量化的衡量指标

周转时间/平均周转时间

带权周转时间/平均带权周转时间

周转时间

进程提交给计算机到完成所花费的时间(t)

t = tc- ts

 ts——进程的提交时间(Start)

 tc——进程的完成时间(Complete )

说明了进程在系统中停留时间的长短

平均周转时间

t = (t1 + t2 + … + tn)/ n

所有进程的周转时间的平均

 平均周转时间越短,意味着所有进程在系统内停留的时间越短,因而系统吞吐量也就越大,资源利用率也越高

带权周转时间及平均周转时间

6.2进程调度算法(重点)

先来先服务调度(First Come First Serve)

按照作业进入系统的时间先后次序来挑选作业。先进入系统的作业优先被运行

特点

缺点:晚来的作业会等待较长时间。

只考虑作业的等候时间,而没考虑运行时间的长短。因此,一个晚来但是很短的作业可能需要等待很长时间才能被运行,因而本算法不利于短作业

短作业优先调度(Short Job First)

参考运行时间,选取时间最短的作业投入运行。

特点

缺点:早来的长作业会长时间等待

忽视了作业等待时间,一个早来但是很长的作业将会在很长时间得不到调度,易出现资源“饥饿”的现象

响应比高者优先调度
响应比定义

作业的响应时间和与运行时间比值

算法思想:调度作业时计算作业列表中每个作业的响应比,选择响应比最高的作业优先投入运行

特点

 响应比 = 1 + 等待时间 / 运行时间

 有利于短作业

 有利于等候已久的作业。

 兼顾长作业

优先数调度算法

根据进程优先数,把CPU分配给最高的进程。

进程优先数 = 静态优先数 +动态优先数

静态优先数

进程创建时确定,在整个进程运行期间不再改变。

动态优先数

动态优先数在进程运行期间可以改变

循环轮转调度(ROUND-ROBIN)

把所有就绪进程按先进先出的原则排成队列。新来进程加到队列末尾

进程以时间片q为单位轮流使用CPU。刚刚运行了一个时间片的进程排到队列末尾,等候下一轮调度

优点

公平性:每个就绪进程有平等机会获得CPU

交互性:每个进程等待(N-1)* q的时间就可以重新获得CPU

时间片q的大小

如果q太大:

交互性差

甚至退化为FCFS(先来先服务)调度算法。

如果q太小:

进程切换频繁,系统开销增加

改进

时间片的大小可变(可变时间片轮转调度法)

组织多个就绪队列(多重时间片循环轮转)

Linux进程调度(重点)

基本特点:

1)基于优先级调度

2)支持普通进程,也支持实时进程;

3)实时进程优先于普通进程;

4)普通进程公平使用CPU时间

Linux进程类型
Linux进程的优先级
调度方式

当一进程正在CPU上运行时,若有更高优先级的进程需要运行,系统如何分配CPU?

非抢占方式

让正在运行的进程继续执行,直到**该进程完成或发生某事件而进入“完成”或“阻塞”**状态时,才把CPU分配给新来的更高优先级的进程。

抢占方式

当更高优先级的进程来到时,便暂停正在运行的进程立即把CPU分配给新来的优先级更高的进程。

Linux进程优先级(task_struct成员变量)

priority

counter

优先级 = priority + counter

nice (nice = 0)

priority = priority - nice

counter

进程在当前一轮调度中还能连续运行的时间片数量

进程counter越大则优先级越高,可获得越多的CPU时间

一般把counter看作动态优先级

新一轮调度开始时:counter = priority

时钟中断服务程序:counter - -

所有进程的counter都减到0后 :重新开始新一轮调度

调度函数(schedule函数)

在可运行队列中找到一个进程给它分配CPU


简答

MOOC单元作业

1.进程调度的目标有哪些

响应速度尽可能快;

进程处理的时间尽可能短;

系统吞吐量尽可能大;

资源利用率尽可能高;

对所有进程要公平;

避免饥饿;

避免死锁

2.什么是周转时间,什么是带权周转时间

周转时间是指进程提交给计算机到最终完成所花费的时间,说明了进程在系统中停留时间的长短。

带权周转时间是指进程的周转时间与运行时间的比值,说明了进程在系统的相对停留时间

3.什么是响应比?响应比高者优先调度算法有什么特点

响应比是指作业的响应时间与运行时间的比值,响应时间为等待时间加运行时间。

相同等待时间,运行时间越短的作业响应比越高;相同作业时间,等待时间越长的作业响应比越高。

响应比高者优先调度算法有利于短作业和等候长的作业

4.试述优先数调度的算法概念?何为静态优先数,何为动态优先数?

优先数调度算法根据进程的优先数,把CPU分配给最高的进程。

进程优先数等于静态优先数加动态优先数。

静态优先数在创建进程时确定,基于进程所需的资源多少、运行时间长短、进程类型(IO/CPU、前台/后台、核心/用户)。

动态优先数在进程运行期间可以改变,基于使用CPU时长、I/O操作、等待时长。

5.试述循环轮转调度的概念和其优点

循环轮转调度是指把所有就绪进程按先进先出的原则排成队列,所有进程按时间片为单位轮流使用CPU,运行过但没结束的进程排队到队列末尾,等候下一轮运行。

该调度方式保证了进程调度的公平性和交互性

补充简答

1.动态优先数如何确定的?譬如:当使用CPU超过一定时长时,就减少(或增加)的动态优先数

与静态优先数的理念相同,本质上都是在基于进程类型分配优先级,额外处理了静态优先级可能存在的饥饿现象。

1、当使用CPU超过一定时长时,就减少的动态优先数,降低进程优先级,目的是保证不阻碍其他IO任务的处理;

2、当进行I/O操作后,就增加的动态优先数,主观上认为这个进程可能与IO操作有关,日后大概率还会需要IO操作提高进程优先级进程I/O操作;

3、当进程等待超过一定时长时,就增加的动态优先数,处理了可能出现的饥饿现象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

且乐一杯酒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值