Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
05_Konspkt_lektsy_OS / Лекции_ОС_12.doc
Скачиваний:
50
Добавлен:
02.04.2015
Размер:
152.58 Кб
Скачать

5

Лекция 12. ОС. Павлов

Руководство по настройке производительности

Схема выполнения программы

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

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

Рис. 1-1. Иерархия выполнения программы.

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

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

Например, если перечислить все уровни, начиная с нижнего, то:

на диске хранятся исполняемые программы,

в оперативной памяти хранятся ожидающие нити операционной системы и обработчики прерываний,

в буфере таблицы преобразования адресов хранятся нити, готовые к выполнению,

в кэше хранятся нити, переданные на выполнение,

в регистрах и конвейере процессора находятся выполняемые в данный момент инструкции.

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

Аппаратная иерархия

Обычно время, необходимое для перехода с одного аппаратного уровня на другой, зависит от времени ожидания на нижнем уровне. Под временем ожидания понимается время, проходящее с момента отправки запроса до получения первых данных.

Жесткие диски

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

Контроллеру накопителя должен быть передан запрос на обращение к определенным блокам диска (время помещения в очередь).

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

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

Данные должны быть переданы контроллеру (время передачи) и отправлены приложению (время обработки прерывания).

Обращения к диску могут быть вызваны не только явными запросами прикладной программы. Иногда настройка системы может привести к выполнению ненужных операций дискового ввода-вывода.

Соседние файлы в папке 05_Konspkt_lektsy_OS