处理机调度——实时调度算法EDF和RMS…

该实验旨在深入理解处理机调度算法,重点关注实时任务调度的EDF(最早截止期优先)和RMS(速率单调调度)算法。通过在Linux环境下使用用户级线程模拟这两种算法,实验要求根据给定的实时任务判断调度可行性,并绘制Gantt图。在不可调度的情况下,程序会提示任务不可调度。
摘要由CSDN通过智能技术生成

实验二 处理机调度——实时调度算法EDFRMS     

一、实验目的

深入理解处理机调度算法,了解硬实时概念,掌握周期性实时任务调度算法EDF(Earliest Deadline First)RMS(Rate Monotonic Scheduling)的可调度条件,并能在可调度情况下给出具体调度结果

二、实验原理

EDF为可抢先式调度算法,其调度条件为sum(Ci/Ti)£1

RMS算法为不可抢先调度算法,其调度条件为sum(Ci/Ti)£n(exp(ln(2)/n)-1)

三、实验内容

Linux环境中采用用户级线程模拟实现EDFRMS两种实时调度算法。给定一组实时任务,按照EDF算法和RMS算法分别判断是否可调度,在可调度的情况下,创建一组用户级线程,分别代表各个实时任务,并按算法确定的调度次序安排各个线程运行,运行时在终端上画出其Gantt图。为避免图形绘制冲淡算法,Gantt图可用字符表示。 

三、实验设计

1、实时任务用task数据结构描述,设计四个函数:select_proc()用于实现调度算法,被选中任务执行proc(),在没有可执行任务时执行idle(),主函数mian()初始化相关数据,创建实时任务并对任务进行调度。

2、为模拟调度算法,给每个线程设置一个等待锁,暂不运行的任务等待在相应的锁变量上。主线程按调度算法唤醒一个子线程,被选中线程执行一个时间单位,然后将控制权交给主线程判断是否需要重新调度。 


 

四、实验代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值