请计算采用抢占式优先级调度算法时各个进程的平均周转时间和平均带权周转时间。
时间: 2023-06-19 20:03:54 浏览: 356
抢占式优先级调度算法的实现可以按照以下步骤进行:
1. 每个进程都有一个优先级,数值越大表示优先级越高。
2. 就绪队列中,当有多个进程等待CPU时,系统会选择优先级最高的进程先执行。
3. 如果出现新的进程,其优先级高于当前正在执行的进程,那么系统会抢占正在执行的进程,转而执行新的优先级更高的进程。
平均周转时间(Turnaround Time)指从进程进入系统到进程完成的时间差总和除以进程数。平均带权周转时间(Weighted Turnaround Time)指平均周转时间除以进程的服务时间总和。
计算平均周转时间的公式为:
$ \text{Turnaround Time} = \text{Completion Time} - \text{Arrival Time} $
其中,Completion Time 是进程完成的时间,也就是进程从开始执行到执行结束的时间;Arrival Time 是进程到达的时间,也就是进程进入系统的时间。
计算平均带权周转时间的公式为:
$ \text{Weighted Turnaround Time} = \frac{\text{Turnaround Time}}{\text{Service Time}} $
其中,Service Time 是进程需要占用CPU的时间。
下面是一个例子,给出了4个进程的到达时间、服务时间和优先级:
| 进程 | 到达时间 | 服务时间 | 优先级 |
|----|--------|--------|------|
| P1 | 0 | 6 | 3 |
| P2 | 1 | 3 | 1 |
| P3 | 2 | 4 | 4 |
| P4 | 3 | 5 | 2 |
按照抢占式优先级调度算法,进程执行顺序为:
| 时间片 | 进程 |
|-----|----|
| 0 | P1 |
| 1 | P2 |
| 2 | P4 |
| 3 | P3 |
| 7 | P1 |
| 10 | P4 |
| 15 | P3 |
计算每个进程的 Completion Time 和 Turnaround Time:
| 进程 | Completion Time | Turnaround Time |
|----|--------------|----------------|
| P1 | 7 | 7 |
| P2 | 4 | 3 |
| P3 | 15 | 13 |
| P4 | 15 | 12 |
计算平均周转时间:
$ \text{Average Turnaround Time} = \frac{7 + 3 + 13 + 12}{4} = 8.75 $
计算每个进程的 Service Time 和 Weighted Turnaround Time:
| 进程 | Service Time | Weighted Turnaround Time |
|----|-----------|-----------------------|
| P1 | 6 | 1.17 |
| P2 | 3 | 1 |
| P3 | 4 | 3.25 |
| P4 | 5 | 2.4 |
计算平均带权周转时间:
$ \text{Average Weighted Turnaround Time} = \frac{1.17 + 1 + 3.25 + 2.4}{4} = 1.705 $
阅读全文