Chinaunix首页 | 论坛 | 博客
  • 博客访问: 659059
  • 博文数量: 186
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2117
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(186)

文章存档

2024年(2)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2016-09-07 21:26:09

内核资料收集

    1. 进程资源限制
        每个进程都有一组相关的资源限制,此限制指定了进程能使用的系统资源数量。
        当前进程的资源限制存放在current->signal->rlim字段,即进程的信号描述符的一个字段。此字段是类型为rlimit结构数组,
    每个资源限制对应一个元素:
                struct rlimit {
                    unsigned long rlim_cur;
                    unsigned long rlim_max;
                };
        rlim_cur字段是当前资源限制。如,current->signal->rlim[RLIMIT_CPU],rlim_cur表示正运行进程所占用CPU时间的当前限制。
        rlim_max字段是资源限制所允许的最大值。

            RLIMIT_AS                            地址空间最大数        
            RLIMIT_CORE       内存信息转储文件大小
            RLIMIT_CPU       进程使用CPU的最长时间
            RLIMIT_DATA        堆大小的最大值
            RLIMIT_FSIZE       文件大小的最大值
            RLIMIT_LOCKS      文件锁的最大值
            RLIMIT_MEMLOCK    非交换内存的最大值
            RLIMIT_MSGQUEUE    POSIX消息队列中的最大字节数。
            RLIMIT_NOFILE       打开文件描述符的最大数
            RLIMIT_NPROC       用户能拥有的进程最大数
            RLIMIT_RSS       进程所拥有的页框最大数
            RLIMIT_SIGPENDING   进程挂起信号的最大数
            RLIMIT_STACK      栈大小的最大值
 2. 资源限制相关接口
         getrlimit()/setrlimit()系统调用可以将资源的rlim_cur限制增加到rlim_max。超级用户(准确说是具有CAP_SYS_RESOURCE权能)
        可以改变rlim_max或把rlim_cur设置成大于rlim_max的值。
             多数资源限制包含值RLIMIT_INFINITY(0xffffffff),它意味着没有对应的资源施加用户限制。
                系统管理员可以给一些资源选择施加更强的限制。用户注册进系统,内核就创建一个由超级用户拥有的进程,超级用户能调用
        setrlimit()减少一个资源rlim_cur和rlim_max的值。随后同一进程执行一个login shell,该进程就变为由用户拥有。由用户创建的每一
        个新进程都继承其父进程rlim数组的内容。
阅读(697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~