11.1. Перечислите и кратко охарактеризуйте три способа выполнения ввода- вывода.
11.2. В чем состоит различие между логическим вводом-выводом и устройством ввода-вывода?
11.3. В чем состоит различие между блочно-ориентированными устройствами и поточно-ориентированными устройствами? Приведите несколько примеров каждого из них.
11.4. Почему при использовании двойного буфера ожидается большая производительность, чем при одинарном буфере ввода-вывода?
11.5. Какие элементы задержки сопутствуют процедурам дискового считывания или записи?
11.6. Вкратце опишите стратегии дискового планирования, приведенные на рис. 11.8.
11.7. Вкратце опишите семь уровней RAID.
11.8. Какой типичный размер сектора диска?
РЕКУМЕНДУЕМАЯ ЛИТЕРАТУРА
Общие описания компьютерного ввода-вывода можно найти в большинстве книг, посвященных компьютерной архитектуре, например [STALOO] и [РАТТ98]. В [МЕЕЭба] представлен неплохой обзор физических основ технологии записи на диски и магнитные ленты, а в [МЕЕЭбЬ] — технологий хранения данных в этих системах. В [WIED87] рассматриваются вопросы, связанные с производительностью дисков, включая дисковое планирование. Работа [NG98] посвящена вопросам производительности аппаратных устройств дисков. В [САО96] анализируется кэширование и планирование дисков. В [ROSCOO] подробно изучены все типы систем внешней памяти и рассмотрены многочисленные технические характеристики каждой из них. Заслуживающим внимания обзором, в котором всесторонне описан интерфейс ввода-вывода и менее подробно — технические детали, является [SCHW96]. В [PAIOO] представлена интересная информация об интегрированной схеме буферизации ввода-вывода и кэширования.
В [DELLOO] приведен детальный анализ драйверов устройств Windows NT, a также рассмотрена вся архитектура ввода-вывода W2K.
[CHEN94] представляет собой превосходное руководство по технологии RAID от ее создателей. Более детально технология RAID обсуждается в издании экспертной комиссии RAID, ассоциации поставщиков и потребителей продуктов на основе RAID [MASS97]. В [CHEN96] проанализирована производительность RAID. Интерес представляет статья на эту тему — [FRIE96]. В [DALT96] детально описано программное обеспечение для устройств RAID в Windows NT.
САО96 Cao P., Felten E., Li К. Implementation and Performance of Integratefln ; Application-Controlled File Caching, Prefetching, and Disk Scheduling. — ACM Transactions on Computer Systems, November 1996.
CHEN94 Chen P., Lee E., Gibson G., Katz R., Patterson D. RAID: High-Performance, Reliable Secondary Storage. — ACM Computing Surveys, June 1994. CHEN96 Chen S., Towsley D. A Performance Evaluation of RAID Architectures. —IEEE Transactions on Computers, October 1996. DALT96 Dalton W. et al. Windows NT Server 4: Security, Troubleshooting, and Optimization. — Indianapolis, IN: New Riders Publishing, 1996.
DELLOO Dekker E., Newcomer J. Developing Windows NT Device Drivers: A Programmer's Handbook. — Reading, MA: Addison Wesley, 2000.
FRIE96 Friedman M. RAID Keeps Going and Going and... — IEEE Spectrum, April 1996.
MASS97 Massiglia P. (editor). The RAID Book: A Storage System Technology Hand book. — St. Peter, MN: The Raid Advisory Board, 1997.
МЕЕ9ба Мее С., Daniel E., eds. Magnetic Recording Technology. — New York: 5 McGraw Hill, 1996.
MEE96b Mee C., Daniel E., eds. Magnetic Storage Handbook. — New York: McGraw Hill, 1996.
NG98 Ng S. Advances in Disk Technology: Performance Issues. — Computer, May 1989.
PAIOO Pai V., Druschel P., Zwaenepoel W. Ю-Lite: A Unified I/O Buffering and Caching System. — ACM Transactions on Computer Systems, February 2000. PATT98 Patterson D., Hennessy J. Computer Organization and Design: The Hardware/Software Interface. — San Mateo, CA: Morgan Kaufmann, 1998. ROSCOO Rosch W. The Winn L. Rosch Hardware Bible. — Indianapolis, IN: Sams, 2000.
SCHW96 Schwaderer W., Wilson A. Understanding I/O Subsystems. — Milpitas, CA: Adaptec Press, 1996. 1
STALOO Stallings W. Computer Organization and Architecture. 5th ed. — Upper Saddle River, NJ: Prentice Hall, 2000.
WIED87 Wiederhold G. File Organization for Database Design. — New York: McGraw Hill, 1987. ;
ЗАДАЧИ
11.1. Проанализируйте программу, обращающуюся к устройству ввода-вывода, и сравните небуферизированный ввод-вывод с использованием буфера. Покажите, что использование буфера позволяет уменьшить время выполнения не более чем в два раза.
11.2. Обобщите результат задачи 11.1 на случай обращения программы к п устройствам.
11.3. Выполните такой же анализ, что и в табл. 11.2, для указанной последовательности запросов к дорожкам диска: 27, 129, 110, 186, 147, 41, 10, 64,120. Предположим, что головка диска изначально расположена над дорожкой 100 и перемещение головки происходит в направлении уменьшения номеров дорожек. Произведите тот же анализ, предполагая, что головка диска перемещается по направлению увеличения номеров дорожек.
11.4. Предположим, что 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/(размер кэша)
11.7. Чему равна скорость передачи данных при использовании 9-дорожечного лентопротяжного устройства со скоростью 300 см/с, если плотность записи составляет 600 бит/см.
11.8. Предположим, что у нас имеется катушка с 720 м ленты, интервал между записями на которой составляет 1.5 см (лента останавливается посередине этого интервала между операциями считывания). Ускорение ленты при прохождении интервала между записями постоянно; предположим, что и остальные характеристики ленты такие же, как и в задаче 11.7. Данные на ленте организованы в виде физических записей, причем каждая физическая запись содержит фиксированное количество логических записей.
а. Сколько времени будет затрачено на считывание всей ленты, содержащей 120-байтовые логические записи (по 10 логических записей в одной физической)?
б. То же, но по 30 логических записей в одной физической.
в. Сколько логических записей может содержаться на ленте при каждом из рассмотренных количеств логических записей в одной физической?
г. Какая средняя скорость передачи данных при каждом из рассмотренных количеств логических записей в одной физической?
д. Чему равна емкость магнитной ленты?
11.9. Рассчитайте количество дискового пространства (в секторах, дорожках и поверхностях), необходимого для хранения логических записей, считанных в задаче 11.8,6, если диск разбит на секторы размером 512 байт, с 96 секторами на дорожке, 110 дорожками на поверхности и 8 используемыми поверхностями. Служебные записи о файле во внимание не принимайте; считайте также, что запись не может быть разбита и размещена на двух секторах,
11.10. Рассмотрим дисковую систему, описанную в задаче 11.9, и предположим, что диск вращается со скоростью 360 об/мин. Процессор производит чтение одного сектора диска с использованием ввода-вывода, управляемого прерыванием, причем на каждый байт приходится одно прерывание. Если для обработки каждого прерывания требуется 2.5 p.s, то какую часть времени процессор затратит на ввод-вывод (временем поиска пренебрегаем).
11.11. Повторите задание 11.10 при использовании DMA, при условии, что одно прерывание приходится на один сектор.
11.12. Должно быть очевидно, что разбивка диска на полосы может привести к повышению скорости передачи данных, если размер полосы мал по сравнению с размером запросов ввода-вывода. Должно быть ясно также, что RAID 0 обеспечивает повышенную производительность по сравнению с одним большим диском, поскольку запросы могут обрабатываться параллельно. Однако есть ли необходимость в разбивке диска на полосы в последнем случае? Действительно ли разбивка диска повышает производительность по сравнению с таким же дисковым массивом, но без разбивки?