русс | укр

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

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

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

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


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

Оценка времени


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


 

Рассмотрим теперь две операции ввода-вывода, показывающие, как опасно по­лагаться на средние значения. Пусть у нас имеется обычный диск, у которого сред­нее время поиска составляет 10 ms, скорость вращения — 10000 об/мин, и диск разбит на сектора по 512 байт, с 320 секторами на одной дорожке. Предположим, что нам необходимо выполнить чтение файла, состоящего из 2560 секторов, общим размером 1.3 Мбайт. Мы хотим оценить общее время передачи данных.

Сначала предположим, что файл сохранен настолько компактно, насколько это возможно, — т.е. файл занимает все секторы на 8 соседних дорожках (8 дорожек * 320 секторов на дорожке = 2560 секторов). Такое размещение на­зывается последовательным. В этом случае время, необходимое для чтения пер­вой дорожки, определяется следующим образом:

Среднее время поиска 10 ms

Задержка на вращение 3 ms

Чтение 320 секторов 6 ms

19 ms

Предположим, что остальные дорожки могут быть считаны последователь­но, без затраты времени на поиск. Другими словами, операция ввода-вывода не отстает от потока данных с диска. Значит, для каждой последующей дорожки остается только задержка из-за вращения; соответственно, каждая дорожка счи­тывается за 3 + 6 = 9 ms. Итак, для чтения всего файла нам потребуется

Общее время = 19 / 7 * 9 = 82 ms = 0.082 s

Теперь рассчитаем время, необходимое для чтения тех же данных, но при случайном, а не последовательном доступе — т.е. секторы с содержимым файла распределены на диске случайным образом. Тогда для каждого сектора:

Среднее время поиска 10 ms

Задержка на вращение 3 ms

Чтение 1 сектора 0.01875 ms

13.01875 ms

Общее время = 2560 * 13.01875 = 33328 ms = 33.328 s

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



Стратегии дискового планирования

 

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

Рассмотрим типичную ситуацию в многозадачной среде, когда операцион­ная система поддерживает очередь запросов для каждого устройства ввода-вывода. Соответственно, в очереди одного диска будет находиться некоторое ко­личество запросов на ввод-вывод (чтение или запись) от различных процессов. Если выбирать запросы из очереди случайным образом, то следует ожидать, что искомые дорожки будут располагаться в произвольном порядке, это приведет к очень низкой производительности. Такое случайное распределение может слу­жить точкой отсчета для оценки других методик.

Простейшей формой планирования является планирование "первым во­шел — первым вышел" (FIFO), что просто означает обработку запросов из очере­ди в порядке их поступления. Преимущество такой стратегии — в ее беспри­страстности. На рис. 11.8,а показано перемещение головки при использовании стратегии FIFO (в этом примере мы полагаем, что на диске имеется 200 доро­жек, а в очереди находятся запросы к дорожкам, поступившие случайным обра­зом: 55, 58, 39, 18, 90, 160, 150, 38, 184). В табл. 11.2,а приведены количест­венные результаты.

Рис. 11.8. Сравнение различных алгоритмов дискового планирования

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


Таблица 11.2. Сравнение алгоритмов дискового планирования

 

a) FIFO (стартовая дорожка 100) 6)SSTF (стартовая дорожка 100) в) SCAN (стартовая дорожка 100; на­правление в сторону увеличе­ния номера дорожки ) г) C-SCAN (стартовая дорожка 100; на­правление в сторону уменьше­ния номера дорожки )
Следующая дорожка Количество пересеченных дорожек Следующая дорожка Количество пересеченных дорожек Следующая дорожка Количество пересеченных дорожек Следующая дорожка Количество пересеченных дорожек
Средняя про­должительность поиска 55.3 Средняя про­должительность поиска 27.5 Средняя про­должительность поиска 27.8 Средняя про­должительность поиска 35.8

Таблица 11.3. Алгоритмы дискового планирования [WIED87]

Название Описание Примечания



<== предыдущая лекция | следующая лекция ==>
Параметры производительности диска | Последним вошел — первым вышел


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


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

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

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


 


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

 
 

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

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