求助-- 数学高手算法大虾们 最小内存问题
问题: 假设某个程序使用了malloc()/free()来分配内存, 使用rst match或者best match策略, 且内存
分配之后不能移动. 设该程序可能需要的总内存最大值为Mmax. 不考虑内存管理程序, 对齐等因素造成
的额外内存需求.
(1) 证明或否定: 给该程序配置一块2Mmax大的连续内存不会因内存碎片而导致内存分配失败,
即2Mmax内存是保证程序安全运行所需内存的一个上界.
(2) 若已知程序所有可能的内存片段的大小M1, M2, , Mn, 且已知每一个Mi(i = 1; 2; ; n)出现的概
率Pi, 求程序所需内存的最小上界.
(3) 条件同问题(2), 并设平均每秒有C次内存分配, 若要保证时间T内出现内存分配失败的几率小于P0,
至少需要多少内存?
若m = min(M1;M2; ;Mn), M = max(M1;M2; ;Mn), 容易得出, Mmax
m
M是一个上界, 但这个
数字往往大得不切实际.
此问题若有可行的解, 则对实际工作有指导意义. 但是大部分开发人员均认为这个问题是个纯粹的
数学问题, 很难, 通过解决这个问题来指导实际工作的意义不大; 而在实际工作中往往用\拍脑袋决策"来
解决问题. 如果需要的内存比实际配置的大, 再多测试也解决不了问题.
我不知道解答此问题因该朝什么方向来考虑, 以及解是否存在.
[解决办法]
http://topic.csdn.net/u/20100415/11/a33ca5d9-49f5-44eb-9090-a4110cbf8419.html?24499
请问LZ是同一位吗?