假设在一个双进程环境中,一个进程被内核调度执行,并且需要一些RAM中没有的数据。所以cpu会指示内核没有可用的东西,并且进程将被暂停。然后在内核加载第二个进程以通过CPU执行并开始调查辅助内存位置(比如虚拟内存)中的数据并获取它后,通过交换到当前处于非活动状态的内存数据将其放回主内存,并且将进程放回就绪队列中以便执行。
我们知道计算机系统中的所有内容都只能由CPU操纵,如果CPU忙着连续执行进程代码,那么谁在执行内核代码来执行内核完成的任务? 如果我能够解释这个场景,请告诉我。
答案 0 :(得分:4)
内核由于硬件中断而运行,或者由进程调用来执行某些操作。在这两种情况下,当前执行的代码都会停止运行,直到内核完成其工作。
它类似于函数调用:当函数A调用函数B时,函数A必须等到函数B完成它所做的事情,然后将控制权返回给函数A.你不需要多个CPU或任何类型的CPU魔术来实现这一目标。
答案 1 :(得分:3)
在任何时间点,CPU(/ s)都将
如果你特别询问安排,那么
基本上,内核在用户进程之间运行!!
现在清楚?
词shash
答案 2 :(得分:2)
CPU不会持续执行进程代码。 CPU被中断以执行各种操作。中断可能由于各种原因而发生:资源可用,先前的操作完成,或者只是计时器熄灭。
我推荐这一系列视频,以获取更深入的信息:http://academicearth.org/courses/operating-systems-and-system-programming