Process 当进程正在执行时,操作系统如何处理其职责?

Process 当进程正在执行时,操作系统如何处理其职责?,process,operating-system,cpu,Process,Operating System,Cpu,我很久以前就想到了这个问题,听起来可能有点空洞。我们知道操作系统负责处理内存分配、进程管理等。CPU一次只能执行一个任务(假设它是单核)。假设一个操作系统已经为某个用户启动的进程分配了一个CPU周期,并且CPU正在执行该进程。现在操作系统在哪里运行?如果其他进程正在使用CPU,那么,操作系统当时是否不运行?因为操作系统本身必须需要CPU才能运行。如果操作系统没有运行,那么在这段时间内谁在处理进程管理、设备管理等?操作系统内核在通过中断输入之前什么都不做。输入它可能是因为硬件中断导致驱动程序运行并

我很久以前就想到了这个问题,听起来可能有点空洞。我们知道操作系统负责处理内存分配、进程管理等。CPU一次只能执行一个任务(假设它是单核)。假设一个操作系统已经为某个用户启动的进程分配了一个CPU周期,并且CPU正在执行该进程。现在操作系统在哪里运行?如果其他进程正在使用CPU,那么,操作系统当时是否不运行?因为操作系统本身必须需要CPU才能运行。如果操作系统没有运行,那么在这段时间内谁在处理进程管理、设备管理等?

操作系统内核在通过中断输入之前什么都不做。输入它可能是因为硬件中断导致驱动程序运行并且驱动程序选择通过操作系统退出,或者运行的线程可能发出
syscall
中断

除非发生中断,否则操作系统内核什么也不做。它不需要做任何事情

编辑:

DMA(通常)用于批量I/O,由硬件子系统处理,该硬件子系统处理系统调用发出的请求(软件中断)。当DMA操作完成时,DMA硬件会引发一个硬件中断,因此运行一个驱动程序可以进一步向操作系统发出完成的信号,可能会更改运行线程的集合,从而通过中断来管理DMA

新进程/线程只能由发出系统调用(软件中断)的现有线程加载,因此新进程由中断启动


它是中断,一直到下:)

操作系统内核在通过中断输入之前什么都不做。输入它可能是因为硬件中断导致驱动程序运行并且驱动程序选择通过操作系统退出,或者运行的线程可能发出
syscall
中断

除非发生中断,否则操作系统内核什么也不做。它不需要做任何事情

编辑:

DMA(通常)用于批量I/O,由硬件子系统处理,该硬件子系统处理系统调用发出的请求(软件中断)。当DMA操作完成时,DMA硬件会引发一个硬件中断,因此运行一个驱动程序可以进一步向操作系统发出完成的信号,可能会更改运行线程的集合,从而通过中断来管理DMA

新进程/线程只能由发出系统调用(软件中断)的现有线程加载,因此新进程由中断启动


问题是谁控制内存,谁控制CPU。“running”一词并不精确:在单个CPU上,单个任务在任何给定时间运行,即处理器正在执行其指令;但是许多任务都是在执行的,因为它们的状态存储在内存中,并且可以随时恢复执行

当进程在CPU上执行时,内核没有执行。它的状态保存在内存中。内核的执行可以恢复:

  • 如果进程代码跳转到内核代码中,则称为
  • 如果发生故障
如果操作系统提供,它将计划在一段时间间隔(称为a)后发生中断。在非抢占式操作系统上,如果进程不产生CPU,它将永远运行。有关抢占权如何工作的说明,请参见

进程管理和设备管理等任务是由某些事件触发的。如果事件是进程的请求,则请求将采用系统调用的形式,该调用执行内核代码。如果事件是从硬件触发的,它将采取中断的形式,执行内核代码


(注意:在这个答案中,我同义使用“CPU”和“处理器”,意思是一个执行线程:一个单核,或任何硬件架构。)

问题是谁控制内存,谁控制CPU。“running”一词并不精确:在单个CPU上,单个任务在任何给定时间运行,即处理器正在执行其指令;但是许多任务都是在执行的,因为它们的状态存储在内存中,并且可以随时恢复执行

当进程在CPU上执行时,内核没有执行。它的状态保存在内存中。内核的执行可以恢复:

  • 如果进程代码跳转到内核代码中,则称为
  • 如果发生故障
如果操作系统提供,它将计划在一段时间间隔(称为a)后发生中断。在非抢占式操作系统上,如果进程不产生CPU,它将永远运行。有关抢占权如何工作的说明,请参见

进程管理和设备管理等任务是由某些事件触发的。如果事件是进程的请求,则请求将采用系统调用的形式,该调用执行内核代码。如果事件是从硬件触发的,它将采取中断的形式,执行内核代码


(注意:在这个答案中,我同义使用“CPU”和“处理器”,意思是一个执行线程:一个单核,或任何硬件架构。)

这取决于您使用的CPU调度类型:(在单核的情况下) 如果您的进程是使用抢占式调度执行的,那么您可以在其间中断进程一段时间,您可以将CPU用于其他进程或O.S.,但如果是非抢占式调度进程在完成之前不会产生CPU执行

在单核的情况下,如果只有一个进程,那么它将执行