ImageVerifierCode 换一换
格式:PPT , 页数:85 ,大小:14.41MB ,
资源ID:12509893      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12509893.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(嵌入式实时操作系统简介.ppt)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

嵌入式实时操作系统简介.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,嵌入式系统,An Introduction to Embedded System,第五课 嵌入式实时操作系统(RTOS)简介,教师:蔡铭,cm,助教:王广辉,embededsystem.cai,浙江大学计算机学院人工智能研究所,航天科技浙江大学基础软件研发中心,1,.,课程大纲,嵌入式实时操作系统概况,嵌入式实时操作系统特点,

2、嵌入式实时操作系统功能简介,ARM-Linux嵌入式操作系统内核实验,2,.,背景分析,早期嵌入式系统:硬件所限,汇编语言,基本不采用操作系统,基础条件成熟,硬件的提升,微处理器性能提高、存储器容量增加,软件技术快速发展,编译器、操作系统、集成开发环境,3,.,嵌入式操作系统概述发展阶段(1/4),嵌入式操作系统的发展主要经历了以下四个阶段:,无操作系统的阶段,单芯片为核心,具有与一些监测、伺服、指示设备相配合的功能,一般没有明显的操作系统支持,通过汇编语言编程对系统进行直接控制。,主要特点,系统结构和功能都相对单一,针对性强,无操作系统支持,几乎没有用户接口,4,.,嵌入式操作系统概述发展阶

3、段(2/4),简单监控式的实时操作系统阶段,以嵌入式处理器为基础,以简单监控式的操作系统为核心,主要特点:,处理器种类繁多,通用性比较弱;,开销小,效率高;,一般配备系统仿真器,具有一定的兼容性和扩展性;,用户界面不够友好,主要用来控制系统负载,以及监控应用程序运行。,八十年代初:出现了以,VRTX,(1981),、,pSOS,等为代表的,第一代系统(实时内核),提供了实时操作系统基本功能。,5,.,嵌入式操作系统概述发展阶段(3/4),通用的嵌入式实时操作系统阶段,以通用型嵌入式操作系统为标志的嵌入式系统,主要特点:,运行在不同的微处理器,具有强大的通用型操作系统的功能,文件和目录管理,多任

4、务,设备驱动支持,网络支持,图形窗口,用户界面,具有丰富的API和嵌入式应用软件,八十年代后期到九十年代初期,出现以,VxWorks,、,RTEMS,、,Nucleus,PLUS,、,QNX,、,OSE,为代表的第二代系统。,6,.,嵌入式操作系统概述发展阶段(4/4),二十世纪末,出现了以,Integrity,为代表的第三代系统,进一步在实时性、高可靠性、高可用性等方面提供了强有力的支持。,新一代实时操作系统的发展方向主要包括高可信、高可靠、高可用、高安全、微型化、支持多核等。,近年来,出现了以,Internet,为标志的嵌入式系统,嵌入式系统与Internet的全面结合,嵌入式操作系统与应

5、用设备的无缝结合,代表着嵌入式操作系统发展的未来,新的名词:,WebOS,嵌入式实时操作系统发展,7,.,典型的嵌入式实时操作系统,嵌入式实时操作系统数量众多,如:,VxWorks,Windows CE,pSOS,QNX,PalmOS,Nucleus,Android,国产嵌入式实时操作系统,如:,HOPEN,DeltaOS,SmartOS,SZOS,RT-Linux,Symbian,uc,/OS,RTEMS,T-Kernel,Integrity,ThreadX,8,.,嵌入式实时操作系统,VxWorks,VxWorks,操作系统是美国,WindRiver,公司于,1983,年设计开发的嵌入式实

6、时操作系统,具有高性能、稳定的内核以及友好的用户开发环境,是,世界第一大嵌入式操作系统提供商,,应用于航空航天、工业控制、网络设备、汽车电子等领域,。,VxWorks,所具有的显著特点是:,可靠性、实时性和可裁剪性。,支持多种处理器,如,x86,、,PowerPC,、,ARM,、,Sparc,、,MIPS,、,DSP,等。,经典应用:,1997,年,NASA,火星探路者、,2007,年凤凰号火星探测器,在火星沙丘前进,在火星上拍摄的日落全景,9,.,嵌入式实时操作系统,Integrity,美国,Green Hills,公司是,世界排名第二的嵌入式操作系统提供商,,,I,ntegrity,是,G

7、reen Hills,公司的,RTOS,产品,,代表了目前最先进的,RTOS,技术,被,NASA JPL,选中用于测试在太空中的新技术。,分为普通,Embedded,RTOS,和关键应用中使用的,DO-178B,实时操作系统两类。,系统技术优势突出,内核服务优化,系统调用的开销降至最小。,复杂的系统调用可以被抢占。,系统的调度器是一个真正的实时调度器。,具有快速中断处理能力,内核从不阻塞某些中断。,具有一流的集成开发环境,MULTI,支持。,10,.,嵌入式实时操作系统,Windows Embedded,Microsoft,公司针对针对,PDA,、,PocketPC,、移动电话、小型终端设备提

8、供的操作系统,。,用户开发环境、接口,API,、系统界面等与,Windows,相似,因而具有较多的应用。,1996-卡西欧蛤壳式PDA,(Win CE1.0),2006年,1996年,2003年,11,.,开源的嵌入式实时操作系统,嵌入式Linux,嵌入式系统追求数字化、网络化和智能化,要求系统必须是开放的、提供标准的,API,,并能够方便地与众多第三方软硬件沟通。尤其是处于核心地位的操作系统。,Linux,是开放源码的,不存在黑箱技术,遍布全球的众多,Linux,爱好者是其开发的强大技术后盾。,对,Linux,进行实时性改造与裁剪,形成:,Clinux,Embedix,RTLinux,RTA

9、I,Monta,Vista Linux,12,.,开源的嵌入式实时操作系统,C/OSII,C,/OSII,是一种基于优先级抢占式、可移植、可裁剪的多任务实时操作系统。绝大部分源码是用,ANSI C,写的,与硬件相关的那部分汇编代码被压缩至最低限度,使得系统移植性强。,C/OSII,诞生于,90,年代初,最初名称是,C/OS,,由,Jean,J.Labrosse,开发,并在网络上开源,,其特点为短小、精悍,。,C,/OSII,经裁剪最小可达,2KB,,最小数据,RAM,需求,10KB,。,C,/OSII,可以在,8,位,64,位,超过,40,种不同架构的微处理器上运行,在世界范围内得到广泛应用,

10、包括:手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。,13,.,开源的嵌入式实时操作系统,ThreadX,ThreadX,是一款强实时操作系统,以内核小(最小内核为,2K,,最小,RAM 500byte,)、实时性强、高可靠性、源代码开放,免收产品版权费而闻名。由美国,Express Logic,提供解决方案,适于深度嵌入的系统,有功能强大的开发调试环境,MULTI,支持。,典型应用:,2005,年,7,月,4,日,美国,NASA,实施,深度撞击,号宇宙飞船对坦普尔,1,号彗星的准确撞击,关键任务由,ThreadX,完成。,14,.,开源的嵌入式实时操作系统,T-Kernel

11、由日本东京大学的坂村健教授主持开发,具有执行效率高、实时性好等特点,。,1984,年提出计算机操作系统规范,TRON,(,T,he,R,eal-time,O,perating system,N,ucleus,)构想,先后推出了,ITRON,、,JTRON,、,BTRON,、,CTRON,等规范。,其应用从汽车、移动电话、传真机到电视机、家电等领域,主要用户包括:丰田、松下、日立、富士通、东芝、索尼、佳能、理光、,NEC,等,装机量超过,30,亿,。,IBM,、,Microsoft,、,ARM,、,MIPS,、,Sun,、,Oracle,等企业相继加入其开放式系统架构,。,15,.,手机嵌入式

12、操作系统,IPhone OS,iPhone,OS,或,OS X,iPhone,是由苹果公司为,iPhone,开发的操作系统,iPhone,、,iPod,touch,以及,iPad,以,Darwin,为基础的,系统架构分为四个层次,内核操作系统层(,the Core OS layer,),内核服务层(,the Core Services layer,),媒体层(,the Media layer,),可轻触层(,the Cocoa Touch layer,),系统操作占用大概,240MB,的内存空间,源码模式:封闭源码,+,开放源码 组件,最新版本,4.3.3,2011-5-5,16,.,手机嵌入

13、式操作系统,Windows phone,2010,年,2,月,微软公司正式发布,Windows Phone 7,智能手机操作系统,,Windows Mobile,系列彻底退出了手机操作系统市场。,2011年2月,诺基亚在英国伦敦宣布与微软达成战略合作关系。诺基亚手机将采用Windows Phone系统,并且将参与系统开发。,Windows,phone,把网络、个人电脑和手机的优势集于一身,,提供良好的用户体验:,仪表盘主屏,桌面定制,图标拖拽,滑动控制,将于,2011,年,5,月发布,Window Phone Mango,(,windows phone 7.5,),17,.,手机嵌入式操作系统

14、Android,Android是Google开发的基于Linux,平台的开源手机,嵌入式操作系统,。,形成了具有,30,多家技术和无线应用的领军企业组成的开放手机联盟,包括:中国移动、摩托罗拉、高通、宏达和,T-Mobile,等。,Android,的优点,融入全部的,Web,应用,包括:,Gmail,、,Google Maps,、,YouTube,、,Google,日历、,Google Talk,Android,操作系统免费向开发人员提供,18,.,嵌入式实时操作系统,Symbian,Symbian,(,EPOC,系统,),由,Nokia,、,Motorola,、,Siemens,等手机厂商

15、联合注资成立的,公司,专注于手机的嵌入式智能操作系统,支持,c+,、,Java,语言,通讯、多媒体处理功能强,目前占有,60,的智能手机市场。,Symbian,具有功能:,协议标准:,IPv4,、,IPv6,、蓝牙、,WAP,、,SyncML,、,USB,通讯能力:支持,2G,、,2.5G,、,3G,系统应用开发,,GSM,、,GPRS,、,CDMA(IS-95),以及,2000,技术支持,多媒体支持:图片、音乐、视频浏览,信息定制:,SMS,、,EMS,、,MMS,、,EMAIL,和,FAX,支持,安全稳定,:支持数据完整性、可靠高效的电池管理、数据同步、数据加密、证书管理、软件安装管理等,

16、19,.,手机嵌入式操作系统,Palm OS,3Com,公司的,Palm,专用于掌上电脑,,在,PDA,市场上占有很大的市场份额,它具有开放的操作系统,应用程序接口,,开发商可以根据需要自行开发所需要的应用程序。,Palm,操作系统是最早的,PDA,操作系统,(1996),,,因而具有最多的应用软件支持,。,Palm OS,的最大优点,简单易用,占用系统资源少,1996-PalmPilot 1000,2002-handera 330,2009-Palm Pre,20,.,新一代嵌入式操作系统简介,WebOS(1/2),WebOS,互联网操作系统,WebOS,概念最早由,Syracuse,大学(

17、雪城大学)的,G.C.Fox,于,1995,年提出,当时称之为,WebWindows,WebOS,是运行在浏览器中的虚拟操作系统,能够在,WebOS,中打开应用程序(执行,Web,服务),提供了,WebOS,API,,能够根据,WebOS,API,进行编程,WebOS,的功能,通过浏览器,在,WebOS,上运用基于,Web,的各种在线应用,实现操作系统上的各种操作,包括:文档的存储、编辑、媒体播放、地图应用、即时通讯等等。,21,.,新一代嵌入式操作系统简介,WebOS(2/2),现有,WebOS,情况,Google(Android,),、,Palm(WebOS,),是典型的,WebOS,已有

18、多于,30,个的,WebOS,系统,大都处于,Alpha,或者,beta,状态,I-Cube,EyeOS,Desktoptwo,YouOS,Craythur,G.ho.st,TomOS,WebOS,Goowy,Glide,Orca,Purefect,SSOE,22,.,I-Cube,提供1G的在线存储和文件共享,多媒体支持和一些常用办公工具。同时拥有一个email客户端和编程开发工具。,23,.,EyeOS,开源软件,可以下载使用,也可以在其服务器上在线使用。拥有丰富的网络程序,以及办公套件。,24,.,Desktoptwo,基于Flash的WebOS,提供了搜索、时钟、MP3播放器、RSS阅

19、读器、即时通讯工具、OpenOffice、HTML编辑器,以及笔记本等工具。,25,.,YouOS,提供了很多有用的应用程序,聊天客户端、IM软件、文件浏览器、RSS阅读器等等。,程序执行的响应速度比较快。,26,.,Craythur/G.ho.st,类似于Windows的操作界面,Craythur,G.ho.st,27,.,国产WebOS,TomOS(千脑),epokos,28,.,课程大纲,嵌入式实时操作系统概况,嵌入式实时操作系统特点,嵌入式实时操作系统功能简介,ARM-Linux嵌入式操作系统内核实验,29,.,嵌入式实时操作系统内核重要特性,嵌入式实时操作系统内核的重要特性,实时性,

20、可裁剪、可配置性,可靠性支持,应用编程接口支持,可移植性,30,.,嵌入式实时操作系统内核实时性能指标,嵌入式实时操作系统内核的实时性能定量指标包括,任务上下文切换时间,中断延迟时间,中断响应时间,中断恢复时间,任务响应时间,31,.,嵌入式实时操作系统内核实时性能关键指标,最大中断禁止时间,反映内核对外界停止中断响应的最长时间,任务上下文切换时间,系统中最频繁发生的动作,影响整个系统性能,包括:保存当前任务上下文、选择新任务,及恢复新任务上下文三个阶段,32,.,提高内核实时性的方法任务调度算法,嵌入式实时操作系统抢占式调度,提高对关键性任务响应,关注最坏执行时间,函数的可重入性设计,通用操

21、作系统非抢占式调度,公平和最小化任务平均响应时间,提高系统吞吐率,33,.,提高内核实时性的方法可抢占内核,嵌入式实时操作系统可抢占内核,内核服务可响应中断,中断退出后可进行调度,通用操作系统不可抢占内核,内核服务不能被中断,内核服务可中断,但不调度,低优先级,内核服务,ISR,高优先级,低优先级,内核服务,ISR,高优先级,34,.,提高内核实时性的方法内核关中断时间,嵌入式实时操作系统,小内核、微内核,内核抢占点等技术,通用操作系统,内核规模大,中断禁止时间长,RTEMS,的内核程序示例,void _Thread_Resume(,Thread_Control *the_thread,boo

22、lean force,),ISR_Level level;,States_Control current_state;,_ISR_Disable(level);,-从该行代码开始关中断,进行内核互斥操作,if(force=TRUE),the_thread-suspend_count=0;,else,the_thread-suspend_count-;,if(the_thread-suspend_count 0),_ISR_Enable(level);,return;,current_state=the_thread-current_state;,if(current_state&STATES_

23、SUSPENDED),current_state=,the_thread-current_state=_States_Clear(STATES_SUSPENDED,current_state);,if(_States_Is_ready(current_state),_Priority_Add_to_bit_map(,_Chain_Append_unprotected(the_thread-ready,_ISR_Flash(level);-,该行代码为内核抢占点,if(the_thread-current_priority current_priority),_Thread_Heir=the_t

24、hread;,if(_Thread_Executing-is_preemptible|,the_thread-current_priority=0),_Context_Switch_necessary=TRUE;,_ISR_Enable(level);,-从该行代码开始开中断,结束内核互斥操作,35,.,提高内核实时性的方法系统运行状态,许多嵌入式操作系统不划分“系统空间”和“用户空间”,如,VxWorks,、,RTEMS,等,操作系统内核与外围应用程序之间不再有物理的边界,系统中“进程”实际上都是内核线程。,操作系统、应用程序均运行在特权级别的优缺点:,优点:减少由于空间切换导致的执行开销,

25、提高实时性。,缺陷:应用程序可破坏操作系统内核,导致系统崩溃。,操作系统内核,应用程序系统,Ring0:特权级,Ring1,Ring2,Ring3:用户级,操作系统、应用程序,通用系统运行状态,实时系统运行状态,系统调用 陷入内核,36,.,不支持,虚拟存储,:如果采用虚存技术,一个实时任务执行的最坏情况是每次访存都需要调页,如此累计起来的该任务在最坏情况下的运行时间是不可预测的,因此实时性无法得到保证。许多嵌入式操作系统不直接支持虚拟存储管理技术。,不支持,动态内存分配,:由于动态内存分配具有时间及分配结果的不确定性,因而在,强实时型,系统(,OSEK,)中采用静态内存分配方法,即在系统初始

26、化时,为每个实时任务划分固定的内存区域,系统运行只使用内存,而不再分配内存和释放内存。,提高内核实时性的方法存储管理机制,37,.,资源有限等待,:任务没能获得需要的资源会被阻塞。如果资源不是任务继续运行必备的,任务可选择有限等待该资源。,提高内核实时性的方法任务互斥、同步,优先级逆转,问题解决,抢占式任务调度中的资源竞争:,1997,年,7,月,4,日,火星探路者在火星表面成功着陆并进行观测,发回了各种火星表面全景图,被大肆宣称为“完美”。但是在着陆后的第,10,天,也就是开始采集气象资料后不久,探路者开始犯傻,反复无规律地重启,每次重启都造成了数据丢失,在每天的记者招待会上这都是记者们不会

27、放过的最热门的话题。,JPL,(美国国家航空航天局喷气推进实验室)的工程师们花了相当多的时间在实验室仿真,希望能够再现引起重启的情况。几天过去了,一个清晨,几乎所有的工程师都走了,只剩下最后一位,Mr.So-So,的时候,火星上那台探路者兄弟身上发生的重启情况终于被再现了。经过数据分析,得出了原因,优先级逆转,。,38,.,提高内核实时性的方法优先级逆转问题,嵌入式实时操作系统,优先级逆转现象,采用,优先级继承,协议消除,39,.,中断嵌套处理,:确保高优先级的中断能及时处理。,中断服务层次化,:对中断的处理,不需要完全由中断服务程序(,ISR,)进行处理,采用,ISR,与任务相结合的方法处理

28、如,eCos,系统,分为两个层次进行:,ISR,、中断滞后服务程序,DSR,。,ISR,在响应中断时立即调用,,DSR,由,ISR,发出请求后调用。,提高内核实时性的方法中断处理,任务执行,ISR,DSR,1、ISR促使DSR就绪,2、ISR退出DSR参与调度,中断请求,40,.,可裁剪性,:用以满足不同复杂程度的应用需求。嵌入式环境资源配置及需求情况各异,一般只要求嵌入式操作系统的功能子集,因而需要裁剪掉部分功能,并保证功能的相对完整性。内核的可裁剪程度取决与模块之间的耦合程度。,裁剪方法,:模块级裁剪、函数级裁剪、代码级裁剪,一个最小的多任务嵌入式软件包括:,Bootloader,具有任

29、务管理及定时功能的基本内核,一个初始化任务,可配置性,:可根据应用需求,配置系统任务数目、调度算法、任务堆栈等。,嵌入式实时操作系统内核的可裁剪、可配置性,41,.,裁剪,目标:内核,100K,模块级裁剪:通过条件编译,裁剪不需要的模块,内核约,35K,函数级裁剪:裁剪未被引用的函数,代码级裁剪:修改代码,如,合并功能相似函数,优化算法实现方法,降低模块耦合度,裁剪模块,未被引用函数,嵌入式实时操作系统内核,裁剪举例VxWorks,内部引用函数,外部引用函数,42,.,代码级裁剪:降低模块耦合度,裁剪模块,嵌入式实时操作系统内核裁剪举例VxWorks,内核模块耦合性分析,43,.,可靠性对于实

30、时系统比非实时应用系统更为重要。,嵌入式实时操作系统内核提供诸多机制进行保障:异步信号、定时器、异常处理、用户扩展、内存保护等。,典型内核可靠性增强技术:,内存释放清理,冗余内存分配,内存冗余编码,内存保护增强,看门狗支持增强,嵌入式实时操作系统内核的可靠性,44,.,每一个嵌入式操作系统提供的应用编程接口(系统调用)的功能和种类都不相同,种类越多、功能越强越好。,应用编程接口的标准化:,POSIX(a,Portable Operating System Interface based on Unix),实时系统标准,,POSIX1003.1c,、,1003.1d,汽车电子标准:,OSEK,航

31、空电子标准:,ARINC653,(,APEX,接口),电气电子标准:,IEC61508,信息家电规范:,T-Kernel,嵌入式实时操作系统内核的应用编程接口,45,.,EAL/CC,:,CC,安全评估是,1999,年起效的一项国际安全标准,共分为,7,级安全评估。,VxWorks,、,Integrity,均通过了,EAL6+,认证。,DO-178B/ED-12B,:美国航空无线电技术委员会(,RTCA,)提出,被美国联邦航空局,/,欧洲航空管理部门接受的机载软件适航认证。,VxWorks,、,Integrity,、,C,/OSII,均得到,Level A,认证。,OSEK/VDX,:欧共体汽

32、车产业联盟规定的汽车电子嵌入式系统标准。风河的,MotoWorks,、微软的,Windows Automotive,、,Nucleus OSEK,、,OSEKturbo,均得到认证。,嵌入式实时操作系统的安全性认证,46,.,课程大纲,嵌入式实时操作系统概况,嵌入式实时操作系统特点,嵌入式实时操作系统功能简介,ARM-Linux嵌入式操作系统内核实验,47,.,嵌入式实时操作系统内核基本功能,嵌入式实时操作系统内核的基本功能,实时多任务管理,中断与异常管理,共享资源互斥管理,多任务同步与互斥,内存管理,时钟定时器管理,电源管理,48,.,1970,年,美国,UIUC,大学的,C.Liu,、,J

33、ane,教授建立了,RTSL,(,real time system lab,)实验室。,1973,年,,C.Liu,、,Layland,在,ACM,杂志上,提出并分析了单调速率调度算法(,Rate Monotonic,,,RM,)和时限调度算法(,Deadline,),开辟了实时系统抢占式任务调度算法、可调度性分析领域的先河。,实时内核基本功能任务调度,49,.,在实时任务抢占式调度算法中,根据任务的优先级确定时机,实时任务调度算法可分为静态调度和动态调度两类。,实时内核基本功能实时任务调度算法分类,实时任务,调度算法,静态调度算法,动态调度算法,执行时间相关,任务周期相关,任务CPU使用率,

34、任务紧急程度,截止时间优先(EDF),最小松弛度优先(LLF),50,.,单调速率调度算法(,C.Liu,、,Layland,;,ACM,,,1973,),现代实时系统任务调度的理论基础,最佳的静态调度算法,算法建立在下述假设基础上,所有任务都是周期任务,每个任务执行截止期等于该任务的周期,每个任务在周期中,执行时间固定,保持常量,任务之间不通信,也不同步,任务可以在任何位置被抢占,不存在临界区,不可调度:指某一个任务在周期内无法完成任务,即:,任务的执行结束时间,任务的截止期,实时内核基本功能任务调度经典算法举例,51,.,不可调度情况举例,假设系统存在任务、执行时间及运行周期如下,实时内核

35、基本功能任务调度经典算法举例,任务,执行时间,周期,优先级,T1,1,2,1,T2,1,4,2,T3,3,8,3,0 2 4 6 8 10 12 14 16,T1,T2,T3,超周期,52,.,RM,算法规定:任务的优先级与任务的周期表现为单调函数,任务周期越短,优先级越高。,对,RM,算法研究的贡献在于,提出了,临界时间,概念,用于判定调度过程中的最坏情况;,证明了,RM,算法是静态调度算法中的,最优性,;,提出了一个,RM,算法中任务可调度性分析的,充分条件,。,临界时间,:一个任务响应所需的最大时间称为临界时间。,如果所有任务的临界时间均小于任务周期,则任务可调度。,一个任务什么时候到达

36、其临界时间?,定理:任何任务在与比其优先级高的所有任务同时被触发时,将达到其临界时间。,实时内核基本功能任务调度经典算法举例,53,.,定理:如果一个任务集能够被其他静态算法调度,那么,RM,算法就一定能调度这个任务集,即,RM,调度是最优的静态调度算法。,证明:采用交换法思路,假设一个任务集,S,采用其他静态优先级算法可以调度,设,ti,和,tj,是其中两个优先级相邻的任务,,Ti,Tj,,而,Pi,Pj,,将,ti,和,tj,的优先级互换,可以证明这时,S,仍然可以调度:,交换这两个任务优先级,不会影响其它任务的完成时间;,Tj,执行时间提前,因而必定不会超过截止时间;,Ti,的执行时间高

37、优先级任务的执行时间,tj,执行时间,ti,执行时间,Tj,1 0.780,,不可调度!,实时内核基本功能任务调度经典算法举例,任务,执行时间,周期,优先级,T1,1,2,1,T2,1,4,2,T3,3,8,3,0 CPU使用率上界 1,可调度 不可判定 不可调度,56,.,中断是一种异步机制,中断服务程序(,ISR,)不需要内核的调度就可以执行。,但,ISR,要和其他应用任务之间协作,以快速、合理响应外部事件。,内核提供与中断相关的功能:,挂接,ISR,:中断向量与处理函数关联,获取,ISR,入口地址,获取中断嵌套层数,开,/,关中断,实时内核基本功能中断管理,57,.,中断服务程序设计中需

38、特别注意,中断冲突,问题:,当,ISR,、,ISR,之间,或,ISR,、任务之间共享变量,或调用含有共享变量的函数时,需防止,共享变量冲突,;,当,ISR,、,ISR,之间,或,ISR,、任务之间共享寄存器,或调用含有共享寄存器的函数时,需防止,寄存器冲突,。,ISR,不允许执行,I/O,操作,,或调用含有,I/O,操作的函数。,ISR,不允许申请信号量(但可以释放信号量!),,或调用含有申请信号量操作的函数(如,malloc,)。,实时内核基本功能中断管理,58,.,实时内核基本功能共享资源互斥,实现共享资源互斥的方法很多,不同之处在于互斥的影响范围和程度不同,常用的方法包括:,关中断:互斥

39、力度最强,但可能降低系统实时性,测试并置位指令:利用某个全局变量判断资源互斥,禁止任务抢占:对任务调度上锁,但不禁止中断,使用信号量:对共享资源上锁,比关中断、禁止任务抢占粒度更精细,lock=0;key=1;,do,_asm(“,xchg,(,while(key);,进入临界区代码;,checkTaskSwitch:,cmpl$0,WIND_TCB_LOCK_CNT(%edx),jnecheckTaskReady,59,.,实时内核基本功能共享资源互斥方法比较,共享资源互斥的设计原则:,当任务之间互斥,可使用所有方法,测试,/,置位、信号量方法,对其他任务运行的干扰小;,当,ISR,之间互斥

40、只能使用关中断法;,当,ISR,与任务之间互斥,只能使用关中断法。,60,.,同步与通讯的需求,任务任务之间:单向、双向,ISR,任务之间:,单向,常用的同步、通讯机制:,共享内存,信号量,消息:邮箱、消息队列,事件,信号,管道,实时内核基本功能同步与通讯,61,.,共享数据结构,最直接的任务间通信方式,全局变量、线性缓冲区、循环缓冲区、链表,可以被不同上下文环境中运行的代码直接访问,需采用互斥方法进行保护,实时内核基本功能通讯,62,.,信号量:解决任务间同步与互斥的主要手段,。,常用信号量分类,二元信号量(,binary,):快速、通用,对互斥与同步做了优化。,互斥信号量(,mutex,

41、针对互斥问题进行优化的二元信号量。,递归资源访问:如递归调用包含获取信号量的函数体,安全删除问题:已获取信号量的任务不被意外删除,计数信号量(,counting,):控制共享资源的多个实例。,被信号量阻塞的任务排队策略,FIFO,优先级排序,实时内核基本功能同步、互斥,63,.,消息,是内存空间中一段长度可变的缓冲区。,是一种在任务之间、,ISR,任务之间的通讯机制,注意:,ISR,只可以写消息,但不能读消息!,常用消息分类:,邮箱(,mailbox,):传递简单消息,消息队列(,message queue,):传递可变长的复杂消息,消息进入队列的策略,FIFO,优先级排序,实时内核基本功

42、能通讯,64,.,管道,管道是一个虚设备,提供了通过,I/O,设备接口访问消息队列的一个界面。任务可以使用标准的,I/O,接口,open,、,read,、,write,,以及,ioctl,调用。,事件,用于实现任务之间、,ISR,任务之间多对一、多对多的同步操作,通讯数据量小,主要动作分为接收事件、发送事件。,信号,用于实现任务之间、,ISR,任务之间的异步操作。,实时内核基本功能同步与通讯,65,.,在不更改内核代码的情况下,在内核调用点扩展用户功能。,内核可提供的扩展点包括:,任务创建、任务启动、任务删除、任务上下文切换、任务退出,例如:在任务上下文切换时扩展增加功能,实时内核基本功能用户

43、扩展管理,taskSwitchTable,函数指针4,函数指针3,函数指针2,函数指针1,switchTasks:,。,cmpl$0,_taskSwitchTable,jnedoSwitchHooks,doSwitchHooks,遍历taskSwitchTable,执行动作函数,执行动作1,执行动作2,执行动作3,执行动作4,66,.,课程大纲,嵌入式实时操作系统概况,嵌入式实时操作系统特点,嵌入式实时操作系统功能简介,ARM-Linux嵌入式操作系统内核实验,67,.,两个问题问题1,问题1,:嵌入式软件系统如何获取操作系统内核提供的各类功能服务?,什么方法?,答案:,系统调用,68,.,库

44、函数与系统调用的关系,库函数是,C,语言的一部分,系统调用是操作系统的一部分,。,库函数与操作系统内核提供的系统调用关系,可分为如下三类:,1,:,0,,如:,strcpy,、,strcmp,、,strstr,等;,1,:,1,,如:,printf,、,fopen,、,fread,等,1,:,n,printf(),write(),应用软件,sys_write(),C运行库,操作系统内核,用户级别,特权级别,69,.,ARM-LINUX系统调用原理,printf(),write(),应用软件,sys_write,C运行库,操作系统内核,用户级别,特权级别,软中断指令,swi,系统调用号,系统调用

45、参数,系统调用,映射表,call.S,70,.,两个问题问题2,问题2,:从应用程序访问系统调用方法有哪些?,答案:,1、由库函数访问系统调用,2、通过汇编访问系统调用,71,.,实验目的,熟悉系统调用原理,熟悉ARM-Linux系统调用扩展方法,熟悉操作系统内核编译方法,熟悉通过汇编访问系统调用方法,72,.,实验三内容清单,创建和使用不带参数的系统调用(,必做,),创建和使用带1个参数的系统调用(,必做,),创建和使用带5个参数的系统调用(,必做,),创建和使用带6个参数的系统调用(,选做,),73,.,必做一 创建不带参数的系统调用(1/4),在 arch/arm/kernel/目录下创

46、建一个新的文件mysyscall.c,在 arch/arm/kernel/call.S 中添加新的系统调用,新的系统调用号0 x900000+226,void hello(void),printk,(“hello worldn”);,.long SYMBOL_NAME(sys_gettid),.long SYMBOL_NAME(sys_readahead),.long SYMBOL_NAME(hello),_syscall_end:,.rept NR_syscalls-(_syscall_end-_syscall_start)/4,.long SYMBOL_NAME(sys_ni_syscal

47、l),.endr,74,.,修改arch/arm/kernel/目录下的Makefile文件,在obj-y后面添加mysyscall.o,编译内核,obj-y:=arch.o compat.o dma.o$(ENTRY_OBJ)entry-common.o irq.o,process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o,time.o traps.o$(O_OBJS_$(MACHINE)mysyscall.o,必做一 创建不带参数的系统调用(2/4),75,.,一个测试程序来使用新的系统调用:,test.h:,#definesys_

48、hello(),do,_asm_ _volatile_(swi 0 x900000+226nt);,while(0),test.c:,#include,#include “test.h”,int main(void),printf(start hellon);,sys_hello();,printf(end hellon);,必做一 创建不带参数的系统调用(3/4),注意:上面的例子是直接用汇编使用系统调用的,而不是使用libc库函数,因为应用程序使用的是新添加的系统调用,而libc中并没有,所以只能直接用汇编。,76,.,然后执行,启动开发板,将应用程序test通过zmodem协议下载到开发

49、板的文件系统目录下,在板子上运行test程序所得结果如下:,#arm-linux-gcc test.c-o test,#./test,start hello,hello world,end hello,必做一 创建不带参数的系统调用(4/4),77,.,进而,实现一个带参数的系统调用,必做,二 创建带一个参数的系统调用,test.c:,#include,#include “test.h”,int main(void),char*str=“hello worldn”;,printf(start hellon);,sys_hello(str);,printf(end hellon);,78,.,创

50、建和使用不带参数的系统调用实验代码如下:,test.h:,#definesys_hello(),do _asm_ _volatile_(swi 0 x900000+226nt);while(0),test.c:,#include,#include “test.h”,int main(void),printf(start hellon);,sys_hello();,printf(end hellon);,操作系统内核编程风格说明#define中的do while(0)作用(1/2),79,.,在宏定义中的dowhile(0)结构将宏定义中的多条执行语句进行了保护,可以确保语句的模块化:,#def

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服