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

时间:2011-02-02 22:17:23

标签: linux process

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

4 个答案:

答案 0 :(得分:43)

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

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

  • 进程ID
  • 流程所有者
  • 流程优先级
  • 每个流程的环境变量
  • 父流程
  • 指向进程的可执行机器代码的指针。

流程表中非常重要的信息是当前每个流程的状态。该信息对于OS来说是必不可少的,因为它实现了所谓的多处理,即仅在一个处理单元(CPU)上虚拟运行多个进程的可能性。

OS使用进程当前是ACTIVE,SLEEPING,RUNNING等的信息来处理进程的执行。

此外,还有一些统计信息,例如上次运行的过程是什么时候才能让操作系统的调度程序决定下一个应该运行哪个进程。

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

可在此主题中找到简短介绍:

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

答案 1 :(得分:1)

流程表是内核数据结构,它描述了流程的状态(以及流程U区域)。它包含必须始终可供内核使用的字段。

它包含以下字段:

  • 州字段(标识过程的状态)
  • 允许内核在内存中定位进程及其u区域的字段
  • 用于确定各种进程权限的UID
  • PID指定关系b / w进程(例如fork)
  • 事件描述符(当进程处于睡眠状态时)
  • 调度参数以确定进程移至“内核运行”和“用户运行”状态的顺序
  • 信号发送到流程但尚未处理的信号字段
  • 在内核模式和用户模式下提供进程执行时间的计时器
  • 提供进程大小的字段(以便内核知道为进程分配多少空间)。

简而言之,进程表向内核提供有关进程的信息。

答案 2 :(得分:0)

进程表是Linux内核中的一种数据结构,它存储有关当前正在运行的进程的信息。进程表包含进程ID,进程的内存使用情况,进程中使用的文件描述符等等。

内核使用进程描述符跟踪创建和运行的进程。每个进程描述符包含

1. Identifier - process ID, parent and child process ID, user ID
2. State      - process state, priority
3. Resource   - CUP and Memory

流程表主要信息是,

  • 进程ID
  • 处理用户ID
  • 流程优先级
  • 流程状态
  • 处理资源使用情况

ps aux是一个Linux命令,用于列出所有进程状态和资源使用情况(内存,cpu)。您可以看到包含所有者,PID,CPU,MEM,STAT等的进程列表。

答案 3 :(得分:0)

操作系统中的每个进程都由一个进程控制块-也称为任务控制块-表示,其中包含以下内容

Process management
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters Process ID
Parent process
Process group
Signals
Time when process started CPU time used
Children’s CPU time
Time of next alarm

Memory management
Pointer to text segment info 
Pointer to data segment info 
Pointer to stack segment info


File management
Root directory Working directory File descriptors User ID
Group ID

enter image description here

有关更多信息,http://www.technologyuk.net/computing/operating-systems/