微管理C进程的内存使用情况

时间:2013-10-03 07:26:35

标签: c unix

我想用C实现内存管理功能。情况就像是......物理内存的总大小为256mb

如何将128mb分配给一个进程64mb到其他进程。

我想使用freelist& amp;来实现最佳拟合算法需要做压实。
任何人都可以在这方面帮助我,或者建议任何一本书来研究它吗?

1 个答案:

答案 0 :(得分:2)

您可以使用

设置进程可以使用的最大内存量(Resident Set)
ulimit -m 131072
例如,将所有分叉进程从shell限制为128mb的最大驻留集。

或在C via

#include <sys/time.h>
#include <sys/resource.h>
int setrlimit(int resource, const struct rlimit *rlim);

e.g。

struct rlimit rlim;
getrlimit(RLIMIT_RSS, &rlim);
rlim.rlim_cur = (128 << 20) / sysconf(_SC_PAGESIZE) // 128 MiB
setrlimit(RLIMIT_RSS, &rlim);