嵌入式μCOS-II内核实验四(哲学家就餐问题的实现).ppt_第1页
嵌入式μCOS-II内核实验四(哲学家就餐问题的实现).ppt_第2页
嵌入式μCOS-II内核实验四(哲学家就餐问题的实现).ppt_第3页
嵌入式μCOS-II内核实验四(哲学家就餐问题的实现).ppt_第4页
嵌入式μCOS-II内核实验四(哲学家就餐问题的实现).ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内核实验(四),哲学家就餐问题的实现,实验目的,掌握在基于嵌入式实时操作系统C/OS-II的应用中,任务使用信号量的一般原理。通过经典的哲学家就餐实验,了解如何利用信号量来对共享资源进行互斥访问。,5个任务:Task0、Task1、 Task2、 Task3、 Task4 5个信号量:Sem0, Sem1, Sem2, Sem3, Sem4 优先级: Task0Task1Task2Task3Task4 每个任务i均作相同的工作: 申请信号量i, (i+1) mod 5; 保持信号量; 释放信号量(i+1) mod 5,i,实验设计,实验设计,1、Task0 Task4先后执行,显示“thinking” , 然后挂起; 2、Task0 Task4延时先后到期,显示“hungry” ,然后挂起; 3、 Task0、2、4、1、3先后获得信号量号,显示“eating ”,然后挂起 ; 4、,运行流程,#define OS_TASK_CREATE_EN 1 /*允许使用OSTaskCreate()*/,#define OS_MAX_TASKS 6 /*最多可以创建6个任务*/,#define OS_TASK_STAT_EN 0 /* 禁止统计任务*/,#define OS_TASK_CREATE_EXT_EN 1 /*是否允许使用OSTaskCreateExt()*/,操作系统配置,#define OS_TICKS_PER_SEC 200 /*设置每秒之内的时钟节拍数目*/,#define OS_SEM_EN 1 /*是否允许使用信号量功能*/,#define OS_MAX_EVENTS 5 /*最多可以有5个事件*/,#define OS_LOWEST_PRIO 7 /*任务优先级不可以大于7*/,操作系统配置,OSSemCreate() :建立并初始化一个信号量,本实验中所用到的C/OS-II相关函数,OSSemPend() :申请信号量,OSSemPost() :释放信号量,OSTimeDly():将一个任务延时若干个时钟节拍,OSTaskCreateExt () : 创建一个任务,、创建起始任务TaskStart,OSTaskCreateExt(TaskStart, (void *)0, ,源程序说明,TaskStart负责:,安装时钟中断服务例程 ucos_x86_idt_set_handler(0x20,(void *)OSTickISR,0x8e00); 初始化操作系统时钟 ucos_timer_init(); 创建信号量 forki = OSSemCreate(1); 创建应用任务 TaskStartCreateTasks();,源程序说明,2、创建应用任务Task0, ,Task4,for (i = 0; i N_TASKS; i+) TaskDatai = i; OSTaskCreate(Task, (void *) ,3、应用任务,源程序说明,void Task (void *pdata) for (;) /* 无限循环 */ TASK_Thinking_To_H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论