您的位置:首页 > 其它

uC/OS基本知识

2016-07-24 19:39 176 查看
主要摘自《嵌入式实时操作系统uC/OS原理与实践》卢友亮

uC/OS是一个微内核和实时多任务操作系统。具体包括任务管理、中断和时间管理、事件管理、消息管理、内存管理。

1、可重入函数和不可重入函数

可重入函数:在多任务环境中,一个可重入的函数是可以被中断的函数,也就是说,这个函数执行的任何时刻中断它,转入OS调度执行另一个任务或一段代码,而返回到中断点时不会出现错误;

不可重入函数:由于使用了一些系统资源,如全局的变量、中断向量表,它如果被中断的话,就会运行错误,这类函数是不能在多任务环境运行的。

2、任务状态

运行态(真正获得CPU得到运行),等待态或阻塞态(任务等待一秒的时候,不是强行运行代码,而是把自己阻塞起来是操作系统可以调用其他任务;当任务等待某些还没有被释放的资源时也会把自己阻塞起来,等到条件满足时回到就绪态),被中断态就绪态(当任务调用OSTASKCreate之后任务就处于就绪态,当没有比其优先级更高的任务或比其优先级更高的任务处于阻塞态时,就被操作系统调度处于运行态),休眠态(在等待OSTASKCreate创建之前,得不到运行,操作系统也不会为其准备运行内存)。挂起态(当任务运行时,滴答中断每个时钟滴答中断一次,被剥夺CPU使用权而进入挂起态。当中断返回时若该任务还是优先级最高就恢复运行,否则该任务进入到就绪态)。

3、操作系统的基本功能

任务管理、内存管理、文件管理、CPU管理(多任务OS对cpu的分配权,即该由哪个软件占有CPU)、I/O设备管理。

4、实时操作系统的特征

多任务操作系统,核心之一是任务调度;多级中断机制;优先调度机制。

5、任务切换

任务切换的核心是上下文切换,是任务调度重要部分。任务切换就是暂停一个任务的运行而执行另一个处于就绪态的任务。暂停一个任务又能恢复运行必须用堆栈来保存任务的运行信息。

6、不可剥夺内核和可剥夺内核

不可剥夺的含义:任务一旦获得CPU使用权得到运行,如果不将自己阻塞起来,将一直运行,而不管是否有任务优先级更高的任务在等待。

可剥夺内核中会在中断中判断是否有更高优先级的任务就绪,如果有就会切换任务。直到高优先级任务阻塞或者完成之前被切换的低优先级任务才获得运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: