|
Использование буферного кеша имеет, с одной стороны, несколько преимуществ и, с другой стороны, некоторые неудобства.
- Использование буферов позволяет внести единообразие в процедуру обращения к диску, поскольку ядру нет необходимости знать причину ввода-вывода. Вместо этого, ядро копирует данные в буфер и из буфера, невзирая на то, являются ли данные частью файла, индекса или суперблока. Буферизация ввода-вывода с диска повышает модульность разработки программ, поскольку те составные части ядра, которые занимаются вводом-выводом на диск, имеют один интерфейс на все случаи. Короче говоря, упрощается проектирование системы.
- Система не накладывает никаких ограничений на выравнивание информации пользовательскими процессами, выполняющими ввод-вывод, поскольку ядро производит внутреннее выравнивание информации. В различных аппаратных реализациях часто требуется выравнивать информацию для ввода-вывода с диска определенным образом, т.е. производить к примеру двухбайтное или четырехбайтное выравнивание данных в памяти. Без механизма буферизации программистам пришлось бы заботиться самим о правильном выравнивании данных. По этой причине на машинах с ограниченными возможностями в выравнивании адресов возникает большое количество ошибок программирования и, кроме того, становится проблемой перенос программ в операционную среду UNIX. Копируя информацию из пользовательских буферов в системные буферы (и обратно), ядро системы устраняет необходимость в специальном выравнивании пользовательских буферов, делая пользовательские программы более простыми и мобильными.
- Благодаря использованию буферного кеша, сокращается объем дискового трафика и время реакции и повышается общая производительность системы. Процессы, считывающие данные из файловой системы, могут обнаружить информационные блоки в кеше и им не придется прибегать ко вводу-выводу с диска. Ядро часто применяет "отложенную запись", чтобы избежать лишних обращений к диску, оставляя блок в буферном кеше и надеясь на попадание блока в кеш. Очевидно, что шансы на такое попадание выше в системах с большим количеством буферов. Тем не менее, число буферов, которые можно заложить в системе, ограничивается объемом памяти, доступной выполняющимся процессам: если под буферы задействовать слишком много памяти, то система будет работать медленнее в связи с тем, что ей придется заниматься подкачкой и замещением выполняющихся процессов.
- Алгоритмы буферизации помогают поддерживать целостность файловой системы, так как они сохраняют общий, первоначальный и единственный образ дисковых блоков, содержащихся в кеше. Если два процесса одновременно попытаются обратиться к одному и тому же дисковому блоку, алгоритмы буферизации (например, getblk) параллельный доступ преобразуют в последовательный, предотвращая разрушение данных.
- Сокращение дискового трафика является важным преимуществом с точки зрения обеспечения хорошей производительности или быстрой реакции системы, однако стратегия кеширования также имеет некоторые неудобства. Так как ядро в случае отложенной записи не переписывает данные на диск немедленно, такая система уязвима для сбоев, которые оставляют дисковые данные в некорректном виде. Хотя в последних версиях системы и сокращен ущерб, наносимый катастрофическими сбоями, основная проблема остается: пользователь, запрашивающий выполнение операции записи, никогда не знает, в какой момент данные завершат свой путь на диск (****).
- Использование буферного кеша требует дополнительного копирования информации при ее считывании и записи пользовательскими процессами. Процесс, записывающий данные, передает их ядру и ядро копирует данные на диск; процесс, считывающий данные, получает их от ядра, которое читает данные с диска. При передаче большого количества данных дополнительное копирование отрицательным образом отражается на производительности системы, однако при передаче небольших объемов данных производительность повышается, поскольку ядро буферизует данные (используя алгоритм getblk и отложенную запись) до тех пор, пока это представляется эффективным с точки зрения экономии времени работы с диском.
(****) Стандартный набор операций ввода-вывода в программах на языке Си включает операцию fflush. Эта функция занимается подкачиванием данных из буферов в пользовательском адресном пространстве в рабочую область ядра. Тем не менее пользователю не известно, когда ядро запишет данные на диск.
Предыдущая глава || Оглавление || Следующая глава
|
 |
 |
|
 |
 |
 |
|
Новости мира IT:
- 02.03 - NVIDIA, Ericsson, Nokia и партнёры займутся развитием 6G с использованием ИИ и открытых платформ
- 02.03 - Распространение Windows 11 ускорилось — доля ОС превысила 72 %
- 02.03 - Энтузиаст воссоздал Linux образца 1994 года с графическим интерфейсом в браузере
- 02.03 - Google придумала, как защитить HTTPS от квантового взлома, не увеличивая размеры TLS-сертификатов
- 28.02 - Учреждён фонд Open Source Endowment, формирующий целевой капитал для финансирования открытого ПО
- 28.02 - Xiaomi вернула себе лидерство на глобальном рынке носимой электроники
- 28.02 - Nvidia GeForce3 отмечают четвертьвековой юбилей — это были первые видеокарты с программируемыми шейдерами
- 28.02 - Ericsson впервые испытала 6G в реальном времени — и успешно поуправляла роботами
- 28.02 - Роскомнадзор не стал отрицать сообщения о принятом в Кремле решении заблокировать Telegram с апреля
- 25.02 - Российский суд оштрафовал Google на 22,8 млн рублей за распространение VPN
- 25.02 - Российский рынок ПО превысил 800 млрд рублей — облака, ИИ и ИБ стали ключевыми драйверами роста
- 25.02 - Mozilla выпустила Firefox 148 с тем самым выключателем всех ИИ-функций
- 25.02 - Windows 11 стала быстрее работать и выходить из сна с новым обновлением — есть и другие улучшения
- 19.02 - VK внедрила в поиск визуально‑языковую ИИ-модель для точных ответов и ускорения разработки технологий
- 19.02 - Российские операторы по-разному «морозят» SIM-карты после роуминга — многие остаются без интернета на сутки
- 19.02 - Google Gemini научился генерировать 30-секундные музыкальные треки по описанию и картинкам
- 19.02 - Firefox вот-вот лишится поддержки Windows 7 и 8 — Mozilla советует срочно обновить ОС
- 17.02 - «Яндекс» захватил 69 % поискового рынка России — выручка пробила 1,4 трлн рублей, а прибыль взлетела на 80 % за квартал
- 17.02 - Московский суд взыскал с Google Ireland 160 млрд рублей по делу о банкротстве ООО «Гугл»
- 17.02 - Apple проведёт презентацию 4 марта — ожидаются iPhone 17e, новые Mac и iPad
Архив новостей
|
 |
 |
 |
|
|
 |
 |
 |
|
|
|
 |
 |
|