欢迎来到天天文库
浏览记录
ID:27182149
大小:54.50 KB
页数:6页
时间:2018-12-01
《基于xscale架构实训的嵌入式操作系统研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Xscale架构实训的嵌入式操作系统研究 摘要:通过研究一套基于Xscale架构实训的嵌入式操作系统,使得学生在运用此操作系统构造嵌入式应用系统时变得相对简单、明了,该系统学起来比较容易,更便于学生掌握与理解,该系统是一套应用程序和系统分离的全新设计的嵌入式操作系统;系统应用程序可以独立编译和下载,与嵌入式系统分离;系统具有针对性强、体积小、无关代码少等优点。系统研究是针对嵌入式系统教学实验的要求,紧密结合教学实践,该系统内核精巧,结构清晰,利于学生理解和认识操作系统;外围模块易于扩展,便于在实验中扩展外围设备,应用程序容易构造,便于学生编写实验控
2、制的程序。运用本系统开发嵌入式系统,可降低系统开发难度,提高开发效率。 关键词:Xscale架构;任务调度;资源管理;实训 作者简介:邱小林(1962-),男,江西樟树人,南昌理工学院理事长,教授;周亦人(1958-),男,江西宜春人,南昌理工学院实验中心,高级工程师。(江西 南昌 330044) 中图分类号:G642.44 二、基于Xscale架构实训的嵌入式操作系统的集成 1.算法设计 我们选择基于多任务系统的设计目标作为面向教学应用的嵌入式系统的实现方案。在系
3、统中,实现一个微内核,内核包括任务调度和资源管理两大块。内核结构要紧凑,重点是设计任务调度算法,资源管理算法。 (1)任务调度算法。每一个任务(task)是一个独立执行的线程,该线程可以占用CPU、内存、IO和外设等资源,完成相应的功能。每一个应用可以启动多个任务,在系统内并发执行,任务之间通过通讯接口相互协调,共享某些资源或者数据。系统根据调度算法调度不同任务运行,赋予任务访问资源的权限,在任务资源不能申请到或者出现更高优先级的任务时,能够选择适时的时机,将任务挂起;在被挂起的任务重新获得资源之后,能够继续运行。任务在满足终止条件时,可以终止并删除
4、任务。任务还要划分优先级,优先级高的任务被优先调度。这样在设计任务管理模块时,给每个任务要分配如下的信息字段:1)任务编号(TaskID),这是系统生成的,用以区分不同的任务。2)任务名称(TaskName),这个是应用软件给任务起的名称,主要是应用层管理和区分任务使用的。3)任务优先级:在教学系统中,不设置过多的优先级,以免过于复杂,优先级设置为4级别,分别为0-3,3为最高级。4)任务状态:设置了就绪(ready),挂起(suspend)和阻塞(pended)三种状态,其中,就绪态处于该状态的任务等待CPU分配资源,挂起态处于该状态的任务不能被执行
5、,等待调度,阻塞态是因为申请的资源不能满足,被暂时阻塞,等待其他任务释放资源之后,满足资源要求才能被调度为就绪态,排队等待CPU资源处于就绪态的任务,优先级最高的被先执行。5)资源列表:任务占用的资源列表。资源列表是给资源管理模块查询使用的。当系统出现资源争用时,系统查看处于阻塞态的任务,可以将申请到而未使用的资源释放,以便某些任务先完成,之后释放所占资源,解除阻塞态任务。6)其他字段:每个任务还有其他的一些附加字段,存储一些信息。 (2)资源管理算法。嵌入式系统的资源是有限的,在多个任务间有效地管理资源,实现资源的合理分配回收,最大限度降低任务由于
6、资源不足而被迫阻塞的情况,提高系统运行效率。 每个资源分配如下信息字段:资源名称(任务按照这个名称来申请资源);资源类别;资源状态(空闲,已被申请);资源拥有者(当前谁申请到);资源使用状态(使用中,未使用);其他字段。系统中的内存、IO、中断资源等等都可以规划为资源,供任务申请使用。 2.编码实现 (1)任务调度。 数据结构 structTaskNode{ UINTuTaskID;//任务编号 charszTaskName[MAXTASKNAMELEN+1];//任务名称 UINTuPrior;//任务优先级 UNITuStatus
7、;//任务状态 FUNCPTRentryPt;//任务函数入口 structResourceNode*lpResource;//资源列表 } 调度算法: 1)在不同优先级的任务中采用抢先式多任务调度,优先级别高的任务被优先分配CPU资源(见图1)。 2)同一级别的任务之间采用时间片轮转机制,确保每个任务都会有取得CPU资源的机会,都会被公平地调度和执行。如果不采用轮转机制,当系统中存在多个相同优先级的任务共享CPU时,第一个获得CPU的任务可以不被阻塞地独占CPU。如果没有阻塞或其他情况出现,他从不会给其他相同优先级的任务运行的机会。轮
8、转机制是使用时间片来实现这种相同优先级任务CPU公平分配的。一组任务中的每个任务执行一个预先确
此文档下载收益归作者所有