Использование буферного кеша имеет, с одной стороны, несколько преимуществ и, с другой стороны, некоторые неудобства.
- Использование буферов позволяет внести единообразие в процедуру обращения к диску, поскольку ядру нет необходимости знать причину ввода-вывода. Вместо этого, ядро копирует данные в буфер и из буфера, невзирая на то, являются ли данные частью файла, индекса или суперблока. Буферизация ввода-вывода с диска повышает модульность разработки программ, поскольку те составные части ядра, которые занимаются вводом-выводом на диск, имеют один интерфейс на все случаи. Короче говоря, упрощается проектирование системы.
- Система не накладывает никаких ограничений на выравнивание информации пользовательскими процессами, выполняющими ввод-вывод, поскольку ядро производит внутреннее выравнивание информации. В различных аппаратных реализациях часто требуется выравнивать информацию для ввода-вывода с диска определенным образом, т.е. производить к примеру двухбайтное или четырехбайтное выравнивание данных в памяти. Без механизма буферизации программистам пришлось бы заботиться самим о правильном выравнивании данных. По этой причине на машинах с ограниченными возможностями в выравнивании адресов возникает большое количество ошибок программирования и, кроме того, становится проблемой перенос программ в операционную среду UNIX. Копируя информацию из пользовательских буферов в системные буферы (и обратно), ядро системы устраняет необходимость в специальном выравнивании пользовательских буферов, делая пользовательские программы более простыми и мобильными.
- Благодаря использованию буферного кеша, сокращается объем дискового трафика и время реакции и повышается общая производительность системы. Процессы, считывающие данные из файловой системы, могут обнаружить информационные блоки в кеше и им не придется прибегать ко вводу-выводу с диска. Ядро часто применяет "отложенную запись", чтобы избежать лишних обращений к диску, оставляя блок в буферном кеше и надеясь на попадание блока в кеш. Очевидно, что шансы на такое попадание выше в системах с большим количеством буферов. Тем не менее, число буферов, которые можно заложить в системе, ограничивается объемом памяти, доступной выполняющимся процессам: если под буферы задействовать слишком много памяти, то система будет работать медленнее в связи с тем, что ей придется заниматься подкачкой и замещением выполняющихся процессов.
- Алгоритмы буферизации помогают поддерживать целостность файловой системы, так как они сохраняют общий, первоначальный и единственный образ дисковых блоков, содержащихся в кеше. Если два процесса одновременно попытаются обратиться к одному и тому же дисковому блоку, алгоритмы буферизации (например, getblk) параллельный доступ преобразуют в последовательный, предотвращая разрушение данных.
- Сокращение дискового трафика является важным преимуществом с точки зрения обеспечения хорошей производительности или быстрой реакции системы, однако стратегия кеширования также имеет некоторые неудобства. Так как ядро в случае отложенной записи не переписывает данные на диск немедленно, такая система уязвима для сбоев, которые оставляют дисковые данные в некорректном виде. Хотя в последних версиях системы и сокращен ущерб, наносимый катастрофическими сбоями, основная проблема остается: пользователь, запрашивающий выполнение операции записи, никогда не знает, в какой момент данные завершат свой путь на диск (****).
- Использование буферного кеша требует дополнительного копирования информации при ее считывании и записи пользовательскими процессами. Процесс, записывающий данные, передает их ядру и ядро копирует данные на диск; процесс, считывающий данные, получает их от ядра, которое читает данные с диска. При передаче большого количества данных дополнительное копирование отрицательным образом отражается на производительности системы, однако при передаче небольших объемов данных производительность повышается, поскольку ядро буферизует данные (используя алгоритм getblk и отложенную запись) до тех пор, пока это представляется эффективным с точки зрения экономии времени работы с диском.
(****) Стандартный набор операций ввода-вывода в программах на языке Си включает операцию fflush. Эта функция занимается подкачиванием данных из буферов в пользовательском адресном пространстве в рабочую область ядра. Тем не менее пользователю не известно, когда ядро запишет данные на диск.
Предыдущая глава || Оглавление || Следующая глава
|
|
|
|
|
|
|
|
Новости мира IT:
- 04.02 - Отчёт о развитии Fedora Workstation: AI, Wayland, HDR, MIPI-камеры и Flatpak
- 04.02 - Для борьбы с телефонными мошенниками в России будут использовать ИИ и базу биометрических данных
- 04.02 - Opera представила заботливый браузер Air — он поможет бороться со стрессом и поддерживать концентрацию
- 04.02 - Microsoft причислила к вредоносам средства обхода ограничений для установки Windows 11
- 04.02 - Китай начал антимонопольное расследование против Google в ответ на повышение импортных пошлин США
- 04.02 - OpenAI выпустит ИИ-гаджет, который кардинально изменит взаимодействие человека с компьютером
- 04.02 - Энтузиаст создал клиент Discord для древних ПК на Windows 95 и 98
- 04.02 - «Нестабильная, но многообещающая»: американцы начали тестировать спутниковую связь Starlink для обычных смартфонов
- 04.02 - Суд обязал ЕС выплатить компании Intel €515 млн за отменённый штраф 2009 года
- 31.01 - Apple поставила новый рекорд по числу активных устройств, но рост замедлился
- 31.01 - Первое в мире судно с захватом CO2 из собственных выхлопов скоро отправится в море
- 31.01 - Apple отчиталась о «лучшем за всю историю квартале» вопреки падению продаж iPhone
- 31.01 - Intel завершила год с убытками в $18,8 млрд — продажи Core и Xeon упали, но руководство верит, что скоро всё наладится
- 31.01 - Российские медиа объявили войну пиратам: число заблокированных ссылок в поисковиках удвоилось за год
- 31.01 - Почти половина бизнеса IBM теперь приходится на ПО — компания делает ставку на ИИ и open source
- 27.01 - Microsoft открыл код СУБД DocumentDB, основанной на PostgreSQL
- 27.01 - На соревновании Pwn2Own Automotive 2025 представлено 49 уязвимостей автомобильных систем
- 27.01 - Россия опустилась 8-е место в мире по количеству DDoS-атак в 2024 году
- 27.01 - Биткоин провалился ниже $98 тыс. после обвала акций американских ИИ-компаний
- 27.01 - В Великобритании появится крупнейший в Европе дата-центр, который построят для неназванного гиперскейлера
Архив новостей
|
|
|
|
|
|
|
|
|
|
|
|
|