第六章 进程调度
6.1 进程调度概念
- (1)在合适时间以一定策略选取一个就绪进程运行
- (2)保证响应快,处理快,吞吐量大,利用率高,公平,避免饥饿
- (3)量化单位:周转时间和带权周转时间
6.2 典型调度算法
- (1)先来先服务调度:队列
- (2)短作业优先调度:最短运行时间优先
- (3)响应比高者优先:响应比 = 响应时间(等时+运时)/运时
- (4)优先数调度:静态优先数(创建时指定) + 动态优先数(初值为使用CPU时长,在进行I/O操作后随等待时间增加而增加)
- (5)循环轮转调度:环形队列,每个进程以时间片q运行CPU后进程加到队列末尾
6.3 Linux进程调度
-
6.3.1 进程分类
- (1)普通进程:动态优先级,通过相关计算得到
- (2)实时进程 :静态优先级,在创建时设定
-
6.3.2 调度依据
- (1)task_struct结构体:包含policy(分普进程与实进程),priority(静态优先级),rt_priority(实时进程优先级),counter(连续运行时间)
- (2)Couter:单位为滴答,子进程的Couter为父进程的一半
- (3)调度时机:中断过程中或中断返回前
- (4)过程:正运行进程A→发生中断→保存现场→调用schedule调度→运行进程B→恢复B现场→IREC中断返回完成→继续运行B