ucos-ii分析(1)

10 篇文章 0 订阅
10 篇文章 1 订阅

ucos-II虽然是一个小微的操作系统,但是基本上包含了操作系统的机制和管理原理,分析它可以有助于我们对操作系统的理解和应用,有助于我们开发产品。

我对分析整体的划分,分成如下几个部分:

1. 任务的创立和管理机制;

2. 任务的调度管理

3.同步和互斥的机制实现

4. 任务间通信

5. 中断和时钟

6.信号量集的实现

7.内存管理



一. 任务的创立和管理机制:

1.任务的基本属性:

a) ucos-II中的任务相当于linux的线程,负责完成大程序中的一个小任务。

b)系统中对任务的存储结构:  任务控制块----保存任务的工作属性,任务堆栈---保存任务工作环境,  任务程序代码---任务的执行部分代码;

c)任务的分类:ucos-II分为用户任务 和系统任务;linux中分为用户空间和内核空间。两者机理类似。

用户任务:解决实际问题; 系统任务:为应用程序提供支撑服务;

d) 每一个任务都是当中一个节点,相当于一个链表。(数据结构中的链表结构,单链表,双链表)

2.任务管理

a) ucos-II具有64个任务,包括系统任务和用户任务。 思考:能不能扩大任务数?ucos-II中如何实现任务数量的管理的?

b) 任务的执行状态:  运行,就绪,等待,睡眠,中断,来实现对CPU控制权的管理、

c)为应用任务服务的两个系统任务:空闲任务和统计任务。空闲任务每个应用任务必须用,指某个时间段内无用户任务可运行而应用的任务,防止CPU闲的捣蛋而创立的+1任务。统计任务是计算CPU的利用率而设计的。

d) 任务的优先权和优先级别:64个任务, 0最大,63最小;

e)任务堆栈:在存储器中后进先出的原则组织的连续存储空间。为了满足任务切换和响应中断时保存的CPU寄存器内容和存储任务私有设计的需要。

任务堆栈的增长方向:  由低到高,由高到低,视处理器的情况而定。

f)任务控制块:管理任务的当前状态,任务的堆栈指针,任务的优先级别等状态的,放在任务控制块中。ucos-II有两个任务控制块链表:一个是空任务链表,任务控制块还没分配任务;二是任务块链表,分配过任务的控制块。

g)任务就绪表和任务调度:

任务调度:多个任务运行时如何来确定让哪个任务先运行;通过任务就绪表来进行管理,记录任务的就绪状态。

如何让任务间进行切换由任务调度器来完成:1.在任务就绪表中查找具有最高优先级的就绪任务,2,实现任务的切换。2种调度器:一是任务级的调度器,一个是中断级的调度器;

h)任务的创建,挂起和恢复;

i)任务优先级别的修改,任务的删除;

j)任务的初始化和启动;


参考书籍《嵌入式实时操作系统uc/os-II原理及应用》 ---任哲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值