ucosⅡ总体分析
课程讨论课是对ucos的分析,所以直接将报告中自己的模块copy到此,一共分三部分,此是第一部分。(课程设计不错但学校名声不高的坏处)
ucos一个嵌入式操作系统,它为用户程序提供了运行支撑服务的同时,也要提供作为嵌入式系统,启动用户程序的方式(毕竟大多嵌入式机器是没有鼠标、常规字母键盘的外设)。对于后者,我认为钩子函数是ucos系统启动机器创立用户进程的方式之一(目前不清楚有没有其它方式,在钩子函数模块简单陈述)。
而对于前者,uCOS为用户程序的运行提供底层支持。底层支持有各类硬件(外设)IO的封装服务和软件服务(多道环境和文件存储等等),不过ucos仅开源了多道和内存分配的C语言实现模块,而内存分配只有提供线性块状划分内存区域的服务和内存区域的管理数据结构,因此不做深度分析。但其多道体系有着较为完整的服务,即提供了完备的进程调度和同步的机制,因此我们组主要分析了进程调度和同步这两个方面,并粗浅地了解一些与之直接相关的汇编等底层知识。
进程调度主要是实现进程在就绪、执行、阻塞三个状态转变机制,而这个机制可以分为进程的存储与标识、进程状态队列的存储和转变过程。(详细的见第二部分,下同)而由于uCOSⅡ是实时系统,属于时间片的一个分支,所以还得有时钟节拍计时来支持状态转变(同时支撑了其实时系统)。
同步机制,是用来保证多道进程对数据、资源使用的同步、互斥和彼此的时间先后的约束。uCOSⅡ的同步机制主要由event事件体系实现,悬挂任务的方式作为补充。
(有人能推荐创作中心板书的技巧吗?我用html板书有点头疼!)