Linux进程描述符task_struct结构体详解

1. 什么是进程

进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。
⼴义上,所有的进程信息被放在⼀个叫做进程控制块(PCB)的数据结构中,可以理解为进程属性的集合。这个数据结构叫做task_struct。

2. task_struct结构体

task_struct是Linux内核的⼀种数据结构,它会被装载到RAM⾥并且包含着进程的信息。每个进程都把它的信息放在 task_struct 这个数据结构⾥,task_struct 包含了这些内容:
task_struct是Linux内核的⼀种数据结构,它会被装载到RAM⾥并且包含着进程的信息。
每个进程都把它的信息放在 task_struct 这个数据结构⾥,task_struct 包含了这些内容:

 标示符:描述本进程的唯一标符,用来区别其他进程。
 状态:任务状态,退出代码,退出信号等。
 优先级:相对于其他进程的优先级。
 程序计数器:程序中即将被执行的下⼀条指令的地址。
 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
 上下文数据:进程执行时处理器的寄存器中的数据。
 IO状态信息:包括显示的I/O请求,分配给进程的IO设备和被进程使用的文件列表。
 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。

保存进程信息的数据结构叫做task_struct,并且可以在include/linux/sched.h ⾥找到它。所有运⾏在系统⾥的进程都以task_struct 链表的形式存在内核⾥。

   long state        //任务的运行状态(-1 不可运行,0 可运行(就绪),>0 已停止)。

  long counter   //任务运行时间计数(递减)(滴答数),运行时间片。

  long priority  //运行优先数。任务开始运行时counter = priority,越大运行越长。

  long signal    //信号。是位图,每个比特位代表一种信号,信号值=位偏移值+1。

  struct sigaction sigaction[32]   //信号执行属性结构,对应信号将要执行的操作和标志信息。

  long blocked     //进程信号屏蔽码(对应信号位图)。

  int exit_code    //任务执行停止的退出码,其父进程会取。

  unsigned long start_code    //代码段地址。

  unsigned long end_code      //代码长度(字节数)。

  unsigned long end_data      //代码长度 + 数据长度(字节数)。

  unsigned long brk           //总长度(字节数)。

  unsigned long start_stack   //堆栈段地址。

  long pid       //进程标识号(进程号)。

  long father    //父进程号。

  long pgrp      //父进程组号。

  long session   //会话号。

  long leader   //会话首领。

  unsigned short uid    //用户标识号(用户id)。

  unsigned short euid   //有效用户id。

  unsigned short suid   //保存的用户id。

  unsigned short gid    //组标识号(组id)。

  unsigned short egid   //有效组id。

  unsigned short sgid   //保存的组id。

  long alarm           //报警定时值&
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值