我想用 C 来实现内存管理功能。情况就像.. 物理内存的总大小是256mb
.
如何将一个进程分配128mb
给64mb
另一个进程。
我想使用freelist
& 实现最佳拟合算法需要进行压缩。
任何人都可以在这方面帮助我,或者推荐任何书来学习吗?
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);