《实时操作系统课件.pptx》由会员分享,可在线阅读,更多相关《实时操作系统课件.pptx(39页珍藏版)》请在三一办公上搜索。
1、实时操作系统,xxx,- 背景、标准、技术、实现,1,谢谢观赏,2019-6-27,RTOS地位,嵌入式系统存在并发需求(中断驱动),RTOS Kernel 是支持并发的主要工具。提供的自举代码,各种硬件的驱动(DRIVERS ),以提供基本的硬件设备管理。提供Download,Debugger 接口方便开发调试提供NET , FILE , GRAPH, TV等 API 方便嵌入式系统的开发工作,2,谢谢观赏,2019-6-27,RTOS Background,Application Programming Interface,Kernel Standardposix/uITRON,DD-PI
2、,硬件抽象层HAL 影响RTOS系统的可移植性,3,谢谢观赏,2019-6-27,免费RTOS 及RTOS研究,其他列表于,4,谢谢观赏,2019-6-27,RTOS系统比较,个人电脑上的操作系统向下功能缩减形成的方案,原嵌入式系统中的实时性操作系统功能扩展形成的方案,5,谢谢观赏,2019-6-27,系统配置,From cygnus,RTOS 通常包含 Kernel +Drivers+NET+CLIB(FILE)+GUI 五部分,功能需求不同,RTOS大小也不同,6,谢谢观赏,2019-6-27,RTOS性能指标,RTOS性能指标中断响应时间: Interrupt Response上下文切换
3、时间:Context Switching Time确定性: Determinism Kernel services should be deterministic by specifying how long each service call will take to execute.调度器的实现算法Rate Monotonic(发生率单调),优先级与发生率呈正比 LiuLay 1973lottery scheduler (彩票调度, Wald&Weihl94),7,谢谢观赏,2019-6-27,RTOS系统规模 (I),8,谢谢观赏,2019-6-27,RTOS系统规模(II)源代码,eC
4、os 源代码行数Kernel -h 8865 , cxx 8497CLIB+MathLIB - h 1541 , cxx 13KLinux源代码行数 1MKernel 10KHAL 36KFile System 124KDrivers 831K Net 147K,9,谢谢观赏,2019-6-27,RTOS系统选择,1. OS高性能和保持安全性 成熟!?2. 结构合理 分层以保持可移植,方便驱动程序实现3. 提供开发环境加快系统开发进度 提供模拟开发环境降低开发成本 IDE .,10,谢谢观赏,2019-6-27,RTOS系统选择(II),系统尺寸、性能 : Footprint Performa
5、nce系统完整性:Software components & Device Drivers 标准化支持:Standards compatibility版权与财务(License): Only for Build from scratch for special Performance requirement,11,谢谢观赏,2019-6-27,RTOS 技术,核心服务界面(Kernel Service)核心Implementation HAL界面HAL Implementation DriverManager 界面Driver Manager Implementation,12,谢谢观赏,20
6、19-6-27,核心服务界面标准,Posix 1003.1b 以POSIX扩充出现,适用于多进程系统,代码尺寸限制不是非常严格的场合为VxWorks,OSKIT,RTEMS等系统支持。uItron 以实时系统专用标准出现,适用于代码尺寸限制严格的场合,为eCos等系统支持。Standard Links,13,谢谢观赏,2019-6-27,核心服务界面,Scheduling servicevoid cyg_thread_create(cyg_addrword_t sched_info, cyg_thread_entry_t *entry, cyg_addrword_t entry_data, c
7、har *name, void *stack_base, cyg_ucount32 stack_size, cyg_handle_t *handle, cyg_thread *thread);NU_Create_Task/ER cre_tsk(ID tskid, T_CTSK *pk_ctsk);SynchronizationNU_Send_TO_Queue,14,谢谢观赏,2019-6-27,核心服务(Contd),Interrupt Services ManagementCreate_ISR, install_interrupt_handleI/O Driver ServiceCreate
8、_Drivermemory servicesAllocate_Partition, ALLOCC-API.strcpy,15,谢谢观赏,2019-6-27,Itran 命名标准,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
9、:/159.226.42.103/rtos/rtosstandards/itron/,16,谢谢观赏,2019-6-27,Itran 命名-对象,17,谢谢观赏,2019-6-27,Itran 命名-方法,18,谢谢观赏,2019-6-27,RTOS 核心 Service Summary,RTOS 核心 提供并发支持RTOS 核心 通常表现为函数库,接口相当于系统调用。核心 服务(命名和语义)的标准化有利于如TCP/IP协议栈等API的实现与重用.,19,谢谢观赏,2019-6-27,事件队列,简单的异步系统,调度器,绘图线程 1,II,鼠标中断服务,系统包含,空线程,20,谢谢观赏,2019
10、-6-27,最小核心 实现,核心实现中包含如下对象任务调度支持Scheduler /Interrupt ManagerTask 同步与通讯支持Event SemaphoneQueue,21,谢谢观赏,2019-6-27,Scheduler s Global,调度器中包含当前线程 Cyg_Thread *current_thread;线程队列 Cyg_ThreadQueue *queue; 调度状态volatile cyg_ucount32 sched_lock; cyg_bool need_reschedule; cyg_ucount32 thread_switches; 。,22,谢谢观赏,
11、2019-6-27,Cyg_HardwareThread,线程控制块至少包含栈定义。 CYG_ADDRESS stack_base; cyg_uint32 stack_size; 栈状态 CYG_ADDRESS stack_ptr; 线程状态 cyg_uint32 state;,23,谢谢观赏,2019-6-27,Cyg_Thread,线程状态中通常还包含相关的消息及同步对象的列表.cyg_ucount32 wakeup_count;CYG_ADDRWORD wait_info;核心代码的操作对象即这些线程状态、消息及同步量,24,谢谢观赏,2019-6-27,核心初始化,核心所需的初始化包含
12、内存分配器初始化核心自用的信号量初始化基本的中断处理程序的安装.基本的驱动程序的安装.启动系统线程启动用户线程,25,谢谢观赏,2019-6-27,初始化例,26,谢谢观赏,2019-6-27,同步对象,运行时的RTOS 对象,调度器对象 线程表/当前线程 中断向量表 .,线程 1,线程2,线程n,中断服务n,中断服务1,II,中断堆栈,线程控制块+线程堆栈,27,谢谢观赏,2019-6-27,简单系统的代码,28,谢谢观赏,2019-6-27,任务切换过程,OSTCBCUR,线程控制块,当前线程,线程堆栈,线程现场,Idle,Draw,OSTCBHighRrd,29,谢谢观赏,2019-6-
13、27,ucOS 任务切换实现,30,谢谢观赏,2019-6-27,调度算法,调度算法选择将要执行的任务a bitmap scheduler It represents each runnable thread with a bit in a bitmap. Each thread must have a unique priority and there is a strict upper limit on the number of threads allowed.multi-level queue scheduler This contains the multi-level queue
14、scheduler implementation. It implements a number of thread priorities and is capable of timeslicing between threads at the same priority. This scheduler can also support priority inheritance. lottery scheduler (彩票调度, Wald&Weihl94) Compensation tickets and ticket donation allow fair sharing for I/O b
15、ound threads and an equivalent mechanism to priority inheritance.,31,谢谢观赏,2019-6-27,RTOS性能指标,RTOS PerformanceContext Switching Time上下文切换时间Interrupt Response 中断响应时间Determinism 决定性Kernel services should be deterministic by specifying how long each service call will take to execute.实时调度的经典算法Rate Monoto
16、nic(发生率单调),优先级与发生率呈正比 Liu&Lay 1973,32,谢谢观赏,2019-6-27,结束语,我们描述了RTOS Kernel的基本原理了解了RTOS Kernel 的结构嵌入式系统的需求多种多样是RTOS种类繁多的重要原因。实际RTOS 的实现还可能包含SMP、MMU、调试支持、可移植性、驱动程序开发,等问题,RTOS Kernel 的实现效率,实时性也是重要问题。希望以后有更多的交流,谢谢。,33,谢谢观赏,2019-6-27,Embedded-OS 的发展方向,是否需要完整功能的操作系统进程管理,存储保护,核心态用户态。是否有兼容性需求需要做数据文件交换(Pocket
17、 Word)。CE 强调 Host Sync& Communication API支持可使用的硬件资源核心Footprint 在4Mb+时CE,LINUX有优势。“主流”用户程序数量是OS生存的重要条件。需要提供丰富、支持全面的API 1000+ 需要提供完善的集成开发环境,简化程序(包括驱动)开发。,34,谢谢观赏,2019-6-27,Easy Embedded OS,Easy Embedded OS是一个小型嵌入式操作系统,定位为小型通讯设备、数字化家电如机顶盒(STB)用的OS。由中科院计算所嵌入式系统软件研究组负责组织开发。Easy Embedded 实时操作系统以库函数形式提供。此外Easy Embedded OS是包含Easy Embedded开发环境的完整嵌入式系统软件开发环境,提供OS配置工具、编译环境、模拟环境、下载工具和调试环境,以方便用户使用。,35,谢谢观赏,2019-6-27,EEOS成分,36,谢谢观赏,2019-6-27,Win32-EEOS应用仿真开发平台,37,谢谢观赏,2019-6-27,交叉调试开发环境,38,谢谢观赏,2019-6-27,39,谢谢观赏,2019-6-27,