uc/OS-II读书笔记

来源:互联网 发布:华为编程大赛题目 编辑:程序博客网 时间:2024/06/05 03:45

今天回家比较晚了,没什么积累就把之前的读书笔记弄上来了,争取下不为例的吧!

操作系统是一种系统软件,它在计算机硬件与计算机应用程序之间,在操作系统之上的是系统软件,一个完整的计算机系统是由硬件和软件两部分组成的,硬件是所有软件运行的物质基础,软件能充分发挥硬件的潜能和扩充硬件的功能,两者互相依存,缺一不可。在计算机系统中软件和硬件是分层次的,下层是上层运行的基础,上层是下层功能的扩充;下层对上层隐藏了下层功能实现的细节,只对上层提供了使用这些功能的接口。

操作系统的功能:1.处理器的管理。2.存储的管理。3.设备的管理。4.文件的管理。5.网络和通信的管理。6.提供用户接口。

什么是嵌入式系统,从不同的角度有不同的定义,一个较为通用的定义为:嵌入式系统是对对象进行自动控制而使其具有自动化并可以嵌入对象体系中的专用计算机系统。嵌入式系统的特点,它是集软硬件于一体的,可独立操作的计算机系统,从功能上看,它是对宿主对象进行控制,使其具有“智能”的控制器。

嵌入式计算机系统与通用型计算机系统相比,具有以下几个特点:

1.专用型强.

2.可裁剪性号,可根据用户的需求进行功能的添加或者删除。

3.实时性与可靠性好.

4.功耗低。

   然而嵌入式操作系统又分为两大类,实时操作系统和分时操作系统。实时操作系统需要满足的条件:实时操作系统必须是多任务系统;任务的切换时间应该与系统中的任务数无关;中断延迟的时间可预知并尽可能短。

   综上所述,用于嵌入式系统,对系统资源和多个任务进行管理,且具有高可靠性,良好可裁剪性等优良性能的,为应用程序提供运行平台和实时服务的微型系统软件叫做嵌入式实时操作系统。

                              第二章小结

  第二章主要讲的是开发工具,项目的处理以及数据结构,其中的makefile跟我们所学的Linux中的很相似,人们通常会把批处理文件,makefile和连接文件结合起来使用,从而极大的提高了程序开发效率。所谓的makefile,就是一种可由工程管理工具make.exe运行的文本文件,该文件主要是源文件编译及目标文件连接的脚本。

  常用数据结构,数据结构一直是c语言中非常重要的一部分,目前,无论在什么操作系统中,在它的诸多管理用表中,程序控制块最为重要。控制块的组织-链表,具体做法为:在程序控制块中再添加两个指针成员,一个用来指向前一个控制块,另一个用来指向下一个控制块,从而把所有被管理代码的控制块用链表组织了起来,这有点像双向链表,

 

 第三章小结

  在设计一个较为复杂的应用程序时,也通常把一个大型任务分解为多个小任务,然后在计算机中通过运行这些小任务,最终达成完成大任务的目的。在uc/OS-II中,与上述小任务对应的程序实体就叫做“任务”,而uc/OS-II就是一个能对这些小任务的运行进行管理和调度的多任务操作系统。

  Pc的值总是待要执行指令的地址,它反映了一个程序运行进度,所以根据任务是否有自己的私有运行空间,人们把任务也分别叫做了“进程”和“线程”,具体来说,具有私有空间的任务就叫做进程,没有私有空间的任务就叫做线程。

  uc/OS-II的任务有两种:用户任务和系统任务,由应用程序设计者编写的任务,叫做用户任务;由系统提供的任务叫做系统任务。用户任务是为了解决应用问题而编写的;系统任务是为应用程序提供某种服务或为系统本身服务的。

  uc/OS-II的任务状态总共有下列五种,睡眠状态,就绪状态,运行状态,等待状态和中断服务状态。任务堆栈是任务的重要组成部分,所有uc/OS-II的任务控制控制块中都含有一个指向该任务堆栈的指针。

  任务控制块的初始化,这是一个函数,该函数的主要任务如下:

1.为被创建任务从空任务控制块链表获取一个任务控制块;

2.用任务的属性对任务控制块各个成员进行赋值;

3.把这个任务控制块连入到任务控制块链表。

  任务调度:uc/OS-II的任务调度思想是:近似地每时每刻让优先级最高的就绪任务处于运行状态。在具体作法上,它在系统或用户调用系统函数及执行中断服务程序结束时来调用调度器,以确定应该运行的任务并运行它。

  任务由任务控制块,任务堆栈和任务代码三部分组成,系统通过任务控制块来感知和控制任务;任务堆栈主要用来保护断点和恢复断点;任务代码是一个超循环结构,它描述了任务的执行过程。在创建一个任务时,函数OSTaskCreate()OSTaskCreateEXT()负责给任务分配任务控制块和任务堆栈,并对他们进行初始化,然后把任务控制块,任务堆栈,任务代码三者关联起来形成一个完整的任务。

                            第四章小结

  任务在运行过程中,应内部或外部异步事件的请求中止当前任务,而去处理异步事件所要求的任务的过程叫做中断。应中断请求而运行的程序叫做中断服务子程序,中断服务子程序的入口地址叫做中断向量。

  任何操作系统都要提供一个周期性的信号源,以供系统处理诸如延时,超时等与时间有关的事件,这个周期性的信号源叫做时钟。

  uc/OS-II中,中断服务子程序运行结束之后,系统将会根据情况进行一次中断级的任务调度去运行优先级别最高的就绪任务,而并不一定要接续运行被中断的任务

  uc/OS-II的中断允许嵌套,用全局变量来记录中断的前套数。

  uc/OS-II的中断服务程序的工作通常是由中断激活的一个任务来完成的,这样做的优点是可以使应用程序的设计更加灵活。

  uc/OS-II的时钟通常是由一个由硬件计数器定时产生周期性中断信号来实现的,每一次中断叫做一个节拍,其中中断服务程序叫做节拍服务程序。



0 0