linux - 什么是linux进程表?它由什么组成?

标签 linux process

这个术语不断出现在我的操作系统笔记中,我不完全确定它是什么/它存储在哪里以及如何或为什么。

最佳答案

Linux 中的进程表(例如几乎所有其他操作系统中的进程表)只是计算机 RAM 中的一种数据结构。它包含有关操作系统当前处理的进程的信息。

此信息包括有关每个进程的一般信息

  • 进程号
  • 流程负责人
  • 进程优先级
  • 每个进程的环境变量
  • 父进程
  • 指向进程的可执行机器码的指针。

进程表中一个非常重要的信息是每个进程当前所处的状态。此信息对于操作系统至关重要,因为它支持所谓的多处理,即仅在一个处理单元 (CPU) 上虚拟运行多个进程的可能性。

操作系统使用进程当前是否处于 ACTIVE、SLEEPING、RUNNING 等信息来处理进程的执行。

此外,还有一些统计信息,例如进程上次运行的时间,以便操作系统的调度程序能够决定接下来应该运行哪个进程。

总而言之,进程表是操作系统处理所有已启动进程的核心组织元素。

可以在这个线程中找到一个简短的介绍:

https://web.archive.org/web/20190817081256/http://www.linuxforums.org/forum/kernel/42062-use-process-table.html

维基百科也有关于进程的很好的信息:

http://en.wikipedia.org/wiki/Process_management_(computing)#Process_description_and_control

http://en.wikipedia.org/wiki/Process_table

关于linux - 什么是linux进程表?它由什么组成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4880555/

相关文章:

linux - 如何在不杀死被跟踪进程的情况下杀死 strace?

java - 通过java运行的执行程序似乎超时?

linux - C 中进程的不同实例分配不同的任务

c++ - 程序以信号 25 终止,超出文件大小限制;为什么?

c++ - 如何在C++中杀死系统进程

c - 通过管道发送和接收信息?

c++ - 将自己放入 chrooted 沙箱后如何(合法地)访问文件?

windows - 在 Windows 上运行任意子进程并仍然干净地终止?

Java 进程在 GC 之前停止

node.js - 如何将 node.js 应用程序作为后台服务运行?