0

我认为,进程调度程序将用高优先级进程替换当前正在由 cpu 处理的进程。在调度程序正在运行以通知 cpu 有关高优先级进程的情况下,当 cpu 忙于执行低优先级进程时,处理器在任何时候都只会执行一个进程?

4

2 回答 2

2

进程调度器是操作系统的一个组件,负责决定当前运行的进程是否应该继续运行,如果没有,接下来应该运行哪个进程。

为了帮助调度程序监控processes它们使用的 CPU 时间量,a programmable interval timer interrupts the processor periodically (typically 50 or 60 times per second). 该定时器在操作系统自身初始化时被编程。在每次中断时,操作系统的调度程序开始运行并决定是否应该允许当前运行的进程继续运行,或者是否应该暂停它并允许另一个准备好的进程运行。这是用于抢占式调度的机制。

因此,基本上,进程调度程序运行在同一个主内存中when active,但只有在被中断调用后才被激活。因此,它们并非一直在运行。

顺便说一句,这是一个很好的概念性问题。祝你的话题好运。

于 2014-07-24T17:07:02.087 回答
0

高优先级线程/进程会在中断导致调度器运行时抢占低优先级线程来决定接下来运行哪组线程,调度器算法决定低优先级线程需要被替换为优先级较高的那个。

中断有两种形式:

  1. 来自已经在运行的线程的软件中断(系统调用)并改变线程的状态,例如。通过向另一个线程正在等待的事件、互斥体或信号量发出信号,使其准备好运行。

  2. 导致驱动程序运行的硬件中断,并且该驱动程序选择在退出时调用调度程序,因为 I/O 操作已完成或某个超时间隔已过期,需要更改运行线程集(例如磁盘、NIC、KB 、鼠标、计时器)。

于 2014-07-26T14:02:41.500 回答