1.2, pavlinux (??), 14:17, 26/07/2007 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
При беглом просмотре видно, что эфективность не О(1).
Будет время, посмотрю...
| |
|
2.3, fresco (??), 14:24, 26/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
Кстати, да. Время работы алгоритма не детерминировано вроде... Если блоков нужного размера в массиве не окажется?
Тоже беглым взглядом, если ошибся -- сильно не бейте.
| |
|
3.4, sauron (??), 14:34, 26/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
Детерминировано. Память то это конечная. Не найдет блоки успокоится.
| |
|
4.5, fresco (??), 15:00, 26/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
Нифига. Нет куска нужного размера -- он будет искать больший, если и его нет -- еще больший. не вернет же он ENOMEM, если нет блока памяти в 1kb, но полно в 2kb.
| |
|
5.7, Alchemist (?), 00:00, 27/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
операция поиска в индексах выполняется за детерминированное время. там нет никаких циклов :) это легко видно из сорцов по ссылке на оригинал. другое дело - расширение объёма памяти, выделенной процессу, там могут быть косяки.
| |
|
|
|
2.6, Alchemist (?), 23:53, 26/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
Там зависит от реализации [s]brk(). Если оно даёт О(1), то работать будет всё за О(1), в противном случае иногда будет что-то иное. С другой стороны, изначально алгоритм ориентирован на системы реального времени, а на тех задачах часто можно сразу выделить большую кучу и не париться этим вопросом.
| |
|
3.8, Аноним (-), 08:42, 27/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
Скажите, а разве бывают не O(1) реализации sbrk? Я всегда думал, что он просто двигает границу... Или у меня устаревшие данные?
| |
|
4.9, Alchemist (?), 16:21, 27/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
Вообще говоря, для того, чтобы двигать границу, надо ещё найти свободные страницы памяти, которые будут соответствовать месту между старой и новой границей. Потому что если просто подвинуть размер сегмента данных и не сделать соответствующих изменений в таблице страниц, при обращении к оному месту мы поимеем исключение. Так что sbrk() - тот же аллокатор, но на уровне ядра. И реализован он может быть по-разному. Вот в детали реализации в разных ОС я не вникал, поэтому говорить что-то о его эффективности не могу.
| |
|
|
|
|
2.11, Антонина (?), 13:33, 22/12/2008 [^] [^^] [^^^] [ответить]
| +/– |
Добрый день,
кто-нибудь откликнулся ?
очень нужен этот материал
завтра доклад :-((
| |
|
3.12, а344 (?), 15:02, 22/12/2008 [^] [^^] [^^^] [ответить]
| +/– |
>Добрый день,
>кто-нибудь откликнулся ?
>очень нужен этот материал
>завтра доклад :-((
Придётся на англицком читать :)
Я в общих чертах осилил.
| |
|
|
|