struct task_struct 结构分析 \linux-1.0\linux\include\linux\sched.h

//任务机构体,大小大概1024字节
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;	//信号标志的bit映射 /* bitmap of masked signals */            unsigned long flags;	//上个进程标志/* per process flags, defined below */    int errno;              //出错代码int debugreg[8];        //硬件编译寄存器。/* Hardware debugging registers */  /* various fields */ //可变区域struct task_struct *next_task, *prev_task;            //本结构的链表双向指针struct sigaction sigaction1[32];                      //信号活动数组unsigned long saved_kernel_stack;   //内核中保存的堆栈点           unsigned long kernel_stack_page;    //内核堆栈页int exit_code, exit_signal;         //结束代码,结束信号int elf_executable:1;      //是否自己可以执行标志int dumpable:1;            //是否可以拆卸标志int swappable:1;           //是否可以交换标志int did_exec:1;            //是否为执行文件标志//启动代码点,结束代码点,结束数据点,断点开始点,断点,堆栈开始点,虚拟映射页开始点!unsigned long start_code,end_code,end_data,start_brk,brk,start_stack,start_mmap;//变量开始点,变量结束点,环境开始点,环境结束点unsigned long arg_start, arg_end, env_start, env_end;//进程id,组,会话,引入点int pid,pgrp,session,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;	/* for wait4() *//** For ease of programming... Normal sleeps don't need to* keep track of a wait-queue: every task has an entry of its own*///real user ID (uid): 实际用户ID,指的是进程执行者是谁//effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限//saved set-user-ID (saved uid): 保存设置用户ID。是进程刚开始执行时,euid的副本。在执行exec调用之后能重新恢复原来的effectiv user ID.unsigned short uid,euid,suid; //用户ID,有效用户ID,保存设置用户IDunsigned short gid,egid,sgid; //组ID,有效组ID,保存设置组ID;unsigned long timeout;        //超时时间unsigned long it_real_value, it_prof_value, it_virt_value; //真实间隔定时器计数器的当前值,PROF间隔定时器计数器的当前值,虚拟间隔定时器计数器的当前值unsigned long it_real_incr, it_prof_incr, it_virt_incr;    //真实间隔定时器计数器的初始值,PROF间隔定时器计数器的初始值,虚拟间隔定时器计数器的初始值long utime,stime,cutime,cstime,start_time;    //用户时间,系统时间,累计用户时间,进程启动时间unsigned long min_flt, maj_flt;               //次要页错误的数量,主要页错误的数量unsigned long cmin_flt, cmaj_flt;             //累计次要页错误,累计主要页错误struct rlimit rlim[RLIM_NLIMITS];             //右限制值数组unsigned short used_math;                     //被使用的数字unsigned short rss;	/* number of resident pages */        //寄存页号char comm[16];                                //comm口struct vm86_struct * vm86_info;               //86虚拟机结构unsigned long screen_bitmap;                  //屏幕位映射
/* file system info */ //文件系统信息int link_count;    //链接数int tty;		   //终端类型 /* -1 if no tty, so it must be signed */unsigned short umask;          //权限掩码struct inode * pwd;            //密码节点指针struct inode * root;           //root节点指针struct inode * executable;     //执行表节点指针struct vm_area_struct * mmap;  //虚拟区域映射指针struct shm_desc *shm;          //struct sem_undo *semun;        //信号量操作标志struct file * filp[NR_OPEN];   //已经打开的文件描述字数组fd_set close_on_exec;          //进程所有文件描述符(文件句柄)的位图标
/* ldt for this task - used by Wine.  If NULL, default_ldt is used */struct desc_struct *ldt;       //局部描述符表
/* tss for this task */struct tss_struct tss;         //任务状态段信息结构
#ifdef NEW_SWAPunsigned 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 */short swap_table;		/* current page table */short swap_page;		/* current page */
#endif NEW_SWAPstruct vm_area_struct *stk_vma; //虚拟区域映射指针
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)

关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1、为mat新增一列自增主键 alter table mat add column id int(11) PRIMARY KEY AUTO_INCREMENT; 2、根据cat字段分组,找到数量大于1的,…

ctype.h,ctype.c 结构分析 \linux-1.0\linux\include\linux\ctype

\linux-1.0\linux\include\linux\ctype.h #ifndef _LINUX_CTYPE_H #define _LINUX_CTYPE_H#define _U 0x01 /* upper */ //大写字母 #define _L 0x02 /* lower */ //小写字母 #define _D 0x04 /* digit */ //数字 #define _C 0x08 /* cntrl */ //控制按键 #define _P 0x10 …

AaronYang WCF教程目录

原创,讲究实践 1. 那天有个小孩教我WCF[一][1/3] 基本搭建 阅读 2013年6月27日1:29:02 2. 那天有个小孩教我WCF[一][2/3] 基本竣工 阅读 2013年6月29日01:30:22 3. 那天有个小孩教我WCF[一][3/3] 第二种代理引用服务,小…

plsql中文乱码 显示问号

输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文 解决方案: 新增环境变量 变量名: NLS_LANG 变量值: SIMPLIFIED CHINESE_CHINA.ZHS16GBK 重启PL/SQL 解决 转载于:https://www.cnblogs.com/tonyzt/p/1…

第二阶段团队绩效评分

第二阶段评分结果: 转载于:https://www.cnblogs.com/xczd/p/11068692.html

从最大似然到EM算法浅解(转载)

http://blog.csdn.net/zouxy09/article/details/8537620#comments转载于:https://www.cnblogs.com/zhihaowang/p/10128356.html

Shanghai Barcamp

早上起来晚了,晚睡晚起的习惯很不好!总是有段时间会养成这样的不好习惯,过一段时间又会早睡早起。总结的说,去了还是有不少收获的,而且刚好就在前一段时间看了不少关于vc和初期投资培养方面的知识,结果这次…

我的虚拟机上网记录

联网时把虚拟机设置成共享IP模式就可以。如果要通过NFS链接开发板就选择桥接网络

随堂小测冲刺.第19天

我们小组的logo出来的,太酷了,不符合我的审美,本人表示无法接受。。。 还要谢谢李泽宇的女盆友,O(∩_∩)O哈哈~ 转载于:https://www.cnblogs.com/daisy99lijing/p/11024465.html

对象存储系统Swift官方文档

对象存储系统Swift技术详解:综述与概念 OpenStack Object Storage (Swift) 是用来创建冗余的、可扩展的对象存储(引擎)的开源软件。通过阅读Swift的技术文档,我们可以理解其中的设计的原理和实现的方法 。 Swift项目已经进展有两年…

MSBuild编译扩展

新增一个C#工程&#xff0c;用记事本打开工程文件&#xff08;.csproj结尾&#xff09;&#xff0c;滚动条拉到最后&#xff0c;大家可以看到一段如下的代码&#xff0c;其中<Target Name"BeforeBuild">和<Target Name"AfterBuild">大家根据名…

电影bt

电影&#xff1a; http://www.bttiantang.com/

修改2440里面的FriendlyARM

修改2440里面的FriendlyARM 在/etc/init.d文件夹里面有一个rcS文件&#xff0c;修改/bin/hostname FriendlyARM中的FriendlyARM即可 比如修改为/bin/hostname Solar posted on 2011-12-07 17:22 Neddy11 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/Neddy…

vs2008 下编译jrtplib-3.9.0成功

网址:http://blog.csdn.net/jid_223/article/details/6858663 jrtplib-3.9.0的编译&#xff0c;终于搞通了。网上搜集了很多资料&#xff0c;自己也调试了很久。 首先&#xff0c;jrtplib-3.9.0是什么不用多说吧&#xff0c;它是一个很牛的老外用C写的一个开源的RTP协议库&…

Eclipse安装VJET报错解决办法

2019独角兽企业重金招聘Python工程师标准>>> Eclipse在安装JS编辑器插件VJET时可能会出现以下错误 Cannot complete the install because one or more required items could not be found. Software being installed: VJET Java Based Dom Kit (Incubation) 0.10.0…

读书笔记_《海蒂》

海蒂是一个可爱、善良的小菇凉&#xff0c;很真诚、纯净的孩子。一般形容人长得好&#xff0c;只会用漂亮这个词&#xff0c;而如果一个人内心更加美好&#xff0c;那么就会用美丽来形容。海蒂这就是这样一个美丽的女孩儿。我想就算是在那种朴素的环境下&#xff0c;也很难出现…

罐头瓶里面的电能表

生活中我们经常见到数字电能表&#xff0c;只不过下面这个是装在罐头里面的电能表&#xff0c; 此想法来自EnterJar&#xff0c;&#xff0c; 怎么样&#xff1f;直接把用电器接上就可以测出电子产品的电能状况&#xff0c;很方便把&#xff01; &#xff0c;原理很简单&#x…

Linux复制文件scp

cp 复制文件(copy) cp sourcefile destfile scp 跨服务器复制(secure copy) (1) 复制文件&#xff1a; scp local_file remote_usernameremote_ip:remote_folder 或 scp local_file remote_usernameremote_ip:remote_file 或 scp local_file remote_ip:remote_folder 或 scp lo…

windows 下编译 jrtplib-3.9.1 和 jthread-1.3.1

网址&#xff1a;http://home.eeworld.com.cn/my/space-uid-474955-blogid-117574.html 第一步&#xff0c;先下载三个必要的文件&#xff1a; 1.下载 jrtplib-3.9.1&#xff1a;http://research.edm.uhasselt.be/~jori/page/index.php?nCS.Jrtplib 2.下载 jthread-1.3.1:http…

ODBC / OLEDB___DAO / RDO / ADO

ODBC / OLEDB___DAO / RDO / ADO ODBC(Open Database Connectivity&#xff0c;开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分&#xff0c;它建立了一组规范&#xff0c;并提供了一组对数据库访问的标准API&…