计算机操作系统——处理机调度算法

计算机操作系统——处理机调度算法


一、处理机调度的层次和调度算法的目标

1.处理及调度的层次

  1. 高级调度:(周期较长,大约几分钟一次) 又称为长程调度作业调度 调度对象:作业 功能:根据算法决定将外存中处于后备队列的作业调入内存,然后为它们创建进程(建立PCB)、分配必要的资源,使它们获得竞争处理及的权利,作业调度时会建立相应的PCB,作业调出时才撤销PCB。
    主要用于:多道批处理系统
  2. 中级调度: 又称为内存调度 调度对象:进程 功能:提高内存利用率和系统吞吐量,把内存中暂时不能运行的进程,调至外存等待,此时的进程处于挂起状态。当它们具备运行条件并且内存有空间时,中级调度来决定把外存的哪些就绪进程重新调入内存
  3. 低级调度:(最基本的调度,使用频率最高,分时系统在10~100ms进行一次进程调度) 又称为进程调度短程调度 调度对象:进程(或内核级线程) 功能:根据某种算法,决定哪个进程获得处理机,并由分派程序将处理机分配给被选中的进程

2.处理机调度算法目标

  1. 处理机调度算法的共同目标
    (1)资源利用率 CPU的利用率:在这里插入图片描述 (2)公平性:让所有进程获得合理的CPU时间,尽量不产生饥饿现象
    (3)平衡性
    (4)策略强制执行

  2. 批处理系统的目标
    (1)平均周转时间短
    周转时间=等待时间+执行时间=完成时刻-到达时刻
    平均周转时间=各进程周转时间之和/进程的个数
    带权周转时间=周转时间/CPU提供服务的时间
    (2)系统吞吐量高 吞吐量:单位时间内系统完成的作业数,它与批处理作业的平均长度有关
    (3)处理机利用率高

  3. 分时系统的目标
    (1)响应时间按快
    (2)均衡性

  4. 实时系统的目标
    (1)截止时间的保证
    (2)可预测性


二、 非抢占式调度算法

1.先来先服务调度算法(FCFS,First-Come-First-Served)

在这里插入图片描述

  • 算法规则:按照作业/进程到达的先后顺序进行服务
  • 优点:公平,实现简单
  • 缺点:带权周转时间长,对长作业有利,短作业不利

例题详解:(解题方式我习惯于用数轴表示,也可以画表格,但是感觉不如数轴看着形象)
在这里插入图片描述

2.短作业优先调度算法(SJF,Short-Job-First)

在这里插入图片描述

  • 算法规则:最短的进程/作业优先得到服务
  • 该算法也有抢占式
  • 优点:减少了平均等待时间和平均周转时间
  • 缺点:对短作业有利,长作业不利,容易产生饥饿现象;必须预知作业的运行时间;人——机无法实现交互;未考虑作业的紧迫程度,不能保证紧迫性作业及时得到处理。

例题详解:

在这里插入图片描述

3.高响应比优先调度算法(HRRN,Highest-Response-Ratio-Next)

在这里插入图片描述

- 算法规则:每次调度时先计算响应比,选择响应比最高的进行服务

  • 优点:避免了长作业饥饿的问题,集合了SJF和FCFS的优点

在这里插入图片描述

响应比大的优先调度(不值得等待的进程优先调度)
响应比越小,等得越值得

例题详解:
在这里插入图片描述


三、抢占式调度算法

进程调度的机制:(1)排队器(2)分派器(3)上下文切换器
进程调度方式:抢占式、非抢占式
抢占式的剥夺原则:(1)优先权原则 (2)短进程优先原则 (3)时间片原则


1.轮转调度算法(时间片轮转)

在这里插入图片描述

轮转调度算法:
(1)基本原理:将所有就绪进程按FCFS排成一个就绪队列,系统设置每隔一定时间便产生一次中断,去激活进程调度程序进行调度,把CPU分配给队首进程,并令其执行下一个时间片…
(2)切换机制:
a.若一个时间片尚未用完,正在运行的进程便已经完成,就立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首的进程进行,并启动一个新的时间片。
b.在时间片用完时,如果进程尚未运行完成,调度程序将把它送往就绪队列的末尾。

时间片大小的确定:
(1)时间片太小:增加系统的开销
(2)时间片太大:时间片轮转便退化为FCFS算法,无法满足交互式用户需求

时间片轮转调度算法常用于分时操作系统,更注重“响应时间”,因而此处不计算周转时间
在这里插入图片描述


2.优先级调度算法

(分为抢占式和非抢占式)
优先级类型:
(1)静态优先级
(2)动态优先级
在这里插入图片描述


3.多级反馈队列调度算法

在这里插入图片描述

调度机制

  • 首先设置多级就绪队列
    每个就绪队列分配不同的时间片,优先级高的为第一队列,时间片最小,随着就绪队列级别的降低,时间片逐渐增大
  • 每个进程按照先来先服务调度算法
    一个进程就绪后进入第一级队列末尾
  • 当有一个优先级更高的进程就绪时,可以抢占CPU,被强占进程回到原来一级的就绪队列末尾。
  • 当第一级别队列空时,就去调度第二队列,…以此类推。
  • 当时间片结束后,进程放弃CPU,转入下一级队列。

多级反馈队列示意图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宇宙即计算~一种新科学:斯蒂芬·沃尔夫勒姆

编辑 :Gemini来源:人机与认知实验室斯蒂芬沃尔夫勒姆这个名字,在中文世界里可能远谈不上家喻户晓;但他的英文名Stephen Wolfram恐怕反而却要熟悉得多。他是Mathematica软件的发明者和首席设计师,被广泛地认为是当今科学…

2018acm-icpc宁夏邀请赛后记

由于要准备期末考试的缘故,时隔一个月之后我才想起来还有一场比赛没有总结。 大概是出去过的最远的地方了,宁夏理工学院离杭州有两千多千米。 不得不说感到了主办方满满的诚意,虽然是第一次办比赛,但是第一天组织的沙湖旅游&#…

【剑指offer】面试题31:栈的压入,弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能…

maven安装与项目创建

maven安装与项目创建 Maven是一个软件项目管理和理解工具。基于项目对象模型的概念,Maven可以管理项目的根据一条中心信息构建、报告和记录。 文件 最新的文件可以在https://maven.apache.org/.找到 系统需求 JDK: 1.7或更高版本(这是为了执行Maven -它仍然允许…

windows 安装zip 压缩

* 到sourceforge上下载 zip-3.0-bin.zip https://sourceforge.net/projects/gnuwin32/files/zip/3.0/zip-3.0-bin.zip/download?use_mirrorjaist 或者http://pan.baidu.com 链接: https://pan.baidu.com/s/1HObxhQUdbsl8J-B-IeeRUg 密码: 9922 * 解压 * 把bin目录下面的exe文件…

应对全球粮食危机 AI、5G与机器视觉联手“养鱼”

来源:Forbes编译:科技行者时至今日,全球粮食挑战已经成为现实难题,环境危机的恶化又进一步加剧了这个挑战。而在这样一波重压之下,人工智能、机器视觉与5G网络等新兴技术能否指明新的解决方案?挪威鲑鱼养殖公司Cermaq…

【剑指offer】面试题32:从上到下打印二叉树(java)

从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11。 思路:利用队列,将左右子树加入队列末尾&…

cache命中率、平均访问时间、访问效率的计算公式

cache命中率、平均访问时间、访问效率的计算公式 cache命中率 平均访问时间 访问效率 使用cache可以提高计算机的性能,也提高了主存访问的效率

全息技术“量子飞跃”或彻底改变成像技术

作者:冯卫东 来源:科技日报科技日报北京2月9日电 (记者冯卫东)据最新一期《自然物理学》报道,英国格拉斯哥大学的物理学家首次找到使用量子纠缠光子来将信息编码为全息图的方法。这一突破了传统全息方法局限性的新型量…

(三)PYTHON字典 元祖 列表尝试应用

(三)PYTHON字典 元祖 列表尝试应用 1、 使用 join 方法将下划线添加到列表的每一个元素拼接成字符串,li = [alex, eric, rain] li [boom, TNT, zhadan] daying "_".join(li) print(daying) 2、 查找列表中元素&#…

定点数与浮点数的表示方法

计算机组成原理——定点数与浮点数 计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。一般来说,定点格式容许的数值范围有限,要求的处理硬件比较简单。而浮点格式容许的数值范围很大,要求的处理硬件比较…

【剑指offer】面试题33:二叉搜索树的后序遍历序列

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true。否则返回false。假设输入的数组的任意两个数字都互不相同。 代码: package offer; public class ti33 { static boolean VerifyTree(int nums[],int start,in…

AI 3.0》王飞跃教授推荐序——未来智能:人有人用,机有机用

☉ 王飞跃中国自动化学会监事长中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任来源:德先生转自:中国自动化学会初见梅拉妮米歇尔之名,还是20世纪80年代末研究她与侯世达关于类比推理的开创性程序“Copycat”(拷贝猫…

计算机组成原理——计算机系统的性能指标(机器字长、存储容量、运算速度)

计算机组成原理——计算机系统的性能指标 计算机系统的性能指标(机器字长、存储容量,运算速度): 1. 吞吐量: 一台计算机在某一时间间隔内能够处理的信息量。 2. 响应时间: 从输入有效到系统产生响应之间…

【剑指offer】面试题34:二叉树中和为某一值的路径

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 代码: package offer; import java.util.ArrayList; class BineryTree1 { int val; Bine…

自动驾驶发展调查:产业化还需技术“破冰”

来源:机器学习研究组订阅/ 导读 /在汽车产业转入存量博弈时代的关键节点,出行领域的变革也随之蓄势待发。汽车制造厂商、出行平台以及科技公司纷纷抢滩自动驾驶赛道。作为一个处于发展初期的产业,自动驾驶从技术路线到落地场景,从…

计算机组成原理——机器字长、指令字长、存储字长

计算机组成原理——机器字长、指令字长、存储字长 字长: 字长: 一个字中的二进制位的位数,是计算机系统结构中的一个重要特性。字长在计算机结构和操作的多个方面均有体现。计算机中大多数寄存器的大小是一个字长。计算机处理的典型数值也可…

【剑指offer】面试题35:复杂链表的复制(Java 实现)

请实现函数ComplexListNode* Clone(ComplexListNode * pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者NULL。结点的C定义如下: struct ComplexListNode…

人类倾向于高估人工智能的进步,低估自身智能的复杂性-读《AI 3.0》

有很多关于人工智能的书。亚马逊网站上就有20,000本。其中很多书都有戏剧性的标题,比如《生命3.0》 ,《终极算法》 ,尤其是《奇点来临》。梅勒妮 米切尔的新书的标题更加谦虚,但是在我看来,在这个主题上,它…

计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)

计算机操作系统——死锁 前言:死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。如果死锁发生,会浪费大量的系统资源,甚至会导致系统崩溃。 关于死锁的结论…