ГЛАВА 3. БУФЕР СВЕРХОПЕРАТИВНОЙ ПАМЯТИ (КЕШ)

ГЛАВА 3. БУФЕР СВЕРХОПЕРАТИВНОЙ ПАМЯТИ (КЕШ)

Как уже говорилось в предыдущей главе, ядро операционной системы поддерживает файлы на внешних запоминающих устройствах большой емкости, таких как диски, и позволяет процессам сохранять новую информацию или вызывать ранее сохраненную информацию. Если процессу необходимо обратиться к информации файла, ядро выбирает информацию в оперативную память, где процесс сможет просматривать эту информацию, изменять ее и обращаться с просьбой о ее повторном сохранении в файловой системе. Вспомним для примера программу copy, приведенную на Рисунке 1.3: ядро читает данные из первого файла в память и затем записывает эти данные во второй файл. Подобно тому, как ядро должно заносить данные из файла в память, оно так же должно считывать в память и вспомогательные данные для работы с ними. Например, суперблок файловой системы содержит помимо всего прочего информацию о свободном пространстве, доступном файловой системе. Ядро считывает суперблок в память для того, чтобы иметь доступ к его информации, и возвращает его опять файловой системе, когда желает сохранить его содержимое. Похожая вещь происходит с индексом, который описывает размещение файла. Ядро системы считывает индекс в память, когда желает получить доступ к информации файла, и возвращает индекс вновь файловой системе, когда желает скорректировать размещение файла. Ядро обрабатывает такую вспомогательную информацию, не будучи прежде знакома с ней и не требуя для ее обработки запуска каких-либо процессов.

Ядро могло бы производить чтение и запись непосредственно с диска и на диск при всех обращениях к файловой системе, однако время реакции системы и производительность при этом были бы низкими из-за низкой скорости передачи данных с диска. По этой причине ядро старается свести к минимуму частоту обращений к диску, заведя специальную область внутренних информационных буферов, именуемую буферным кешем[7] и хранящую содержимое блоков диска, к которым перед этим производились обращения.

На Рисунке 2.1 показано, что модуль буферного кеша занимает в архитектуре ядра место между подсистемой управления файлами и драйверами устройств (ввода-вывода блоками). Перед чтением информации с диска ядро пытается считать что-нибудь из буфера кеша. Если в этом буфере отсутствует информация, ядро читает данные с диска и заносит их в буфер, используя алгоритм, который имеет целью поместить в буфере как можно больше необходимых данных. Аналогично, информация, записываемая на диск, заносится в буфер для того, чтобы находиться там, если ядро позднее попытается считать ее. Ядро также старается свести к минимуму частоту выполнения операций записи на диск, выясняя, должна ли информация действительно запоминаться на диске или это промежуточные данные, которые будут вскоре затерты. Алгоритмы более высокого уровня позволяют производить предварительное занесение данных в буфер кеша или задерживать запись данных с тем, чтобы усилить эффект использования буфера. В этой главе рассматриваются алгоритмы, используемые ядром при работе с буферами в сверхоперативной памяти.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Глава 11 Информация о памяти

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Глава 11 Информация о памяти Постановка задачи Разработать программу, которая отображает информацию о физической, страничной и виртуальной


Виртуальный буфер кадров

Из книги 3ds Max 2008 автора Верстак Владимир Антонович

Виртуальный буфер кадров После запуска визуализации на экране появится активное по умолчанию окно Rendered Frame Window (Окно кадров визуализации), отображающее процесс вывода изображения (рис. 6.5). Рис. 6.5. Окно Rendered Frame Window (Окно кадров визуализации)Панель инструментов,


Буфер обмена

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Буфер обмена Просмотр буфера обмена Пример на основе простого модуля-класса, осуществляющего просмотр буфера обмена.unit ClipboardViewer;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(tform) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject);private FNextViewerHandle : THandle; procedure


Копирование в буфер обмена

Из книги Windows Vista автора Вавилов Сергей

Копирование в буфер обмена Две вспомогательных процедуры:procedure CopyButtonClick(Sender: TObject);begin If ActiveControl is TMemo then TMemo(ActiveControl).CopyToClipboard; If ActiveControl is TDBMemo then TDBMemo(ActiveControl).CopyToClipboard; If ActiveControl is TEdit then TEdit(ActiveControl).CopyToClipboard; If ActiveControl is TDBedit then TDBedit(ActiveControl).CopyToClipboard;end;procedure PasteButtonClick(Sender:


Буфер обмена

Из книги Word 2007.Популярный самоучитель автора Краинский И

Буфер обмена Буфер обмена – это специальная область оперативной памяти компьютера, в которой хранятся данные, предназначенные для перемещения или копирования как между окнами разных приложений, так и в одном и том же окне.В любой программе при выполнении команды


3.4. Буфер обмена

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

3.4. Буфер обмена При вырезании или копировании содержимое ячейки помещается в буфер обмена и становится доступным не только для работы в Word. Аналогично вы можете вставить в документ Word текст или иные данные, скопированные из другого приложения, с интернет,страницы и др.


Буфер результатов слишком мал

Из книги MySQL: руководство профессионала автора Паутов Алексей В

Буфер результатов слишком мал Когда мы рассказывали о функции door_call, мы отметили, что если буфер результатов оказывается слишком мал, библиотека дверей осуществляет автоматическое выделение нового буфера. Сейчас мы покажем это на примере. В листинге 15.4 приведен текст


Глава 2. Типы памяти и таблиц

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Глава 2. Типы памяти и таблиц MySQL поддерживает несколько типов памяти, которые действуют как драйверы для различных типов таблицы.С MySQL 5.1 MySQL AB представил новую подключаемую архитектуру памяти, которая позволяет типам памяти загружаться и выгружаться по мере надобности.


Глава 7 Средства отладки использования памяти

Из книги 3ds Max 2008 на 100 % автора Верстак Владимир Антонович

Глава 7 Средства отладки использования памяти Несмотря на то что С бесспорно является стандартным языком программирования в системах Linux, он имеет ряд особенностей, не дающих программистам возможности писать код, не содержащий тонких ошибок, которые впоследствии очень


8.3. Виртуальный буфер кадров

Из книги Русский справочник по Win32 API автора Сорока Тарас

8.3. Виртуальный буфер кадров После запуска визуализации на экране появится активное по умолчанию окно Rendered Frame Window (Окно кадров визуализации), отображающее процесс вывода изображения (рис. 8.5). Рис. 8.5. Окно Rendered Frame Window (Окно кадров визуализации)Панель инструментов,


Буфер обмена

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Буфер обмена ChangeClipboardChain Функция ChangeClipboardChain удаляет указанное окно из цепочки просмотра буфера обмена. BOOL ChangeClipboardChain ( HWND hWndRemove , HWND hWndNewNext ); Параметры hWndRemove - дескриптор окна, которое будет удалено из цепочки. Дескриптор должен был быть передан в функцию SetClipboardViewer. hWndNewNext


Буфер сетевых операций

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Буфер сетевых операций Буфер сетевых операций используется для хранения сетевых команд и потоков. Увеличение размера буфера может повысить скорость передачи данных. Но следует учитывать, что память для буфера сетевых операций резервируется за счет оперативной памяти,


Приемный буфер сокета UDP

Из книги Офисный компьютер для женщин автора Пастернак Евгения

Приемный буфер сокета UDP Число дейтаграмм UDP, установленных в очередь UDP, для данного сокета ограничено размером его приемного буфера. Мы можем изменить его с помощью параметра сокета SO_RCVBUF, как мы показали в разделе 7.5. В FreeBSD по умолчанию размер приемного буфера сокета UDP


Буфер обмена

Из книги Разработка ядра Linux автора Лав Роберт

Буфер обмена Смотрим, что у нас есть в группе Буфер обмена (рис. 1.13). Рис. 1.13. Группа Буфер обмена Кнопка с ножницами  отвечает за вырезание текста (ее дублирует сочетание клавиш Ctrl+X). Выделяем часть текста (например, первый абзац). Нажимаем кнопку с ножницами или Ctrl+X –


Буфер сообщений ядра

Из книги The Intel [Как Роберт Нойс, Гордон Мур и Энди Гроув создали самую влиятельную компанию в мире] автора Мэлоун Майкл

Буфер сообщений ядра Сообщения ядра хранятся в кольцевом буфере (log buffer) размером LOG_BUF_LEN. Этот размер можно изменять во время компиляции с помощью параметра CONFIG_LOG_BUF_SHIFT. Для однопроцессорной машины это значение по умолчанию равно 16 Кбайт. Другими словами в ядре может