操作系统:中断与处理器调度

目录

1、中断与中断系统

中断概念:

中断装置:

中断相关概念:

中断优先级别与中断屏蔽

2、处理机(CPU)调度

调度相关参数:P62

调度算法:

 处理机调度时机

 处理机调度过程

3、调度级别与多级调度 

调度级别

交换与中级调度

作业与高级调度

4、实时调度

 实时任务:

 实时调度:

 最早截至优先算法EDF(可剥夺)P76:

 单调速率调度RMS(不可剥夺)P76:


1、中断与中断系统

中断概念:

        定义:处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。 

        实现中断需要中断系统,中断系统由软硬件两部分组成,硬件部分叫中断装置、软件部分叫中断处理程序。 

中断装置:

中断系统的硬件部分,职能是发现并响应中断,其工作过程包括以下步骤:

        1、识别中断源:当有多个中断源时,按优先级别排队;    

        2、保存现场:将正在执行的程序的程序状态字PSW指令计数器PC压入系统栈 ;

        3、引出中断处理程序:处理中断事件。

中断相关概念:

中断源:

引起中断的事件。

中断字:

        中断寄存器的内容。协助中断处理程序进一步分析触发中断的原因并采取相应的处理措施。中断寄存器是用于保存与中断事件相关信息的寄存器。

中断类型

强迫性中断(运行程序不期望的):无法预知

        例如:时钟中断、IO中断、控制台中断、硬件故障中断( power failure,内存校验错 )程序错误中断(越界,越权,缺页 、溢出,除0 ,非法指令)

自愿性中断(运行程序期望的):要求系统提供服务,发生必然,且位置确定。

        例如:系统调用 ( fd=open(fname,mode) )

                   访管指令 (准备参数 svc n 取返回值)    

中断向量:

        中断处理程序的运行环境(PSW)与入口地址(PC),发生中断事件,中断装置会将PSW和PC分别送入程序状态字和指令计数器中,如此便可以执行对应的中断处理程序。因而PSW和PC被称为中断向量

        每类中断事件有一个中断向量, 中断向量的存放位置是由硬件规定的,存放在内存的固定单元处。中断向量的内容是OS在系统初始化时设置好的。

 中断嵌套与系统栈:

        中断嵌套:高优先级打断低优先级,因为现场保护和现场恢复次序相反,所以采用系统栈的形式来保存现场信息。

 

        系统栈:它除了保存基本的现场信息外,还有传送操作系统子程序之间相互调用的参数、返回值以及返回地址。 

中断优先级别与中断屏蔽

中断优先级:硬件规定的中断响应次序,依据: 紧迫程度, 处理时间。

中断屏蔽:屏蔽高优先级的中断事件,禁止打断。

 中断处理逻辑:

        这里有两个现场,一个是中断现场(嵌套中断时,保存),另一个是进程切换现场(涉及等待和剥夺),中断现场保存在系统栈中,进程切换现场相当于调度另一个进程,其保存在进程控制块PCB中,二者皆处于核心态(管态)

2、处理机(CPU)调度

调度相关参数:P62

        周转时间:作业等待时间和处理时间之和,即作业进入系统时间和完成时间之差。

        平均周转时间:所有作业周转时间的平均值。

        带权周转时间:作业周转时间和作业运行时间之比。

        平均带权周转时间:所有作业带权周转时间的平均值。

调度算法:

1、先到先服务算法FCFS(非剥夺)P63

        操作系统按进入就绪态的进程的先后次序来分配CPU。

2、最短作业优先SJF(非剥夺)P64

        操作系统按CPU阵发时间的大小(相当于完成这个任务所需的CPU时间,从小到大排列)来分配CPU,同样其也受进入就绪态的次序影响(还没进入就绪态的进程哪有资格给CPU处理呢)。

3、最短剩余时间优先SRTN(可剥夺)P65

         操作系统每次都选择剩余CPU阵法时间最短的进程或线程来分配CPU。比如:当前进程A还需要CPU处理30ms,而新到的进程B只需要CPU处理20ms,这时进程B就可以剥夺进程A,CPU会优先处理进程B。

4、最高优先数算法HPNF(可剥夺或不可剥夺)P66

        优先数相当于优先级,分为两种一种是静态优先数,另一种是动态优先数。

        静态优先数:进程进入系统时,被赋予的一个优先数,是固定不变的。

        动态优先数:进程进入系统时,被赋予的一个优先数,是动态变化的。

        非剥夺式的不可被剥夺,会一直运行下去,直到运行完成或因为某种事件而等待

        剥夺式的低优先数的进程会被高优选数的进程剥夺,保证了CPU运行的都是当前最高优先数的进程。 

5、循环轮转算法RR(不可剥夺)P67

        给所有到达的进程规定一个时间片,所有进程按照时间片的长短轮流进行,所有就绪进程构成就绪队列,用完时间片,但还未处理完成的进程将其放在队尾,重新分配时间片,新到的进程也放队尾,为其分配时间片。

        基本轮转:时间片大小固定等长。

        改进轮转:根据进程的不同特性,分配不等长的时间片,时间片长度是可变的。

6、分类排队算法

        该算法是以多个就绪进程队列为特征的,按照某种原则对进程分类到相应的就绪队列。

7、反馈排队算法

         该算法是以多个就绪进程队列为特征的,与前一个区别是进程可以在不同队列间移动。

8、最高响应比算法(不可剥夺)

        对于同时到达的进程根据响应比计算公式计算的响应比大小来分配CPU,响应比大的先处理,响应比小的后处理。

        响应比=(等待时间+CPU阵发时间)/CPU阵发时间 

 处理机调度时机

        进程切换:如果在时刻T1进程P1在运行,在时刻T2进程P2在运行,且P1不等于P2,则在T1和T2之间发生了进程切换,并将P1称为下降进程,P2称为上升进程。       

        何时会发生进程切换,当进程中断时,会进入管态,并运行处理器调度程序(这是显式地调用),从而引起进程切换,也就是说中断是进程切换的前提,操作系统是靠中断驱动的

以下是中断发生是否产生进程切换的情况。 

 处理机调度过程

1、保存下降进程的现场:下降线程现场信息写入进程控制块PCB

2、选择要运行的进程:按处理机调度的算法

3、恢复上升进程现场:从PCB里取出恢复到相应寄存器

3、调度级别与多级调度 

调度级别

低级调度:处理器调度

中级调度:交换调度

高级调度:作业调度

三者构成了多级调度,实际调度以中级和高级为主。

交换与中级调度

        交换是进程在内存和外存之间的调度,目的在于缓解内存空间资源紧张的问题,减小并发度以降低系统开销。

        中级调度(中程调度)是系统控制并发程度的一个调度级别。当系统并发度高的时,将内存中的某些进程交换到外存,待其并发度低的时候,再交换回来。

作业与高级调度

        高级调度(作业调度、长程调度、长期调度),将作业由输入井或外存调入内存,并为其建立内存,使其有运行资格。以下是作业状态转换关系图

4、实时调度

 实时任务:

定义: 具有明确时间约束的计算任务。

分类:

   按其发生规律划分:

        1、周期性实时任务:每隔固定时间发生一次。

        2、随机性实时任务:由随机事件触发,其发生时刻不确定。

    按时间约束强弱划分:

        1、硬实时 :必须满足任务截止期要求。

        2、软实时 :期望满足截止期要求 。

 实时调度:

定义:合理安排就绪实时任务的执行次序,满足每个实时任务时间约束条件的调度。

 最早截至优先算法EDF(可剥夺)P76:

假定给定多个周期性实时任务,其可调度的必要条件公式如下:

        令Ci为任务Pi处理时间,Ti为任务Pi的发生周期,则任务P1,…,Pm可调度的必要条件为: 

        首先所有周期任务必须满足可调度的必要条件,然后才能使用该算法调度。该算法会优先选择截止期最早的实时任务,完成截至期等同于发生周期

单调速率调度RMS(不可剥夺)P76:

假定给定多个周期性实时任务,其可调度的必要条件公式如下:

        令n为周期性任务个数,Ci为任务Pi处理时间,Ti为任务Pi的发生周期,则任务P1,…,Pm可调度的必要条件为: 

以下是对应不同n值,RMS的上限值的变化,可以发现限制趋向0.693 

    首先所有周期任务必须满足可调度的必要条件,然后才能使用该算法调度。该算法会优先选择发生周期短的任务,也就是发生频率高的任务,完成截至期等同于发生周期

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

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

相关文章

两种距离度量简记

一、Lp距离/Minkowski 距离(Minkowski distance) 1、Lp距离: 特征空间中两个实例点的距离是两个实例点相似程度的反映。Lp距离是一种一般化的距离度量 设特征空间x是n维实数向量空间Rn xi,xj的Lp距离定义为(p>1&…

从零开始的使用SpringBoot和WebSocket打造实时共享文档应用

在现代应用中,实时协作已经成为了非常重要的功能,尤其是在文档编辑、聊天系统和在线编程等场景中。通过实时共享文档,多个用户可以同时对同一份文档进行编辑,并能看到其他人的编辑内容。这种功能广泛应用于 Google Docs、Notion 等…

centos7 离线安装7z

1、下载7-Zip 下载地址:7-Zip - 程序下载 2、解压 mkdir 7zip --创建文件夹7zip mv 7z2301-linux-x64.tar.xz 7zip/ --移动 cd 7zip tar -xvJf 7z2301-linux-x64.tar.xz --解压 输入ll 查看解压后的文件 3、安装cp 7zzs /usr/local/bin/ 输入7zzs 查看是否安装成功…

顶会新宠!KAN-LSTM完美融合新方案

2024深度学习发论文&模型涨点之——KANLSTM KAN-LSTM混合预测模型是一种结合了自注意力机制(KAN, Key-attention network)和长短时记忆网络(LSTM)的深度学习模型,主要用于序列数据的预测任务,如时间序…

CondaError: Run ‘conda init‘ before ‘conda activate‘

rootautodl-container-543e4aa3a7-e596c47a:~# conda activate python37 CondaError: Run ‘conda init’ before ‘conda activate’ conda 激活虚拟环境的时候报错,提示需要进行初始化,但是初始化之后仍然不生效。 1、初始化 conda init2、重新加载环…

Java_实例变量和局部变量及this关键字详解

最近得看看Java,想学一学Flink实时的东西了,当然Scala语法也有这样的规定,简单看一下这两个吧,都比较容易忽视 实例变量和局部变量 实例变量和局部变量是常见的两种变量类型,区别 作用域: 实例变量:实例变…

代理模式的理解和实践

代理模式(Proxy Pattern)是一种结构型设计模式,它允许你为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,客户端通过代理对象间接地访问目标对象。通过这种方式,代理模式…

Autoformer: 一种基于自动相关机制的时序预测新架构

论文题目: Autoformer:Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting 论文地址:https://openreview.net/pdf?idI55UqU-M11y 今天给大家介绍一篇时序预测领域的重要算法——Autoformer,由李华等人于2020年提出&am…

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

目录 一、初始插桩二、长串的由来三、短串的由来2024-12月akamai_2.0-sensor-data之cookie反爬分析详细教程(上)2024-12月akamai_2.0-sensor-data之cookie反爬分析详细教程(中)一、初始插桩 1、其实就是研究dFT的由来,解混淆得到如下**var dFT = ‘’‘concat’‘concat’…

GAMES101:现代计算机图形学-笔记-10

今天来聊一些基本的概念:相机,棱镜与光场。 众所周知,成像的方法有两种:合成与捕获。 像我们之前所学的内容如光栅化,如光线追踪,本质上都是合成图像的方法,他们只是在计算机中模拟来成像。 那…

深信服ATRUST与锐捷交换机端口链路聚合的配置

深信服ATRUST业务口原来只配置使用一个电口,近期出现流量达到800-900M接近端口的极限带宽。由于设备没有万光口,于是只好用2个光口来配置链接聚合。 下需附上深信服ATRST端口配置的截图,由于深信服ATRUST与锐捷交换机端口只共同支持源mac目的…

华为HarmonyOS NEXT 原生应用开发:页面路由、页面和组件生命周期函数

页面路由、组件生命周期 一、路由的基本使用 1. 如何新建页面 直接右键新建Page。【这个是最直接最常用的】新建普通ets文件,然后通过配置变成页面。 【该方法是遇到这种情况的解决方案】 2. 路由 - 页面之间的跳转 使用 **router.pushUrl({}&#xff…

Vulhub:Log4j[漏洞复现]

CVE-2017-5645(Log4j反序列化) 启动靶场环境 docker-compose up -d 靶机IPV4地址 ifconfig | grep eth0 -A 5 ┌──(root㉿kali)-[/home/kali/Desktop/temp] └─# ifconfig | grep eth0 -A 5 eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 in…

电子商务人工智能指南 4/6 - 内容理解

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

`yarn list --pattern element-ui` 是一个 Yarn 命令,用于列出项目中符合指定模式(`element-ui`)的依赖包信息

文章目录 命令解析&#xff1a;功能说明&#xff1a;示例输出&#xff1a;使用场景&#xff1a; yarn list --pattern element-ui 是一个 Yarn 命令&#xff0c;用于列出项目中符合指定模式&#xff08; element-ui&#xff09;的依赖包信息。 命令解析&#xff1a; yarn list…

播放器秒开优化

开篇 先说结论&#xff1a; 字节跳动就曾给出过一份数据&#xff1a;对一部分型号的 Android 手机&#xff0c;播放首帧时长从平均 170ms 优化到 100ms&#xff0c;带来了 0.6% 左右的用户播放时长提升。 衡量指标&#xff1a; 播放秒开率&#xff0c;指的是播放器开始初始…

docker nginx 部署vue 实例

1.安装docker https://blog.csdn.net/apgk1/article/details/144354588 2. 安装nginx docker 安装 nginx-CSDN博客 3. 复制 nginx-test 实例的一些文件到宿主机中&#xff0c;目前已 /home/jznh/路径演示 3.1 在/home/jznh/ 创建 conf html logs 三个文件夹&#xff0c;…

技术人员需要成为的八边形战士

那天偶然看到一个标题&#xff1a;脾气好&#xff0c;技术佳&#xff0c;哪个程序员这么宝藏&#xff1f;我没有点进去看内容&#xff0c;但是心里在琢磨一件事&#xff1a;10年前这种宝藏程序员很难得&#xff0c;现在的市场&#xff0c;恐怕不够。恐怕市场在找的都是下面技能…

VLDB 2024 | 时空数据(Spatial-temporal)论文总结

VLDB 2024于2024年8月26号-8月30号在中国广州举行。 本文总结了VLDB 2024有关时空数据&#xff08;time series data&#xff09;的相关论文&#xff0c;主要包含如有疏漏&#xff0c;欢迎大家补充。 &#x1f31f;【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘&#xf…

【推荐算法】单目标精排模型——FiBiNET

key word: 学术论文 Motivation&#xff1a; 传统的Embedding&MLP算法是通过内积和Hadamard product实现特征交互的&#xff0c;这篇文章的作者提出了采用SENET实现动态学习特征的重要性&#xff1b;作者认为简单的内积和Hadamard product无法有效对稀疏特征进行特征交互&a…