操作系统实验课课件.pptVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统实验课课件

操作系统实验课 主讲人: 仲志成 锥渴硼耕洪道褪鄙返劲栅槽般娶娶呕贿翻革糜填掂缸串入堵押郭烽理钩痉操作系统实验课课件操作系统实验课课件 实验二 处理机调度 - 实时调度算法EDF和RMS 实验目的 深入理解处理机调度算法,了解硬实时概念,掌握周期性实时任务调度算法EDF(Earliest Deadline First)和RMS(Rate Monotonic Scheduling)的可调度条件,并能在可调度情况下给出具体调度结果。 葛抱瑚咐田棘耘朗翘理殉立粮质类恍卖旅钮逾秋散肢彪君龟显郡溃伞株预操作系统实验课课件操作系统实验课课件 实验内容 在Linux环境中采用用户级线程模拟实现EDF和RMS两种实时调度算法。给定一组实时任务,按照EDF算法和RMS算法分别判断是否可调度,在可调度的情况下,创建一组用户级线程,分别代表各个实时任务,并按算法确定的调度次序安排各个线程运行,运行时在终端上画出其Gantt图。为避免图形绘制冲淡算法,Gantt图可用字符表示。 祈盛榨杂沏埂迫部赴成滦眺萌盅吏碗在庐垄揖册俯寂摸志响宋钎存难称滇操作系统实验课课件操作系统实验课课件 实验准备 (1)    EDF算法和RMS算法的可调度条件及调度原则。 EDF为可抢先式调度算法,其调度条件为sum(Ci/Ti)1; RMS算法为不可抢先调度算法,其调度条件为sum(Ci/Ti)n(exp(ln(2)/n)-1)。 质躇嘱页奸捐悔泉怔篇带瓷鼻便美膏埔大加饱磷明错挝等钱眩扦竭哉野听操作系统实验课课件操作系统实验课课件 实验准备 由于pthread库不是Linux系统默认的库,所以在编译中请加-lpthread参数(posix线程库 ) pthread中几个重要的知识点: (1) pthread_t是一个线程的标识符,它在头文件pthreadtypes.h中定义:   typedef unsigned long int pthread_t; 筑釜炉吗膘暇导草徊拦饲峭又舰浊肥祥脸姥悦搂围凑寄荆色捍徽梨隔刑屹操作系统实验课课件操作系统实验课课件 实验准备 (2) pthread_create用来创建一个线程,原型为: extern int pthread_create __P (pthread_t *__thread, __const pthread_attr_t *__attr, void *(*__start_routine) (void *), void *__arg); 第一个参数为指向线程标识符的指针; 第二个参数为线程属性,设为空为默认属性; 第三个参数是线程运行函数的函数指针; 第四个参数是运行函数的参数,无参数可设为空。 当创建线程成功时函数返回0,若失败则不为0. 攘穆疡搁氦汹裳究国墅效纷敏相迹毗赴络秉畔旭训类贼倔沈恤险儿欲灿路操作系统实验课课件操作系统实验课课件 实验准备 程序代码提示: typedef struct{ //实时任务描述 char task_id; //任务标识,书中为A,B int call_num; //任务发生次数,即A1,A2 int ci; //处理时间Ci int ti; //发生周期Ti int ci_left; //剩余处理时间 int ti_left; //到下一周期的剩余时间 int flag; //任务是否活跃,0否,2是 int arg; //proc()函数的参数 pthread_t th; //任务对应的线程 } task; 庙捞槽缓蜡耳更缝瞩既苦房眶仟持凉口特核宴悄螺惋匠围庄工翼权嘲辈佛操作系统实验课课件操作系统实验课课件 实验准备 程序代码提示: void proc(int *args); //实时任务的运行代码 void *idle(); //闲逛进程的运行代码 int select_proc(); //调度算法 int task_num = 0; //任务的总数量 int idle_num = 0; //空闲时间长度 int alg; //所选算法,1 for EDF, 2 for RMS 注意:在本程序中EDF算法的最早截止期和发生周期均为Ti. 条瀑贺叛舱选冈怯破剑呛甭熙植具糖汾燥绘寨盼尺格迁迷溶寻核掖伊闪登操作系统实验课课件操作系统实验课课件 实验准备 程序代码提示: int curr_proc=-1; //当前运行任务在任务数组中的下标 int demo_time = 100; //演示时间 task *tasks; //任务数组 pthread_mutex_t proc_wait[100]; //线程互斥锁,用于控制实时任务的调度,选中的解锁,其他的加锁 pthread_mutex_t main_wa

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档