linux下的sched头文件.docx
《linux下的sched头文件.docx》由会员分享,可在线阅读,更多相关《linux下的sched头文件.docx(28页珍藏版)》请在咨信网上搜索。
1、* include/linux/schedh*/ttifndef _LINUX_SCHED_Httdefine _LINUX_SCHED_H #include /* for HZ */ extern unsigned long event;#include ttinclude ttinclude 4include 4include #include ttinclude #include#include ttinclude ttinclude 4include 4include #include ttinclude #include 4include ttinclude #include #in
2、clude ttinclude ttinclude ttinclude ttinclude #include 4include include ttinclude struct execdomain;* cloning flags:ttdefine CSIGNAL4define CLONE_VM#define CLONE_FSOxOOOOOOff0x000001000x00000200ttdefine CLONE FILES 0x00000400/* signal mask to be sent at exit */* set if VM shared between processes */
3、* set if fs info shared between processes */* set if open files shared between processes */*进程家谱pointers to (original) parent process, youngest child, younger sibling,* older sibling, respectively. (p-father can be replaced withp-p_pptr-pid). 父选程 -i I-p.ppirP、pirP-PPtrP-PPtrP_Op【rJ :rosptr 队年轻的干进种,户
4、一样工7 老的子薪P,pirP-ys/rtaskt *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr;struct listhead threadgroup;以进程号位索引查找hash表,定位进程控制块task_sturct/* PID hash table linkage. */taskt *pidhashnext;task_t *pidhash_pprev;wait_queue_head_t wait_chldexit;/* for wait4() */struct completion *vfork done;/* for vfork() */
5、unsigned long 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;struct tms times;#if HZ=100unsigned long start_time;#elseu64 start_time; Sendif该进程在各处理机上运行的累计时间(用户空间上utime,和系统空间上stime) long per_cpu
6、_utimeNR_CPUS, per_cpu_stimeNR_CPUS;对页面异常次数的统计maj_flt和换入/换出次数的统计nswap/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */unsigned longmaj_fIt, nswap, cmin_flt, cmaj_flt, cnswap;int swappable:1;/* process credentials凭证,与文件操作权限有关*/uid_t uid,euid, suid, fsuid
7、;gid_t gid,egid, sgid, fsgid;int ngroups;gid t groupsNGROUPS;kernel_cap_t capeffective, capinheritable, cap_permitted;int keep_capabilities: 1 ;授权进程的各种操作的权限,比特权用户方式更细了 struct user_struct *user;在 fork。中使用limits所用资源在量上的限制*/struct rlimit rlimRLIM_NLIMITS;unsigned short usedmath;char comm16;file system
8、info 文件资源 */ int link_count, total_link_count;struct ttystruct *tty; /* NULL if no tty */unsigned int locks; /* How many file locks are being held */ ipc stuff */struct sem_undo *semundo;struct sem queue *semsleeping;CPU-specific state of this task */struct thread_struct thread;线程结构定义filesystem info
9、rmation文件管理表格指针*/ struct fsstruct *fs;open file information */ struct files_struct *files;namespace */struct namespace *namespace;signal handlers */spinlock_t sigmask_lock; /* Protects signal and blocked */ struct signal_struct *sig; /指向 signal_struct 数据结构sigset_t blocked;struct sigpending pending;u
10、nsigned long sas_ss_sp;size_t sas_ss_size;int (*notifier) (void *priv);void *notifierdata; sigsett *notifier_mask;/* TUX state */ void *tuxinfo; void (*tux_exit)(void);unsigned long cpus_allowed_mask;Thread group tracking 在 exit ()和 wait4()中用到*/u32 parent_exec_id;u32 self_exec_id;/* Protection of (d
11、e-)allocation: mm, files, fs, tty */ spinlockt alloc lock;/* journalling filesystem info */ void *journal_info;; 进程控制块结束task_struct* Per process flags#define PF_ALIGNWARN0x00000001 /* Print alignment warning msgs */* Not implemented yet, only for 486*/being created */getting shut down */* forked but
12、 didn,t exec */being created */getting shut down */* forked but didn,t exec */4define PF_STARTING 0x00000002 /*4define PF_EXITING 0x00000004 /* ttdefine PF FORKNOEXEC 0x00000040define PF_SUPERPRIV0x00000100 /* used super-user privileges */#define PF DUMPCORE 0x00000200 #define PF_SIGNALED 0x00000400
13、4define PF_MEMALLOC 0x00000800define PF_MEMDIE 0x00001000/* dumped core */* killed by a signal */* Allocating memory */* Killed for out-of-memory */define PF_FREE_PAGESdefine PF_NOIO#define PF_FROZEN ttdefine PF_FREEZE0x000040000x000080000x00010000define PF_IOTHREAD 0x00020000/* avoid generating fur
14、ther 1/0 */* frozen for system suspend */* this task should be frozen for suspend */* this thread is needed for doing I/O to swap */#define PF_KERNTHREADbe sent signals to */0x00040000 /* this thread is a kernel thread that cannot4define PFJJSEDFPU0x00100000 /* task used FPU this quantum (SMP) */* P
15、trace flags4define PT_PTRACED 0x00000001#define PT_TRACESYS 0x00000002define PT DTRACE 0x00000004/* delayed trace (used on m68k,i386) */ttdefine PT_TRACESYSGOOD 0x00000008ttdefine PT_PTRACE_CAP0x00000010 /* ptracer can follow suid-exec */* Limit the stack by to some sane default: root can always0x00
16、002000 /* per process page freeing */* increase this limit if needed. . 8MB seems reasonable.*/#define _STK_LIM (8*1024*1024)ttifdef CONFIG SMPextern void set_cpus_allowed(task_t *p, unsigned long new_mask);#else#define set_cpus_allowed(p, new_mask) do while (0)#endif extern void setusernice(taskt *
17、p, long nice);extern int task_prio(task_t *p);extern int task_nice(task_t *p);extern int idle_cpu(int cpu);asmlinkage long sys_sched_yield(void);#define yieldO sys_sched_yield() /* The default (Linux) execution domain.*/extern struct exec_domain default_exec_domain;* INITTASK is used to set up the f
18、irst task table, touch at * your own risk!. Base=0, limit=Oxlfffff (=2MB)ttdefine INIT_TASK(tsk) (state:0,flags:0,sigpending:sigpending:0,addr_limit:addr_limit:KERNEL DS,exec domain:exec domain:&default exec domain,lockdepth:-1,prio:MAX_PRI0-20,static_prio:MAX_PRI0-20,policy:SCHED_OTHER,cpusallowed:
19、-1,cpus_allowedmask: -1,mm:NULL,active_mm:&init_mm,run_list:LIST_HEAD_INIT(tsk. run_list),time_slice:HZ,nexttask: &tsk, prev_task: &tsk, p_opptr: &tsk, p_pptr: &tsk,thread group: wait_chldexit:real_timer: function: ),capeffective:LIST HEAD INIT(tsk. thread group),_WAIT_QUEUE_HEAD_INITIALIZER(tsk. wa
20、it_chldexit), it real fnCAP_INIT_EFF_SET,cap_inheritable:CAP_INIT_INH_SET,cap_permitted: CAPFULLSET, keep_capabilities: 0,rlim:user:comm: thread: fs: files:INIT RLIMITS, INIT_USER, swapper”, INIT_THREAD, &init_fs, &init_files,sigmask_lock: SPIN_L0CK_UNL0CKED,sig: pending: blocked: alloc lock:sig: pe
21、nding: blocked: alloc lock:&init_signals,journal_info: NULL, &tsk. pending, head, 0, 0,SPIN_LOCKUNLOCKED,NULL,ttifndef INIT TASK SIZE# define INIT_TASK_SIZE 2048*sizeof(long) ttendifunion taskunion task t task;unsigned long stackINIT_TASK_SIZE/sizeof(long); );extern union task_union init_task_union;
22、extern struct mm_struct initmm;extern task_t *init_tasksNR_CPUS;/* PID hashing, (shouldnt this be dynamic?) */ttdefine PIDHASH_SZ (4096 2)extern taskt *pidhashPIDHASH_SZ;ttdefine pid_hashfn(x) (x) 8)八(x) & (PIDHASH_SZ - 1)static inline void hash pid(taskt *p) (task_t *htable = &pidhashpid_hashfn(p-p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux sched 文件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。