360做网站和推广怎么样,保定专业网站建设,做营销型网站一般要多少钱,建站公司见客户没话说嵌入式OS入门笔记-以RTX为案例#xff1a;一.简介 最近在做OS相关的项目#xff0c;一方面涉及到大量#xff08;通用#xff09;操作系统的概念和理解#xff0c;另一方面要深入到一个小实时操作系统的源代码中#xff0c;并在此操作系统上开发应用。虽然说内容上并不难…嵌入式OS入门笔记-以RTX为案例一.简介 最近在做OS相关的项目一方面涉及到大量通用操作系统的概念和理解另一方面要深入到一个小实时操作系统的源代码中并在此操作系统上开发应用。虽然说内容上并不难但是操作系统本身是一个非常基础影响深远的计算机科技的小分支所以把操作系统的知识重新整理一遍同时结合实时操作系统的实际情况形成这样一套笔记一是对项目的一个回顾另外也方便将来回来查阅吧。 1.操作系统的角色 OS其实是一个很宏大的概念不好捉摸。根据维基百科的定义OS是一组管理硬件和为应用软件提供服务的软件。这个说法很精练但依然抽象。我觉得大部分OS扮演着两个最主要的角色硬件的抽象表达者和资源的管理者。 硬件的抽象 如果要读取硬盘中的某一个数据首先得确定盘片然后确定磁道和扇区最后通过磁头读取进内存。这实际上是一系列复杂的机械和电子的操作虽然说复杂但是影响最终运作结果的因素读写地址不多大部分操作是对于不同的读写都是相同的。如果每一次执行读写硬盘操作应用程序都要明确地对硬件作出准确的指示那么应用程序会臃肿无比程序员也会为编写这样的程序感到非常无趣。 正如David Wheeler的那句名言“Any problem in computer science can besolved 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不仅免费而且其代码是开放的是可以自由查阅的 这些基本情况就写到这里下次我会更具体地介绍一下RTX和其他涉及到的工具。 文章转载自http://blog.csdn.net/raym0ndkwan/article/details/32859989