我读到了有关流程安排的信息。 我知道当创建一个procces时,会为它创建一个procces控制块,但我不明白它是如何工作的。 当创建PCB与其他进程一起使用时,它们是直接进入cpu还是操作系统正在创建进程队列并将队列发送到cpu?或者队列已经在cpu中了?。
答案 0 :(得分:1)
看起来您错误地设想了CPU的操作。
虽然你可能听说过CPU中的管道,可能还有像工作批次这样的东西,现在你提到过程队列机械地考虑事物,实际上是CPU永远/不断(好吧,不是真的,但让我们避免不必要的细节,并假设它是如此)执行代码。一个人不会在物理上向CPU发送或推送任何东西,以便抓住它,用它做一些事情,然后在另一端喷出结果。
CPU的输入是要执行的指令以及这些指令可以操作的数据。两者都在记忆中。指令可以改变存储器的内容,从而改变数据或其他指令。 CPU将很乐意逐个执行它在内存中找到的任何指令,除非有一些需要特别注意的错误条件或事件,并且正常的执行流程需要被中断。
所以,如果那些指令是操作系统,没问题。如果它们是你的文本编辑器,那就这样吧。 CPU不介意也不关心它是什么。这段代码并不比这更糟糕。
CPU不知道(在所有意义上)关于操作系统,进程和程序的任何信息。这些是CPU的主要功能所必需的抽象细节,即尽可能长地执行代码,指令。
这些抽象类似于程序或过程或OS,它们在软件的设计和实现中找到了实施例,更具体地说是OS本身。它是跟踪进程(在哪里,有多大,有多少,用户等)的操作系统,并将CPU上的代码执行从一个转移到另一个到另一个转移到另一个然后再转回。从它作为工作的角度来看,CPU不会处理进程队列。 CPU通过操作它的操作系统指令间接处理队列,并且CPU不知道它正在执行它以及它为什么这样做。它只是这样做,因为它执行代码,它是执行代码的工作。