处理器如何通过高优先级流程了解切换流程?

时间:2014-07-24 12:10:13

标签: process linux-kernel operating-system process-management

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

2 个答案:

答案 0 :(得分:2)

  

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

帮助调度程序监视processes以及它们使用的CPU时间a programmable interval timer interrupts the processor periodically (typically 50 or 60 times per second)。当操作系统初始化时,该定时器被编程。在每次中断时,操作系统的调度程序都会运行并决定是否允许当前正在运行的进程继续运行,或者是否应该暂停它并允许另一个就绪进程运行。这是用于抢先调度的机制。

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

顺便说一句,这是一个很好的概念性问题。最好的主题是希望。

答案 1 :(得分:0)

当中断导致调度程序运行以决定下一个要运行的线程集时,优先级较高的线程/进程将抢占优先级较低的线程,并且调度程序算法决定优先级较低的线程需要被更高优先级的人取代。

中断有两种形式:

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

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