Основные характеристики мультипрограммного режима работы ЭВМ
Мультипрограммным режимом работы (многозадачностью) называется такой способ организации работы системы, при котором в ее памяти одновременно содержатся программы и данные для выполнения нескольких процессов обработки информации (задач) [4]. При этом должна обеспечиваться взаимная защита программ и данных, относящихся к различным задачам, а также возможность перехода от выполнения одной задачи к другой (переключение задач).
Мультипрограммирование позволяет повысить производительность работы ЭВМ за счет более эффективного использования ее ресурсов.
Базовыми понятиями мультипрограммного режима функционирования ЭВМ являются процесс и ресурс [12]
В строгом понимании процесс - это система действий, реализующая определенную функцию в вычислительной системе и оформленная так, что управляющая программа вычислительной системы может перераспределять ресурсы этой системы в целях обеспечения мультипрограммирования. То есть процесс - это некоторая деятельность, связанная с исполнением программы на процессоре.
Процесс может находиться в следующих состояниях:
- порождение - подготавливаются условия для первого исполнения на процессоре;
- активное состояние - исполнение программы на центральном процессоре;
- готовность (Ready) - программа не исполняется, но для исполнения предоставлены все необходимые в текущий момент ресурсы, кроме центрального процессора;
- исполнение программы на каком-либо другом устройстве компьютера, например, устройстве ввода/вывода, имеющем собственные средства управления;
- ожидание (Wait) - программа не исполняется по причине занятости какого-либо ресурса;
- окончание - нормальное или аварийное завершение исполнения программы, после которого процессор и другие ресурсы ей не предоставляются.
Время между порождением и окончанием процесса называется интервалом существования процесса.
Понятие ресурса строго не определено. Будем считать, что всякий потребляемый объект (независимо от формы его существования), обладающий некоторой практической ценностью для потребителя, является ресурсом [12].
Ресурсы различаются по запасу выделяемых единиц ресурса и бывают в этом смысле исчерпаемыми и неисчерпаемыми. К исчерпаемым ресурсам относится, например, центральный процессор. В качестве неисчерпаемого ресурса можно представить, например, память, выделяемую программе, если рассматривать ее как совокупность всех имеющихся в компьютере запоминающих устройств. В то же время, запоминающее устройство, состоящее только из оперативной памяти с единственным трактом записи/считывания, представляет собой исчерпаемый ресурс.
Исчерпаемость ресурса, как правило, приводит к конфликтам среди потребителей этого ресурса. Для регулирования конфликтов ресурсы должны распределяться между потребителями по каким-то правилам, в наибольшей степени их удовлетворяющим.
Основные черты мультипрограммного режима:
- в оперативной памяти находятся несколько пользовательских программ в состояниях активности, ожидания или готовности;
- время работы процессора разделяется между программами, находящимися в памяти в состоянии готовности;
- параллельно с работой процессора происходит подготовка и обмен с несколькими устройствами ввода-вывода.
Мультипрограммирование предназначено для повышения пропускной способности вычислительной системы путем более равномерной и полной загрузки всего ее оборудования, в первую очередь процессора. При этом скорость работы самого процессора и номинальная производительность ЭВМ не зависят от мультипрограммирования.
Мультипрограммный режим имеет в ЭВМ аппаратную и программную поддержку:
· аппаратная:
- контроллеры устройств ввода-вывода, которые могут работать параллельно с процессором;
- система прерывания;
- аппаратные средства системы защиты программ и данных в микропроцессоре;
- и т.п.;
· программная:
- мультизадачная операционная система (ОС);
- системные программы, управляющие работой устройств ввода-вывода и специализированных средств вычислительной системы.
Управляющая программа (ОС), реализуя мультипрограммный режим, должна распределять (в том числе динамически) ресурсы системы (время процессора, оперативную и внешнюю память, устройства ввода-вывода и т.д.) между параллельно выполняемыми программами, чтобы обеспечить увеличение пропускной способности компьютера с учетом ограничений на ресурсы и требований по срочности выполнения отдельных программ.
Производительность мультипрограммной ЭВМ оценивается количеством задач, выполненных в единицу времени (пропускная способность) и временем выполнения каждой программы Тi.
При анализе работы ЭВМ важно определить степень использования ее ресурсов. Для этого широко применяются следующие показатели:
- kq - коэффициент загрузки q-го устройства;
- kq=Tq/T, где Tq - время занятости устройства q за общее время T работы ЭВМ;
- Lq=ΣLqi*Δti/T - средняя длина очереди запросов к устройству q, где Lqi - длина очереди к устройству q на интервале времени Δti и Σti=T
Пусть работа некоторого устройства q характеризуется диаграммой, приведенной на рис. 12.1.
Рис. 12.1. Оценка основных показателей использования аппаратных ресурсов
Тогда рассмотренные выше показатели работы этого устройства будут следующими:
- kq=7/10
- Lq=(0*2 + 1*1 + 0*4 + 1*1 + 1*2 + 1*1)/10 = 5/10
Помимо средней длины очереди важна также и динамика изменения текущей длины очереди.
По значениям kq, Lq и динамике изменения Lq можно определить наиболее дефицитный ресурс в системе, ее "узкое место".
Устранить "узкие места" можно или увеличением производительности соответствующего ресурса, или выбором такого набора задач, который обеспечивал бы более равномерное использование всех ресурсов (например, одни задачи более активно используют процессор (счетные задачи), другие - жесткий диск (работа с базами данных), третьи - устройства ввода-вывода).
Работа мультипрограммной ЭВМ в большой степени зависит от коэффициента мультипрограммирования (Км) - количества программ, которое может одновременно обрабатываться в мультипрограммном режиме.
Рис. 12.2. Порядок выполнение программ в мультипрограммной ЭВМ при Км = 2
Пример выполнения программ в мультипрограммном режиме при Км=2 представлен на рис. 12.2. Предполагается, что выполнение каждой программы включает следующую последовательность действий: счет1 - ввод - счет2 - вывод. Счет выполняется на процессоре (CPU), для ввода и вывода данных используются отдельные внешние устройства (IN и OUT). На графике помечены номера программ, которые в данный момент занимают тот или иной ресурс.
Таблица 12.1. | ||||
Программа | CPU1 | IN | CPU2 | OUT |
Если построить аналогичные графики для ЭВМ, работающей с различными коэффициентами мультипрограммирования, то получим следующие сравнительные характеристики работы ЭВМ для рассматриваемого пакета программ (табл. 12.2).
Таблица 12.2. | |||
Характеристика | Км = 1 | Км = 2 | Км = 3 |
Время выполнения программы Т1 | |||
Время выполнения программы Т2 | |||
Время выполнения программы Т3 | |||
Время выполнения программы Т4 | |||
Время выполнения всех программ (Т) | |||
Пропускная способность (П) | 0,11 | 0,17 | 0,18 |
kCPU | 0,56 | 0,83 | 0,91 |
kIN | 0,22 | 0,33 | 0,36 |
kOUT | 0,22 | 0,33 | 0,36 |
Под временем выполнения программы понимается время, прошедшее от начала выполнения программы или ее постановки в очередь к процессору, до ее завершения, а время выполнения всех программ определяется моментом завершения выполнения последней программы пакета.
При увеличении коэффициента мультипрограммирования изменение значений показателей эффективности зависит от того, в каком состоянии находится система: перегрузки или недогрузки. Если какие-либо ресурсы ЭВМ используются достаточно интенсивно, то добавление новой программы, активно использующей эти ресурсы, будет малоэффективным для увеличения пропускной способности ЭВМ. Очевидно, что зависимость пропускной способности (П), времени выполнения каждой программы (Тi) и времени выполнения всего пакета программ (Т) от коэффициента мультипрограммирования будет иметь вид, представленный на рис. 12.3.
Рис. 12.3. Зависимость основных характеристик работы мультипрограммной ЭВМ от коэффициента мультипрограммирования
На изменение эффективности работы мультипрограммной ЭВМ может повлиять назначение различных приоритетов выполняемым программам. Перераспределение приоритетов может привести как к увеличению, так и к снижению пропускной способности ЭВМ. Конкретный результат зависит от характеристик выполняемых программ. В частности, если в составе мультипрограммной смеси имеется единственная программа, надолго занимающая процессор, то увеличение ее приоритета понизит, а уменьшение - повысит пропускную способность ЭВМ. Это объясняется тем, что выполнение программ, обладающих меньшим приоритетом, чем рассматриваемая, фактически блокируется из-за недоступности процессора. Аналогичная ситуация может сложиться и в отношении других совместно используемых ресурсов. Особое значение при этом имеют те из них, которые являются наиболее дефицитными, то есть имеют наибольший коэффициент загрузки и наибольшую среднюю длину очереди. Как правило, наиболее высокий приоритет назначается тем программам, которые в состоянии быстро освободить наиболее дефицитный ресурс. Такого рода проблемы решаются в рамках теории расписаний. При этом поиск решения зачастую сводится к полному перебору вариантов. Ввиду сложности полной теоретической оценки всех возможных вариантов, на практике широко используются различные эвристические алгоритмы, дающие не оптимальные, а рациональные решения.
В мультипрограммной ЭВМ ресурсы могут распределяться как на статической, так и на динамической основе. В первом случае ресурсы распределяются до момента порождения процесса и являются для него постоянными. Освобождение ресурсов, занятых каким-либо процессом, происходит только в момент окончания этого процесса. При динамическом распределении ресурсы выделяются процессу по мере его развития.
Распределение на статической основе способствует наиболее быстрому развитию процессов в системе с момента их порождения. Распределение же ресурсов на динамической основе позволяет обеспечить эффективное использование ресурсов с точки зрения минимизации их простоев.
Схема статического распределения используется в том случае, когда необходимо гарантировать выполнение процесса с момента его порождения. В качестве недостатка этого подхода следует отметить возможность длительных задержек заявок на порождение процесса с момента поступления таких заявок в систему, так как необходимо ожидать освобождения всех требуемых заявке ресурсов и только при наличии их полного состава порождать процесс. Часто распределение ресурсов с использованием исключительно статического принципа приводит фактически к однопрограммному режиму работы.
При динамическом распределении стремление уменьшить простои ресурсов приводит к увеличению сложности системы распределения ресурсов и, как следствие, к увеличению системных затрат на управление процессами. Поэтому необходим компромисс между сложностью алгоритмов планирования распределения ресурсов и эффективностью выполнения пакета задач.
Ресурсы разделяются на физические и виртуальные.
Под физическим понимают ресурс, который реально существует и при распределении его между пользователями обладает всеми присущими ему физическими характеристиками.
Виртуальный ресурс - это некая модель, которая строится на базе физического ресурса, имеет расширенные функциональные возможности по отношению к физическому ресурсу, на базе которого он создан, или обладает некоторыми дополнительными свойствами, которых физический ресурс не имеет.
Например, расширенные функциональные возможности имеет виртуальная память, представляющаяся как запоминающее устройство, имеющее больший объем, чем физическая. Дополнительные свойства имеет виртуальный процессор, одновременно обрабатывающий несколько задач.