Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Не факт. Хотя бы тот факт, что аппаратно можно работать... 16.04.04 13:16 Число просмотров: 2123
Автор: amirul <Serge> Статус: The Elderman Отредактировано 16.04.04 13:18 Количество правок: 1
|
> Ну на интел-базед платформах под управлением Микрософт > Виндоус может и так, на хороших системах данные > перекладываются с диска и пользовательскую память > аппаратно. Не факт. Хотя бы тот факт, что аппаратно можно работать только с секторами, а файловые операции производить побайтно говорит о буферизации.
> А при обращении к последним страницам содержимое первых > точно останется в памяти? А при полном считывании останется ли все в памяти? Working Set для юзерских процессов точно так же ограничен. Только в данном случае путь данных будет выглядеть так: системный буфер - юзерская память - мэппинг в своп - а далее все точно так же как и с меппингом прямо из файла (подкачка при необходимости). Винда просто не даст процессу иметь больше физических страниц, чем позволено квотами. А будут это просто страницы виртуальной памяти или страницы меппинга - ее уже мало волнует. Меппинг в этой ситуации выигрывает еще и тем, что пока страница чистая никакой записи не требуется (а для сброса страницы в своп - надо)
> А при считывании первого куска и последующих (несколько > милисекунд) другие задачи не поставят ли в очередь свои > запросы на чтение/запись из дальних уголков винчестера? А вот этим уже IO-менеджер занимается. Сериализация запросов к винчестеру не юзерская проблема. Кроме того, слыхал я о винтах которые сериализуют запросы аппаратно. Ну и раз уж на то пошло, то полное чтение ничуть не более застраховано от такого положения, чем меппинг. При этом не имея никаких преимуществ.
> Много ли это или мало? Как уже сказано, можно сделать ручной flush.
|
|
|