实时操作系统调度与通信机制详解
1. 基于优先级的调度
操作系统的核心任务是在请求资源的程序之间分配计算系统中的资源,其中CPU是最稀缺的资源,因此CPU调度是操作系统最重要的工作。
1.1 轮询调度
通用操作系统中常见的调度算法是轮询调度。所有进程被放在一个列表中,依次进行调度。通常会结合抢占机制,防止一个进程独占CPU时间。轮询调度提供了一种公平性,所有进程都有机会执行,但它不能保证任何任务的完成时间,随着进程数量的增加,所有进程的响应时间都会增加。而实时系统要求公平性包括及时性和满足截止时间。
1.2 进程优先级
在实时操作系统(RTOS)中,选择下一个执行进程的常见方法是基于进程优先级。每个进程被分配一个整数值的优先级,选择执行的下一个进程是就绪进程集中优先级最高的进程。
示例:优先级驱动调度
假设有三个进程,其属性如下:
| 进程 | 优先级 | 执行时间 |
| ---- | ---- | ---- |
| P1 | 1 | 10 |
| P2 | 2 | 30 |
| P3 | 3 | 20 |
假设系统启动时P2就绪,P1的数据在时间15到达,P3的数据在时间18到达。系统开始执行时,P2是唯一就绪的进程,所以它被选中执行。在时间15,P1就绪,由于其优先级更高,它抢占P2并开始执行。P1是系统中优先级最高的进程,它会一直执行直到完成。P3的数据在时间18到达,但它不能抢占P1。即使P1完成,P3也不能运行,因为P2仍然就绪且优先级高于P3。只有在P1和P2都完成后,P3才能执行。
超级会员免费看
订阅专栏 解锁全文

11万+

被折叠的 条评论
为什么被折叠?



