购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.5 本章小结

本章给出的实时操作系统下应用程序的基本要素主要是针对软件开发人员的。要理解实时操作系统下程序运行的基本流程,这些基本要素是必须掌握的。

异常与中断在程序设计中有着特殊地位。使用一个芯片编程,使用者必须知道这个芯片在硬件上支持哪些异常与中断,中断条件是什么,在何处进行中断服务程序的编写等。为了中断服务程序isr.c的可移植性,在user.h头文件中需要对中断服务程序的名字进行宏定义。

在实时操作系统中,时间嘀嗒是时间的最小度量单位,是线程调度的基本时间单元。它主要用于系统计时、线程调度等。要进行线程切换,至少需要等待1个时间嘀嗒。时钟嘀嗒由硬件定时器产生,一般以毫秒(ms)为单位,在Mbed OS中,时间嘀嗒设置为1ms。

在实时操作系统中,延时函数具有让出CPU使用权的功能,调用延时函数的线程将进入延时列表,时间到后,内核将其从延时列表中移到就绪列表中,被调度运行。这种延时只适用于延时大于1个时间嘀嗒的情况,更短延时不能用这种方式。

在实时操作系统中,调度是内核的主要职责之一,它决定将哪一个线程投入运行、何时投入运行及运行多久。编程时,只要线程进入就绪列表中,何时运行就是调度者的事情,而编程者认为该线程已经运行。实时操作系统的基本调度策略有优先级抢占式调度和时间片轮询调度等。优先级抢占式调度就是让就绪列表中优先级最高的线程先运行,对于优先级相同的线程,则按照先进先出的原则。时间片轮询调度也是让就绪列表中优先级最高的线程先运行,而对于优先级相同的线程分配固定的时间片来分享CPU时间。

在实时操作系统中,使用就绪列表管理就绪的线程,使用延时列表管理延时等待的线程,使用条件阻塞列表管理因等待事件、消息等而阻塞的线程。 zoFkZzJG3N7W7UjoSpY4bZhwIwYjN0vc2gXgNEJ2KFHxrWTzfYlEvnFnsgK6+VAA

点击中间区域
呼出菜单
上一章
目录
下一章
×