2

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

如何将一个进程分配128mb64mb另一个进程。

我想使用freelist& 实现最佳拟合算法需要进行压缩。
任何人都可以在这方面帮助我,或者推荐任何书来学习吗?

4

1 回答 1

2

You can set the maximum amount of memory a process can use (Resident Set) with

ulimit -m 131072

for example to limit all forked processes from your shell to 128mb of maximum resident set.

Or in 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);
于 2013-10-03T13:28:07.230 回答