Process 进程如何在操作系统和cpu中工作

Process 进程如何在操作系统和cpu中工作,process,operating-system,cpu,Process,Operating System,Cpu,我读过关于进程调度的书。 我知道当一个procces被创建时,有一个为它创建的procces控制块,但我不完全理解它是如何工作的。 当PCB被创建时,它与其他进程一起去哪里,它们是直接去cpu还是操作系统是创建进程队列并将队列发送给cpu的?或者队列已经在cpu中?看起来您错误地设想了cpu的操作 虽然您可能听说过CPU中的管道,也可能听说过作业批处理之类的事情,现在您提到的是进程队列,机械地思考问题,但实际上,CPU总是/不断地(嗯,不是真的,但让我们避免不必要的细节,并假设是这样)执行代码。

我读过关于进程调度的书。 我知道当一个procces被创建时,有一个为它创建的procces控制块,但我不完全理解它是如何工作的。
当PCB被创建时,它与其他进程一起去哪里,它们是直接去cpu还是操作系统是创建进程队列并将队列发送给cpu的?或者队列已经在cpu中?

看起来您错误地设想了cpu的操作

虽然您可能听说过CPU中的管道,也可能听说过作业批处理之类的事情,现在您提到的是进程队列,机械地思考问题,但实际上,CPU总是/不断地(嗯,不是真的,但让我们避免不必要的细节,并假设是这样)执行代码。一个不发送或推入任何东西到CPU的物理它抓住它,做一些事情,然后在另一端吐出结果

CPU的输入是要执行的指令以及这些指令可以操作的数据。两者都在记忆中。这些指令可以改变内存的内容,从而改变数据或其他指令。CPU将愉快地一个接一个地执行它在内存中找到的任何指令,除非出现需要特别注意的错误情况或事件,并且正常的执行流程需要中断

因此,如果这些指令是操作系统的,那就没问题了。如果它们是你的文本编辑器的,那就这样吧。CPU不介意也不关心它是什么。这段代码并不比那更糟糕

CPU对操作系统、进程和程序一无所知。这些是CPU的主要功能所不需要的抽象细节,CPU的主要功能是尽可能长时间地逐指令执行代码


这些抽象像程序、过程或操作系统,它们体现在软件的设计和实现中,更具体地说,体现在操作系统本身。是操作系统跟踪进程(进程的位置、大小、数量、用户等),并将CPU上的代码执行从一个转移到另一个,再转移到另一个,然后再转移回来。CPU不处理作为其工作的进程队列。CPU通过操作队列的操作系统指令间接处理队列,CPU不知道它在做什么,也不知道为什么要做。它之所以这么做是因为它执行代码,它的工作就是执行代码。

常见问题解答:如果你能想象一本书能回答你的问题,那你问得太多了。拿出你的操作系统教科书,它是在工厂里创建的,是硬件的一部分
@H2CO3因此,我更新了Wikipedia的消歧页面。@Barmar所以欢闹很有用。@H2CO3 PCB是在工厂创建的,是软件的一部分。想一想(哎呀)感谢您的解释。因此,当有一个进程时,操作系统处理如何将其放入cpu的内存中,对吗?但当有一个进程带有i/o时,它如何放入i/o通道?该进程要么直接访问硬件(如果允许/可能),要么调用专用的操作系统过程来代表该进程执行i/o。因此,例如,一个操作系统过程为进程执行I/O,内核的任务是将其定向到它假定要处理的硬件吗?这取决于操作系统。微内核操作系统通常都有专用的I/O进程,因此您的常规进程可以直接与它们通信,而不涉及内核(除了调度、IPC和中断处理)。然而,在Windows和Linux中,大部分I/O要么由内核本身执行,要么由在内核模式下运行的设备驱动程序执行。