进程调度
什么是时间片轮转?
在我们调度进程时每一个进程都会分配到一定的时间由OS执行该进程,当该进程的时间片(10ms)执行完后,不管该进程有没有执行完都不在执行,转而执行下一个进程。
在我们在使用电脑是往往会打开多个进程,在我们的感受里多个进程是同时进行的,这是如何实现的呢?
调度器会把每个进程根据优先级放入运行队列,调度器在调度时就会从运行从前往后调度,在调度时会基于时间片轮转的方式进行,调度过的进程会从运行队列删除,添加到等待队列,当运行队列所有进程都执行过后,等待队列就会成为新的运行队列从前往后执行。
进程的切换
在OS运行进程时是基于时间片来执行的,所以并不一定能把该进程的所有代码执行完毕,在将时间片消耗完毕后,该进程会将执行中的临时数据保存起来,这临时数据称为进程的上下文。随后就执行下一个进程。
在开始执行一个进程时,OS是如何得知从哪里继续执行的呢?
这些数据被存放在CPU内的寄存器中,这样CPU的IO效率会大大提高。