我想用C实现内存管理功能。情况就像是......物理内存的总大小为256mb
。
如何将128mb
分配给一个进程64mb
到其他进程。
我想使用freelist
& amp;来实现最佳拟合算法需要做压实。
任何人都可以在这方面帮助我,或者建议任何一本书来研究它吗?
答案 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);