Внутренняя структура буферного кэша
Внутренняя структура буферного кэша
Буферный кэш состоит из буферов данных, размер которых достаточен для размещения одного дискового блока. С каждым блоком данных связан заголовок буфера, представленный структурой buf, с помощью которого ядро производит управление кэшем, включая идентификацию и поиск буферов, а также синхронизацию доступа. Заголовок также используется при обмене данными с драйвером устройства для выполнения фактической операции ввода/вывода. Когда возникает необходимость чтения или записи буфера на диск, ядро заносит параметры операции ввода/вывода в заголовок и передает его функции драйвера устройства. После завершения операции ввода/вывода заголовок содержит информацию о ее результатах.
Основные поля структуры buf приведены в табл. 4.9.
Таблица 4.9. Поля структуры buf
Поле Описание b_flags Флаги. Определяют состояние буфера в каждый момент времени (например, B_BUSY — буфер занят или B_DONE — закончена операция ввода/вывода с буфером) и направление передачи данных (B_READ, B_WRITE, B_PHYS) av_forw, av_back Указатели двухсвязного рабочего списка буферов, ожидающих обработки драйвером b_bcount Число байтов, которое требуется передать b_un.b_addr Виртуальный адрес буфера b_blkno Номер блока начала данных на устройстве b_dev Старший и младший номера устройстваПоле b_flags хранит различные флаги связанного с заголовком буфера. Часть флагов используется буферным кэшем, а часть — драйвером устройства. Например, с помощью флага B_BUSY осуществляется синхронизация доступа к буферу. Флаг B_DELWRI отмечает буфер как модифицированный, или "грязный", требующий сохранения на диске перед повторным использованием. Флаги B_READ, B_WRITE, B_ASYNC, B_DONE и B_ERROR используются драйвером диска. Более подробно операция ввода/вывода для драйвера будет рассмотрена в следующей главе.
Буферный кэш использует механизм отложенной записи (write-behind), при котором модификация буфера не вызывает немедленной записи на диск. Такие буферы отмечаются как "грязные", а синхронизация их содержимого с дисковыми данными происходит через определенные промежутки времени. Примерно одна треть операций дискового ввода/вывода приходится на запись, причем один и тот же буфер может на протяжении ограниченного промежутка времени модифицироваться несколько раз. Поэтому буферный кэш позволяет значительно уменьшить интенсивность записи на диск[49] и реорганизовать последовательность записи отдельных буферов для повышения производительности ввода/вывода (например, уменьшая время поиска, группируя запись соседних дисковых блоков). Однако этот механизм имеет свои недостатки, поскольку может привести к нарушению целостности файловой системы в случае неожиданного останова или сбоя операционной системы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Форсированный сброс кэша
Форсированный сброс кэша Если мы устанавливаем время кэширования на несколько лет (фактически на бесконечность), то нам нужно каким-то образом сообщить клиентскому браузеру, что исходный ресурс-то у нас поменялся: иначе браузер его никогда повторно не запросит. Что для
14.5.2. Внутренняя универсализация
14.5.2. Внутренняя универсализация Если необходимо универсализировать несколько файловых имен, запуск нескольких подоболочек с помощью popen() будет неэффективным. Функция glob() позволяет универсализировать имена файлов без запуска каких-либо подпроцессов, однако за счет
Внутренняя оптимизация
Внутренняя оптимизация Работа с внутренними факторами – хронологически приоритетная и чрезвычайно важная часть поискового продвижения. Перед тем как начать покупать ссылки, необходимо провести скрупулезный аудит сайта на предмет его корректности с точки зрения SEO.
Внутренняя оптимизация
Внутренняя оптимизация Поисковой системе «приятнее» такая страница интернет-магазина, которая структурирована и сверстана по блочному типу. Предпочтительно делить контентную область страницы на несколько составляющих: заголовок, краткое описание, полное описание,
Внутренняя архитектура
Внутренняя архитектура Как уже говорилось, драйвер, реализующий поставщика услуг уровня канала данных, состоит из двух частей: аппаратно-зависимой и аппаратно-независимой. Соответственно драйвер хранит отдельные структуры данных, необходимые для работы этих частей.
3.2 СТРУКТУРА ОБЛАСТИ БУФЕРОВ (БУФЕРНОГО ПУЛА)
3.2 СТРУКТУРА ОБЛАСТИ БУФЕРОВ (БУФЕРНОГО ПУЛА) Ядро помещает информацию в область буферов, используя алгоритм поиска буферов, к которым наиболее долго не было обращений: после выделения буфера дисковому блоку нельзя использовать этот буфер для другого блока до тех пор,
3.5 ПРЕИМУЩЕСТВА И НЕУДОБСТВА БУФЕРНОГО КЕША
3.5 ПРЕИМУЩЕСТВА И НЕУДОБСТВА БУФЕРНОГО КЕША Использование буферного кеша имеет, с одной стороны, несколько преимуществ и, с другой стороны, некоторые неудобства.• Использование буферов позволяет внести единообразие в процедуру обращения к диску, поскольку ядру нет
9.3.3. Настройка кэша
9.3.3. Настройка кэша От того, как вы настроите кэш, будет зависеть удобство работы через прокси- сервер, поэтому я постараюсь показать все директивы, которые относятся к этому разделу, и подробно рассмотреть каждую из них:? cache_dir тип директория размер L1 L2 опции — определяет
9.3.5. Разделение кэша
9.3.5. Разделение кэша Чтобы ваш сервер мог обмениваться запросами с другими squid-серверами, разделяя таким образом содержимое кэша, вы должны настроить соответствующий протокол.Дня этого есть следующие директивы:? icp_port n — номер порта, который будет использоваться для
Глава 4 Внутренняя оптимизация
Глава 4 Внутренняя оптимизация При работе с крупными проектами внутренние факторы приобретают приоритетное значение. Даже небольшие изменения в шаблонах сайта могут существенно увеличить трафик из поисковых
3.1. Внутренняя структура описания уровней зрелости
3.1. Внутренняя структура описания уровней зрелости Каждое описание уровней зрелости разбивается на составные части. Разбиение каждого уровня зрелости, кроме первого, варьируется от кратких обзоров уровня до его рабочего определения в ключевых практиках, как показано на
Inner Shadow (Внутренняя тень)
Inner Shadow (Внутренняя тень) Следующий эффект – Inner Shadow (Внутренняя тень) – создает иллюзию того, что объект вогнутый и его края отбрасывают тень внутрь. Перед применением данного эффекта мы также настраиваем все необходимые параметры. Изменения значений параметров можно
Вычисление размера кэша
Вычисление размера кэша Когда Firebird читает страницу базы данных с диска, он сохраняет эту страницу в кэше. Обычно размер кэша по умолчанию является достаточным. Если ваше приложение использует соединения из пяти и более таблиц, Firebird Суперсервер может автоматически
ПАРАЛЛЕЛИ: Внутренняя Пустота
ПАРАЛЛЕЛИ: Внутренняя Пустота Автор: Георгий ПачиковВ наше время любой мало-мальски образованный человек постоянно пользуется Интернетом. С его помощью мы решаем множество вопросов. Даже правописание можно проверить — залезаешь в Интернет и смотришь, как то или иное