进程调度是操作系统管理多任务的重要机制,通过调度算法将 CPU 时间分配给不同的进程,从而保证系统的性能和响应能力。本文主要介绍了两种调度策略的实现:时间片轮转调度基于优先级的调度


时间片轮转调度

实现方式

测试结果

运行命令 $ myfork 后,多个进程开始交替运行:


基于优先级的调度

实现方式

只有优先级满足条件的进程会被选中运行。

```c
for(temp  = proc; temp < &proc[NPROC]; temp++) {
    acquire(&temp->lock);
    if(temp->state == RUNNABLE && temp->priority < priority) {
        priority = temp->priority;
    }
    release(&temp->lock);
}

```

测试结果

运行命令 $ myfork 后,进程根据优先级进行调度: