进程控制块中的信息:
1.进程标识符:进程标识符是惟一地标识一个进程。一个进程通常有两种标识符
(1).内部表示符:在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。
(2).外部标识符:它由创建者提供,通常是由字母,数字组成,往往是由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识和子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。
2.处理机状态:
1>通用寄存器;2>指令寄存器;3>程序状态字PSW;4>用户栈指针
3.进程调度信息:
1>进程状态;2>进程优先级;3>进程调度所需的其它信息;4>事件
4.进程控制信息:
1>程序和数据的地址;2>进程同步和通信机制;3>资源清单;4>链接指针
进程控制块的组织方式:
1.链接方式:
2.索引方式:
task_struct:
task_struct是Linux内核的 种数据结构,它会被装载到RAM 并且包含着进程的信息。每个进程都把它的信息放在
task_struct 这个数据结构 ,task_struct 包含了这些内容:
标 符 : 描述本进程的唯 标 符, 来区别其他进程。
状态 :任务状态,退出代码,退出信号等。优先级 :相对于其他进程的优先级。
程序计数器:程序中即将被执 的下 条指令的地址。
内存指针 :包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
上下 数据 :进程执 时处理器的寄存器中的数据。I/O状态信息:包括显 的I/O请求,分配给进程的I/O设备和被进程使 的 件列表。记账信息:可能包括处理器时间总和,使 的时钟数总和,时间限制,记账号等。
保存进程信息的数据结构叫做 task_struct,并且可以在 include/linux/sched.h 找到它。所有运 在系统 的进程都以 task_struct 链表的形式存在内核 。
进程的信息可以通过 /proc 系统 件夹查看。要获取PID为400的进程信息,你需要查看 / proc/400 这个件夹。 多数进程信息同样可以使 top和ps这些户集具来获取。