Слайд 2
![Мультипрограммирование Режим обработки данных, при котором ресурсы ВС предоставляются каждому](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-1.jpg)
Мультипрограммирование
Режим обработки данных, при котором ресурсы ВС предоставляются каждому процессу на
интервалы времени, длительность и очередность предоставления которых определяется управляющей программой этой системы с целью обеспечения одновременной работы в интерактивном режиме
Слайд 3
![Мультипрограммирование Повышается пропускная способность системы, но отдельный процесс не может](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-2.jpg)
Мультипрограммирование
Повышается пропускная способность системы, но отдельный процесс не может быть выполнен
быстрее, чем в однопрограммном режиме - разделение ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса (процессор, оперативную и внешнюю память, устройства ввода-вывода, данные)
Слайд 4
![Пример выполнения двух программ в мультипрограммном режиме](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-3.jpg)
Пример выполнения двух программ в мультипрограммном режиме
Слайд 5
![Мультипрограммирование Призвано повысить эффективность использования вычислительной системы с точки зрения:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-4.jpg)
Мультипрограммирование
Призвано повысить эффективность использования вычислительной системы с точки зрения:
пропускной способности
– количества задач, выполняемых вычислительной системой в единицу времени
удобства работы пользователей (возможность интерактивно работать одновременно с несколькими приложениями на одной машине)
реактивности системы – способности системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата
Слайд 6
![Мультипрограммирование Особенности организации мультипрограммирования в системах: пакетной обработки (пропускная способность)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-5.jpg)
Мультипрограммирование
Особенности организации мультипрограммирования в системах:
пакетной обработки (пропускная способность)
разделения времени (многопользовательская работа)
реального
времени (реактивность)
Слайд 7
![Мультипрограммирование в системах пакетной обработки Повышение эффективности использования процессора и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-6.jpg)
Мультипрограммирование
в системах пакетной обработки
Повышение эффективности использования процессора и во
избежание простоев ВС применяется переключение процессора в случае такого простоя на выполнение задачи, у которой есть данные для обработки.
Такой подход к реализации мультипрограммирования положен в основу пакетных систем
Слайд 8
![Мультипрограммирование в системах пакетной обработки Основное предназначение систем пакетной обработки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-7.jpg)
Мультипрограммирование
в системах пакетной обработки
Основное предназначение систем пакетной обработки – решать
вычислительные задачи, не требующие немедленного получения результатов
Главной целью и критерием эффективности систем пакетной обработки является пропускная способность (решение числа задач в единицу времени)
Слайд 9
![Мультипрограммирование в системах пакетной обработки Для достижения этой цели в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-8.jpg)
Мультипрограммирование
в системах пакетной обработки
Для достижения этой цели в начале
работы формируется пакет заданий («мультипрограммная смесь»), каждое из которых содержит требование к системным ресурсам
Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины (например, одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом)
Слайд 10
![Мультипрограммирование в системах разделения времени Призваны исправить основной недостаток систем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-9.jpg)
Мультипрограммирование
в системах разделения времени
Призваны исправить основной недостаток систем пакетной обработки
– изоляцию пользователя-программиста от процесса выполнения его задач.
Всем приложениям попеременно выделяется квант процессорного времени, и пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог за счет того, что ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор
Слайд 11
![Мультипрограммирование в системах разделения времени Если квант выбран небольшой, то](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-10.jpg)
Мультипрограммирование
в системах разделения времени
Если квант выбран небольшой, то у пользователей,
одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них использует ее единолично
Слайд 12
![Мультипрограммирование в системах разделения времени Обладают меньшей пропускной способностью, чем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-11.jpg)
Мультипрограммирование
в системах разделения времени
Обладают меньшей пропускной способностью, чем системы пакетной
обработки, так как:
на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе
происходит более частое переключение процессора с задачи на задачу
Слайд 13
![Мультипрограммирование в системах реального времени Еще одна разновидность мультипрограммирования используется](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-12.jpg)
Мультипрограммирование
в системах реального времени
Еще одна разновидность мультипрограммирования используется в
ОСРВ, предназначенных для управления (с помощью компьютера) различными техническими объектами или технологическими процессами
Критерий эффективности – реактивность (скорость реакции на изменения)
Слайд 14
![Мультипрограммирование в системах реального времени «Мультипрограммная смесь» представляет собой фиксированный](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-13.jpg)
Мультипрограммирование
в системах реального времени
«Мультипрограммная смесь» представляет собой фиксированный набор
заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из текущего состояния объекта) или в соответствии с расписанием плановых работ
Слайд 15
![Мультипрограммирование в системах реального времени Способность аппаратуры компьютера и ОСРВ](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-14.jpg)
Мультипрограммирование
в системах реального времени
Способность аппаратуры компьютера и ОСРВ к
быстрому ответу зависит в основном от скорости переключения одной задачи на другую (в частности, от скорости обработки сигналов прерывания)
Слайд 16
![Мультипрограммирование в системах реального времени Если для обработки прерывания процессор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-15.jpg)
Мультипрограммирование
в системах реального времени
Если для обработки прерывания процессор должен
опросить сотни потенциальных источников прерывания, то реакция системы будет слишком медленной.
Время обработки прерывания в ОСРВ часто определяет требования к классу процессора даже при небольшой его загрузке.
Слайд 17
![Мультипроцессорная обработка Мультипроцессорная обработка – это способ организации вычислительного процесса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-16.jpg)
Мультипроцессорная обработка
Мультипроцессорная обработка – это способ организации вычислительного процесса в
системах с несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы
Слайд 18
![Мультипроцессорная обработка В мультипроцессорных системах несколько задач могут реально выполняться](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-17.jpg)
Мультипроцессорная обработка
В мультипроцессорных системах несколько задач могут реально выполняться одновременно, т.к.
имеется несколько обрабатывающих устройств – процессоров.
Мультипроцессирование не исключает мультипрограммирования – на каждом из процессоров может попеременно выполняться некоторый закрепленный за данным процессором набор задач
Слайд 19
![Мультипроцессорная обработка Мультипроцессорная организация системы приводит к усложнению всех алгоритмов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-18.jpg)
Мультипроцессорная обработка
Мультипроцессорная организация системы приводит к усложнению всех алгоритмов управления ресурсами,
т.к. требуется планирование работы процессов для нескольких процессоров (возрастает число конфликтов по обращению к устройствам ввода-вывода, данным, общей памяти и совместно используемым программам)
Слайд 20
![Мультипроцессорная обработка Мультипроцессорные системы разделяют на симметричные и несимметричные При](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-19.jpg)
Мультипроцессорная обработка
Мультипроцессорные системы разделяют на симметричные и несимметричные
При этом следует четко
разделять, к какому аспекту мультипроцессорной системы относится эта характеристика – к типу архитектуры или к способу организации вычислительного процесса
Слайд 21
![Мультипроцессорная обработка С точки зрения архитектуры характеризуется: однородностью всех процессоров](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-20.jpg)
Мультипроцессорная обработка
С точки зрения архитектуры характеризуется:
однородностью всех процессоров и единообразием их
включения в общую схему системы
использованием одной большой разделяемой памяти между всеми процессорами
Слайд 22
![Мультипроцессорная обработка Функции поддержки симметричной мультипроцессорной обработки данных имеются во](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-21.jpg)
Мультипроцессорная обработка
Функции поддержки симметричной мультипроцессорной обработки данных имеются во всех популярных
ОС:
MS Windows NT/XP/Vista,
MS Windows Server 2003/2008,
QNX Neutrino
Слайд 23
![Мультипроцессорная обработка В асимметричной архитектуре разные процессоры могут отличаться как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-22.jpg)
Мультипроцессорная обработка
В асимметричной архитектуре разные процессоры могут отличаться как своими характеристиками
(производительностью, надежностью, системой команд и т.д., вплоть до модели микропроцессора), так и функциональной ролью в системе (например, одни – для основных вычислений, другие – для управления подсистемой ввода-вывода)
Слайд 24
![Мультипроцессорная обработка С точки зрения организации вычислительного процесса асимметричное мультипроцессирование](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-23.jpg)
Мультипроцессорная обработка
С точки зрения организации вычислительного процесса асимметричное мультипроцессирование является наиболее
простым способом организации вычислительного процесса в системах с несколькими процессорами (способ «ведущий-ведомый»).
Этот способ предполагает выделение одного из процессоров в качестве «ведущего», на котором работает ОС и который управляет всеми остальными «ведомыми» процессорами.
Слайд 25
![Мультипроцессорная обработка В этом случае «ведущий» процессор берет на себя](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-24.jpg)
Мультипроцессорная обработка
В этом случае «ведущий» процессор берет на себя функции распределения
задач и ресурсов, а «ведомые» процессоры работают только как обрабатывающие устройства и никаких действий по организации работы вычислительной системы не выполняют.
Учитывая то, что ОС работает исключительно на одном процессоре и функции управления централизованы, то такая система по сложности схожа с ОС однопроцессорной системы.
Слайд 26
![Мультипроцессорная обработка Асимметричная организация вычислительного процесса может быть реализована как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-25.jpg)
Мультипроцессорная обработка
Асимметричная организация вычислительного процесса может быть реализована как для симметричной
мультипроцессорной архитектуры, в которой все процессоры аппаратно неразличимы, так и для несимметричной, для которой характерна неоднородность процессоров, их специализация на аппаратном уровне
Слайд 27
![Мультипроцессорная обработка Симметричное мультипроцессирование как способ организации вычислительного процесса может](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-26.jpg)
Мультипроцессорная обработка
Симметричное мультипроцессирование как способ организации вычислительного процесса может быть реализовано
исключительно в системах с симметричной мультипроцессорной архитектурой.
Слайд 28
![Роль прерываний Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-27.jpg)
Роль прерываний
Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств
вычислительной системы и реагировать на особые состояния, возникающие при работе процессора
Структуры систем прерывания могут быть различными, но их общая особенность – прерывание непременно влечет за собой изменение порядка выполнения команд процессором
Слайд 29
![Роль прерываний при мультипрограммировании Прерывание – это принудительная передача управления](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-28.jpg)
Роль прерываний при мультипрограммировании
Прерывание – это принудительная передача управления от выполняемой
программы к системе (а через нее – к соответствующей программе обработки прерывания), происходящая при возникновении определенного события
Слайд 30
![Главные функции механизма прерываний распознавание или классификация прерываний передача управления](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-29.jpg)
Главные функции
механизма прерываний
распознавание или классификация прерываний
передача управления
соответствующему обработчику прерываний
корректное возвращение к прерванной программе
Слайд 31
![Обработчик прерываний Обработчик прерываний – специальная процедура, вызываемая по прерыванию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-30.jpg)
Обработчик прерываний
Обработчик прерываний – специальная процедура, вызываемая по прерыванию для выполнения
его обработки.
Может выполнять множество функций, в зависимости от причины, вызвавшей прерывание. Вид функции, исполняемой обработчиком в каждом конкретном случае, определяется в соответствии с таблицей векторов прерываний, размещаемой в определенном месте адресного пространства.
Слайд 32
![Классификация прерываний В зависимости от источника все прерывания делят на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-31.jpg)
Классификация прерываний
В зависимости от источника все прерывания делят на два
класса:
1) аппаратные (внешние и внутренние)
2) программные
Слайд 33
![Классификация прерываний Аппаратные (англ. Interrupt Request – IRQ) – события](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-32.jpg)
Классификация прерываний
Аппаратные (англ. Interrupt Request – IRQ) – события от
периферийных устройств или события в микропроцессоре, возникающие вследствие подачи некоторой аппаратурой электрического сигнала, который передается на специальный вход прерывания процессора
Слайд 34
![Классификация прерываний Внешними будут прерывания, инициированные вне прерываемого процесса (например,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-33.jpg)
Классификация прерываний
Внешними будут прерывания, инициированные вне прерываемого процесса (например, нажатия
клавиш клавиатуры, движение мыши, сигнал от таймера, сетевой карты, дискового накопителя), а внутренними – те, что происходят в микропроцессоре
Слайд 35
![Классификация прерываний Внешние прерывания являются асинхронными по отношению к потоку](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-34.jpg)
Классификация прерываний
Внешние прерывания являются асинхронными по отношению к потоку инструкций
прерываемой программы (возникают между выполнением двух соседних инструкций)
Слайд 36
![Классификация прерываний Внутренние прерывания, происходят в микропроцессоре и инициируются синхронно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-35.jpg)
Классификация прерываний
Внутренние прерывания, происходят в микропроцессоре и инициируются синхронно выполнению
программы при появлении аварийной ситуации в ходе исполнения некоторой инструкции программы (нарушение адресации, деление на ноль, переполнение и др.)
Слайд 37
![Классификация прерываний Программные прерывания возникают (синхронно) при исполнении особой команды](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-36.jpg)
Классификация прерываний
Программные прерывания возникают (синхронно) при исполнении особой команды процессора,
которая имитирует действия, сходные с действиями при обычных внутренних прерываниях
Слайд 38
![Классификация прерываний Механизм введен для того, чтобы переключение на системные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-37.jpg)
Классификация прерываний
Механизм введен для того, чтобы переключение на системные программные
модули происходило не просто как переход на подпрограмму, а точно таким же образом, как и обычное прерывание - обеспечивая автоматическое переключение процессора в привилегированный режим с возможностью исполнения любых команд ОС
Слайд 39
![Схема обработки прерываний в однопрограммной ОС](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-38.jpg)
Схема обработки прерываний в однопрограммной ОС
Слайд 40
![Механизм обработки прерываний Наличие сигнала прерывания необязательно должно вызывать прерывание](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-39.jpg)
Механизм обработки прерываний
Наличие сигнала прерывания необязательно должно вызывать прерывание исполняющейся программы.
Процессор
может обладать средствами защиты от прерываний – отключение системы прерываний, маскирование (запрет) отдельных сигналов прерывания
Слайд 41
![Механизм обработки прерываний Программное управление этими средствами (специальные команды) позволяет](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-40.jpg)
Механизм обработки прерываний
Программное управление этими средствами (специальные команды) позволяет ОС регулировать
обработку сигналов прерывания.
Обычно операция прерывания выполняется только после завершения выполнения текущей команды
Слайд 42
![Механизм обработки прерываний Шаг 1. Установление факта прерывания и идентификация](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-41.jpg)
Механизм обработки прерываний
Шаг 1. Установление факта прерывания и идентификация прерывания
Шаг 2. Запоминание
состояния прерванного процесса вычислений (счетчик команд, содержимое регистров процессора, спецификацию режима и др.)
Шаг 3. Управление аппаратно передается на подпрограмму обработки прерывания
Слайд 43
![Механизм обработки прерываний Шаг 4. Сохранение информации о прерванной программе,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-42.jpg)
Механизм обработки прерываний
Шаг 4. Сохранение информации о прерванной программе, которую не
удалось «спасти» на шаге 2 с помощью аппаратуры.
Шаг 5. Собственно выполнение программы, связанной с обработкой прерывания.
Шаг 6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).
Шаг 7. Возврат на прерванную программу.
Шаги 1-3 реализуются аппаратно,
шаги 4-7 – программно.
Слайд 44
![Приоритет прерываний Сигналы, вызывающие прерывания, формируются вне процессора или в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-43.jpg)
Приоритет прерываний
Сигналы, вызывающие прерывания, формируются вне процессора или в процессоре,
могут возникать одновременно.
Поэтому неотъемлемым элементом обработки прерываний является механизм приоритетов прерываний с использованием различных дисциплин обслуживания, с помощью которого они ранжируются по степени важности и срочности
Слайд 45
![Приоритет прерываний Прерывания от схем контроля процессора должны обладать наивысшим](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-44.jpg)
Приоритет прерываний
Прерывания от схем контроля процессора должны обладать наивысшим приоритетом
(если аппаратура работает некорректно нет смыла продолжать обработку), а например, программные – самым низким
Учет приоритета может быть встроен в технические средства, а также определяться ОС
Слайд 46
![Распределение прерываний по уровням приоритета](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-45.jpg)
Распределение прерываний по уровням приоритета
Слайд 47
![Дисциплины обслуживания с относительными приоритетами (обслуживание не прерывается даже при](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-46.jpg)
Дисциплины обслуживания
с относительными приоритетами (обслуживание не прерывается даже при наличии запросов
с более высокими приоритетами, маскируются все остальные сигналы прерывания или отключается система прерываний)
с абсолютными приоритетами (всегда обслуживается прерывание с наивысшим приоритетом, маскируются все запросы с более низкими приоритетами)
по принципу стека (в соответствие LCFS запросы с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом, не накладывается маска ни на один сигнал прерывания и не выключается система прерываний)
Слайд 48
![Супервизор прерываний Поскольку в при каждой обработке прерывания необходимо выполнять](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/589671/slide-47.jpg)
Супервизор прерываний
Поскольку в при каждой обработке прерывания необходимо выполнять действия связанные
с сохранением контекста задачи, сменой режимов работы прерываний (маскированием), определением адреса подпрограммы, на которую следует передать управление, в ОС эти действия реализованы в специальном системном программном модуле – супервизоре прерываний