欢迎来到天天文库
浏览记录
ID:57731817
大小:38.63 KB
页数:4页
时间:2020-03-25
《UCOS-II 操作系统内核的改进.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Jun.2006,Volume3,No.6(SerialNo.19)通讯和计算机JournalofCommunicationandComputer,ISSN1548-7709,USAUC/OS-II操作系统内核的改进12成后发,杨春金(1,2武汉理工大学信息工程学院,武汉430063)摘要:UC/OS-II是一种针对嵌入式设计的实时多任务操作系统,采用基于优先级的占先式任务调度算法,虽然效率高但比较单调。在实现TCP/IP协议中,这种内核调度方法对Internet服务进程显得不适应。本文分析了UC/OS-II和Linux操作系统内核任务调度算法,在此基础上提出了一种改进UC/OS
2、-II内核的方法,使其更适合于在嵌入式中实现Internet服务。*关键词:UC/OS-II;任务调度;RTOS;TCP/IP;实时内核1.引言2.Linux内核任务调度算法分析UC/OS-II是源码开放的实时嵌入式操作系统,在Linux操作系统中,内核调度时机主要有以[2]其主要特点如下:源码开放,系统透明化,容易将下几种:操作系统移植到其他平台。①可移植性,源码大l进程状态转换时刻,进程中止、进程睡眠多数由ANSIC编写,底层与硬件相关由汇编编写,时;便于其移植到其它硬件平台。②可固化,只要开l可运行队列中增加一个进程时;发者有固化手段,就能嵌入到操作系统上。③可l当前进程的
3、时间片用完时(Current->剪裁,用户可以自定制所需要的系统服务。④占Counter=0);先式,UC/OS-II采用的是占先式实时内核,意味着l进程从系统调用返回到用户状态时;UC/OS-II总是运行就绪条件下优先级最高的任务,l内核处理完中断后,进程返回到用户状态这种模式使得系统任务及响应时间得以优化。最高时。优先级任务一旦就绪,总能得到CPU控制权。如在Linux的每个进程控制块中有以下几项:果是一个中断得到一个优先级高的任务就绪,那么policy、priority、counter、rt_priority作为调度程序在中断程序完成时,优先级高的任务得以运行。⑤选择进程的
4、依据。其中policy是进程的调度策略,多任务,UC/OS-II可以运行64个任务,8个系统用来区分两种进程——实时和普通;priority是进程任务和56个应用程序任务。UC/OS-II不支持时间(实时和普通)的优先级;counter是进程剩余的时片轮转调度法,所以每个任务的优先级必须不同。间片,它的大小完全由priority决定;rt_priority是多任务结构使应用程序模块化,CPU利用率得到最实时优先级,这是实时进程所特有的,用于实时进大的发挥。⑥服务时间可确定,所有UC/OS-II服程的选择。务的时间是确定的,UC/OS-II的运行时间不依赖于首先,Linux根据po
5、licy从整体上区分实时进应用任务的多少。⑦任务堆栈,每个任务都有属程和普通进程,因为实时进程和普通进程的调度是于自己的不同栈空间,使用UC/OS-II的栈空间检不同的,实时进程应该先于普通进程运行,然后,[1]验函数,可以确定每个任务所需要的栈空间大小。对于同一类型的不同进程,采用不同的标准来进行1成后发(1981-),男,硕士研究生;研究方向:3S技术应用研究。2杨春金(1953-),男,副教授;研究方向:3S技术应用研究。52UC/OS-II操作系统内核的改进选择进程。对于普通进程,Linux采用动态优先调进程调度,而在中断返回时,系统通过调用函数度,选择依据就是进程cou
6、nter的数字大小。进程OSIntExit()实现进程调度。而这两个函数在选择当创建时,优先级priority被赋予一个初值,这个数前优先权最高的进程中采用了非常相似的方式。字同时也是计数器counter的初值,即进程创建时根据以上特点,并结合Linux内核中时间片轮二者相等。在进程运行中,counter不断减小,而转调度算法,对UC/OS-II内核做了改进,改进方priority保持不变,以便在counter变成“0”时(该法如下:进程时间片已经用完)对counter进行重新赋值,(1)取出8个(1组)优先级为Internet服务进这个普通进程才有了被再次调度的机会。这说明,程
7、专用,设立时间片;在普通进程运行过程中,counter值的减小给了其他(2)TCB控制块中增加一项counter作为任务调进程得以运行的机会,这就相当于优先级在动态的度的权值;变化,所以我们称之为动态优先级调度。(3)修改OSSched函数和OSIntExit函数中取得当前最高优先级的算法;3.问题的提出(4)时钟中断处理函数中,将当前运行任务的counter减1(如果该任务属于Internet服务进程专在网络服务环境下,时间片轮转任务调度算法用的任务)。比较适合基于Intern
此文档下载收益归作者所有