Linux操作系统的实时化设计.pdf

上传人:asd****56 文档编号:70340097 上传时间:2023-01-19 格式:PDF 页数:5 大小:173.42KB
返回 下载 相关 举报
Linux操作系统的实时化设计.pdf_第1页
第1页 / 共5页
Linux操作系统的实时化设计.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《Linux操作系统的实时化设计.pdf》由会员分享,可在线阅读,更多相关《Linux操作系统的实时化设计.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、!#$%操作系统的实时化设计陆卫忠!班建民!刘文亮&苏州科技学院 电子与信息工程系!江苏 苏州()*(+摘要!提出了一种基于优先级的抢占调度外加相同优先级任务时间片轮转调度算法!以解决普通!#$%中的优先级倒置和中断处理时不能处理外部硬件中断而导致响应时间过长的问题!使改造后的!#$%可适应实时应用场合关键词!#$%#实时系统#嵌入式系统#调度策略中图分类号!,-.(/01(文献标识码!2文章编号!(/345*/36$4*)%*(5*/5*7(!#$%内核进程调度!#$%操作系统试图提供一种&公平分配策略来保证所有进程可以均衡地获得8-9资源!使系统具有较高的吞吐量 它加入了-:;(?(-AB

2、CDEF:GFACB#H;IJBFK#BFALCMF LA 8KG$BFA N#OA#KF#BJ%实时扩展部分!引进了实时进程的概念!允许将一个进程定义为实时进程)!#$%中的进程调度策略与具体的进程有关!它反映在进程的JBA$MB BCJPQJBA$MB结构的GEMI成员中一般情况下!GEMI是下面.种情况之一*(R%;8SNTQ:,SNU非实时!采用传统9#%调度算法!即基于优先级的轮转算法#(4%;8SNTQVV:遵守-:;=0RD标准的VV:(VAJB#C#W VAJB:$B%先进先出调度的实时进程#(.%;8SNTQUU遵守-:;收稿日期_ 4*7(*基金项目建设部基金项目(*744

3、*)%#苏州科技学院科研基金项目(Sa4*.%作者简介陆卫忠Z(6/7+!男!江苏常熟人!副教授)苏州科技学院学报(工程技术版%第(1卷第(期b L 9#OFAJBI L;MF#MF C#W,FMY#EHI L;$cY$dE(1e(4*)年.月(N#H#FFA#H C#W,FMY#EHI%fCA 4*)万方数据!第!期在原有#$%&基础上再设计一个专门用于处理实时进程的内核!即系统有个内核!普通进程使用原有的内核调度器进行调度!实时进程使用新设计的调度器进行调度!这种双内核系统可以使用实时内核进程获取外部数据!用非实时内核进程处理数据!如以图形方式显示获取的数据 因此这种改造方法有利于系统的稳

4、定!工作量小 该方案的结构如图!所示因此外部实时扩展的方案保留了#$%&操作系统所提供的丰富功能!原有的基本内核与实时内核共享()*!实时内核处理拥有更高优先级别的任务!而基本内核可以看作是实时系统的空闲任务!只是在没有实时处理需求的时候运行+,中断处理的修改由于中断操作#-./处理器的01#和23#机器指令$会造成不可确定的中断分派延迟%要在普通#$%&上增加实时处理能力!需要修改#$%&为了达到同步目的使用的关中断方式 为此!本方案通过在#$%&内核与中断控制硬件之间增加一个模拟软件来实现对于实时内核来说!它始终不关闭硬件中断!可接受所有的硬件中断 当中断信号需要实时内核处理时!实时进程将

5、抢占#$%&内核 如果中断信号需要原来的#$%&来处理!则由实时内核进程传送信号给#$%&内核 同时在实时内核中设置一个标志变量!当关中断时!该标志变量置为4!开中断时置为5 只要中断发生!实时内核就检查这个变量 假如这个值是!&#$%&中断允许$!则#$%&的中断处理程序将立即调用%如果#$%&中断是禁止的!实时内核将所有待处理的中断放入到一个队列中!保存所有挂起的中断信息%一旦#$%&中断打开!队列中所有挂起的中断被传给#$%&内核处理%,+6实时任务实时任务789是一个用户设计的程序!它按照在内核控制下的特定调度方式来执行!可将实时任务调度单位设计为以线程为单位%为了提高性能!可利用#$

6、%&可装载内核模块的特性使所有的实时任务运行在一个地址空间%每个模块定义了个例程#$#3:;?和01A$%B:;?C%#$#3:;?C在模块装载到内核时调用!01A$%B:;?C在删除模块时调用%通过使用内核地址空间!减少保护模式变换的系统开销%由于所有的任务在系统的地址空间!任务的切换也更简单%一个上下文切换通过先保存所有寄存器到栈中!然后改变栈的指针指向新的任务就可以了%D8实时任务调度策略为了实时化#$%&!在普通#$%&基础上外加一个实时调度器%该实时调度器是一个基于优先级的抢占式调度器%调度策略是每个任务赋予一个唯一的优先级!只要一个优先级更高的任务就绪!它就可以中断当前较低优先级任

7、务的执行%根据每个任务的周期和它们的终止时间!可以利用速率单调调度算法?EA3;$3=%1#$G A1G21#0$%在运行完一个时间片后!该任务即使还没有完成!它也必须释放处理器让下一个与它相同优先级的任务运行?假设这时没有更高优先级的任务就绪C!然后排到同级优先级最后任务的后面!等待再次运行见图%图5#$%&实时化方案的详细结构陆卫忠等#$%&操作系统的实时化设计!万方数据!#年苏州科技学院学报!工程技术版为此#在任务创建时须为它指定一个优先级$%!#&#系统设计共有!#个优先级#优先级数值越大优先级越低#相反数值越小优先级越高#为最高$处于同一优先级的任务可以有任意多个$()*+,-实时调

8、度器的实现根据以上分析#实时化的)*+,-需要定义与实时任务调度相关的数据结构#增加实时调度的算法#修改原有的中断处理过程#具体实现方法如下$(./实时任务的数据结构实时任务调度模块将实时进程分为就绪%运行%等待和僵死0种状态#在给定的时间#实时进程处于以上0种状态中的一种$实时进程的当前状态被记录在123,42 56)72839:;7123,42结构的2839:;1成员中$每一个进程都有一个进程控制块#设计的实时进程控制结构用56)72839:;7123,42结构$此外还有一个用来记录当前?A信息的数据结构56)71489;74B,7123,42$通过56)71489;74B,7123,42

9、结构中的56)72:1C1#构造一个实时任务链$(.!实时调度函数与实时调度器(.!./实时调度模块的创建实时调度模块的建立方法和普通)*+,-内核模块的建立方法一样#通过*+*27DE;,=9函数来实现#实现过程如下&$/&先通过系统调用以F56)*+,-F489;,=93设备名申请一个中断号$这样就把F56)*+,-!FD:=59:=6*D9)*+,-#本文所描述实时系统的进程调度作为普通)*+,-的一个中断设备来处理#而在普通)*+,-的进程调度时首先要处理中断#通过这种方法来保证实时进程的优先运行$!&然后将中断信息保存在变量*+2933,B2712:29中#再关中断$(&接着对系统中

10、的结构56)71489;74B,7123,42进行初始化$将当前进程指针指向56)7=*+,-72:1C#而56)7=*+,-72:1C就是普通进程#实时调度器模块刚建立时还没有实时进程$同时把普通)*+,-也作为一个实时进程#链到实时进程队列中$0&再设置普通)*+,-的状态#它的优先级赋值为G/$最低优先级&$#&设置与系统?A适应的系统时钟#并为时钟设置相应的中断处理函数56)71489;72*D937*+2933,B2#初始化时钟$在56)71489;72*D937*+2933,B2函数中#系统通过定时器的中断不断调用56)71489;,=9$&函数进行实时任务调度!最后恢复中断信息#

11、打开中断$(.!.!实时任务的建立为应用程序创建实时进程是通过B2839:;7439:29$2839:;H:223H 12:32H:3&函数来实现的$其中2839:;是一个指向实时进程结构56)72839:;7123,42的指针#:223是进程的属性描述#12:32是进程执行函数的入口#:3是进程执行函数的参数$该函数完成进程控制块的初始化#关闭中断#将创建的任务加到任务队列的队首#执行任务调度#最后重新打开中断$(.!.(实时任务的删除实时任务运行结束后#通过接口函数B2839:;7;9=9297+B$&将由B2839:;7439:29创建的进程删除$(.!.0实时调度函数实时进程可以在创建

12、时用函数B2839:;7:22371921489;B:3:D设置或在运行中用B2839:;71921489;B:3:D改变其优先级$调度函数将系统的优先级设为G/#而所有实时进程的优先级大于等于#从而保证实时进程优先执行$调度算法实现过程如下&$/&关闭中断#保存中断字信息$!&取系统时间$(&搜索实时任务队列#比较当前精确时间+EI与恢复执行时间2GJ391,D972*D9#查找到的最高优先级的可运行任务保存在+9I72:1C中$0&如果有新任务且优先级与正在运行的任务相同#则设置调度方式和时间片#停止正在执行的任务并加入到相应优先级队列#切换到新任务$否则直接切换到新任务$#&如果新任务为

13、空#则从优先级队列中取出高优先级任务执行#最后通过调度将?A资源交给别的进程$&否则#根据当前进程收到的信号调用;E71*+:=$&来处理#恢复保存的中断字$图!实时任务调度算法!万方数据!第!期#实时程序的编写实时应用程序是用户态程序!通常要用到一些内核的$%&服务函数()*+内核所提供的两百多个函数以,-./程序库的形式提供给用户!也可以在实时应用程序中使用!如012345#6+6789#:(:649等函数同时实时应用程序还需要%;?26AB726689#:?26ABC*6+BD17389等EFG 这些函数的实现规则是基于()*+系统调用的!并最终由()*+内核调度模块来完成H实时性能测试

14、完成()*+系统改造后!需对其作一定的测试以评估系统是否符合实际应用的需求 实际应用中!应用程序的开发者主要关心的是系统中断延时#时钟精度#上下文切换时间#系统调用的开销以及实时抢占能力 通过使用$)A26I J121)在因特网上提供的测试工具EFG!用改造前后的内核分别运行同样的行走机器人数据采集与处理任务 在系统运行K个进程的情况下!该任务从请求到运行完成所需的时间后者比前者减少了L#M CN!而当系统运行!L个进程的情况下则为L#OL CN 系统改造后的性能改进是比较明显的M结语本文分析了()*+移植到嵌入式系统并满足实时处理要求的关键技术!提出并实现了对()*+内核进行外部改造使之实时

15、化的方法 通过上述改造!解决了普通()*+中的优先级倒置和中断处理时不能处理外部硬件中断而导致响应时间过长的问题!实现了软实时功能!使改造后的()*+可以适应实时应用场合参考文献!E!G P(DD;#,DDC6(N62#%21Q2CC()Q 012 26D I12DA R%;6 W!XXK#ELG毛德操!胡希明#()*+内核源代码情景分析EJG#杭州Y浙江大学出版社WLZZ!#EG汤子瀛!哲风屏!汤小丹#计算机操作系统EJG#西安Y西安电子科技大学出版社WLZZZ#EHG J(7?6D P2)1#$D()*+RN6A 26DR(C6 1:62()Q NUN6CEG#JN62%:62#-6I J

16、6+(71&)N(*6 10 67?)1D1QUW!XXF#EMG _(DD(C DD()QN#;:62()Q NUN6CN()62)DN)A A6N(Q):2()7(:D6NEJG#北京$电子工业出版社W LZZ!#EOG王学龙#嵌入式()*+系统设计与应用EJG#北京$清华大学出版社W LZZ#EFG$)A26I J121)#J6N*2()Q(C6()62DN I(?()?6 362)6D EPa;G#?:Ya aIII#b(:#71C#*ac3:C!LZZZRZRLM#6N(Q)10 T6DR(C6()*+._6(Rb?1)Q!P$-d()RC()!&._6)RD()Q%6:#10 D6

17、721)(7)A&)012C(1)Q()662()QW.W(6 N7?6A*D()Q N6A 1):2(12(U I(?6 AA(1)10 T1*)A T1()?6 N3N?()Q?6 NC6:2(12(U(N:21:1N6A#?6 DQ12(?C N1D6N?6:2(12(U()62N(1)A D1)Q 26N:1)N6(C6 012 6+62f)D?2AI26()622*:#()*+I(?6 A6N(Q)I(DD 6 N*(D6 012 26DR(C6:D(7(1)#)*+,-%.#()*+26DR(C6 NUN6C6C6AA6A NUN6CN7?6A*D()Q:1D(7U陆卫忠等$()*

18、+操作系统的实时化设计!万方数据Linux操作系统的实时化设计Linux操作系统的实时化设计作者:陆卫忠,班建民,刘文亮,LU Wei-zhong,BAN Jian-min,LIU Wen-liang作者单位:苏州科技学院,电子与信息工程系,江苏,苏州,215011刊名:苏州科技学院学报(工程技术版)英文刊名:JOURNAL OF UNIVERSITY OF SCIENCE AND TECHNOLOGY OF SUZHOU(ENGINEERING AND TECHNOLOGY)年,卷(期):2005,18(1)参考文献(7条)参考文献(7条)1.Michael Barabanov A linu

19、x-based real-time operating system 19972.汤子瀛;哲风屏;汤小丹 计算机操作系统 20003.毛德操;胡希明 Linux内核源代码情景分析 20014.Andrew Morton Measuring time intervals within the kernel 20005.王学龙 嵌入式Linux系统设计与应用 20036.William Stallings Operating systems internals and design principles 20017.Bill O.Gallmeister Programming for real world-POSIX.4 1998 本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁