1
操作系统方案设计文档
2
目录
操作系统方案设计文档 .....................................................................................................................................1
目录 ..........................................................................................................................................................................2
1. 设计目标描述 .....................................................................................................................................3
2. 系统设计描述 .....................................................................................................................................5
2.1. 硬件抽象层 ............................................................................................................................6
2.1.1. CPU(中央处理器) ................................................................................................6
2.1.2. Memory(主存储器) ............................................................................................7
2.1.3. 运算单元 ALU .......................................................................................................... 12
2.1.4. I/O 外设 ..................................................................................................................... 14
2.2. 系统管理设计层................................................................................................................ 15
2.2.1. 任务管理 ................................................................................................................... 15
2.2.2. 指令管理 ................................................................................................................... 24
2.2.3. I/O 外设管理 ............................................................................................................ 26
2.2.4. 内存管理 ................................................................................................................... 28
2.2.5. 中断管理 ................................................................................................................... 31
2.2.6. 运行监视器 .............................................................................................................. 32
2.3. 整体部署 ............................................................................................................................. 34
3
1. 设计目标描述
本课程结题报告选择的题目是操作系统(Operating System)设计,本次设计
关注的核心问题是如何对整体架构的设计的多任务调度问题,如何能让操作系统
的设计在不同维度的抽象下,都能体现出自己的设计所在,尽量做到规范化、支
撑性强。目前所使用相关的操作系统软件是 FreeRTOS,是为开源的操作系统软
件,主要面向内存容量较低的嵌入式设备,麻雀虽小,五脏俱全,FreeRTOS 作
为一个开源操作系统其在实时性的设计上是全面的,能够方面开发人员在在单片
机等嵌入式设备上移植操作系统,FreeRTOS 的设计架构如图 1-1 所示:
图 1-1 FreeRTOS 架构设计
在面向资源有限的嵌入式设备的场景下,在没有操作系统的支撑,大部分程
序都是单板裸机程序的存在,这些程序直接控制设备的硬件,通过各种设备的信
号交互做出反映,在这种的编程的场景下,一般使用面向过程的函数式编程完成
任务,程序表现为从 main 函数进入的 while(1)的大循环,也即应用程序是个无限
的大循环,基于程序是顺序执行的性质,单片机对于各任务的做出的响应一般依
托于中断机制进行处理,这种形式的系统属于单任务系统,也被成为前后台系统,
中断服务函数作为前台程序,无限循环中过程称为后台程序。前后台系统的运作
模式如图 1-2 所示:
4
图 1-2 前后台系统
基于前后台运作机制的软件系统的实时性很差,在此种运作机制下的各个任
务都是按照硬件信号的到来顺序排队轮流执行,对于任务的编排不具有灵活性和
算法层面的考虑,如果有操作系统的后验知识的话,也就是单板裸机程序的所有
任务不具有优先级或者说优先级没有区别,在对于简单的硬件控制中,前后台运
作机制仍然属于较为简便节省资源的选择,而随着应用的复杂程度上升和业务逻
辑场景的精细化,单板裸机程序的实时性和对于一些重要任务的及时响应变得尤
为重要,例如,相较于给出一个 RFID 的比对结果任务和一个大文件复制任务,
显然 RFID 的比对任务要更重要、更需要做出及时的响应,用户等待着刷卡结果,
此时如果大文件的复制工作没有结束,那么用户就会陷入焦急的等待过程中,这
显然是不合理的,多任务的操作系统的必要性则不言而喻了。
多任务系统会把一个大问题分解成若干小问题,系统软件通过算法的调度去
聚焦于小问题的解决上,这些小的问题可以作为一个单独的小任务来处理,这些
小任务是并发处理的,也即每个任务处理的时间很短,在直观的感知中像是同一
个时刻执行了很多的任务,对于多任务的系统软件的核心问题就是当有多个任务
的选择问题时,如何选择任务的执行顺序问题,FreeRTOS 的采用的是抢占式的
实时多任务操作系统的设计,调度流程机制如图 1-3 所示:
5
图 1-3 抢占式的实时多任务操作系统的设计
2. 系统设计描述
系统整体设计采用面向对象的编程范式,屏蔽硬件具体的底层细化过程式逻
辑,整个系统分为三大部分,一个是硬件抽象层,二是系统管理设计部分,三为
扩展交互式部分。硬件抽象层主要的工具主要是模拟操作系统运行所需要的硬件
支撑部分,将实际的硬件按照其具体的功能抽象成为类和对象的形式,以程序信
息交互和数据流通为系统运行的表征,涉及的硬件主要有 CPU、主存、I/O 外设、
运算器 ALU;系统管理设计部分是本次设计的核心部分,此部分的功能设计包
括任务管理、指令管理、I/O 外设管理、内存管理、中断管理、运行监视器机制,
文件管理部分不做设计,因为在 I/O 外设管理方面所作的工具是模拟,而文件是
块设备类型外设上的管理,与具体的组织有关系,这部分设计整个操作系统的整
体运作机制,为了方便管理的进行,会设计若干相关数据结构进行程序状态、指
令周期的状态表征,管理程序应根据各部分的状态进行合理地统筹和系统地推进。
最后一个部分为扩展交互部分,实时操作系统对于与用户的交互功能也是比较的
重视,如果有扩展交互界面打通数据程序和人员思想,那么操作系统的可用性将
会大大提高,不再局限于有限的输入作业和死板的顺序执行。