task_struct源码

struct i387_struct
{
long cwd;            // 控制字(Control word)。
long swd;            // 状态字(Status word)。
long twd;            // 标记字(Tag word)。
long fip;            // 协处理器代码指针。
long fcs;            // 协处理器代码段寄存器。
long foo;
long fos;
long st_space[20];        /* 8*10 bytes for each FP-reg = 80 bytes */
};
// 任务状态段数据结构(参见列表后的信息)。
struct tss_struct
{
long back_link;        /* 16 high bits zero */
long esp0;
long ss0;            /* 16 high bits zero */
long esp1;
long ss1;            /* 16 high bits zero */
long esp2;
long ss2;            /* 16 high bits zero */
long cr3;
long eip;
long eflags;
long eax, ecx, edx, ebx;
long esp;
long ebp;
long esi;
long edi;
long es;            /* 16 high bits zero */
long cs;            /* 16 high bits zero */
long ss;            /* 16 high bits zero */
long ds;            /* 16 high bits zero */
long fs;            /* 16 high bits zero */
long gs;            /* 16 high bits zero */
long ldt;            /* 16 high bits zero */
long trace_bitmap;        /* bits: trace 0, bitmap 16-31 */
struct i387_struct i387;
};

struct 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;         //报警定时值(滴答数)。
long utime          //用户态运行时间(滴答数)。
        long stime          //系统态运行时间(滴答数)。
        long cutime        //子进程用户态运行时间。
        long cstime        //子进程系统态运行时间。
        long start_time   //进程开始运行时刻。
unsigned short used_math;  //标志:是否使用了协处理器。
int tty;             //进程使用tty 的子设备号。-1 表示没有使用。
unsigned short umask;   //文件创建属性屏蔽位。
struct m_inode *pwd;     //当前工作目录i 节点结构。
struct m_inode *root;     //根目录i 节点结构。
struct m_inode *executable;       //执行文件i 节点结构
unsigned long close_on_exec;   //执行时关闭文件句柄位图标志
struct file *filp[NR_OPEN];         //进程使用的文件表结构
struct desc_struct ldt[3];             //本任务的局部表描述符。0-空,1-代码段cs,2-数据和堆栈段ds&ss
struct tss_struct tss;                   //本进程的任务状态段信息结构。
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值