首页 > 编程语言 >操作系统(3.4.2)--实时调度算法的分类

操作系统(3.4.2)--实时调度算法的分类

时间:2023-05-26 23:35:16浏览次数:57  
标签:抢占 操作系统 -- 算法 实时 调度 当前任务 3.4 式调度

按调度方式分类:非抢占式调度算法、抢占式调度算法

1.非抢占式调度算法

1)非抢占式轮转调度算法调度程序每次选择队列中的第一个任务投入运行。当时间片结束后,便把它挂在轮转队列的末尾,等待下次调度运行,而调度程序再选择下一个(队首)任务运行。这种调度算法可获得数秒至数十秒的响应时间,可用于要求不太严格的实时控制系统中。

2)非抢占式优先调度算法

如果在实时系统中存在着要求较为严格(响应时间为数百毫秒)的任务,则可采用非抢占式优先调度算法为这些任务赋予较高的优先级。当这些实时任务到达时,把它们安排在就绪队列的队首,等待当前任务自我终止或运行完成后才能被调度执行。这种调度算法在做了精心的处理后,有可能获得仅为数秒至数百毫秒级的响应时间,因而可用于有一定要求的实时控制系统中

2.抢占式调度算法

1)基于时钟中断的抢占式优先权调度算法

在某实时任务到达后,如果该任务的优先级高于当前任务的优先级,这时并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务。这种调度算法能获得较好的响应效果,其调度延迟可降为几十毫秒至几毫秒。因此,此算法可用于大多数的实时系统中。

2)立即抢占(Immediate Preemption)的优先权调度算法

在这种调度策略中,要求操作系统具有快速响应外部事件中断的能力。一旦出现外部中断,只要当前任务未处于临界区,便立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务。这种算法能获得非常快的响应,可把调度延迟降低到几毫秒至100微秒,甚至更低。


标签:抢占,操作系统,--,算法,实时,调度,当前任务,3.4,式调度
From: https://blog.51cto.com/hwuu/6359558

相关文章

  • C语言--检测号码是否合法
    输入号码,检测是否合法intIfTel(constchar*p,intlen){ inti=0; if(len!=13) //号码长度不合法 return1; if(p[0]!='8'&&p[1]!='6') //号码非86开头 return3; for(i=0;i<len;i++) { if(p[i]<'0'||p[i]>&#......
  • Python中的数据容器指的是什么?
    在Python中,数据容器是用来存储和组织数据的对象,常见的数据容器有以下几种:1.列表(List):是一种有序的数据容器,可以存储任意类型的数据,可以通过下标来访问和修改列表中的元素。2.元组(Tuple):也是一种有序的数据容器,与列表类似,但是元组中的元素不可修改,常用于存储一些固定不变的数据。3......
  • 当涉及到基本数据类型和包装类时,一些你需要了解、可能容易被忽略的细节。(附面试题)
    基本数据类型Java基本数据按类型可以分为四大类:布尔型、整数型、浮点型、字符型,这四大类包含8种基本数据类型。布尔型:boolean整数型:byte、short、int、long浮点型:float、double字符型:char8种基本类型取值如下:数据类型代表含义默认值取值包装类boolean布尔型false0(false)到1(......
  • 深入理解字符串(附面试题)
    字符串介绍字符串是程序开发当中,使用最频繁的类型之一,有着与基础类型相同的地位,甚至在JVM(Java虚拟机)编译的时候会对字符串做特殊的处理,比如拼加操作可能会被JVM直接合成为一个最终的字符串,从而到达高效运行的目的。1String特性String是标准的不可变类(immutable),对它的任何改......
  • Java 中的运算符和流程控制(附面试题)
    算术运算符Java中的算法运算符,包括以下几种:算术运算符名称举例+加法1+2=3-减法2-1=1*乘法2*3=6/除法24/8=3%求余24%7=3++自增1inti=1;i++--自减1inti=1;i--我们本讲要重点讲的是“++”和“--”,其他的算术运算符相对比较简单直观,本讲就不花精力去讲解了,之所以要把“++”和......
  • 设计模式-观察者模式(Observer)
    一、 观察者(Observer)模式观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通......
  • 全面掌握 Java 中的异常处理(附面试题)
    在程序开发中,异常处理也是我们经常使用到的模块,只是平常很少去深究异常模块的一些知识点。比如,try-catch处理要遵循的原则是什么,finally为什么总是能执行,try-catch为什么比较消耗程序的执行性能等问题,我们本讲内容都会给出相应的答案,当然还有面试中经常被问到的异常模块的一些面......
  • 带宽、网速各种单位换算笔记(一)
    废话不说直接上干货网络带宽计算方法这里指的是带宽网速的单位计算方式方法及关系在计算机网络、IDC机房中,其宽带速率的单位用bps(或b/s)表示;换算关系为:1Byte=8bit1B=8b----------1B/s=8b/s(或1Bps=8bps)1KB=1024B----------1KB/s=1024B/s1MB=1024KB----------1MB/s=1024K......
  • “敏捷”又“精益”的新企架思想,如何指导项目实施?
    就像“一千个读者眼中有一千个哈姆雷特”,企业也有一千种被看待的方式,例如消费者会用品牌和产品来描述企业;投资者会用盈利模式和盈利空间来评估企业,而“企业架构”则是企业管理者、架构师等用来精确描述企业的方式。通过业务建模的方法来构建业务架构,用业务模型来承载企业级视角下的......
  • 玩转时间操作(附面试题)
    在JDK8之前,Java语言为我们提供了两个类用于操作时间,它们分别是:java.util.Date和java.util.Calendar,但在JDK8的时候为了解决旧时间操作类的一些缺陷,提供了几个新的类,用于操作时间和日期,它们分别是:LocalTime、LocalDateTime、Instant,都位于java.time包下。时间的操作在我......