查看: 2172|回复: 0

【连载】嵌入式OS入门笔记-以RTX为案例(一):简介

[复制链接]
  • TA的每日心情
    慵懒
    2014-8-14 15:38
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-8-16 01:38:13 | 显示全部楼层 |阅读模式
    分享到:
    最近在做OS相关的项目,一方面涉及到大量(通用)操作系统的概念和理解,另一方面要深入到一个小实时操作系统的源代码中,并在此操作系统上开发应用。虽  然说内容上并不难,但是操作系统本身是一个非常基础,影响深远的计算机科技的小分支,所以把操作系统的知识重新整理一遍,同时结合实时操作系统的实际情  况,形成这样一套笔记,一是对项目的一个回顾,另外也方便将来回来查阅吧。
       

    1.操作系统的角色

        OS其实是一个很宏大的概念,不好捉摸。根据维基百科的定义,OS是一组管理硬件和为应用软件提供服务的软件。这个说法很精练但依然抽象。我觉得大部分OS扮演着两个最主要的角色:硬件的抽象表达者和资源的管理者

    硬件的抽象

        如果要读取硬盘中的某一个数据,首先得确定盘片,然后确定磁道和扇区,最后通过磁头读取进内存。这实际上是一系列复杂的机械和电子的操作,虽然说复杂,但是影响最终运作结果的因素(读写地址)不多,大部分操作是对于不同的读写都是相同的。如果每一次执行读写硬盘操作,应用程序都要明确地对硬件作出准确的指示,那么应用程序会臃肿无比,程序员也会为编写这样的程序感到非常无趣。

        正如David Wheeler的那句名言:“Any problem in computer science can be solved with another layer of indirection.”OS的首要任务正是把这些繁杂的底层硬件的执行细节隐藏,提供给程序和用户一个相对抽象的概念。例如把一系列的机械和电子操作转化为简单的一句代码-读取硬盘(地址)。

        一般普通计算机使用者之所以不熟悉底层的这些细节,也正是因为有OS,这个硬件的抽象的存在。他们对计算机运作的认识,只是一个建立在OS基础之上的心理模型(mental model)。


    Hard Disk Driver - 《Operating System Concepts》

    资源的管理

    最早期的计算机是没有操作系统的,一般会有一个操作人员(operator)负责给程序排序,安排下一个时间段运行何程序。其实这就是操作系统的雏形,而这时这个操作人员的主要任务就是分配计算机资源。操作系统的核心其实就是资源的分配和管理,特别是在多程序(multiprogramming)的环境下。如何优化资源的分配,减少有害的竞争,提高某些资源的共享效率,都是操作系统关心的核心话题。这里说的资源主要指的是硬件资源,例如内存,CPU,网络带宽和I/O等等。

    其实纵观很多OS的教科书的组织,一般主要的讨论话题不外乎进程内存外设。这些话题都离不开OS的这两个角色,例如进程管理,很大一部分就是关于资源的分配,而进程本身又是OS对程序的一个抽象。所以我觉得具体学习研究OS时,只要能够抓住1.它抽象的对象和抽象的程度;2.如何合理的优化资源的安排,就能够达到学习研究的目的。

    2.实时操作系统

    其实嵌入式操作系统不一定就是实时操作系统(RTOS),反之亦然。但很多场合下嵌入式开发应用都对实时性的要求很高,所以这两个概念经常混用。RTOS最突出的就是它要在deadline之前完成任务,其中又分两种,一种是硬deadline,如果不能在规定deadline前完成,那么后果会很严重甚至产生一些致命的错误;而软deadline则稍微宽松一点,即使不能够在deadline前完成,deadline后继续完成任务直至完成也是可以接受的。

    一个很通常的误区就是,RTOS和通用OS的最大差别是RTOS要快。虽然速度快很重要,但这不是RTOS的核心特征。RTOS最为重要的是其行为的决定性(determinism可预测性(Predictability,同时RTOS对系统的响应速度要求也很高。当然,RTOS的容错,纠错能力也要足够强。

    这些特性其实都是一些极端工业环境下对OS的要求,例如在核反应和化学反应中,非常精确的控制,特别是在时间上的控制,往往决定了整个工业过程的成败,而且失败的代价往往非常高。所以一个好的RTOS,虽然没有一些通用的操作系统全面,但其行为的差异(variance)会比通用OS小得多。

    3.RTX

    我会以Keil开发的RTX实时操作系统作为主要的参考操作系统。这里面有几个原因:

             
    • RTX五脏俱全,是个完整且优秀的实时操作系统       
    • RTX对ARM设备Cortex-M系列的芯片有比较好的支持(自家产品)       
    • 更重要的是,RTX不仅免费,而且其代码是开放的,是可以自由查阅的!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 17:16 , Processed in 0.116899 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.