进程 P0、P1、P2 和 P3 进人就绪队列的时刻、优先级(值越小优先权越高)及 CPU 执行时间如下表所示.
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
进程 & 进入就绪队列的时刻 & 优先级 & CPU 执行时间 \\
\hline
$\mathrm{P} \bullet$ & $0 \mathrm{~ms}$ & 15 & $100 \mathrm{~ms}$ \\
\hline
$\mathrm{P} 1$ & $1 \mathrm{~ms}$ & $2 \bullet$ & $60 \mathrm{~ms}$ \\
\hline
$\mathrm{P} 2$ & $1 \mathrm{~ms}$ & $1 \bullet$ & $20 \mathrm{~ms}$ \\
\hline
$\mathrm{P} 3$ & $15 \mathrm{~ms}$ & $\bullet$ & $10 \mathrm{~ms}$ \\
\hline
\end{tabular}
\end{center}
若系统采用基于优先权的抢占式进程调度算法, 则从 $0 \mathrm{~ms}$ 时刻开始调度, 到 4 个进程都运行结束为止, 发生进程调度的总次数为 ( ) .
A. 4
B. 5
C. 6
D. 7
$0 \mathrm{~ms}$ 时, 只有 $\mathrm{P} 0$ 进程就绪, 调度 $\mathrm{P} 0$ 进程; $10 \mathrm{~ms}$ 时 P1、 P2 就绪, P2 优先级高于 $\mathrm{P} 0$, 进行 $\mathrm{CPU}$ 抢占调度; $15 \mathrm{~ms}$ 时, $\mathrm{P} 3$ 进程就绪, $\mathrm{P} 3$ 优先级高于 $\mathrm{P} 2$, 进行 $\mathrm{CPU}$ 抢占调度; $25 \mathrm{~ms}$ 时, $\mathrm{P} 3$ 进程执行完成, 再次发生进程调度, $\mathrm{P} 2$ 获得 $\mathrm{CPU} ; 40 \mathrm{~ms}$ 时, $\mathrm{P} 2$ 执行完成, 发生进程, 调度 P0 获得 CPU 继续执行: $130 \mathrm{~ms}$, P0 进程执行完成, 发生进程调度, P1 获得 CPU,直至进程结束。在这个过程中共发生 6 次进程调度。

因此答案为：C