Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС шпоры 1.docx
Скачиваний:
24
Добавлен:
25.09.2019
Размер:
876.45 Кб
Скачать
  1. Мультипрограммирование. Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой

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

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

Мультипрограммирование требует революции в строении вычислительной системы:

1) Реализация защитных механизмов.

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

2) Наличие прерываний.

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

3) Развитие параллелизма в архитектуре.

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

Не менее важна в организации мультипрограммирования роль ОС, реализующей:

организацию интерфейса между прикладной программой и ОС при помощи системных вызовов

организацию очереди из заданий в памяти и планирование выделение процессора одному из заданий

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

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

организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей

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

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

пропускная способность – количество задач, выполняемых вычислительной системой в единицу времени;

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

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

В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени.

Мультипрограммирование в системах пакетной обработки.

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

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

Для достижения этой цели в системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины. Например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается «выгодное» задание. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.

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

Мультипрограммирование в системах разделения времени.

Повышение удобства и эффективности работы пользователя является целью систем разделения времени. Пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями.

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

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

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

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

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

Мультипрограммирование в системах реального времени.

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

Это время – время реакции системы, а соответствующее свойство системы – реактивность. Требования ко времени реакции зависят от специфики управляемого процесса. Контроллер робота может требовать от встроенного компьютера ответ в течение менее 1 мс, в то время как при моделировании полета может быть приемлем ответ в 40 мс.

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

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

При проектировании программ под системы реального времени закладывается некоторый «запас» вычислительной мощности на случай пиковой нагрузки.

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

Мультипроцессорная обработкаспособ организации» вычислительного процесса в системах с несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.

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

Недостатки такой организации системы:

– усложнение всех алгоритмов управления ресурсами (например, планирование процессов не для одного, а для нескольких процессоров)

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

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

Примеры ОС с мультипроцессорной – Sun Solaris 2.x, IBM OS/2, Microsoft Windows NT и т.д.

Различают симметричную и ассиметричную архитектуру таких систем.

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

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

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

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

По способу организации вычислительного процесса мультипроцессорные системы делятся также на симметричные и ассиметричные.

Асимметричное мультипроцессирование наиболее простой способ организации вычислительного процесса в системах с несколькими процессорами, его называют также «ведущий-ведомый».

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

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

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

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

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

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

Большой плюс: в случае отказа одного из процессоров симметричные системы, как правило, сравнительно просто реконфигурируются.

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