OS中处理机调度模型和调度算法##

  1. 调度层次

    1.1. 高级调度(长程调度,作业调度)

    功能:根据某种算法,把在外存队列上处于后备队列的那些作业调入内存,以作业为操做对象。

    作业:比程序更为广泛的概念,不仅包含通常的程序和数据,还包含一份作业说明书,系统根据作业说明书对程序的运行进行控制。

    作业步:每个作业都要经过若干个相对独立而又相互关联的顺序加工步骤才能得到结果,我们把每一个步骤称为一个作业步。

    作业流:若干个作业进入系统后被依次存放在外存上,这样便形成了输入的作业流。

    作业控制块(JCB):JCB是作业在系统中存在的标志,保存着系统对作业进行管理和调度所需的全部信息,具体包含的内容根据系统而异。

    作业调度 的作用

    1. 决定接纳多少个作业
    2. 决定接纳那些

    1.2. 中级调度(中程调度,对换)

    功能:将暂时不能运行的进程调到外存上,使其处于外存就绪状态或者外存挂起状态,提高系统的利用率和吞吐量。

    3. 低级调度 (短程调度,进程调度)

    功能:最基本的一种调度 ,主要用来保存处理机的现场信息(进行进程调度时首先保存当前进程的现场信息,将现场信息保存到该进程PCB的相应位置),按某种算法选取进程(根据算法选进程),把处理机分配给进程(由进程分配程序将处理机分配给进程)。

    基本机制:排队器,分派器,上下文切换机制。

    1. 排队器: 事先将系统的就绪队列中所有的就绪进程按照一定的方式排成一个或者是多个队列。

    2. 分派器:将进程调度程序所选定的的进程从就绪队列中取出。

    3. 上下文切换机制: 对处理机进行切换时,会出现两次的上下文切换。系统首先保存当前进程的上下文,装入分派程序的上下文;最后移除分派程序,把选中的进程的CPU现场信息装入各个相应的寄存器。

    调度方式:抢占式 || 非抢占式

    1. 非抢占式:一旦将处理机分配个某进程,不管运行多长时间,决不允许因为时钟中断而抢占处理机,也不允许其他进程抢占已经分配给他的处理机。除非进程执行结束或者是其自身由于某种原因而发生了阻塞时,才会把处理机交个其他的进程。

    2. 抢占式:允许调度程序基于某种原则而暂停当前正在占用处理机的进程,而将处理机分配给其他的进程。(原则:优先权原则,短作业(进程)优先原则,时间片原则)

  2. 调度队列模型及准则

    2.1 调度队列模型

    2.1.1 仅有进程调度的调度队列模型:

    每个进程在执行时都可能出现以下三种情况:

    (1) 任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态

    (2) 任务在本次分得的时间片内尚未完成,OS便将该任务再放入就绪队列的末尾;

    (3) 在执行期间,进程因为某事件而被阻塞后,被OS放入阻塞队列。

    2.1.2 具有低级和高级调度的队列模型:

    由作业调度按一定的作业调度算法,从外存的后备队列中选择一批作业调入内存,并为它们建立进程,送入就绪队列,然后才由进程调度按照一定的进程调度算法选择一个进程,把处理机分配给该进程。

    2.1.3 三级调度队列模型:

在引入中级调度之后,将进程的就绪状态分为内存就绪和外存就绪,类似的也可以将阻塞状态进行划分,分为内存阻塞和外存阻塞,在调度操作下,进程可以由内存阻塞转换为外存阻塞。

2.2 调度准则

2.2.1 面向用户:

**(1)周转时间短:**所谓周转时间,是指从作业被提交给系统开始,到作业完成为止这段时间间隔。

其包含四部分时间:1>作业在外存后备队列等待调度时间,2>进程在就绪队列上等待调度时间,3>进程在cpu上执行的时间,4>进程等待I/O操作完成时间。

平均周转时间:全部作业的周转时间总和与作业数量的比值。T=1n[∑i=1nTi]T = \frac{1}{n}[\sum_{i=1}^nT_i]T=n1​[∑i=1n​Ti​]

带权周转时间:作业的周转时间TTT和系统为它提供服务的时间TsT_sTs​之比W=TTsW = \frac{T}{T_s}W=Ts​T​

平均带权周转时间:W=1n[∑i=1nTiTs]W=\frac{1}{n}[\sum_{i=1}^n\frac{T_i}{T_s}]W=n1​[∑i=1n​Ts​Ti​​]

**(2)响应时间快:**所谓的响应时间,是指从用户提交一个请求开始,到系统首次产生响应为止的时间。是选择分时系统中进程调度的重要准则之一。

**(3)截止时间的保证:**所谓截止时间,是指某任务必须开始执行的最迟时间,挥着必须完成的最迟时间。是评价实时系统的重要指标。

(4)优先权原则: 在选择调度算法时,均可遵循优先权原则,让紧急的任务得到及时的处理。必要时要采用抢占式的调度方式,才能保证紧急作业及时处理。

2.2.2 面向系统:
系统吞吐量高,处理机利用率好,各类资源平衡利用。

2.3 调度算法

***(1)先来先服务算法(FCFS):***最简单的调度算法,既可用于作业调度,也能用于进程调度。应用在作业调度时,每次都是从后备作业队列中选择一个或者多个最早进入该队列的作业,将其调入内存,为其分配需要的资源,创建进程,添加入就绪队列尾部。应用在进程调度时,每次调度都是从就绪队列中选择一个最早进入对列中的进程,为其分配处理机,直到该进程放弃处理机。

优缺点:有利于长作业(进程),不利于短作业(进程)

***(2)短作业(进程)优先算法(SJF/SPF):***从后备队列中选择一个或者多个估计运行时间短的作业或者进程,将他们调入内存或者是为其分配处理机。

优缺点:能明显的改善平均带权周转时间,尤其是对短作业而言。但是该算法对长作业不利,而且未考虑作业的紧迫程度,在实际执行过程中,评判依据只是用户提供的估计执行时间,而用户有可能无意或者有意的缩短估计运行时间,导致不一定能真正的做到短作业优先。

***(3)高优先权优先调度算法(FPF):***可用于作业调度和进程调度,当进行调度时,选择若干个优先权高的作业或者是进程调入内存或者是为其分配处理机。

优先权的确定分为两类:

(3.1)静态优先权:在创建进程时优先权便已经确定,并且在整个运行期间保持不变。确定依据有:1>进程类型(通常系统进程的优先权高于一般用户的优先权)2>进程对资源的需求(对资源要求少的应该赋予较高的优先权)3>用户要求(由用户进程的紧迫程度以及用户所付费用来确定优先权)

(3.2)动态优先权:动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。

优缺点:能很好的体现作业(进程)紧急程度,并根据优先级来进行调度,但是要调度前要比较或者计算作业的优先级,增加了系统的开销。

***(4)高响应比优先算法:***为每个作业引入动态的优先权,使得作业的优先权随着等待时间的增加而以速率a提高。

优先权=等待时间+要求服务时间要求服务时间=响应时间要求服务时间优先权 =\frac{等待时间+要求服务时间}{要求服务时间}=\frac{响应时间}{要求服务时间}优先权=要求服务时间等待时间+要求服务时间​=要求服务时间响应时间​

优缺点:该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使得长作业长时间得不到服务。但是该算法每次调度前都要进行响应比的计算,增加系统的开销。

(5)基于时间片的轮转调度算法:

**基本原理:**系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度都将cpu交给队首的进程,令其执行一个时间片的时间,执行的时间片用完就令该进程放弃时间片,并将其挂入队尾进行下一次的等待。

**时间片大小的确定(核心):**在时间片轮转法中,最核心的就是时间片大小的额确定,时间片大小对系统的性能有很大的影响。时间片太短,有利于短作业,但会频繁的发生中断,,进程上下文的切换,增加系统开销;时间片太长,使得每一个进程在一个时间片单位内都能完成任务,算法便退化成了FCFS算法,无法满足交互式需求。最为合理的是,时间片略大于一次典型的交互所需的时间。

优缺点:基于时间片轮转,能让每个任务都有时间得到执行,有较好的交互性,缺点是时间片的确定比较复杂。

(6)多级反馈队列调度算法:

原理:
(1)设置多个就绪队列,并为各个队列赋予不同的优先级。 第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。
(2)当一个进程进入内存时,首先将其放入第一队列,按FCFS原则排队等候调度。当调度到该进程时,若能在时间片内完成,便撤离系统,若在一个时间片内未完成,将其挂入第二队列队尾,再按照FCFS原则进行排队等候,之后按照第一队列的方式进行执行。
(3)仅当第一队列空闲时,才会调度第二队列中的进程,仅当第1~(i-1)队列均空闲时,才会调度第i队列中的进程。

优缺点:有较好的性能,能很好的满足各类型用户的需求,缺点是有很多的排队队列,要消耗系统资源。

OS中处理机调度模型和调度算法相关推荐

  1. 处理机调度与实时调度算法

    一.处理机调度的层次: 1.高级调度:高级调度又称为作业调度或长程调度,其主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说,它的调度对象是作业.(属于从外存向内存的调度,一般 ...

  2. linux处理机调度实验报告,处理机调度试验

    <处理机调度试验>由会员分享,可在线阅读,更多相关<处理机调度试验(19页珍藏版)>请在人人文库网上搜索. 1.实验报告的基本内容及要求1实验预习在实验前每位同学都需要对本次实 ...

  3. 【学习笔记】第二章——处理机调度的概念、层次、时机、切换过程 调度方式、调度算法的指标

    文章目录 一. 概念 & 层次 1. 高级调度(作业调度) 2. 中级调度(内存调度) 挂起态 & 七状态模型 3. 低级调度(进程调度) 4. 三种调度的对比联系 && ...

  4. 操作系统中的处理机调度调度_操作系统中的流程分类和调度

    操作系统中的处理机调度调度 处理 (Process) In the operating system, there are numerous task and application program ...

  5. 操作系统中的处理机调度调度_操作系统中的多处理器调度

    操作系统中的处理机调度调度 多处理器操作系统 (Multiprocessor Operating system) A multiprocessor system consists of several ...

  6. 【操作系统】处理机调度:处理机调度的层次和调度算法的目标

    处理机调度的层次: (1)高级调度(长程调度,作业调度): [操作系统]处理机调度:作业与作业调度_暮色_年华的博客-CSDN博客 调度对象是作业. 将外存上处于后备队列中的哪几个作业调入内存,为它们 ...

  7. linux 处理机调度ppt,处理机调度6Linux系统中的进程调度-Read.ppt

    不能预览其他用户文档 第3章 处理机调度 3.1 调度级别 3.2 作业调度 3.3 进程调度 3.4 性能评价标准 3.5 常用调度算法 3.6 Linux系统中的进程调度 习题 3.1 调 度 级 ...

  8. 【操作系统/OS笔记10】进程/线程的调度原则、调度算法、实时调度、多处理器调度、优先级反转

    本次笔记内容: 8.1 背景 8.2 调度原则 8.3 调度算法1 8.4 调度算法2 8.5 实时调度 8.6 多处理调度与优先级反转 文章目录 CPU调度背景 上下文切换 CPU调度 在进程/线程 ...

  9. OS学习笔记-15(清华大学慕课)处理机调度

    处理机调度 区别:进程切换指cpu当前占用者切换,解决如何切换.处理机调度指在就绪队列中选择一个进行切换,解决切换哪一个的问题 这里主要讨论的是低级调度:进程调度.实际上还有中级调度:内存调度.高级调 ...

最新文章

  1. 探测器扎堆火星,毅力号:谁挡我WiFi了!
  2. go int64转string_25. 深入学习 Go语言的反射
  3. 关于博客园,编辑文章的小意见
  4. angular2初入眼帘之-多components协作
  5. python干啥用_用python内置函数能干些什么?
  6. java表格树_Java程序员值得拥有的TreeMap指南
  7. Educational Codeforces Round 37-F.SUM and REPLACE (线段树,线性筛,收敛函数)
  8. Butterknife使用——转
  9. python 创建类_python 用type()创建类
  10. 牛客 21302 被3整除的子序列 (动态规划、Python)
  11. 谷歌离开游览器不触发_谷歌游览器
  12. goland 合并分支
  13. 怎么把打开方式改回计算机程序,电脑打开方式改变了,怎么还原
  14. python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案
  15. java swing 升级_Swing - 更新标签
  16. python把list的所有元素生成排列和组合
  17. WINRM实现端口复用后门
  18. miix4linux双系统,联想Miix4 Pro一键重装系统win10教程
  19. 老电脑可以升级win10系统吗
  20. matlab彩色图像处理实验报告,matlab简单图像处理实验报告

热门文章

  1. DelphiXE环境认知
  2. 计算机技术基础:计算机基本结构、运行内存、数据存储、文件系统、软件、操作系统
  3. 华为天才少年谢凌曦:关于视觉识别领域发展的个人观点!
  4. APM/Air32F103/CH32F203/STM32F103程序互通说明
  5. CDPUserSvc_***停止了工作,无法禁用服务
  6. SWOT模型是什么?以及具体分析案例
  7. vite 安装 vue3.0
  8. uniapp 之 获取底部安全距离,状态栏高度等
  9. java mvel_mvel表达式遇到的坑
  10. python高级语言应用结课报告_校本课程开发章节测试参考答案,高级语言程序设计Python章节测试参考答案查询...