Мультипрограммный режим работы ос обозначает что

Работа по теме: Операционные системы_лекции. Глава: 1.7. Мультипрограммный, мультизадачный и многопользовательский режимы работы операционной системы. Режим разделения времени. ВУЗ: ИвГУ.
article placeholder

2706 HbeT2

Добавил:

Upload

Опубликованный материал нарушает ваши авторские права? Сообщите нам.

Вуз:

Предмет:

Файл:

Операционные системы_лекции.doc

Скачиваний:

15

Добавлен:

28.09.2019

Размер:

1.71 Mб

Скачать

Появление
в архитектуре вычислительных систем
контроллеров внешних устройств создало
возможность разгрузки центрального
процессора от операций ввода-вывода. В
операционных системах ранних поколений
на время операций ввода-вывода центральный
процессор стал простаивать, что было
непростительной расточительностью для
дорогого устройства. Схема такой работы
показана на рис. 1.7,а. Процесс развернут
во времени t, серыми
прямоугольниками показана работа
центрального процессора, белыми –
работа устройства ввода (или вывода).
Буквами А и Б обозначены задачи. Как
видно из рис. 1.7,а время ТИ выполнения
обеих задач равно сумме длительностей
задач, причём в течение длительных
отрезков времени процессор будет
простаивать.

Мультипрограммным
режимом называется такой режим работы

операционной системы, в котором
одновременно выполняется

две и более
задачи, а процессор переключается с
решения

одной задачи на решения
других на время совершения

операций,
не требующих его участия

htmlconvd bFW0gO html 7bce6145b31af1f0

а)

б)

Рис. 1.7. Монопрограммный (а) и мультипрограммный
(б) режимы работы

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

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

Поскольку
процессы могли содержать разные задачи,
то появился многозадачный режим, а т.к.
задачи могут принадлежать разным
пользователям, то появился и
многопользовательский режим. В
мультизадачном режиме в противовес
мультипрограммному режиму обеспечивается
взаимодействие между вычислениями. Для
подчёркивания этой разницы были введены
термины «легковесные процессы»
(thin), они же потоки
выполнения, нити и треды (threads).
Легковесными они называются потому,
что процессору не требуется для их
реализации организовывать полноценную
виртуальную машину. Единственно, что
имеют легковесные процессы своего, это
процессорное время, всё остальное у
связанных легковесных процессов общее.
Наличие легковесных процессов позволило
организовать много поточное выполнение
задач.

Контрольные
вопросы:

  1. Перечислите
    основные функции операционной системы?

  2. Что
    такое привилегированные и непривилегированные
    команды?

  3. Что
    такое модули операционной системы?

  4. Что
    такое ядро операционной системы?

  5. Что
    такое монолитное ядро?

  6. Нарисуйте
    и поясните структуру слоёной операционной
    системы?

  7. Что
    такое супервизор?

  8. Что
    такое микроядерная операционная
    система?

  9. Что
    такое BIOS, где она находится
    при старте вычислительной машины и где
    помещается во время её работы?

  10. Что
    такое переносимый и непереносимый
    модуль операционной системы?

  11. Что
    такое системный запрос?

  12. Что
    такое интерфейс прикладного
    программирования?

  13. Что
    такое операционная среда?

  14. В
    чём причина отказа работы программы
    пользователя при запуске её в другой
    операционной системе?

  15. Как
    обеспечить переносимость программ из
    одной операционной системы в другую?

  16. Что
    такое очередь, и как она работает?

  17. Как
    происходит адресация в стеке?

  18. Что
    такое стек, и как он работает?

  19. Можно
    ли прочитать данные, записанные в стек,
    после их считывания?

  20. Что
    такое машинная команда? Какова её
    структура (формат)?

  21. Что
    такое адресация? Какие существуют
    способы адресации?

  22. Что
    такое непосредственная адресация?

  23. Что
    такое прямая адресация?

  24. Что
    такое регистровая адресация?

  25. Что
    такое косвенная адресация?

  26. Каким
    образом процессор распознаёт способ
    адресации операндов в машинной команде?

  27. Что
    такое прерывание?

  28. Что
    такое состояние процесса вычислений?
    Где оно хранится?

  29. Что
    такое контекст программы?

  30. Что
    такое дескриптор программы, и какова
    его структура?

  31. Нарисуйте
    и поясните схему обслуживания прерывания
    в простых системах?

  32. Нарисуйте
    и поясните схему обслуживания прерывания
    в сложных системах?

  33. Чем
    отличаются схемы обслуживания прерывания
    в простых и сложных системах?

  34. Какова
    структура программы, обслуживающей
    прерывание?

  35. Что
    такое синхронные (внутренние), асинхронные
    (внешние) и программные (события)
    прерывания?

  36. Перечислите
    источники внешних прерываний.

  37. Перечислите
    источники внутренних прерываний.

  38. Что
    такое маскирование прерываний?

  39. Как
    решается вопрос о порядке обслуживания
    одновременно возникших запросов на
    прерывания?

  40. Что
    такое приоритет прерываний? Как можно
    изменить приоритет?

  41. Что
    такое режим прерываний? Как он
    устанавливается?

  42. Что
    такое дисциплина обслуживания прерывания?
    Для чего необходимо это понятие?

  43. Перечислите
    и поясните основные дисциплины
    обслуживания прерываний.

  44. Что
    такое дисциплина обслуживания прерываний
    с относительными приоритетами?

  45. Что
    такое дисциплина обслуживания прерываний
    с абсолютным приоритетом?

  46. Что
    такое дисциплина обслуживания прерываний
    LCFS (FIFO)?

  47. Расположите
    в порядке возрастания приоритета
    источники прерываний: системный таймер,
    внешние устройства, средства контроля
    процессора и программные прерывания.

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

  49. Что
    такое процесс? Приведите примеры.

  50. Дайте
    современное определение понятия
    «Задача».

  51. Что
    такое ресурс? Приведите примеры ресурсов.

  52. Что
    такое дескриптор процесса, и какова
    его структура?

  53. Нарисуйте
    и поясните диаграмму состояния процесса.

  54. Что
    такое делимые и неделимые ресурсы?
    Приведите примеры.

  55. Опишите
    три ситуации выделения ресурса задаче.

  56. Что
    такое одновременное и параллельное
    (попеременное) разделение ресурсов?
    Приведите примеры.

  57. В
    чём особенность оперативной памяти
    как разделяемого ресурса?

  58. Как
    разделяется внешняя память? В чём
    особенность разделения памяти как
    ресурса?

  59. Как
    решается вопрос разделения ресурсов
    с последовательным доступом?

  60. Опишите
    классификацию программных модулей как
    разделяемых и неразделяемых ресурсов.

  61. Что
    такое однократно используемые программные
    модули? Могут ли они быть разделяемыми
    ресурсами? Почему?

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

  63. Что
    такое привилегированные программные
    модули? Могут ли они быть разделяемыми
    ресурсами?

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

  65. Что
    такое реентабельные программные модули?
    Могут ли они быть разделяемыми ресурсами?

  66. Почему
    реентабельные модули могут быть
    разделяемыми ресурсами?

  67. Что
    такое повторно входимые программные
    модули? Могут ли они быть разделяемыми
    ресурсами? Почему?

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

  69. Почему
    в мультипрограммном режиме
    производительность вычислительной
    системы увеличивается? Поясните
    временной диаграммой.

  70. Верно
    ли утверждение «Т.к. в мультипрограммном
    режиме производительность вычислительной
    машины выше, то и время выполнения
    отдельных процессов в этом режиме
    меньше, чем в однопрограммном»?

  71. Что
    такое мультизадачный режим работы
    операционной системы?

  72. Что
    такое легковесные процессы?

  73. Что
    такое потоки выполнения?

  74. Что
    такое нити?

  75. Что
    такое треды?

  76. Что
    такое разделение времени?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

Мультипрограммный режим работы микропроцессора

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

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

Процесс может находиться в следующих состояниях:

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

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

объем оперативной памяти, время счета на процессоре, дисковое пространство и т. д.

Основные черты мультипрограммного режима:

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

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

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

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

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

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

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

k_q коэффициент загрузки устройства:

k_q=frac{T_q}{T}

где T_{q} — время занятости устройства q за общее время T работы ЭВМ;

L_{q} средняя длина очереди запросов к устройству q:

L_{q}=frac{sum_{j=1}^{n}L_{q_{i}}*Delta{t_i}}{T}

где L_{qi}длина очереди к устройству q на интервале времени Delta{t_i} и sum_{j=1}^{n}Delta{t_i}=T

Оценка показателей работы мультипрограммной ЭВМ

Рис.
6.1.
Оценка показателей работы мультипрограммной ЭВМ

Для представленного на рис. 6.1 случая:

L_q=frac{0times1+1times1+0times4+1times1+1times2+1times1}{10}

Помимо средней длины очереди важна также и динамика изменения ее длины.

По значениям k_{q}, L_{q} и изменениям во времени значения Lq можно определить наиболее дефицитный ресурс в системе, ее «узкое место«.

Устранение этих «узких мест» может проводиться или за счет увеличения производительности соответствующего ресурса, или выбором такой смеси задач, которая обеспечивала бы более равномерное использование всех ресурсов (например, одни задачи более активно используют процессор (счетные задачи), другие — жесткий диск (работа с базами данных), третьи — устройства ввода-вывода (вывод большого объема графической информации)).

Рассмотрим пример выполнения четырех программ в мультипрограммном режиме при коэффициенте мультипрограммирования равном 2.

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

Полагаем, что ЭВМ имеет 3 устройства, которые могут работать параллельно: центральный процессор (CPU), устройство ввода (IN) и устройство вывода (OUT), а программы проходят следующий цикл работы:

счет1 — ввод — счет2 — вывод. Времена выполнения соответствующих блоков программ заданы в табл. 6.1.

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

Таблица
6.1.
Характеристики программ

Программа CPU1 IN CPU2 OUT
1 2 1 4 2
2 2 2 1 3
3 4 3 3 1
4 2 2 2 2

Более приоритетной считаем программу с меньшим номером.

Очередь программ к процессору обозначим Ready, а общую очередь к внешним устройствам — Wait.

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

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


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

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

http://lcg.tpu.ru/OPSYS_0961/img/3_1.gif

Рисунок 5 – Пример выполнения двух программ в мультипрограммном режиме

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

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

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

Рекомендуемые материалы

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.1. Мультипрограммирование в системах пакетной обработки

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


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

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

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.2. Мультипрограммирование в системах разделения времени

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


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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.3. Мультипрограммирование в системах реального времени

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


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

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.4. Мультипрограммирование при мультипроцессорной обработке

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


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

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

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

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

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

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

В настоящее время функции поддержки симметричной мультипроцессорной обработки данных имеются во всех популярных ОС, таких как MS Windows NT Workstation 4.0, Microsoft Windows Server 2003, Windows XP Professional, QNX Neutrino.

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

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

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

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

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

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

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

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

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

http://lcg.tpu.ru/web-ct/ru/img/shim.gif
4.1.5. Роль прерываний при мультипрограммировании

Роль прерываний при мультипрограммировании


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

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

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

В зависимости от источника все прерывания делят на два класса:

· аппаратные (внешние и внутренние);

· программные.

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

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

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

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

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

Шаг 1. Установление факта прерывания (прием сигнала запроса на прерывание) и идентификация прерывания (в ОС идентификация прерывания иногда осуществляется повторно, на шаге 4).

Шаг 2. Запоминание состояния прерванного процесса вычислений. Состояние процесса выполнения программы определяется, прежде всего, значением счетчика команд (адресом следующей команды), содержимым регистров процессора, и может включать также спецификацию режима (например, режим пользовательский или привилегированный) и другую информацию.

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

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

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

Шаг 6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).

Шаг 7. Возврат на прерванную программу.

Следует отметить, что шаги 1-3 реализуются аппаратно, а шаги 4-7 – программно.

Главные функции механизма прерываний – это:

· распознавание или классификация прерываний;

· передача управления соответствующему обработчику прерываний;

· корректное возвращение к прерванной программе.

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

http://lcg.tpu.ru/OPSYS_0961/img/3_1_5-1.gif

Рисунок 6 – Обобщенная схема обработки прерывания

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

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

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

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

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

http://lcg.tpu.ru/OPSYS_0961/img/3_1_5-2.gif

Рисунок 7 – Обработка прерывания при участии супервизора

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

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

Вместе с этой лекцией читают «7.3. Информационные технологии экспертной деятельности».

На рис. 8 изображен обычный порядок (приоритеты) обработки прерываний в зависимости от типа прерываний.

http://lcg.tpu.ru/OPSYS_0961/img/3_1_5-3.gif

Рисунок 8 – Распределение прерываний по уровням приоритета

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

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

Что такое мультипрограммная операционная система на примере?

Многопрограммная операционная система имеет возможность выполнять несколько программ с использованием только одной процессорной машины. Один из примеров: пользователь может использовать MS Эксель , загружать приложения, передавать данные из одной точки в другую, в браузере Firefox или Google Chrome и т. д. одновременно.

Что подразумевается под мультипрограммной операционной системой?

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

Что такое мультипрограммирование, зачем оно используется?

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

В чем главное преимущество многопрограммной операционной системы?

Преимущества мультипрограммирования:

Эффективное использование ресурсов. Время отклика короче. Кратковременные работы выполняются быстрее чем долгое время работы. Повышенная пропускная способность.

Является ли операционная система Windows мультипрограммной?

Многопрограммные пакетные системы

При этом операционная система выбирает и начинает выполнять одно из заданий из памяти. Когда для этого задания требуется операция ввода-вывода, операционная система переключается на другое задание (ЦП и ОС всегда заняты).

Почему в ОС используется семафор?

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

Что такое операционная система реального времени?

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

Какие бывают типы многозадачности?

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

В чем недостатки мультипрограммирования?

Недостатки многопрограммной ОС:

  • Иногда долгую работу приходится долго ждать.
  • Отслеживание всех процессов иногда сложно.
  • Требуется планирование ЦП.
  • Требуется эффективное управление памятью.
  • Никакого взаимодействия пользователя с какой-либо программой во время выполнения.

Как достигается мультипрограммирование?

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

Мультипрограммный режим — работа

Cтраница 1

Мультипрограммный режим работы микроЭВМ позволяет одновременно с выполнением программ осуществлять контроль и диагностику основных узлов СПА.
 [1]

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

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

Мультипрограммный режим работы ЭВМ — режим работы ЭВМ, при котором одновременно выполняется несколько программ пользователя. В этом режиме работа процессора организована таким образом, чтобы у него были исключены простои в работе. Например, при исполнении процессором первой программы возникает необходимость обращения к устройству ввода данных ( требуется ввести новые данные); в этом случае процессор выдает данному устройству команду произвести нужную операцию, а сам переходит к выполнению второй программы. По окончании операции ввода устройство посылает в процессор сигнал прерывания, реагируя на который он прерывает выполнение второй программы и переключается вновь на работу первой программы.
 [5]

Мультипрограммный режим работы ЭВМ — режим работы ЭВМ, при котором одновременно выполняется несколько программ пользователя. В этом режиме работа процессора организована таким образом, чтобы у него были исключены простои в работе. Например, при исполнении процессором первой программы возникает необходимость обращения к устройству ввода данных ( требуется ввести новые данные); в этом случае процессор выдает данному устройству команду произвести нужную операцию, а сам переходит к выполнению второй программы. По окончании операции ввода устройство посылает в процессор сигнал прерывания, реагируя на который ом прерывает выполнение второй программы и переключается вновь на работу первой программы.
 [7]

Мультипрограммный режим работы ВС требует чрезвычайно сложного комплекса управляющих программ ОС.
 [9]

Мультипрограммный режим работы ДОС / ЕС задается во время генерации системы. Для этого основная память ЭВМ делится на разделы ( один, два или три), в каждом из которых будет выполняться отдельная программа. Одновременно между разделами распределяются и логические устройства. Распределение физических устройств между разделами производится оператором. Одно и то же устройство, за исключением дисков и пишущей машинки, не может использоваться программами различных разделов. Операционная система управляет программами всех разделов, поэтому логическому устройству SYSRES назначается один и тот же диск во всех разделах, аналогично и для SYSLOG назначается одна пишущая машинка.
 [10]

Мультипрограммный режим работы ДОС / ЕС задается во время генерации системы. Для этого основная память ЭВМ делится на разделы ( один, два или три), в каждом из которых будет выполняться отдельная программа. Одновременно между разделами распределяются и логические устройства. Распределение физических устройств между разделами производится оператором. Одно и то же устройство, за исключением дисков и пишущей машинки, не может использоваться программами различных разделов. Операционная система управляет программами всех разделов, поэтому — логическому устройству SYSRES назначается один и тот же диск во всех разделах, аналогично и для SYSLOG назначается одна пишущая машинка.
 [11]

Мультипрограммный режим работы машины в реальном масштабе времени обеспечивает программа-диспетчер. Типовой вариант такой, программы входит в программное обеспечение машины. Наличие рабочих и профилактических тестов обеспечивает контроль работоспособности машины в целом и отдельных устройств. Локализация неисправности определяется с точностью до блока.
 [12]

Мультипрограммный режим работы машины в реальном масштабе времени задает программа-диспетчер. Типовой вариант такой программы входит в программное обеспечение машины. С помощью рабочих и профилактических тестов производится контроль работоспособности машины в целом и отдельных ее устройств. Неисправность определяется с точностью до блока.
 [13]

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

Под мультипрограммным режимом работы ЦВМ понимают такой режим, при котором машина ведет вычисления одновременно по нескольким программам.
 [15]

Страницы:  

   1

   2

   3

   4

Понравилась статья? Поделить с друзьями:
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Мультипрограммный режим работы микропроцессора
  • Мулатка новоалтайск режим работы
  • Мультипрограммный и мультизадачный режимы работы ос