Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-метод_пособие_ПЗ.doc
Скачиваний:
43
Добавлен:
07.11.2018
Размер:
8 Мб
Скачать
☆

Ввод А

Вывод А

Счет А

tА

Ввод В

Вывод В

Счет В

tВ

t0

Счёт

Действия оператора Ввод Вывод

t

Рис. 11.1 Временная диаграмма работы ВС в однопрограммном режиме непосредственного доступа.

Во втором случае доступ к машине (системе) осуществляется косвенным образом, посредством операционной системы, осуществляющей переход от задачи к задаче и контроль за её исполнением. При таком методе эксплуатации машины (системы) потери времени значительно сокращаются, и повышается эффективность её использования. Часто рассмотренный режим называют косвенным доступом или последовательной обработки пакетами. Результаты решения абонент получает после реализации всего пакета.

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

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

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

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

В случае многопрограммной работы, как в случае однопрограммной, процессор ВС в каждый момент времени выполняет команды какой - либо одной программы в порядке, предусмотренном этой программой. Остальные, «одновременно» выполняемые с текущей, программы находятся в оперативной памяти в состоянии готовности или ожидания завершения какого – либо события (например, завершения ввода – вывода очередной порции данных). Одновременность обработки (кажущееся совмещение) заключается в том, что после выполнения части одной программы процессор. если это необходимо. может быть переключен на выполнение другой программы при сохранении возможности вернуться к незаконченной программе и продолжать её решение. Попеременное выполнение программ короткими отрезками времени создаёт у абонента впечатление одновременности.

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

Для обеспечения многопрограммного режима необходимо, чтобы ВС обладала следующими средствами и возможностями :

  1. емкость памяти должна быть достаточна для размещения информации, относящейся к нескольким задачам, которые должны обрабатываться в многопрограммном режиме;

  2. в ВС должна быть обеспечена возможность параллельной работы процессора и внешних устройств;

  3. ВС должна иметь развитую систему прерывания, посредством которой процессор информируется о моментах окончания операций в других устройствах ВС;

  4. ВС должна иметь средства защиты памяти, которые исключают возможность обращения программы (при неправильном её выполнении) к областям оперативной памяти, принадлежащим другим программам;

  5. ВС должна быть оснащена средствами, обеспечивающими управление памяти между различными программами абонентов.

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

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

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

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

Условием прерывания текущей программы в режиме классического мультипрограммирования является естественное прерывание во время ожидания ввода – вывода. Условием передачи управления очередной программе является её высший приоритет по сравнению с другими, готовыми к обработке. Производительность ВС во многом зависит от состава пакета программ, подлежащих совместному исполнению. Практически неизбежно возникают отдельные периоды, когда все программы находятся в состоянии ожидания и центральный процессор простаивает. С целью ликвидации таких простоев в систему вводят планирующую программу, роль которой состоит в формировании остальных пакетов программ. Правильная организация мультипрограммирования позволяет повысить производительность ВС по сравнению с однопрограммным режимом в пределах 1,5….1,8.

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

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

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

Рис.11.2. Временная диаграмма работы ВС в режиме классического мультипрограммирования

Выбор программы для передачи ей управления осуществляется путем сканирования (циклический или поочерёдной выбор).

Разделение времени.

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

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

ВС, работающие в режиме разделения времени, называют системами с разделением времени (СВР). СВР имеют две формы использования: «запрос – ответ» и диалоговую (разговорную).

При форме использования СВР «запрос – ответ» в ВС каждому из запросов должна быть предусмотрена специальная программа, вырабатывающая ответ. Множество таких программ хранится во внешней памяти. При возникновении запроса осуществляются выход в оперативную память соответствующей программы и передача ей управления. В результате выполнения этой программы формируется требуемый ответ.

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

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

Алгоритмы планирования работы ВС в различных режимах.

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

Различный порядок выполнения работ приводит к различным эффектам. Например, рассмотрим выполнение процессором трёх программ А, В, С, с трудоёмкостью 6, 3 и 1 единиц процессорного времени соответственно. Возможны шесть различных планов выполнения указанных программ, различающихся порядком запуска последних. На рис. 11.3 приведены временные диаграммы выполнения программ для двух планов: P1=A, B, C и P6=C, B, A.

0 1 2 3 4 5 6 7 8 9 10 11 12

Р1 А В С

Р6

С В А

Рис.11.3

Из рис. 11.3 видно, что выполнение работ в порядке P1 приводит к окончанию работ A, B, C, в момент времени 6; 9 10 соответственно и средние времена ожидания w и пребывания u работ в системе. В этом случае будут иметь значения

.

При выполнении работ в порядке

Таким образом, изменение плана выполнения работ существенно повлияло на среднее время пребывания работ в системе.

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

Пусть имеются программы А и В, каждая из которых выполняется на устройстве 1, а затем на устройстве 2 (рис. 11.4). Трудоёмкость работ А и В равна (2;8) и (6;3) соответственно, где первая и вторая составляющие вектора характеризуют число секунд работы первого и второго устройства, необходимых для выполнения программ. Если сначала запустить программу В, а затем программу А (рис.11.4 а), то суммарное время выполнения работ составит 17 с. При запуске программ в обратном порядке время выполнения программ уменьшается до 13 с (рис.11.4, б). Очевидно, что второй план более предпочтителен, так как обеспечивает минимум времени выполнения программ за счет высокой степени совмещения их во времени.

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

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

Процесс определения порядка выполнения программ во времени называется планированием. Основная цель планирования состоит в том, чтобы путем лучшей организации работы ВС (а не за счет увеличения числа ЭВМ и процессоров или их замены на более производительные) повысить эффективность функционирования системы. Планирование производится исходя из имеющихся в ВС ресурсов, потребностей программ в ресурсах, приоритетов программ и критерия, определяющего качество планов.

Различают два основных вида планирования работы систем: не оперативное (называемое так же статическим или предварительным) и оперативное (динамическое).

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

Наборы задач должны быть достаточно стабильными, а надобность в их выполнении должна возникать неоднократно. В противном случае не окупаются затраты, связанные с планированием работы системы.

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

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

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

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

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