《实时操作系统课件.pptx》由会员分享,可在线阅读,更多相关《实时操作系统课件.pptx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实时操作系统实时操作系统xxx-背景、标准、技术、实现背景、标准、技术、实现1谢谢观赏2019-6-27RTOS地位地位y嵌入式系统存在并发需求(中断驱动),RTOS Kernel 是支持并发的主要工具。y提供的自举代码,各种硬件的驱动(DRIVERS),以提供基本的硬件设备管理。y提供Download,Debugger 接口方便开发调试y提供NET,FILE,GRAPH,TV等 API 方便嵌入式系统的开发工作2谢谢观赏2019-6-27RTOS BackgroundUser ModeKernel ModeKernel1st_overExecutiveSecurityReferenceMon
2、itor(servers)ProtectedSubsystems POSIXSubsystemHardware Abstraction LayerHardwareConfigurationProcessStructureI/O ManagerMemoryManagerSystem ServicesManagerFileSystem,Intermediate,and DeviceDriversWin32SubsystemNETManagerExecutiveSupportObjectManagerLocalProcedureCallAPI ImpleBased on WinNT DDKAppli
3、cation Programming InterfaceKernel Standardposix/uITRONDD-PI硬件抽象层硬件抽象层HAL 影响影响RTOS系统的可移植性系统的可移植性3谢谢观赏2019-6-27免费RTOS 及RTOS研究z其他列表于 4谢谢观赏2019-6-27RTOS系统比较个人电脑上的操作系统向下功能缩减形成的方案原嵌入式系统中的实时性操作系统功能扩展形成的方案5谢谢观赏2019-6-27系统配置From cygnusRTOS 通常包含 Kernel+Drivers+NET+CLIB(FILE)+GUI 五部分,功能需求不同,RTOS大小也不同6谢谢观赏2019
4、-6-27RTOS性能指标zRTOS性能指标y中断响应时间:Interrupt Responsey上下文切换时间:Context Switching Timey确定性:Determinism Kernel services should be deterministic by specifying how long each service call will take to execute.z调度器的实现算法Rate Monotonic(发生率单调),优先级与发生率呈正比 LiuLay 1973lottery scheduler(彩票调度,Wald&Weihl94)7谢谢观赏2019-6-2
5、7RTOS系统规模(I)8谢谢观赏2019-6-27RTOS系统规模(II)源代码yeCos 源代码行数xKernel -h 8865,cxx 8497xCLIB+MathLIB-h 1541,cxx 13KyLinux源代码行数 1MxKernel 10KxHAL 36KxFile System 124KxDrivers 831K xNet 147K9谢谢观赏2019-6-27RTOS系统选择z1.OS高性能和保持安全性高性能和保持安全性y 成熟!?z2.结构合理结构合理y 分层以保持可移植,方便驱动程序实现z3.提供开发环境加快系统开发进度提供开发环境加快系统开发进度y 提供模拟开发环境降
6、低开发成本y IDE.10谢谢观赏2019-6-27RTOS系统选择(II)z系统尺寸、性能:yFootprint Performancez系统完整性:Software components&Device Drivers z标准化支持:Standards compatibilityz版权与财务(License):Only for Build from scratch for special Performance requirement11谢谢观赏2019-6-27RTOS 技术z核心服务界面(Kernel Service)z核心Implementation zHAL界面zHAL Implem
7、entation zDriverManager 界面zDriver Manager Implementation 12谢谢观赏2019-6-27核心服务界面标准sPosix 1003.1b 以POSIX扩充出现,适用于多进程系统,代码尺寸限制不是非常严格的场合为VxWorks,OSKIT,RTEMS等系统支持。suItron 以实时系统专用标准出现,适用于代码尺寸限制严格的场合,为eCos等系统支持。sStandard Links13谢谢观赏2019-6-27核心服务界面sScheduling servicesvoid cyg_thread_createcyg_thread_create(cy
8、g_addrword_t sched_info,cyg_thread_entry_t*entry,cyg_addrword_t entry_data,char*name,void*stack_base,cyg_ucount32 stack_size,cyg_handle_t*handle,cyg_thread*thread);sNU_Create_Task/ER cre_tsk(ID tskid,T_CTSK*pk_ctsk);sSynchronization&Communications scyg_semaphore_initcyg_semaphore_init(cyg_sem_t*sem,
9、cyg_ucount32 val);sNU_Create_Semaphorescyg_bool_t cyg_semaphore_trywaitcyg_semaphore_trywait(cyg_sem_t*sem);NU_Send_TO_Queue14谢谢观赏2019-6-27核心服务(Contd)sInterrupt Services ManagementsCreate_ISR,install_interrupt_handlesI/O Driver ServicesCreate_Driversmemory servicessAllocate_Partition,ALLOCsC-API.sst
10、rcpy15谢谢观赏2019-6-27Itran 命名标准All system calls of ITRON specification are seven or eight characters long and of the form xxx_yyy or zxxx_yyy respectively,where xxx represents the method of operation,and yyy the object of the operation.ftp:/159.226.42.103/rtos/rtosstandards/itron/16谢谢观赏2019-6-27Itran
11、命名-对象17谢谢观赏2019-6-27Itran 命名-方法18谢谢观赏2019-6-27RTOS 核心 Service SummaryzRTOS 核心 提供并发支持zRTOS 核心 通常表现为函数库,接口相当于系统调用。z核心 服务(命名和语义)的标准化有利于如TCP/IP协议栈等API的实现与重用.19谢谢观赏2019-6-27事件队列简单的异步系统调度器绘图线程 1鼠标中断服务系统包含空线程20谢谢观赏2019-6-27最小核心 实现核心实现中包含如下对象任务调度支持zScheduler/Interrupt ManagerzTask 同步与通讯支持zEvent zSemaphonezQ
12、ueue21谢谢观赏2019-6-27Scheduler s Global调度器中包含z当前线程 Cyg_Thread*current_thread;z线程队列 Cyg_ThreadQueue*queue;z调度状态yvolatile cyg_ucount32 sched_lock;ycyg_bool need_reschedule;ycyg_ucount32 thread_switches;y。22谢谢观赏2019-6-27Cyg_HardwareThread线程控制块至少包含z栈定义。y CYG_ADDRESS stack_base;y cyg_uint32 stack_size;z栈状态
13、y CYG_ADDRESS stack_ptr;z线程状态y cyg_uint32 state;23谢谢观赏2019-6-27Cyg_Threadz线程状态中通常还包含相关的消息及同步对象的列表.ycyg_ucount32 wakeup_count;yCYG_ADDRWORD wait_info;z核心代码的操作对象即这些线程状态、消息及同步量24谢谢观赏2019-6-27核心初始化核心所需的初始化包含z内存分配器初始化z核心自用的信号量初始化z基本的中断处理程序的安装.z基本的驱动程序的安装.z启动系统线程z启动用户线程25谢谢观赏2019-6-27初始化例26谢谢观赏2019-6-27同步
14、对象运行时的RTOS 对象调度器对象 线程表/当前线程 中断向量表.线程 1线程2线程n中断服务n中断服务1中断堆栈线程控制块+线程堆栈27谢谢观赏2019-6-27简单系统的代码28谢谢观赏2019-6-27任务切换过程OSTCBCUR线程控制块当前线程线程堆栈线程现场IdleDrawOSTCBHighRrd29谢谢观赏2019-6-27ucOS 任务切换实现30谢谢观赏2019-6-27调度算法调度算法选择将要执行的任务za bitmap scheduler y It represents each runnable thread with a bit in a bitmap.Each t
15、hread must have a unique priority and there is a strict upper limit on the number of threads allowed.zmulti-level queue scheduler yThis contains the multi-level queue scheduler implementation.It implements a number of thread priorities and is capable of timeslicing between threads at the same priori
16、ty.This scheduler can also support priority inheritance.z lottery scheduler(彩票调度,Wald&Weihl94)y Compensation tickets and ticket donation allow fair sharing for I/O bound threads and an equivalent mechanism to priority inheritance.31谢谢观赏2019-6-27RTOS性能指标zRTOS PerformanceContext Switching Time上下文切换时间I
17、nterrupt Response 中断响应时间Determinism 决定性yKernel services should be deterministic by specifying how long each service call will take to execute.z实时调度的经典算法Rate Monotonic(发生率单调),优先级与发生率呈正比 Liu&Lay 197332谢谢观赏2019-6-27结束语z我们描述了RTOS Kernel的基本原理了解了RTOS Kernel 的结构y嵌入式系统的需求多种多样是RTOS种类繁多的重要原因。实际RTOS 的实现还可能包含SM
18、P、MMU、调试支持、可移植性、驱动程序开发,等问题,RTOS Kernel 的实现效率,实时性也是重要问题。z希望以后有更多的交流,谢谢。33谢谢观赏2019-6-27Embedded-OS 的发展方向z是否需要完整功能的操作系统是否需要完整功能的操作系统是否需要完整功能的操作系统是否需要完整功能的操作系统y进程管理,存储保护,核心态用户态。z是否有兼容性需求是否有兼容性需求是否有兼容性需求是否有兼容性需求y需要做数据文件交换(Pocket Word)。yCE 强调 Host Sync&Communication API支持z可使用的硬件资源可使用的硬件资源可使用的硬件资源可使用的硬件资源y
19、核心Footprint 在4Mb+时CE,LINUX有优势。z“主流主流主流主流”y用户程序数量是OS生存的重要条件。需要提供丰富、支持全面的API 1000+y需要提供完善的集成开发环境,简化程序(包括驱动)开发。34谢谢观赏2019-6-27Easy Embedded OSzEasy Embedded OS是一个小型嵌入式操作系统,定位为小型通讯设备、数字化家电如机顶盒(STB)用的OS。由中科院计算所嵌入式系统软件研究组负责组织开发。zEasy Embedded 实时操作系统以库函数形式提供。此外Easy Embedded OS是包含Easy Embedded开发环境的完整嵌入式系统软件开发环境,提供OS配置工具、编译环境、模拟环境、下载工具和调试环境,以方便用户使用。35谢谢观赏2019-6-27EEOS成分36谢谢观赏2019-6-27Win32-EEOS应用仿真开发平台37谢谢观赏2019-6-27交叉调试开发环境38谢谢观赏2019-6-2739谢谢观赏2019-6-27