Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Иерархия запоминающих устройств. Принцип кэширования данных



Память вычислительной машины представляет собой иерархию запоминающих устройств (внутренние регистры процессора, различные типы сверхоперативной и оперативной памяти, внешние запоминающие устройства, например, диски), отличающихся средним временем доступа и стоимостью хранения данных в расчете на один бит (рисунок 1.7).

Существует способ организации совместного функционирования двух типов запоминающих устройств (ЗУ), отличающихся временем доступа и стоимостью хранения данных, который позволяет уменьшить среднее время доступа к данным за счет динамического копирования в быстрое ЗУ наиболее часто используемой информации из медленного ЗУ.

Кэш-памятью часто называют одно из устройств – быстрое ЗУ.

Рис. 1.7. Иерархия запоминающих устройств

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

В системах, оснащенных кэш-памятью, каждый запрос к оперативной памяти выполняется в соответствии со следующим алгоритмом:

· просматривается содержимое кэш-памяти;

· если данные обнаруживаются в кэш-памяти, то они считываются из нее, и результат передается в процессор;

· если нужных данных нет, то они вместе со своим адресом копируются из оперативной памяти в кэш-память, и результат выполнения запроса передается в процессор.

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

Покажем, как среднее время доступа к данным зависит от вероятности попадания в кэш-память. Пусть имеется основное запоминающее устройство со средним временем доступа к данным t1 и кэш-память, имеющая время доступа t2. Обозначим через t среднее время доступа к данным в системе с кэш-памятью, а через p -вероятность попадания в кэш-память. По формуле полной вероятности имеем:

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

2.3. Управление вводом/выводом

Одной из функций ОС является управление всеми периферийными устройствами компьютера. Система должна обеспечивать эффективный и удобный доступ к периферийным устройствам, а также обеспечивать возможность унифицированной разработки программного обеспечения для вновь подключаемых внешних устройств. ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы. В целях развития интерфейс должен быть одинаковым для всех типов устройств (независимость от устройств).

2.3.1. Физическая организация устройств ввода/вывода. Организация программного обеспечения ввода/вывода

Устройства ввода/вывода делятся на два типа: блок-ориентированные (блочниые) устройства и байт-ориентированные (символьные) устройства.

Блок-ориентированные устройства хранят информацию в блоках фиксированного размера, каждый из которых имеет свой собственный адрес. Примером блок-ориентированного устройства является диск.

Байт-ориентированные устройства не адресуемы и не позволяют производить операцию поиска, они генерируют или потребляют последовательность байтов. Примерами являются терминалы, принтеры, сетевые адаптеры.

Одни устройства являются разделяемыми, а другие – выделенными. Диски – это разделяемые устройства, так как возможен одновременный доступ нескольких пользователей к диску. Принтеры – это выделенные устройства, потому что нельзя одновременно печатать различные документы.

Внешнее устройство обычно состоит из механического и электронного компонента.

Механический компонент представляет собой собственно устройство.

Электронный компонент называется контроллером устройства или адаптером. Некоторые контроллеры могут управлять несколькими устройствами. Если интерфейс между контроллером и устройством стандартизован, то независимые производители могут выпускать совместимые как контроллеры, так и устройства.

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

ОС выполняет ввод/вывод, записывая команды в регистры контроллера. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.

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

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

Большинство операций ввода/вывода выполняется асинхронно – процессор начинает передачу и переходит на другую работу, пока не наступает прерывание. ОС выполняет операции ввода/вывода асинхронно, но представляет их для пользовательских программ в синхронной форме.

Целесообразно разделить программное обеспечение ввода/вывода на четыре слоя:

· обработка прерываний;

· драйверы устройств;

· независимый от устройств слой операционной системы;

· пользовательский слой программного обеспечения.





Дата публикования: 2015-09-17; Прочитано: 1076 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...