linux 2.6源代码情景分析笔记之进程6
每个进程都有一组相关的资源限制(resource limit),限制了指定进程能使用的系统资源数量。
对当前进程的资源限制存放在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字段是资源限制所允许的最大值。利用getrlimit()和setrlimit()系统调用,用户总能把一些资源的rlim_cur限制增加到rlim_max。只有超级用户(具有CAP_SYS_RESOURCE权能的用户)才能改变rlim_max字段,或把rlim_cur字段设置成大于相应rlim_max字段的一个值。
大多数资源限制包含数值RLIM_INFINITY(0xffffffff),它意味着没有对相应的资源施加用户限制。
#ifndef __ARCH_RLIMIT_ORDER
#define RLIMIT_CPU 0 /* CPU time in ms */进程使用cpu最长时间(秒)。进程超过了这个限制,内核就给它发送一个SIGXCPU信号,然后如果进程还不终止,再发一个SIGKLL信号。
#define RLIMIT_FSIZE 1 /* Maximum filesize */文件大小的最大数值(字节)。如果进程试图把一个文件的大小扩充到大于这个值,内核就给这个进程发SIGXFSZ信号。
#define RLIMIT_DATA 2 /* max data size */堆大小的最大数值(字节)。在扩充进程的堆之前,内核检查这个数值。
#define RLIMIT_STACK 3 /* max stack size */栈大小的最大数(字节)。内核在扩充进程的用户态堆栈之前检查这个数值。
#define RLIMIT_CORE 4 /* m
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
①malloc函数
原型:extern void *malloc(unsigned int num_bytes);
头文件:#include <alloc.h>
功能:分配长度为num_bytes字节的内存块。
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。
举例:
#inclu ......
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文 ......
1、先备份好:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
2、打开xorg.conf:
sudo gedit /etc/X11/xorg.conf
3、请找到以下一段在这改:
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-70
VertRefr ......
等待队列在内核中很多用途,尤其用在中断处理、进程同步及定时。等待队列实现了在事件上的条件等待:希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制权。因此,等待队列表示一组睡眠的进程,当某一条件变为真时,由内核唤醒它们。
等待队列由双向链表实现,其元素包括指向进程描述符的指针。每个队列都有一个 ......