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

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[∑ni=1Ti]

带权周转时间:作业的周转时间T和系统为它提供服务的时间Ts之比W=TTs

平均带权周转时间:W=1n[∑ni=1TiTs]

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

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

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

2.2.2 面向系统:

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

2.3 调度算法

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

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

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

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

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

优先权的确定分为两类:

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

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

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

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

优先权=等待时间+要求服务时间要求服务时间=响应时间要求服务时间

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

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

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

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

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

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

原理:

(1)设置多个就绪队列,并为各个队列赋予不同的优先级。 第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。

(2)当一个进程进入内存时,首先将其放入第一队列,按FCFS原则排队等候调度。当调度到该进程时,若能在时间片内完成,便撤离系统,若在一个时间片内未完成,将其挂入第二队列队尾,再按照FCFS原则进行排队等候,之后按照第一队列的方式进行执行。

(3)仅当第一队列空闲时,才会调度第二队列中的进程,仅当第1~(i-1)队列均空闲时,才会调度第i队列中的进程。

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

时间: 2024-10-09 15:27:10

OS中处理机调度模型和调度算法的相关文章

【操作系统】处理机调度与死锁(三)

一.前言 前面介绍了进程与线程的相关概念,现在继续学习处理机调度,处理机是系统最重要的资源,提高处理机的利用率和改善系统性能,在很大程度上取决于处理机调度性能的好坏,下面来介绍处理的调度以及死锁的问题. 二.处理机调度的层次 2.1 高级调度 高级调度又称为作业调度或长程调度,主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,调度的对象是作业. 作业,包含了程序.数据.作业说明书,系统根据该作业说明书来控制程序的运行.在批处理系统中,是以作业为基本单位从外存调入内存的. 作业步,

(三)处理机调度与死锁

一.前言 前面介绍了进程与线程的相关概念,现在继续学习处理机调度,处理机是系统最重要的资源,提高处理机的利用率和改善系统性能,在很大程度上取决于处理机调度性能的好坏,下面来介绍处理的调度以及死锁的问题. 二.处理机调度的层次 2.1 高级调度 高级调度又称为作业调度或长程调度,主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,调度的对象是作业. 作业,包含了程序.数据.作业说明书,系统根据该作业说明书来控制程序的运行.在批处理系统中,是以作业为基本单位从外存调入内存的. 作业步,

操作系统基础-下-进程控制及处理机调度

!:进程的控制和描述 *进程的定义:进程是一个具有独立功能的程序在一个数据集合上的一次动态运行过程(是操作系统进行调度和资源分配的基本单元,进程间的通信.同步及上下文切换的开销略大) *进程的特征(了解) 1.动态性:动态性是相对于程序本身来说的,程序仅仅是存放在硬盘上的代码,而进程是程序在某一特定数据集上的动态运行,所以,动态性是程序的最基本特性 2.并发性:并发性是指在一段时间内,操作系统内有多个进程并发执行 3.独立性:进程之间是相对独立的,每个进程都有可用的内存空间 4.异步性:即进程之

操作系统-处理机调度

操作系统-处理机调度 调度的实质是资源的分配,而处理机的调度是对处理机资源的调度 调度的层次 高级调度 高级调度的调度对象是作业,只要用于多道批处理程序,在分时和实时系统中不设置高级调度 作业 作业是一个比程序更为广泛的概念,不仅包含了通常的程序和数据,还配有一份作业说明书,它和进程,线程一样有控制块,作业的叫做作业控制块JCB 任务 根据JCB中的信息检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取作业调入内存,并未它们创建进程,分配资源,然后将新进程排

第一次作业:基于Orange's OS系统的进程模型分析与心得体会

1一. 操作系统进程概念模型与进程控制块概念浅析 1. 什么是进程? 图 1 - 1 (WIN10系统任务管理器对进程管理的图形化界面) 计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. --百度百科 应用程序的实例.对正在运行的程序的抽象. --<现代操作系统> 2. 什么是进程控制块? 进程控制块(Processing Control Block),是操作系统核心中一种数据结构,主要表示进程状态.其作用是使一个在多道程序环境下不能独立

LVS专题: LVS的工作模型和调度算法介绍

LVS专题: LVS的工作模型和调度算法介绍 前言 什么是负载均衡? 什么是LVS? LVS的架构: LVS的实现模型: NAT实现原理: DR实现原理: TUN实现原理: FULLNAT实现原理: LVS的调度算法 静态调度算法(4种) 动态调度算法(6种): 总结 前言 本文大概介绍一下LVS的工作方式和实现的模型以及调度算法,流程图方面只上了两张图, 如果有需要LVS各工作模式的流程图请看张小凡:LVS原理详解 什么是负载均衡? 当单台服务器性能不足时我们有两种对其进行扩展的方式, 分别是

处理机调度与死锁

1.高级调度:(作业调度) 把外存上的处于后备队列中的作业调入内存,并且为它们创建进程分配资源.排在就绪队列上,准备执行. 分时系统.实时系统通常不需要 作业调度. 作业控制块 JCB(Job Control Block)       为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块,如同进程控制块是进 程在系统中存在的标志一样,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的 全部信息.在 JCB 中所包含的内容因系统而异,通常应包含的内容有:作业标识.

处理机调度:调度的概念、时机、切换、过程以及调度方式和基本准则

调度的概念 在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免.处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平.髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行. 处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题. 调度的时机.切换与过程 进程调度和切换程序是操作系统内核程序.当请求调度的事件发生后,才可能会运行进程调度程序,当调度了新的就绪进程后,才会去进行进程间的切换.理论上这三件事情应该顺序执行,但在实际设计中

计算机操作系统学习笔记_4_进程管理 --处理机调度

h3.western { font-family: "Liberation Sans",sans-serif; }h3.cjk { font-family: "微软雅黑"; }h3.ctl { font-family: "AR PL UMing CN"; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Sans",sans-serif; f