Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44399
  • 博文数量: 14
  • 博客积分: 205
  • 博客等级: 入伍新兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-18 10:35
文章分类
文章存档

2012年(14)

我的朋友

分类: LINUX

2012-12-06 16:13:19

函数: fork_init()4种PID的位码表初始化

原形:

void __init fork_init(unsigned long mempages)

参数:

Mempages:一般为系统中实际存在的全部物理内存总页数

返回值:

函数注释:

void __init fork_init(unsigned long mempages)

{

#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR     //ia64中定义

#ifndef ARCH_MIN_TASKALIGN                         //arm中不定义

#define ARCH_MIN_TASKALIGN L1_CACHE_BYTES

        //将task_struct结构存放的最小对齐方式设置为按处理器硬件cache line大小对齐

#endif

/* create a slab on which task_structs can be allocated */

task_struct_cachep =

kmem_cache_create("task_struct", sizeof(struct task_struct),

ARCH_MIN_TASKALIGN, SLAB_PANIC, NULL, NULL);

       //为task_struct创建高速缓存内存

#endif

max_threads = mempages / (8 * THREAD_SIZE / PAGE_SIZE);

                  //linux允许最多用系统物理内存的1/8来存放task_t结构

if(max_threads < 20)      //如果max_threads 小于20

max_threads = 20;    //将max_threads设置为20

                            //系统至少支持20个进程

init_task.signal->rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;

//将0号进程的task_t结构中的进程数资源限制的当前值设置为系统允许进程的一半

init_task.signal->rlim[RLIMIT_NPROC].rlim_max = max_threads/2;

//将0号进程的task_t结构中的进程数资源限制的最大值设置为系统允许进程的一半

}

阅读(2084) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~