欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

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

    • 资源ID:5580873       资源大小:14.45MB        全文页数:85页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1,嵌入式系统An Introduction to Embedded System第五课 嵌入式实时操作系统(RTOS)简介教师:蔡铭 助教:王广辉 浙江大学计算机学院人工智能研究所航天科技浙江大学基础软件研发中心,2,课程大纲,嵌入式实时操作系统概况 嵌入式实时操作系统特点 嵌入式实时操作系统功能简介 ARM-Linux嵌入式操作系统内核实验,3,背景分析,早期嵌入式系统:硬件所限汇编语言基本不采用操作系统基础条件成熟硬件的提升 微处理器性能提高、存储器容量增加软件技术快速发展 编译器、操作系统、集成开发环境,4,嵌入式操作系统概述发展阶段(1/4),嵌入式操作系统的发展主要经历了以下四个阶段:无操作系统的阶段单芯片为核心具有与一些监测、伺服、指示设备相配合的功能一般没有明显的操作系统支持通过汇编语言编程对系统进行直接控制。主要特点系统结构和功能都相对单一,针对性强无操作系统支持几乎没有用户接口,5,嵌入式操作系统概述发展阶段(2/4),简单监控式的实时操作系统阶段以嵌入式处理器为基础以简单监控式的操作系统为核心主要特点:处理器种类繁多,通用性比较弱;开销小,效率高;一般配备系统仿真器,具有一定的兼容性和扩展性;用户界面不够友好,主要用来控制系统负载,以及监控应用程序运行。,八十年代初:出现了以VRTX(1981)、pSOS等为代表的第一代系统(实时内核),提供了实时操作系统基本功能。,6,嵌入式操作系统概述发展阶段(3/4),通用的嵌入式实时操作系统阶段以通用型嵌入式操作系统为标志的嵌入式系统主要特点:运行在不同的微处理器具有强大的通用型操作系统的功能文件和目录管理多任务设备驱动支持网络支持图形窗口用户界面具有丰富的API和嵌入式应用软件,八十年代后期到九十年代初期,出现以VxWorks、RTEMS、Nucleus PLUS、QNX、OSE为代表的第二代系统。,7,嵌入式操作系统概述发展阶段(4/4),二十世纪末,出现了以Integrity为代表的第三代系统,进一步在实时性、高可靠性、高可用性等方面提供了强有力的支持。新一代实时操作系统的发展方向主要包括高可信、高可靠、高可用、高安全、微型化、支持多核等。近年来,出现了以Internet为标志的嵌入式系统嵌入式系统与Internet的全面结合嵌入式操作系统与应用设备的无缝结合代表着嵌入式操作系统发展的未来新的名词:WebOS,嵌入式实时操作系统发展,8,典型的嵌入式实时操作系统,嵌入式实时操作系统数量众多,如:VxWorksWindows CEpSOSQNXPalmOS NucleusAndroid国产嵌入式实时操作系统,如:HOPENDeltaOSSmartOSSZOS,RT-LinuxSymbianuc/OSRTEMST-KernelIntegrityThreadX,9,嵌入式实时操作系统VxWorks,VxWorks操作系统是美国WindRiver公司于1983年设计开发的嵌入式实时操作系统,具有高性能、稳定的内核以及友好的用户开发环境,是世界第一大嵌入式操作系统提供商,应用于航空航天、工业控制、网络设备、汽车电子等领域。VxWorks所具有的显著特点是:可靠性、实时性和可裁剪性。支持多种处理器,如x86、PowerPC、ARM、Sparc、MIPS、DSP等。经典应用:1997年NASA火星探路者、2007年凤凰号火星探测器,在火星沙丘前进,在火星上拍摄的日落全景,10,嵌入式实时操作系统Integrity,美国Green Hills公司是世界排名第二的嵌入式操作系统提供商,Integrity是Green Hills公司的RTOS产品,代表了目前最先进的RTOS技术,被NASA JPL选中用于测试在太空中的新技术。分为普通Embedded RTOS和关键应用中使用的DO-178B实时操作系统两类。系统技术优势突出内核服务优化,系统调用的开销降至最小。复杂的系统调用可以被抢占。系统的调度器是一个真正的实时调度器。具有快速中断处理能力,内核从不阻塞某些中断。具有一流的集成开发环境MULTI支持。,11,嵌入式实时操作系统Windows Embedded,Microsoft公司针对针对PDA、PocketPC、移动电话、小型终端设备提供的操作系统。用户开发环境、接口API、系统界面等与Windows相似,因而具有较多的应用。,1996-卡西欧蛤壳式PDA(Win CE1.0),2006年,1996年,2003年,12,开源的嵌入式实时操作系统嵌入式Linux,嵌入式系统追求数字化、网络化和智能化,要求系统必须是开放的、提供标准的API,并能够方便地与众多第三方软硬件沟通。尤其是处于核心地位的操作系统。Linux是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者是其开发的强大技术后盾。对Linux进行实时性改造与裁剪,形成:Clinux Embedix RTLinux RTAI Monta Vista Linux,13,开源的嵌入式实时操作系统C/OSII,C/OSII是一种基于优先级抢占式、可移植、可裁剪的多任务实时操作系统。绝大部分源码是用ANSI C写的,与硬件相关的那部分汇编代码被压缩至最低限度,使得系统移植性强。C/OSII诞生于90年代初,最初名称是C/OS,由Jean J.Labrosse开发,并在网络上开源,其特点为短小、精悍。C/OSII经裁剪最小可达2KB,最小数据RAM需求10KB。C/OSII可以在8位64位,超过40种不同架构的微处理器上运行,在世界范围内得到广泛应用,包括:手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。,14,开源的嵌入式实时操作系统ThreadX,ThreadX是一款强实时操作系统,以内核小(最小内核为2K,最小RAM 500byte)、实时性强、高可靠性、源代码开放,免收产品版权费而闻名。由美国Express Logic提供解决方案,适于深度嵌入的系统,有功能强大的开发调试环境MULTI支持。典型应用:2005年7月4日,美国NASA实施深度撞击号宇宙飞船对坦普尔1号彗星的准确撞击,关键任务由ThreadX完成。,15,开源的嵌入式实时操作系统T-Kernel,由日本东京大学的坂村健教授主持开发,具有执行效率高、实时性好等特点。1984年提出计算机操作系统规范TRON(The Real-time Operating system Nucleus)构想,先后推出了ITRON、JTRON、BTRON、CTRON等规范。其应用从汽车、移动电话、传真机到电视机、家电等领域,主要用户包括:丰田、松下、日立、富士通、东芝、索尼、佳能、理光、NEC等,装机量超过30亿。IBM、Microsoft、ARM、MIPS、Sun、Oracle等企业相继加入其开放式系统架构。,16,手机嵌入式操作系统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.32011-5-5,17,手机嵌入式操作系统Windows phone,2010年2月,微软公司正式发布Windows Phone 7智能手机操作系统,Windows Mobile系列彻底退出了手机操作系统市场。2011年2月,诺基亚在英国伦敦宣布与微软达成战略合作关系。诺基亚手机将采用Windows Phone系统,并且将参与系统开发。Windows phone把网络、个人电脑和手机的优势集于一身,提供良好的用户体验:仪表盘主屏桌面定制图标拖拽滑动控制将于2011年5月发布Window Phone Mango(windows phone 7.5),18,手机嵌入式操作系统Android,Android是Google开发的基于Linux平台的开源手机嵌入式操作系统。形成了具有30多家技术和无线应用的领军企业组成的开放手机联盟,包括:中国移动、摩托罗拉、高通、宏达和T-Mobile等。Android的优点融入全部的Web应用,包括:Gmail、Google Maps、YouTube、Google日历、Google TalkAndroid操作系统免费向开发人员提供,19,嵌入式实时操作系统Symbian,Symbian(EPOC系统)由Nokia、Motorola、Siemens等手机厂商联合注资成立的公司,专注于手机的嵌入式智能操作系统,支持c+、Java语言,通讯、多媒体处理功能强,目前占有60的智能手机市场。Symbian具有功能:协议标准:IPv4、IPv6、蓝牙、WAP、SyncML、USB通讯能力:支持2G、2.5G、3G系统应用开发,GSM、GPRS、CDMA(IS-95)以及2000技术支持多媒体支持:图片、音乐、视频浏览信息定制:SMS、EMS、MMS、EMAIL和FAX支持安全稳定:支持数据完整性、可靠高效的电池管理、数据同步、数据加密、证书管理、软件安装管理等,20,手机嵌入式操作系统Palm OS,3Com公司的Palm专用于掌上电脑,在PDA市场上占有很大的市场份额,它具有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需要的应用程序。Palm操作系统是最早的PDA操作系统(1996),因而具有最多的应用软件支持。Palm OS的最大优点简单易用占用系统资源少,1996-PalmPilot 1000,2002-handera 330,2009-Palm Pre,21,新一代嵌入式操作系统简介WebOS(1/2),WebOS互联网操作系统WebOS概念最早由Syracuse大学(雪城大学)的G.C.Fox于1995年提出,当时称之为WebWindowsWebOS是运行在浏览器中的虚拟操作系统能够在WebOS中打开应用程序(执行Web服务)提供了WebOS API,能够根据WebOS API进行编程WebOS的功能通过浏览器,在WebOS上运用基于Web的各种在线应用,实现操作系统上的各种操作,包括:文档的存储、编辑、媒体播放、地图应用、即时通讯等等。,22,新一代嵌入式操作系统简介WebOS(2/2),现有WebOS情况Google(Android)、Palm(WebOS)是典型的WebOS已有多于30个的WebOS系统,大都处于Alpha或者beta状态,I-CubeEyeOSDesktoptwoYouOSCraythurG.ho.stTomOS,WebOSGoowyGlideOrcaPurefectSSOE,23,I-Cube,提供1G的在线存储和文件共享,多媒体支持和一些常用办公工具。同时拥有一个email客户端和编程开发工具。,24,EyeOS,开源软件,可以下载使用,也可以在其服务器上在线使用。拥有丰富的网络程序,以及办公套件。,25,Desktoptwo,基于Flash的WebOS提供了搜索、时钟、MP3播放器、RSS阅读器、即时通讯工具、OpenOffice、HTML编辑器,以及笔记本等工具。,26,YouOS,提供了很多有用的应用程序聊天客户端、IM软件、文件浏览器、RSS阅读器等等。程序执行的响应速度比较快。,27,Craythur/G.ho.st,类似于Windows的操作界面,Craythur,G.ho.st,28,国产WebOS,TomOS(千脑),epokos,29,课程大纲,嵌入式实时操作系统概况 嵌入式实时操作系统特点 嵌入式实时操作系统功能简介 ARM-Linux嵌入式操作系统内核实验,30,嵌入式实时操作系统内核重要特性,嵌入式实时操作系统内核的重要特性实时性可裁剪、可配置性可靠性支持应用编程接口支持可移植性,31,嵌入式实时操作系统内核实时性能指标,嵌入式实时操作系统内核的实时性能定量指标包括任务上下文切换时间中断延迟时间中断响应时间中断恢复时间任务响应时间,32,嵌入式实时操作系统内核实时性能关键指标,最大中断禁止时间反映内核对外界停止中断响应的最长时间任务上下文切换时间系统中最频繁发生的动作,影响整个系统性能包括:保存当前任务上下文、选择新任务,及恢复新任务上下文三个阶段,33,提高内核实时性的方法任务调度算法,嵌入式实时操作系统抢占式调度提高对关键性任务响应关注最坏执行时间函数的可重入性设计,通用操作系统非抢占式调度公平和最小化任务平均响应时间提高系统吞吐率,34,提高内核实时性的方法可抢占内核,嵌入式实时操作系统可抢占内核内核服务可响应中断中断退出后可进行调度,通用操作系统不可抢占内核内核服务不能被中断内核服务可中断,但不调度,低优先级,内核服务,ISR,高优先级,低优先级,内核服务,ISR,高优先级,35,提高内核实时性的方法内核关中断时间,嵌入式实时操作系统小内核、微内核内核抢占点等技术,通用操作系统 内核规模大 中断禁止时间长,36,提高内核实时性的方法系统运行状态,许多嵌入式操作系统不划分“系统空间”和“用户空间”,如VxWorks、RTEMS等,操作系统内核与外围应用程序之间不再有物理的边界,系统中“进程”实际上都是内核线程。操作系统、应用程序均运行在特权级别的优缺点:优点:减少由于空间切换导致的执行开销,提高实时性。缺陷:应用程序可破坏操作系统内核,导致系统崩溃。,操作系统内核,应用程序系统,Ring0:特权级,Ring1,Ring2,Ring3:用户级,操作系统、应用程序,通用系统运行状态,实时系统运行状态,系统调用 陷入内核,37,不支持虚拟存储:如果采用虚存技术,一个实时任务执行的最坏情况是每次访存都需要调页,如此累计起来的该任务在最坏情况下的运行时间是不可预测的,因此实时性无法得到保证。许多嵌入式操作系统不直接支持虚拟存储管理技术。不支持动态内存分配:由于动态内存分配具有时间及分配结果的不确定性,因而在强实时型系统(OSEK)中采用静态内存分配方法,即在系统初始化时,为每个实时任务划分固定的内存区域,系统运行只使用内存,而不再分配内存和释放内存。,提高内核实时性的方法存储管理机制,38,资源有限等待:任务没能获得需要的资源会被阻塞。如果资源不是任务继续运行必备的,任务可选择有限等待该资源。,提高内核实时性的方法任务互斥、同步,优先级逆转问题解决抢占式任务调度中的资源竞争:1997年7月4日,火星探路者在火星表面成功着陆并进行观测,发回了各种火星表面全景图,被大肆宣称为“完美”。但是在着陆后的第10天,也就是开始采集气象资料后不久,探路者开始犯傻,反复无规律地重启,每次重启都造成了数据丢失,在每天的记者招待会上这都是记者们不会放过的最热门的话题。JPL(美国国家航空航天局喷气推进实验室)的工程师们花了相当多的时间在实验室仿真,希望能够再现引起重启的情况。几天过去了,一个清晨,几乎所有的工程师都走了,只剩下最后一位Mr.So-So的时候,火星上那台探路者兄弟身上发生的重启情况终于被再现了。经过数据分析,得出了原因优先级逆转。,39,提高内核实时性的方法优先级逆转问题,嵌入式实时操作系统优先级逆转现象,采用优先级继承协议消除,40,中断嵌套处理:确保高优先级的中断能及时处理。中断服务层次化:对中断的处理,不需要完全由中断服务程序(ISR)进行处理,采用ISR与任务相结合的方法处理,如eCos系统,分为两个层次进行:ISR、中断滞后服务程序DSR。ISR在响应中断时立即调用,DSR由ISR发出请求后调用。,提高内核实时性的方法中断处理,任务执行,ISR,DSR,1、ISR促使DSR就绪2、ISR退出DSR参与调度,中断请求,41,可裁剪性:用以满足不同复杂程度的应用需求。嵌入式环境资源配置及需求情况各异,一般只要求嵌入式操作系统的功能子集,因而需要裁剪掉部分功能,并保证功能的相对完整性。内核的可裁剪程度取决与模块之间的耦合程度。裁剪方法:模块级裁剪、函数级裁剪、代码级裁剪一个最小的多任务嵌入式软件包括:Bootloader具有任务管理及定时功能的基本内核一个初始化任务可配置性:可根据应用需求,配置系统任务数目、调度算法、任务堆栈等。,嵌入式实时操作系统内核的可裁剪、可配置性,42,裁剪目标:内核 100K模块级裁剪:通过条件编译,裁剪不需要的模块,内核约35K函数级裁剪:裁剪未被引用的函数代码级裁剪:修改代码,如合并功能相似函数优化算法实现方法降低模块耦合度,裁剪模块,未被引用函数,嵌入式实时操作系统内核裁剪举例VxWorks,内部引用函数,外部引用函数,43,代码级裁剪:降低模块耦合度,裁剪模块,嵌入式实时操作系统内核裁剪举例VxWorks,内核模块耦合性分析,44,可靠性对于实时系统比非实时应用系统更为重要。嵌入式实时操作系统内核提供诸多机制进行保障:异步信号、定时器、异常处理、用户扩展、内存保护等。典型内核可靠性增强技术:内存释放清理冗余内存分配内存冗余编码内存保护增强看门狗支持增强,嵌入式实时操作系统内核的可靠性,45,每一个嵌入式操作系统提供的应用编程接口(系统调用)的功能和种类都不相同,种类越多、功能越强越好。应用编程接口的标准化:POSIX(a Portable Operating System Interface based on Unix)实时系统标准,POSIX1003.1c、1003.1d汽车电子标准:OSEK航空电子标准:ARINC653(APEX接口)电气电子标准:IEC61508信息家电规范:T-Kernel,嵌入式实时操作系统内核的应用编程接口,46,EAL/CC:CC安全评估是1999年起效的一项国际安全标准,共分为7级安全评估。VxWorks、Integrity均通过了EAL6+认证。DO-178B/ED-12B:美国航空无线电技术委员会(RTCA)提出,被美国联邦航空局/欧洲航空管理部门接受的机载软件适航认证。VxWorks、Integrity、C/OSII均得到Level A认证。OSEK/VDX:欧共体汽车产业联盟规定的汽车电子嵌入式系统标准。风河的MotoWorks、微软的Windows Automotive、Nucleus OSEK、OSEKturbo均得到认证。,嵌入式实时操作系统的安全性认证,47,课程大纲,嵌入式实时操作系统概况 嵌入式实时操作系统特点 嵌入式实时操作系统功能简介 ARM-Linux嵌入式操作系统内核实验,48,嵌入式实时操作系统内核基本功能,嵌入式实时操作系统内核的基本功能实时多任务管理中断与异常管理共享资源互斥管理多任务同步与互斥内存管理时钟定时器管理电源管理,49,1970年,美国UIUC大学的C.Liu、Jane教授建立了RTSL(real time system lab)实验室。1973年,C.Liu、Layland在ACM杂志上,提出并分析了单调速率调度算法(Rate Monotonic,RM)和时限调度算法(Deadline),开辟了实时系统抢占式任务调度算法、可调度性分析领域的先河。,实时内核基本功能任务调度,50,在实时任务抢占式调度算法中,根据任务的优先级确定时机,实时任务调度算法可分为静态调度和动态调度两类。,实时内核基本功能实时任务调度算法分类,实时任务调度算法,静态调度算法,动态调度算法,执行时间相关,任务周期相关,任务CPU使用率,任务紧急程度,截止时间优先(EDF),最小松弛度优先(LLF),51,单调速率调度算法(C.Liu、Layland;ACM,1973)现代实时系统任务调度的理论基础最佳的静态调度算法算法建立在下述假设基础上所有任务都是周期任务每个任务执行截止期等于该任务的周期每个任务在周期中,执行时间固定,保持常量任务之间不通信,也不同步任务可以在任何位置被抢占,不存在临界区不可调度:指某一个任务在周期内无法完成任务,即:任务的执行结束时间 任务的截止期,实时内核基本功能任务调度经典算法举例,52,不可调度情况举例假设系统存在任务、执行时间及运行周期如下,实时内核基本功能任务调度经典算法举例,0 2 4 6 8 10 12 14 16,T1,T2,T3,超周期,53,RM算法规定:任务的优先级与任务的周期表现为单调函数,任务周期越短,优先级越高。对RM算法研究的贡献在于提出了临界时间概念,用于判定调度过程中的最坏情况;证明了RM算法是静态调度算法中的最优性;提出了一个RM算法中任务可调度性分析的充分条件。临界时间:一个任务响应所需的最大时间称为临界时间。如果所有任务的临界时间均小于任务周期,则任务可调度。一个任务什么时候到达其临界时间?定理:任何任务在与比其优先级高的所有任务同时被触发时,将达到其临界时间。,实时内核基本功能任务调度经典算法举例,54,定理:如果一个任务集能够被其他静态算法调度,那么RM算法就一定能调度这个任务集,即RM调度是最优的静态调度算法。证明:采用交换法思路假设一个任务集S采用其他静态优先级算法可以调度,设ti和tj是其中两个优先级相邻的任务,Ti Tj,而Pi Pj,将ti和tj的优先级互换,可以证明这时S仍然可以调度:交换这两个任务优先级,不会影响其它任务的完成时间;Tj执行时间提前,因而必定不会超过截止时间;Ti的执行时间高优先级任务的执行时间tj执行时间ti执行时间 Tj Ti,因而,Ti执行也不会超过截止时间。按照上述交换方法,任何静态优先级调度最终都可以转换成RM调度。,实时内核基本功能任务调度经典算法举例,55,RM算法中任务可调度性分析的一个充分条件:其中,C为任务执行时间,T为任务周期,实时内核基本功能任务调度经典算法举例,CPU使用率上界,56,调度可判定性物理意义:可调度性判定举例:1/21/4+3/8 1.125 1 0.780,不可调度!,实时内核基本功能任务调度经典算法举例,0 CPU使用率上界 1,可调度 不可判定 不可调度,57,中断是一种异步机制,中断服务程序(ISR)不需要内核的调度就可以执行。但ISR要和其他应用任务之间协作,以快速、合理响应外部事件。内核提供与中断相关的功能:挂接ISR:中断向量与处理函数关联获取ISR入口地址获取中断嵌套层数开/关中断,实时内核基本功能中断管理,58,中断服务程序设计中需特别注意中断冲突问题:当ISR、ISR之间,或ISR、任务之间共享变量,或调用含有共享变量的函数时,需防止共享变量冲突;当ISR、ISR之间,或ISR、任务之间共享寄存器,或调用含有共享寄存器的函数时,需防止寄存器冲突。ISR不允许执行I/O操作,或调用含有I/O操作的函数。ISR不允许申请信号量(但可以释放信号量!),或调用含有申请信号量操作的函数(如malloc)。,实时内核基本功能中断管理,59,实时内核基本功能共享资源互斥,实现共享资源互斥的方法很多,不同之处在于互斥的影响范围和程度不同,常用的方法包括:关中断:互斥力度最强,但可能降低系统实时性测试并置位指令:利用某个全局变量判断资源互斥禁止任务抢占:对任务调度上锁,但不禁止中断使用信号量:对共享资源上锁,比关中断、禁止任务抢占粒度更精细,lock=0;key=1;do _asm(“xchg(进入临界区代码;,checkTaskSwitch:cmpl$0,WIND_TCB_LOCK_CNT(%edx)jnecheckTaskReady,60,实时内核基本功能共享资源互斥方法比较,共享资源互斥的设计原则:当任务之间互斥,可使用所有方法,测试/置位、信号量方法,对其他任务运行的干扰小;当ISR之间互斥,只能使用关中断法;当ISR与任务之间互斥,只能使用关中断法。,61,同步与通讯的需求任务任务之间:单向、双向ISR任务之间:单向常用的同步、通讯机制:共享内存信号量消息:邮箱、消息队列事件信号管道,实时内核基本功能同步与通讯,62,共享数据结构最直接的任务间通信方式全局变量、线性缓冲区、循环缓冲区、链表,可以被不同上下文环境中运行的代码直接访问需采用互斥方法进行保护,实时内核基本功能通讯,63,信号量:解决任务间同步与互斥的主要手段。常用信号量分类二元信号量(binary):快速、通用,对互斥与同步做了优化。互斥信号量(mutex):针对互斥问题进行优化的二元信号量。递归资源访问:如递归调用包含获取信号量的函数体安全删除问题:已获取信号量的任务不被意外删除计数信号量(counting):控制共享资源的多个实例。被信号量阻塞的任务排队策略FIFO优先级排序,实时内核基本功能同步、互斥,64,消息是内存空间中一段长度可变的缓冲区。是一种在任务之间、ISR 任务之间的通讯机制,注意:ISR只可以写消息,但不能读消息!常用消息分类:邮箱(mailbox):传递简单消息消息队列(message queue):传递可变长的复杂消息消息进入队列的策略FIFO优先级排序,实时内核基本功能通讯,65,管道管道是一个虚设备,提供了通过I/O设备接口访问消息队列的一个界面。任务可以使用标准的I/O接口open、read、write,以及ioctl调用。事件用于实现任务之间、ISR任务之间多对一、多对多的同步操作,通讯数据量小,主要动作分为接收事件、发送事件。信号用于实现任务之间、ISR任务之间的异步操作。,实时内核基本功能同步与通讯,66,在不更改内核代码的情况下,在内核调用点扩展用户功能。内核可提供的扩展点包括:任务创建、任务启动、任务删除、任务上下文切换、任务退出例如:在任务上下文切换时扩展增加功能,实时内核基本功能用户扩展管理,taskSwitchTable,函数指针4,函数指针3,函数指针2,函数指针1,switchTasks:。cmpl$0,_taskSwitchTablejnedoSwitchHooksdoSwitchHooks 遍历taskSwitchTable,执行动作函数,执行动作1,执行动作2,执行动作3,执行动作4,67,课程大纲,嵌入式实时操作系统概况 嵌入式实时操作系统特点 嵌入式实时操作系统功能简介 ARM-Linux嵌入式操作系统内核实验,68,两个问题问题1,问题1:嵌入式软件系统如何获取操作系统内核提供的各类功能服务?,什么方法?,答案:系统调用,69,库函数与系统调用的关系,库函数是C语言的一部分,系统调用是操作系统的一部分。库函数与操作系统内核提供的系统调用关系,可分为如下三类:1:0,如:strcpy、strcmp、strstr等;1:1,如:printf、fopen、fread等1:n,printf(),write(),应用软件,sys_write(),C运行库,操作系统内核,用户级别,特权级别,70,ARM-LINUX系统调用原理,printf(),write(),应用软件,sys_write,C运行库,操作系统内核,用户级别,特权级别,软中断指令swi,系统调用号系统调用参数,系统调用映射表call.S,71,两个问题问题2,问题2:从应用程序访问系统调用方法有哪些?,答案:1、由库函数访问系统调用 2、通过汇编访问系统调用,72,实验目的,熟悉系统调用原理熟悉ARM-Linux系统调用扩展方法熟悉操作系统内核编译方法熟悉通过汇编访问系统调用方法,73,实验三内容清单,创建和使用不带参数的系统调用(必做)创建和使用带1个参数的系统调用(必做)创建和使用带5个参数的系统调用(必做)创建和使用带6个参数的系统调用(选做),74,必做一 创建不带参数的系统调用(1/4),在 arch/arm/kernel/目录下创建一个新的文件mysyscall.c 在 arch/arm/kernel/call.S 中添加新的系统调用,新的系统调用号0 x900000+226,75,修改arch/arm/kernel/目录下的Makefile文件,在obj-y后面添加mysyscall.o 编译内核,必做一 创建不带参数的系统调用(2/4),76,一个测试程序来使用新的系统调用:,必做一 创建不带参数的系统调用(3/4),注意:上面的例子是直接用汇编使用系统调用的,而不是使用libc库函数,因为应用程序使用的是新添加的系统调用,而libc中并没有,所以只能直接用汇编。,77,然后执行 启动开发板,将应用程序test通过zmodem协议下载到开发板的文件系统目录下,在板子上运行test程序所得结果如下:,必做一 创建不带参数的系统调用(4/4),78,进而,实现一个带参数的系统调用,必做二 创建带一个参数的系统调用,79,创建和使用不带参数的系统调用实验代码如下:,操作系统内核编程风格说明#define中的do while(0)作用(1/2),80,在宏定义中的dowhile(0)结构将宏定义中的多条执行语句进行了保护,可以确保语句的模块化:,操作系统内核编程风格说明#define中的do while(0)作用(2/2),81,操作系统内核中的打印语句printk,在arch/arm/kernel/目录下创建一个系统调用文件mysyscall.c 系统调用属于操作系统内核功能,不能使用标准C语言库libc,而printf定义在,属于libc库,因而,内核中的打印输出不能使用printf,而采用printk替代。,注意:不是printf,82,GCC内嵌式汇编语言简介(1/3),GCC的内嵌式汇编语言提供了一种在C语言源程序中直接嵌入汇编指令的方法,既能够直接控制所形成的指令序列,又有着与C语言的良好接口,在操作系统内核的开发中是一种常用技术。内嵌汇编代码格式:_asm_ _volatile_(“statements”:output_regs:input_regs:clobbered_regs)statements:汇编语言代码output_regs:汇编语言的输出说明,导出C语言变量input_regs:汇编语言的输入说明,载入C语言变量clobbered_regs:汇编语言中被改变的寄存器说明,83,带1个参数系统调用的GCC内嵌汇编(2/3),与输入部分对应,84,带多个输入参数的GCC内嵌汇编代码举例x86汇编(3/3),与输入部分对应,

    注意事项

    本文(5课嵌入式实时操作系统简介.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开