`
highsky
  • 浏览: 269450 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux核心数据结构--进程或任务

阅读更多
struct task_struct{

/* these are hardcoded - don't touch */

volatile long        state;          /* -1 unrunnable, 0 runnable, >0 stopped */

  long                 counter;

  long                 priority;

  unsigned             long signal;

  unsigned             long blocked;   /* bitmap of masked signals */

unsigned             long flags;     /* per process flags, defined below */

int errno;

  long                 debugreg[8]; 
  /* Hardware debugging registers */

  struct exec_domain   *exec_domain;

/* various fields */

struct linux_binfmt  *binfmt;

struct task_struct   *next_task, *prev_task;

struct task_struct   *next_run,  *prev_run;

unsigned long        saved_kernel_stack;

unsigned long        kernel_stack_page;

  int                  exit_code, exit_signal;

  /* ??? 这里的注释不知道是什么?*/

  unsigned long        personality;

  int                  dumpable:1;

  int                  did_exec:1;

int                  pid;

  int                  pgrp;

int                  tty_old_pgrp;

int                  session;

  /* boolean value for session group leader */

  int                  leader;

  int                  groups[NGROUPS];

  /*

   * pointers to (original) parent process, youngest child, younger sibling,

   * older sibling, respectively.  (p->father can be replaced with

   * p->p_pptr->pid)

   */

  struct task_struct   *p_opptr, *p_pptr, *p_cptr,

                       *p_ysptr, *p_osptr;


  struct wait_queue    *wait_chldexit; 

  unsigned short       uid,euid,suid,fsuid;

  unsigned short       gid,egid,sgid,fsgid;

  unsigned long        timeout, policy, rt_priority;

  unsigned long        it_real_value, it_prof_value, it_virt_value;

  unsigned long        it_real_incr, it_prof_incr, it_virt_incr;

  struct timer_list    real_timer;

  long                 utime, stime, cutime, cstime, start_time;


/* mm fault and swap info: this can arguably be seen as either

   mm-specific or thread-specific */

  unsigned long        min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap;

  int swappable:1;

  unsigned long        swap_address;

  unsigned long        old_maj_flt;    /* old value of maj_flt */

unsigned long        dec_flt;        /* page fault count of the last time */

  unsigned long        swap_cnt;       /* number of pages to swap on next pass */

/* limits */

  struct rlimit        rlim[RLIM_NLIMITS];

  unsigned short       used_math;

  char                 comm[16];


/* file system info */

  int                  link_count;

  struct tty_struct    *tty;
          /* NULL if no tty */

/* ipc stuff */

struct sem_undo      *semundo;

  struct sem_queue     *semsleeping;


/* ldt for this task - used by Wine.  If NULL, default_ldt is used */

struct desc_struct *ldt;

/* tss for this task */

struct thread_struct tss;

/* filesystem information */

struct fs_struct     *fs;

/* open file information */

  struct files_struct  *files;

/* memory management info */

  struct mm_struct     *mm;

/* signal handlers */

struct signal_struct *sig;

#ifdef __SMP__

  int                  processor;

  int                  last_processor;

  int                  lock_depth;
    /* Lock depth.

                                          We can context switch in and out

                                          of holding a syscall kernel lock... */ 

#endif  

};



分享到:
评论

相关推荐

    Linux内核工作原理 word版本 强烈推荐

    这样我发现了许多相关的核心数据结构以及它们之间的关系。 每一章都是非常独立的,就象Linux核心子系统一样。当然有时它们还是有联系的,比如说,如果你没有理解虚拟内存工作原理就无法描叙进程。 硬件基本概念一...

    深入分析Linux内核源码

    12.4.3 sk_buff数据结构的核心内容 12.4.4 套接字缓冲区提供的函数 12.4.5 套接字缓冲区的上层支持例程 12.5 网络设备接口 12.5.1 基本结构 12.5.2 命名规则 12.5.3 设备注册 12.5.4 网络设备数据结构 ...

    Linux系统故障诊断与排除--James Kirkland

    第8章 Linux进程:结构、挂起与核心转储 171 8.1 进程结构和生命周期 171 8.1.1 进程/任务概述 171 8.1.2 进程关系 172 8.1.3 Linux进程创建 172 8.1.4 Linux进程创建的示例 173 8.1.5 进程创建小结 ...

    嵌入式Linux C编程入门(第2版) PPT

    第8章 嵌入式linux c语言基础——arm linux内核常见数据结构 225 8.1 链表 226 8.1.1 链表概述 226 8.1.2 单向链表 226 8.1.3 双向链表 233 8.1.4 循环链表 234 8.1.5 arm linux中链表使用实例 ...

    Linux环境数据库管理员指南

    1.2 Linux核心 2 1.2.1 Linux的开发特点 2 1.2.2 Linux分发包 3 1.2.3 为什么要为商业Linux 版本付费 3 1.3 Linux与其他操作系统之间的差异 3 1.3.1 功能丰富 3 1.3.2 多任务 4 1.4 为什么选择 Linux 6 1.4.1 何时...

    入门学习Linux常用必会60个命令实例详解doc/txt

    因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    ARM_Linux启动分析.pdf

    核心数据结构初始化--内核引导第一部分 四.外设初始化--内核引导第二部分 五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash 附:XDM方式登录 本文以Redhat 6.0 Linux 2.2.19 for Alpha/AXP为...

    LINUX 20招

    在 "endian" 结构的系统上,导出Ingres数据库的内容时,代码会发生奇怪的转换,它把:“The cat in the hat”转变成了“hT eac tnit ehh ta”,把数据恢复过来的办法就是采用dd命令: dd if=randys_bad_data of=...

    redhat linux教材20课程学习文档

    2.3 核心与模块(模块分类、进程,核心结构图) 2.4 文件系统的基本概念 2.4.1 概述 2.4.2 Linux目录结构 2.4.3 mount 2.4.4 主要文件系统类型 2.4.5 日志文件系统 2.4.6 i结点 2.5 线程与进程的基本概念 2.5.1 基本...

    Linux操作系统基础教程

    (Torvalds@kruuna.helsinki.fi)写了 Linux核心程序的 0.02 版开始的,但其后的发展却几乎都 是由互联网上的 Linux社团(Linux Community)互通交流而完成的。Linux 不属于任何一 家公司或个人,任何人都可以免费取得...

    若干源程序资料12.rar

    2012-06-11 21:09 1,553,768 数据结构算法Visual.C.6.0程序集_源码.rar 2012-06-11 21:42 87,040 时域卷积定理的证明.ppt 2012-06-11 21:10 4,371 更改网关IP.rar 2012-06-11 20:57 1,419 栈的实现.txt 2012-06-11 ...

    UNIX操作系统教程 张红光

    Window编程环境介绍295 14.2数据检索加工工具awk296 14.2.1awk基本描述296 14.2.2awk中的记录和字段297 14.2.3awk中使用的模式298 14.2.4awk中的...Linux系统中的C环境308 附录CUNIX/Linux常用命令314 参考文献...343

    《计算机操作系统》期末复习指导

    信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程...

    嵌入式课件

    12.5.2 重要的数据结构和函数 12.5.3 字符设备驱动程序的组成 12.5.4 动态和静态加载方式 12.5.5 字符设备驱动开发示例 12.6 应用程序开发 12.6.1 应用程序的加载方式 12.6.2 应用程序的GDB/GDBSERVER联机调试 ...

    IIS6.0 IIS,互联网信息服务

    四、在Vista系统中安装IIS7.0相对于早先的版本,IIS 7.0 带来了许多引人注目的新特色新功能,比如基于 Microsoft .NET Framework 的全局配置文件,可简单地通过文本编辑器或 Microsoft Visual Studio 编辑;...

    Oracle Database 11g初学者指南--详细书签版

    她是性能调优、安全、数据建模和超大型数据库环境数据库体系结构方面的专家.她是IOUG Best Practices Tip Booklet的特约作者.Michelle积极参加IOUG活动,是特殊兴趣组的负责人.在技术会议和用户组会议上她乐于展现和...

    Android项目开发报告.docx

    Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。 开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用。任何一个应用程序都...

    fourinone-3.04.25

    “包工头”负责承包一个复杂项目的一部分,可以理解为一个分配任务和调度程序,它由开发者自己实现,开发者可以自由控制调度过程,比如按照“农民工”的数量将源数据切分成多少份,然后远程分配给“农民工”节点进行...

Global site tag (gtag.js) - Google Analytics