ucosiii系统相关概念

时间片的概念:

时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。而不会造成CPU资源浪费。在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行。但在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。
————————————————
版权声明:本文为CSDN博主「卡图卢斯」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014647208/java/article/details/80529187

 

空闲任务与阻塞延时:

RTOS 中的延时叫阻塞延时,即任务需要延时的时候,任务会放弃 CPU的使用权,CPU可以去干其它的事情,当任务延时时间到,重新获取 CPU使用权,任务继续运行,这样就充分地利用了 CPU的资源,而不是干等着。

当任务需要延时,进入阻塞状态,那 CPU 又去干什么事情了?如果没有其它任务可以运行,RTOS 都会为 CPU 创建一个空闲任务,这个时候 CPU 就运行空闲任务。

空闲任务的优先级是最低的,主要是做一些系统内存的清理工作。空闲任务是系统在【启动调度器】的时候创建的,而不是在主函数一开始,和任务函数一起创建,这点要比较注意。

 

时间戳:

时间测量的功能 ,知道了某段代码的运行时间,就明显地知道该代码的执行效率,如果时间过长就可以优化或者调整代码策略。 那么可以在代码A 运行前记录一个时间点 TimeStart,在代码段 A 运行完记录一个时间点 TimeEnd,那么代码段 A 的运行时间 TimeUse 就等于 TimeEnd 减去 TimeStart。这里面的两个时间点

TimeEnd TimeStart,就叫做时间戳,时间戳实际上就是一个时间点。


临界段:

每个进程中访问临界资源的那段程序称为临界区临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。

进程进入临界区的调度原则是:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

 

posted @ 2020-04-01 00:40  三字经  阅读(255)  评论(0编辑  收藏  举报