嵌入式开发——面试题操作系统(调度算法)

linux7种进程调度算法

1:先来先服务(FCFS)调度算法
原理:按照进程进入就绪队列的先后次序进行选择。对于进程调度来说,一旦一个进程得到处理机会,它就一直运行下去,直到该进程完成任务或者因等待某事件而不能继续运行,彩绘让出处理机会。先来先服务算法属于非 剥夺方式。

很少用此算法作为主要的调度算法,会结合其他的调度算法来使用

2:优先级调度算法
原理:按照进程的优先级高低来进行调度,使高优先级进程优先得到处理机的调度算法称为优先级调度算法。

3:时间片轮转调度算法
原理:按照先来先服务原则进行调度,但进程仅占用处理机一个时间片。在使用完一个时间片后,即使进程还没有完成其运行,它也必须让出处理机给下一个就绪的进程。

特别要注意的是,时间片是否用完的判定程序是由时钟中断处理程序激活的,因此时间片值必须大于时钟中断间隔。

4.短进程优先(SPF)调度算法
短进程优先调度算法从进程的就绪队列中挑选那些运行时间(估计时间)最短的进程进入主存运行。这是一个非剥夺算法,问题是进程耗时难以估计

5.最短剩余时间优先调度算法
原理是:让“运行到任务完成时所需的运行时间最短”的进程优先得到处理。

该算法的优点是,可以用于分时系统,保证及时响应用户要求。缺点是,系统开销增加。首先,要保存进程的运行情况记录,以比较其剩余时间长短:其次,剥夺本身也要消耗处理机时间。毫无疑问,这个算法使短进程一进入系统就能立即得到服务,从而缩短进程的平均等待时间。

6.最高响应比优先调度算法
原理是:每个进程都有一个动态优先数,该优先数不但是要求的服务时间,而且是该进程得到服务所花费的等待时间的函数。进程的动态优先数计算公式如下:
优先数=(等待时间+要求的服务时间)/要求的服务时间

7.多级反馈队列调度算法
当一个新进程进入系统后,它被放入第1级队列的末尾。该队列中的进程按先来先服务原则得到处理机,并使用一个相应于该队列的时间片。假如进程在这个时间片内完成了其全部任务,或因等待事件或/O而主动放弃了处理机,该进程就撤离系统(任务完成)或进入相应的等待队列,从而离开就绪队列。若进程使用完了整个时间片后,其运行任务并未完成(也没有产生V/O请求),仍然要求运行,则该进程被剥夺处理机,同时它被放入下一级队列的末是,当第1级队列为空后,调度程序才去调度第2级队列中的进程。其调度方法同前。当第1、2爱队列全部为空后,才去调度第3级队列中的进程……当前面各级队列全部为空后,才去调度最后第n级队列中的进程。第n级(最低优先级)队列中的进程采用时间片轮转调度算法进行调度。当比运行进程更高级别的队列中到来一个新的进程时,它将抢占处理机,而被抢占的进程回到原队列的末尾。
多级反馈队列的调度操作如上所述,它根据进程运行情况的反馈信息而对队列进行组织并调度进程。但对此调度算法需要说明如下。
①照顾I/O型进程的目的在于充分利用外部设备,以及对终端交互用户及时地予以响应。
为此,通常L/O型进程会进入最高优先级队列,从而能很快得到处理机。另一方面,第1级队列
中进程的时间片值也应大于大多数I/O型进程产生一个I/O请求所需的运行时间。这样,既能
使I/O型进程得到及时处理,也避免了不必要的过多的在进程间转接处理机的操作,以减少系统开销。
②处理机型(计算型)进程由于总是用尽时间片(有些计算型进程一直运行几小时也不会产生一个IO请求),而由最高优先级队列逐次进入低优先级队列。虽然运行优先级降低了,等待时间也较长,但终究会得到较大的时间片值来运行,直至在最低一级队列中轮转。
③在有些分时系统中,一个进程由于IO操作完成而要求重新进入就绪队列,并不是将它
放入最高优先级队列,而是让它进入因I/O请求而离开的原来那一级队列。这就需要对进程所在的队列序号进行记录。这样做的好处是,有些计算型进程偶然产生一次I/O请求,I/O操作完成后仍然需要很长的处理机运行时间,为减少进程的调度次数和系统开销,就不要让它们从最高级队列逐次下移,而是直接放入原来所在队列。

内存页面置换算法

含义:当CPU访问页面不在物理内存时,便产生一个缺页中断,请求操作系统将所缺页调入物理内存。
在这里插入图片描述
第4步中,如果找不到空闲页,说明此时内存已满。这时需要页面置换算法,选择一个物理页,如果该物理页有被修改过(脏页),则把它换出到磁盘,然后把该被置换出去的页表项改成无效的,最后把正在访问的页面装入到这个物理页中。

虚拟内存管理流程:
在这里插入图片描述
1: OPT(最佳页面置换)
描述:置换在未来最长时间不访问的页面。
2: FIFO(先进先出)
描述:选择内存驻留时间最长的页面进行置换。
3:LRU(最近最久未使用)
描述:发生缺页时,选择最长时间没有被访问的页面进行置换。
4:LOCK(时钟页面置换)
描述:把所有页面都保持在一个类似钟面的环形链表,一个表针指向最老的页面。
5:LFU(最不常用置换)
描述:发生缺页中断时,选择访问次数最少的页面,并将其淘汰。

磁盘的结构
在这里插入图片描述常见的机械磁盘是上图左边的样子,中间圆的部分是磁盘的盘片,一般会有多个盘片,每个盘面都有自己的磁头。右边的图就是一个盘片的结构,盘片中的每一层分为多个磁道,每个磁道分多个扇区,每个扇区是 512 字节。那么,多个具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面,如上图里中间的样子。

磁盘调度算法的目的很简单,就是为了提高磁盘的访问性能,一般是通过优化磁盘的访问请求顺序来做到的。

寻道的时间是磁盘访问最耗时的部分,如果请求顺序优化的得当,必然可以节省一些不必要的寻道时间,从而提高磁盘的访问性能。

假设有下面一个请求序列,每个数字代表磁道的位置:

98,183,37,122,14,124,65,67

初始磁头当前的位置是在第 53 磁道。

接下来,分别对以上的序列,作为每个调度算法的例子,那常见的磁盘调度算法有:

先来先服务算法
最短寻道时间优先算法
扫描算法算法
循环扫描算法
LOOK 与 C-LOOK 算法

先来先服务

先来先服务(First-Come,First-Served,FCFS),顾名思义,先到来的请求,先被服务。

那按照这个序列的话:

98,183,37,122,14,124,65,67

那么,磁盘的写入顺序是从左到右,如下图:
在这里插入图片描述

先来先服务算法总共移动了 640 个磁道的距离,这么一看这种算法,比较简单粗暴,但是如果大量进程竞争使用磁盘,请求访问的磁道可能会很分散,那先来先服务算法在性能上就会显得很差,因为寻道时间过长。

最短寻道时间优先(Shortest Seek First,SSF)算法的工作方式是,优先选择从当前磁头位置所需寻道时间最短的请求,还是以这个序列为例子:

98,183,37,122,14,124,65,67

那么,那么根据距离磁头( 53 位置)最近的请求的算法,具体的请求则会是下列从左到右的顺序:

65,67,37,14,98,122,124,183
最短寻道时间优先
在这里插入图片描述最短寻道时间优先

磁头移动的总距离是 236 磁道,相比先来先服务性能提高了不少。

但这个算法可能存在某些请求的饥饿,因为本次例子我们是静态的序列,看不出问题,假设是一个动态的请求,如果后续来的请求都是小于 183
磁道的,那么 183 磁道可能永远不会被响应,于是就产生了饥饿现象,这里产生饥饿的原因是磁头在一小块区域来回移动。

扫描算法

最短寻道时间优先算法会产生饥饿的原因在于:磁头有可能再一个小区域内来回得移动。

为了防止这个问题,可以规定:磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道,才调换方向,这就是扫描(Scan)算法。

这种算法也叫做电梯算法,比如电梯保持按一个方向移动,直到在那个方向上没有请求为止,然后改变方向。

还是以这个序列为例子,磁头的初始位置是 53:

98,183,37,122,14,124,65,67

那么,假设扫描调度算先朝磁道号减少的方向移动,具体请求则会是下列从左到右的顺序:

37,14,0,65,67,98,122,124,183
在这里插入图片描述

扫描算法

磁头先响应左边的请求,直到到达最左端( 0 磁道)后,才开始反向移动,响应右边的请求。

扫描调度算法性能较好,不会产生饥饿现象,但是存在这样的问题,中间部分的磁道会比较占便宜,中间部分相比其他部分响应的频率会比较多,也就是说每个磁道的响应频率存在差异。

循环扫描算法

扫描算法使得每个磁道响应的频率存在差异,那么要优化这个问题的话,可以总是按相同的方向进行扫描,使得每个磁道的响应频率基本一致。

循环扫描(Circular Scan, CSCAN )规定:只有磁头朝某个特定方向移动时,才处理磁道访问请求,而返回时直接快速移动至最靠边缘的磁道,也就是复位磁头,这个过程是很快的,并且返回中途不处理任何请求,该算法的特点,就是磁道只响应一个方向上的请求。

还是以这个序列为例子,磁头的初始位置是 53:

98,183,37,122,14,124,65,67

那么,假设循环扫描调度算先朝磁道增加的方向移动,具体请求会是下列从左到右的顺序:

65,67,98,122,124,183,199,0,14,37
在这里插入图片描述
循环扫描算法

磁头先响应了右边的请求,直到碰到了最右端的磁道 199,就立即回到磁盘的开始处(磁道 0),但这个返回的途中是不响应任何请求的,直到到达最开始的磁道后,才继续顺序响应右边的请求。

循环扫描算法相比于扫描算法,对于各个位置磁道响应频率相对比较平均。

LOOK 与 C-LOOK算法

我们前面说到的扫描算法和循环扫描算法,都是磁头移动到磁盘「最始端或最末端」才开始调换方向。

那这其实是可以优化的,优化的思路就是磁头在移动到「最远的请求」位置,然后立即反向移动。

那针对 SCAN 算法的优化则叫 LOOK 算法,它的工作方式,磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中会响应请求。
在这里插入图片描述 LOOK 算法

而针 C-SCAN 算法的优化则叫 C-LOOK,它的工作方式,磁头在每个方向上仅仅移动到最远的请求位置,然后立即反向移动,而不需要移动到磁盘的最始端或最末端,反向移动的途中不会响应请求。
在这里插入图片描述C-LOOK 算法

在这里插入图片描述

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

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

相关文章

阿里云降价,这泼天的富贵你接不接?附云服务器价格表

阿里云能处,关键时刻ta真降价啊!2024新年伊始阿里云带头降价了,不只是云服务器,云数据库和存储产品都降价,阿里云新老用户均可购买99元服务器、199元服务器,续费不涨价,阿里云百科aliyunbaike.c…

【力扣hot100】刷题笔记Day17

前言 今天竟然不用开组会!天大的好消息,安心刷题了 46. 全排列 - 力扣(LeetCode) 回溯(排列) class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 回溯def backtrack():if len(…

关于游戏报错提示x3daudio1_7.dll丢失怎么修复?多个实测有效方法分享

x3daudio1_7.dll 是一个与 Microsoft DirectX 相关的重要动态链接库(DLL)文件,它主要服务于Windows操作系统下的多媒体和游戏应用程序。 一、以下是关于 x3daudio1_7.dll 文件的详细介绍 名称与位置: 文件名:x3daud…

探秘Python的Pipeline魔法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站AI学习网站。 目录 前言 什么是Pipeline? Pipeline的基本用法 Pipeline的高级用法 1. 动态调参 2. 并行处理 3. 多输出 …

Spring底层源码分析

spring依赖注入底层原理解析 spring之bean对象生命周期步骤详情 流程: UserService.class —>推断构造方法—>普通对象----依赖注入------>初始化(afterPropertiesSet方法)------>初始化后(AOP)------…

Zabbix“专家坐诊”第231期问答

问题一 Q:用docker-compose部署zabbix,部署完后如果要修改zabbix的配置应该要改docker-compose文件里的环境变量吧?改了环境变量之后只能重建容器才能生效吗?能不能在不影响已经配好的那些监控项的情况下让新的环境变量生效&#…

win安装卸载python3.13

一、安装 访问python官网:https://www.python.org/ 点击“Downloads” 点击“Windows” 找到自己要下载的版本和位数,比如我这个是3.13版本、64位的安装包 下载好了之后,双击安装包 勾选“Add python.exe to PATH”:把python环…

作业1-224——P1331 海战

思路 深搜的方式&#xff0c;让它只遍历矩形块&#xff0c;然后在下面的遍历中判断是否出现矩形块交叉&#xff0c;但是很难实现&#xff0c;然后发现可以通过在遍历过程中判断是否合法。 参考代码 #include<iostream> #include<cstdio> using namespace std; …

SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突

SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突 &#xff0c;错误如图&#xff1a; 问题原因&#xff1a;不能直接删除作业 任务&#xff0c;需要先删除计划里面的日志、删除代理作业、删除子计划以后才能删除作业。 解…

蓝桥杯:真题讲解3(C++版)附带解析

报纸页数 来自&#xff1a;2016年七届省赛大学C组真题&#xff08;共8道题) 分析&#xff1a; --画出报纸长的样子&#xff0c;如果我们在上面多画一张报纸&#xff0c;那么就符合题意的5&#xff0c;6&#xff0c;11&#xff0c;12。 观察这张图&#xff1a;观察3&#xf…

力扣:35. 搜索插入位置

力扣&#xff1a;35. 搜索插入位置 描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,…

Mybatis | Mybatis的核心配置

目录: Mybatis的核心配置 :一、MyBatis的 “核心对象”1.1 SqlSessionFactory1.2 SqlSession :SqlSession对象中的操作数据库的方法 :\<T> T selectOne ( String statement )\<T> T selectOne( String statement , Object parameter )\<E> List\<E> se…

openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划

文章目录 openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划 openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划 完成资源负载管理功能配置前&#xff0c;需要先根据业务模型完成租户资源的规划。业…

绍兴市新昌县人大一行莅临迪捷软件走访考察

2024年2月29日下午&#xff0c;绍兴市新昌县人大常委会副主任王敏慧一行莅临迪捷软件走访考察&#xff0c;绍兴市委科创委副主任、科创走廊建设领导小组副组长、市人大一级巡视员王继岗&#xff0c;绍兴市科技局副局长、科创走廊建设办公室常务副主任梁枫陪同。 王主任一行听取…

九州金榜|导致孩子厌学因素有哪些?家庭教育中要怎样解决?

现在如今孩子出现厌学的情况越来越严重&#xff0c;这也难坏了很多家长&#xff0c;众所周知&#xff0c;当下社会竞争越来越激烈&#xff0c;孩子的压力也越来越大&#xff0c;这也是导致孩子厌学的主要因素。其实家庭因素也是引起孩子厌学情绪产生的重要原因&#xff0c;在家…

数据结构——二叉树的基本概念及顺序存储(堆)

目录 一.前言 二.树概念及结构 2.1 树的概念 2.2 树的相关概念 2.3 树的表现 2.4 树在实际中的应用&#xff08;表示文件系统的目录树结构&#xff09; 三.二叉树的概念及结构 3.1 概念 3.2 特殊的二叉树 3.3 二叉树的性质 3.4 二叉树的存储结构 3.4.1 顺序存储 3…

YOLOv9有效提点|加入SE、CBAM、ECA、SimAM等几十种注意力机制(一)

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、本文介绍 本文将以SE注意力机制为例&#xff0c;演示如何在YOLOv9种添加注意力机制&#xff01; 《Squeeze-and-Excitation Networks》 SENet提出…

向上生长笔记

第一章 成为一个很厉害的人(持续输入&#xff0c;反复练习) 为什么要学习及如何学习 1、自毁趋势(熵增)&#xff0c;故需要能量输入(负熵流) //引申&#xff1a;水往低处流是趋势&#xff0c;学习是逆趋势。 2、持续输入能量&#xff08;物质和信息&#xff09;&#xff0c;…

力扣2月最后三天的每日一题

力扣2月最后三天的每日一题 前言2867.统计树中的合法路径数目思路确定1e5中的质数统计每个点的连接情况开始对质数点进行处理完整代码 2673.使二叉树所有路径值相等的最小代价思路完整代码 2581.统计可能的树根数目思路建立连通关系将猜测数组变为哈希表&#xff0c;方便查询利…

七通道NPN 达林顿管GC2003,专为符合标准 TTL 而制造,最高工作电压 50V,耐压 80V

GC2003 内部集成了 7 个 NPN 达林顿晶体管&#xff0c;连接的阵列&#xff0c;非常适合逻辑接口电平数字电路&#xff08;例 如 TTL&#xff0c;CMOS 或PMOS 上/NMOS&#xff09;和较高的电流/电压&#xff0c;如电灯电磁阀&#xff0c;继电器&#xff0c;打印机或其他类似的负…