- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux_schedh源码
linux_sched.hlinux_sched.h源码#ifndef _SCHED_H#define _SCHED_H#define NR_TASKS 64 // 系统中同时最多任务(进程)数。#define HZ 100 // 定义系统时钟滴答频率(1 百赫兹,每个滴答10ms)#define FIRST_TASK task[0] // 任务0 比较特殊,所以特意给它单独定义一个符号。#define LAST_TASK task[NR_TASKS-1] // 任务数组中的最后一项任务。#include linux/head.h // head 头文件,定义了段描述符的简单结构,和几个选择符常量。#include linux/fs.h // 文件系统头文件。定义文件表结构(file,buffer_head,m_inode 等)。#include linux/mm.h // 内存管理头文件。含有页面大小定义和一些页面释放函数原型。#include signal.h // 信号头文件。定义信号符号常量,信号结构以及信号操作函数原型。#if (NR_OPEN 32)#error Currently the close-on-exec-flags are in one word, max 32 files/proc#endif// 这里定义了进程运行可能处的状态。#define TASK_RUNNING 0 // 进程正在运行或已准备就绪。#define TASK_INTERRUPTIBLE 1 // 进程处于可中断等待状态。#define TASK_UNINTERRUPTIBLE 2 // 进程处于不可中断等待状态,主要用于I/O 操作等待。#define TASK_ZOMBIE 3 // 进程处于僵死状态,已经停止运行,但父进程还没发信号。#define TASK_STOPPED 4 // 进程已停止。#ifndef NULL#define NULL ((void *) 0) // 定义NULL 为空指针。#endif// 复制进程的页目录页表。Linus 认为这是内核中最复杂的函数之一。( mm/memory.c, 105 )extern int copy_page_tables (unsigned long from, unsigned long to, long size);// 释放页表所指定的内存块及页表本身。( mm/memory.c, 150 )extern int free_page_tables (unsigned long from, unsigned long size);// 调度程序的初始化函数。( kernel/sched.c, 385 )extern void sched_init (void);// 进程调度函数。( kernel/sched.c, 104 )extern void schedule (void);// 异常(陷阱)中断处理初始化函数,设置中断调用门并允许中断请求信号。( kernel/traps.c, 181 )extern void trap_init (void);// 显示内核出错信息,然后进入死循环。( kernel/panic.c, 16 )。extern void panic (const char *str);// 往tty 上写指定长度的字符串。( kernel/chr_drv/tty_io.c, 290 )。extern int tty_write (unsigned minor, char *buf, int count);typedef int (*fn_ptr) (); // 定义函数指针类型。// 下面是数学协处理器使用的结构,主要用于保存进程切换时i387 的执行状态信息。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];};// 任务状态段数据结构(参见列表后的信息)。struct tss_struct{ long back_link; long esp0; long ss0; long e
文档评论(0)