- •Глава 11
- •Глава 12. Управление файлами
- •Глава 11 Управление вводом-выводом и дисковое планирование
- •11.1. Устройства ввода-вывода
- •11.2. Организация функций
- •11.3. Вопросы проектирования операционных систем
- •11.4 Буферизация операций ввода-вывода
- •11.5. Дисковое планирование
- •Выбор в соответствии с источником запроса
- •Выбор в соответствии с содержимым запроса
- •11.6. Raid
- •Буфер кэша
- •Очередь символов
- •Небуферизированный ввод-вывод
- •11.9. Ввод-вывод в windows 2000
- •Асинхронный и синхронный ввод-вывод
- •11.10. Резюме, ключевые термины и контрольные вопросы
- •Ключевые термины
- •Рекумендуемая литература
- •11.12. Задачи
- •Приложение. Дисковые устройства Магнитный диск
- •Оптическая память
11.12. Задачи
Проанализируйте программу, обращающуюся к устройству ввода-вывода, и сравните небуферизированный ввод-вывод с использованием буфера. Покажите, что использование буфера позволяет уменьшить время выполнения не более чем в два раза.
Обобщите результат задачи 11.1 на случай обращения программы к п устройствам.
Выполните такой же анализ, что и в табл. 11.2, для указанной последовательности запросов к дорожкам диска: 27, 129, 110, 186, 147, 41, 10, 64,120. Предположим, что головка диска изначально расположена над дорожкой 100 и перемещение головки происходит в направлении уменьшения номеров дорожек. Произведите тот же анализ, предполагая, что головка диска перемещается по направлению увеличения номеров дорожек.
Предположим, что N дорожек диска пронумерованы от 0 до N-1 и что запрашиваемые сектора распределены по диску случайно и равномерно. Необходимо вычислить среднее количество дорожек, которые головка пересекает при поиске.
а. Сначала рассчитайте вероятность поиска длиной /, если головка находится над дорожкой t. Указание. Определите общее количество комбинаций с учетом предположения, что все целевые дорожки равновероятны.
б. Рассчитайте вероятность поиска длиной К. Указание. Сюда входит суммирование всех возможных комбинаций перемещений через К дорожек.
в. Рассчитайте среднее количество дорожек, пересеченных при поиске, используя для ожидаемого значения формулу
г. Покажите, что для больших значений N среднее количество пересекаемых при поиске дорожек приблизительно равно N/3.
11.5. Приведенное ниже уравнение предложено как для кэш-памяти, так и для дискового кэша:
Ts =Tс/М*TD
Обобщите это уравнение для иерархической памяти с N уровнями вместо двух.
11.6. Для алгоритма замещения, основанного на частоте обращений (рис. 11.11),определите FHOB., Fсред., Fстар. как доли кэша, входящие в новый, средний и старый разделы соответственно. Очевидно, что FHOB.+Fсред.+ Fстар.=1. Опишите стратегию, если
а. Fстар. = 1-Fнов.
б. Fстар. = 1/(размер кэша)
Чему равна скорость передачи данных при использовании 9-дорожечного лентопротяжного устройства со скоростью 300 см/с, если плотность записи составляет 600 бит/см.
Предположим, что у нас имеется катушка с 720 м ленты, интервал между записями на которой составляет 1.5 см (лента останавливается посередине этого интервала между операциями считывания). Ускорение ленты при прохождении интервала между записями постоянно; предположим, что и остальные характеристики ленты такие же, как и в задаче 11.7. Данные на ленте организованы в виде физических записей, причем каждая физическая запись содержит фиксированное количество логических записей.
а. Сколько времени будет затрачено на считывание всей ленты, содержащей 120-байтовые логические записи (по 10 логических записей в одной физической)?
б. То же, но по 30 логических записей в одной физической.
в. Сколько логических записей может содержаться на ленте при каждом из рассмотренных количеств логических записей в одной физической?
г. Какая средняя скорость передачи данных при каждом из рассмотренных количеств логических записей в одной физической?
д. Чему равна емкость магнитной ленты?
Рассчитайте количество дискового пространства (в секторах, дорожках и поверхностях), необходимого для хранения логических записей, считанных в задаче 11.8,6, если диск разбит на секторы размером 512 байт, с 96 секторами на дорожке, 110 дорожками на поверхности и 8 используемыми поверхностями. Служебные записи о файле во внимание не принимайте; считайте также, что запись не может быть разбита и размещена на двух секторах,
Рассмотрим дисковую систему, описанную в задаче 11.9, и предположим, что диск вращается со скоростью 360 об/мин. Процессор производит чтение одного сектора диска с использованием ввода-вывода, управляемого прерыванием, причем на каждый байт приходится одно прерывание. Если для обработки каждого прерывания требуется 2.5 p.s, то какую часть времени процессор затратит на ввод-вывод (временем поиска пренебрегаем).
Повторите задание 11.10 при использовании DMA, при условии, что одно прерывание приходится на один сектор.
Должно быть очевидно, что разбивка диска на полосы может привести к повышению скорости передачи данных, если размер полосы мал по сравнению с размером запросов ввода-вывода. Должно быть ясно также, что RAID 0 обеспечивает повышенную производительность по сравнению с одним большим диском, поскольку запросы могут обрабатываться параллельно. Однако есть ли необходимость в разбивке диска на полосы в последнем случае? Действительно ли разбивка диска повышает производительность по сравнению с таким же дисковым массивом, но без разбивки?