русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Буфер кэша


Дата добавления: 2014-11-28; просмотров: 749; Нарушение авторских прав


 

Буфер кэша в UNIX является, по сути, кэшем диска. Дисковые операции ввода-вывода работают через этот буфер. Передача данных между буфером и пространст­вом пользовательского процесса всегда происходит с использованием DMA. Посколь­ку и буфер, и область ввода-вывода процесса размещены в основной памяти, DMA используется для осуществления копирования "память-память". В этом случае процессор не используется, но расходуются циклы шины.

Для управления буфером кэша поддерживаются три списка.

• Список свободных слотов. Список всех слотов кэша (в UNIX слот рассмат­ривается как буфер; каждый слот хранит один сектор диска), доступных для распределения.

• Список устройств. Список всех буферов, связанных в данный момент с ка­ждым диском.

• Очередь драйвера ввода-вывода. Список буферов, участвующих в операциях ввода-вывода конкретного устройства (или находящихся в состоянии
ожидания операций).

Каждый буфер должен находиться либо в списке свободных слотов, либо в списке очереди драйвера ввода-вывода. Буфер, однажды назначенный устройст­ву, остается назначенным ему, даже если он попадает в свободный список, — до тех пор, пока он не будет реально востребован и назначен другому устройству. Реально эти списки представляют собой списки указателей на буфера.

При обращении к номеру физического блока определенного устройства опера­ционная система прежде всего выполняет проверку наличия этого блока в буфере кэша. Для минимизации времени поиска список устройства организован в виде хэш-таблицы с использованием методики, аналогичной методу переполнения с цепочка­ми, рассматривавшемуся в приложении к главе 8 (рис. 8.24,6). Общая организация буфера кэша показана на рис. 11.15. Хэш-таблица фиксированной длины содержит указатели на буфер кэша. Каждая ссылка на (устройство # блок #) отображается в определенную запись хэш-таблицы. Указатель в этой записи указывает на первый буфер в цепочке. Указатель, связанный с каждым буфером, указывает на следую­щий буфер в цепочке. Следовательно, для всех обращений вида (устройство # блок #), соответствующих одной записи хэш-таблицы, искомый блок окажется в це­почке этой записи поля хэш-таблицы, если, конечно, данный блок имеется в кэше. Таким образом, при использовании хэш-таблицы длиной N длительность поиска в кэше снижается в N раз.



 

Рис. ll.l5. Организация буфера кэша в UNIX

 

Для замещения блоков используется алгоритм LRU. После того как диско­вому блоку выделяется буфер, он не может быть использован для другого блока до тех пор, пока все остальные буфера не окажутся занятыми, причем позднее рассматриваемого. Список свободных слотов сохраняет этот порядок.



<== предыдущая лекция | следующая лекция ==>
Анализ проектирования | Небуферизированный ввод-вывод


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.