操作系统的调度方法有很多种,这里主要介绍主流的调度算法,像EDF这种调度算法就不表述了。目前几乎所有的商业实时操作系统的调度理论都基于RMS理论.
以下是基于RMS的一些假设理论:
1 各个任务之间没有资源共享,没有忙等,没有mutex, 也没有semaphore.
2 每个任务的最后期限是周期性的。
3 基于优先级抢占的,即高优先级任务一旦就绪的话,会立马抢占低优先级任务。
4 任务优先级的分配原则是,周期越短的任务,优先级越高。
5 任务切换以及纯内核任务的消耗忽略不计对于这个理论模型。
以下的公式是,基于RMS 的一个基础理论:
U 代表了系统的cpu 使用率,C 是任务的运行具体时间,T 是周期性的任务最后期限,n是有多少个任务,等式右边是理论上的可实时调度率,可以看到可调度率只和任务的个数有关,任务越多,可实时调度率越少。
可以看到等式右边:
可以看到当任务接近无穷大的时候,可调度率是69%了。从这个公式可以近似任务系统中69%的任务是可以实时调度的,即能在最后的期限中完成运行。还有大概31%的任务是非实时的。这样的理论模型在实际应用中是完全可行的。
接下来看一个实际的例子:
假设有3个任务P1, P2, P3,运行的时间以及周期如上图。
根据公式可以算出系统的cpu 使用率。
理论上的可实时调度率为
可以看到0.725 <= 0.77976, 所以这3个任务都是可以实时调度的。
RMS理论主要是基于任务优先级的,对于指导分配任务的优先级有很大的实战价值,其核心是根据任务的最后期限(deadline)和周期的时间来分配任务优先级。周期越短的任务优先级越高,这在优先级分配上是一个有趣的开始。
分享到:
相关推荐
操作系统磁盘调度算法实验报告
嵌入式实时操作系统中实时调度算法综述! 文章介绍
嵌入式实时操作系统任务调度算法的改进与应用嵌入式实时操作系统任务调度算法的改进与应用
操作系统磁盘调度算法 运用C++语言编写
关于嵌入式实时系统的各种调度算法,以及实时调度机制的设计。
操作系统磁盘调度课程设计 ⑴模拟一个磁盘调度算法; ⑵要求能够模拟FCFS、最短寻道时间、电梯、CSCAN算法四个磁盘调度算法; ⑶输入为一组作业的磁道请求; ⑷输出为按选择的算法执行时的磁头移动轨迹
本文讨论了三种任务调度的实现方法,分别为:软件调度器模型、协处理器调度模型、硬件调度器模型,并对其性能进行了测试。
操作系统作业调度实现,包括了三种算法,先来先到,短作业优先和响应比优先算法,c语言实现的
操作系统课程设计:用java实现的基本的操作系统进程调度,运行ProcessorDispatch.java,按照输出提示操作即可。
操作系统关于作业调度算法实验源代码,包括先来先服务算法,最短作业优先和最高响应比算法
操作系统进程调度1 操作系统进程调度1 操作系统进程调度1报告
操作系统进程调度1报告操作系统进程调度1报告操作系统进程调度1报告操作系统进程调度1报告操作系统进程调度1报告操作系统进程调度1报告
操作系统磁盘调度算法及模拟实验三
操作系统调度算法java源代码,包括FCFS,SJF,静态优先权调度算法.
操作系统作业调度实验源代码,单进程、多进程、对多个作业进行调度
轮转算法调度进程的模拟过程 。 内容 1.在第 1 3 部分基础上扩展; 2.支持 FCFS 、短 作业优先以及时间片调度算法。 3.能够较方便地查看调度过程及平均周转时间、平均带权周转时 间。 4.支持优先权调度算法与其它...
操作系统课程实验,进程调度,里面有详细的源码解读!
操作系统作业调度算法.分析和对比了6中操作系统作业调度算法的优劣和详细实现思路。
分析OSEK/VDX规范所定义的实时操作系统的任务状态及其调度过程;采用最早时限优先调度(EDF)算法对基于优先级的占先调度算法进行改进,得到改进算法——优先级时限优化调度法;运用差分时限链对优化算法进行实现,...
嵌入式实时操作系统及应用开发 任务管理与调度 进程与线程/任务/任务管理/任务调度/优先级反转