Operating system 每个系统调用是否创建一个进程?
每个系统调用是否创建一个进程? 程序和操作系统的所有功能(如中断)是否以进程的形式执行? 我觉得这样大量的进程控制块,大量的进程调度浪费了大量的资源。 或者,系统调用的内核指令被视为当前调用的一部分Operating system 每个系统调用是否创建一个进程?,operating-system,Operating System,每个系统调用是否创建一个进程? 程序和操作系统的所有功能(如中断)是否以进程的形式执行? 我觉得这样大量的进程控制块,大量的进程调度浪费了大量的资源。 或者,系统调用的内核指令被视为当前调用的一部分 过程。简单的答案是-不完全正确。但我们必须就所谓的“过程”达成一致。一个过程更像是一个抽象的概念,它封装了多个指令,每个指令顺序执行 让我们从第一个问题开始 每个系统调用是否创建一个进程 不是。每个系统调用都是当前运行进程的产物,它告诉操作系统“嘿,操作系统,我需要你为我打开这个文件,或者在这里读取
过程。简单的答案是-不完全正确。但我们必须就所谓的“过程”达成一致。一个过程更像是一个抽象的概念,它封装了多个指令,每个指令顺序执行 让我们从第一个问题开始 每个系统调用是否创建一个进程 不是。每个系统调用都是当前运行进程的产物,它告诉操作系统“嘿,操作系统,我需要你为我打开这个文件,或者在这里读取这些数据”。在这种情况下,进程是一包顺序执行的指令,有些是系统调用,有些不是 那么我们有了 程序和操作系统的所有功能(如中断)是否以进程的形式执行 这可以追溯到第一个问题。我们不认为系统调用(一种告诉操作系统做某事并在非常严格的条件下工作的操作)是一个单独的过程。我们不会看到系统调用执行有自己的进程id(
pid
)
那么我们有了
我觉得这样大量的进程控制块,大量的进程调度浪费了大量的资源
我想说的是,不要低估你的操作系统和硬件的能力。一个拥有现代操作系统的现代处理器,速度非常非常快,能够在几秒钟内计算出数十亿条指令。我们真的无法想象这有多快。我不担心在这样一个微观层面上的优化
好吧,但让我们深入研究一下。究竟什么是过程 非正式地说,进程是一个正在执行的程序。进程当前活动的状态由一个称为程序计数器的值和处理器寄存器的内容表示。进程的内存布局通常分为多个部分 这些部分包括: