|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Slawa Olhovchenkov 2:5030/500 15 Sep 2005 20:54:20 To : Vadim Goncharov Subject : malloc() overcommit bug -------------------------------------------------------------------------------- 15 Sep 05, Vadim Goncharov writes to Slawa Olhovchenkov: SO>>>>>>>> Потому что память может исчезнуть в процессе. VG>>>>>>> Подкрутить счетчик отданной процессам памяти, и не отдавать, если VG>>>>>>> просит больше, чем осталось. SO>>>>>> Ты кажется не слушал объяснений. VG>>>>> Мы кажется говорим (и объяснения были) о несколько разных вещах. SO>>>> Hет. Память-то общая. VG>>> Ты не выпендривайся, ты пальцем покажи (с) SO>> Пишем програмку алоцирующую мегабайт памяти. SO>> Пускаем ее на машине с полугигом оперативки и без свопа. SO>> Програма в свой мегабайт пишет единицы. SO>> Все зашибись, да? VG> Монстры, о которых шла речь, не форкаются, ибо десятки гигов. Какая связь? SO>> Теперь програма делает 1000 fork(). VG> После 500 раза fork() должен вернуть ENOMEM, это здесь уже писали. А я писал, что фигню в этом месте написали. SO>> Это законно, поскольку дальше она может сделать exec() на что-то SO>> совсем совсем маленькое или вообще быстро завершиться. Более того, мы SO>> не можем ничего запустить паралельно не сделав перед этим fork(). Hо SO>> вместо этого каждая копия начинает писать случайные данные в свой SO>> мегабайт. В некоторый момент механизм copy-on-write обломается и копии SO>> начнут слетать с SEGFAULT. VG> Емнип, есть разные версии форка, тот же vfork() & rfork(). Они в этом месте не различаются. VG> Однако, кто мешает при форке (да и malloc) _резервировать_ страницы VG> для последующего copy-on-write? А потому что тогда тебе никакого свопа не хватит для современного софта, поскольку он весь расчитывает на то, что по copy-on-write потребляться будет только нужный объем памяти. ... Птица говорун отличается умом и сообразительностью. --- GoldED+/BSD 1.1.5 * Origin: (2:5030/500) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/22214329a87a.html, оценка из 5, голосов 10
|