++++++APUE读书笔记-07进程环境(6)++++++
11、资源的限制
================================================
每个进程都有各种资源的限制,使用下列函数可以获得当前进程的各种资源的限制:
#include
int getrlimit(int resource, struct rlimit *rlptr);
int setrlimit(int resource, const struct rlimit *rlptr);
这两个函数属于XSI扩展以及Single Unix标准。进程资源的限制是在系统初始化的时候被进程0来建立起来的。每种实现的资源种类可能会有所不同。
资源的结构有两个成员:软资源限制;硬资源限制。修改资源的限制遵循如下的规则:
a)进程可以在小于等于硬资源限制的前提下修改软资源限制。
b)进程可以减少它的硬资源限制,硬资源限制不能小于软资源限制,普通用户减少硬资源限制之后不能够反向修改了(也就是增加了).
c)只有超级用户可以提高硬资源的限制。
资源限制影响当前的进程以及它的子进程。这也就是说设置资源的应该编译到shell中去以便影响我们的所有进程。例如命令:ulimit或者c shell的limit命令。更多的信息,参见下面网址中给出的参考资料。
参考:
12、总结
================================================
在知道UNIX系统中进程控制相关的特性之前,需要对UNIX系统环境中,一个C程序的运行环境有所了解。本章我们看到如何启动和终止进程,以及如何传递参数列表和环境变量。尽管两者在内核中并不知道这些,但是调用者调用exec,执行新的程序,却是通过内核传递这些的。
我们也看到了一个C程序的典型内存布局,以及一个进程如何能够动态分配和释放内存。因为涉及到了内存的分配问题,所以很有必要来详细对这些操作环境变量的函数。我们也看到了setjmp和longjmp函数,它们提供了一个在进程中实现非本地化程序分支(跳转)的方法。我们最后通过介绍各种系统实现提供的资源限制,来结束本章。
参考:
阅读(630) | 评论(0) | 转发(0) |