Скачать презентацию Управление процессами и процессорами Управление процессами и Скачать презентацию Управление процессами и процессорами Управление процессами и

спо(управление прц9_03_11).ppt

  • Количество слайдов: 80

Управление процессами и процессорами Управление процессами и процессорами

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

Процесс: • часть задания, это понятие многогранно. Задание состоит из шагов, а шаги распадаются Процесс: • часть задания, это понятие многогранно. Задание состоит из шагов, а шаги распадаются на процессы; • вычисление, которое может быть выполнено параллельно с другими вычислениями; • программа в стадии выполнения; • асинхронная работа процессора; • "живая душа" процедуры; • концентрация средств управления для выполнения процедуры; • блок управления процессом в ОС; • объект, которому выделяются процессоры; • диспетчируемый модуль – тот, чтоб обслуживается диспетчером. Процесс обрабатывается, когда задание переходит от стадии хранения к стадии готовности, происходит выделение памяти.

Состояния процесса Иерархическая структура задания Состояния процесса Иерархическая структура задания

Операции над процессами и потоками • Создание и образование процессов; • Уничтожение; • Приостановка Операции над процессами и потоками • Создание и образование процессов; • Уничтожение; • Приостановка и возобновление процесса; • Изменение приоритета процесса; • Запуск или выбор процесса; • Блокирование и пробуждение; • Переход к готовности по истечении кванта времени

Состояния процесса Состояния процесса

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

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

БУП – структура, позволяющая иметь системе все сведения о процессе, необходимые для работы. дескриптор БУП – структура, позволяющая иметь системе все сведения о процессе, необходимые для работы. дескриптор процесса БУП контекст процесса –содержится в TSS (сегменте состо Он содержит сведения, необходимые для возобновления выполнения процесса при вызове на процессор.

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

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

С 1 I 1 С 2 I 2 С 3 I 3 31 мин С 1 I 1 С 2 I 2 С 3 I 3 31 мин

С I С I

Показатели, характеризующие мультипрограммирование: 1. Коэффициент времени ожидания устройств вводавывода, т. е. время простоя устройства: Показатели, характеризующие мультипрограммирование: 1. Коэффициент времени ожидания устройств вводавывода, т. е. время простоя устройства: 2. Коэффициент использования времени процессора

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

Виды многозадачности, обеспечиваемые ОС. 1. Добровольная многозадачность - переключение на другую задачу тогда, когда Виды многозадачности, обеспечиваемые ОС. 1. Добровольная многозадачность - переключение на другую задачу тогда, когда решаемая задача по внутренним причинам переходит в режим ожидания в связи с необходимостью других действий, чаще всего ВВ; 2. Вытесняющая многозадачность - переключение при котором происходит принудительное, по инициативе ОС по истечению заданного кванта времени. Достоинства систем с мультипрограммированием: 1. повышение коэффициента использования процессора на 70 -80%; 2. снижение коэффициента ожидания ввода-вывода.

Недостатки систем с мультипрограммированием: 1. требуется специальная организация ОС, обеспечивающая переключение между задачами, т. Недостатки систем с мультипрограммированием: 1. требуется специальная организация ОС, обеспечивающая переключение между задачами, т. е. требуется планировщик процессов; 2. необходимо предусмотреть специальные команды для организации переключения вычислительных процессов; 3. необходима реализация системы прерывания процессов; 4. необходимо предусмотреть систему защиты процессов друг от друга; 5. увеличивается гарантированное время решения задачи - время от запуска до получения результата.

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

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

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

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

Дисциплины (алгоритмы) планирования • планирование по принципу FIFO ( «первый вошел – первый вышел» Дисциплины (алгоритмы) планирования • планирование по принципу FIFO ( «первый вошел – первый вышел» ) – без переключений, однозадачный режим. • циклическое планирование RR – осуществляется по принципу FIFO, но с переключениями (мультизадачный). • планирование по принципу «кротчайшее задание – первое» - SJF - без переключений. • планирование по принципу SRF – то же, что и SJF, но с переключениями. • планирование по принципу наибольшего относительного времени реакции HRN – без переключений. • многоуровневые очереди с обратными связями.

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

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

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

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

Время ожидания в очереди процесса Т= q(n-1) 1 2 . . . 3 n Время ожидания в очереди процесса Т= q(n-1) 1 2 . . . 3 n очередь готовых процессов (потоков) ЦП Общее время решения задачи Тн = Тз/q*n Такой подход обеспечивает приемлемое время ответа.

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

Алгоритмы планирования, основанные на приоритетах Алгоритмы планирования, основанные на приоритетах

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

В ОС Windows. NT pазличают 32 уровня приоритетов В ОС Windows. NT pазличают 32 уровня приоритетов

При приоритетном планировании различаются 2 разновидности: обслуживание с относительными приоритетами При приоритетном планировании различаются 2 разновидности: обслуживание с относительными приоритетами

и с абсолютными приоритетами и с абсолютными приоритетами

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

Смешанные алгоритмы планирования Смешанные алгоритмы планирования

Смешанные алгоритмы планирования Windows NT наряду с вышеописанными используется квантование. Система Unix – 7 Смешанные алгоритмы планирования Windows NT наряду с вышеописанными используется квантование. Система Unix – 7 -8 лет назад достаточно совершенная Unix System V Release 4. Один процесс может инициировать другие. Реализуется вытесняющая система, основанная на использовании приоритетов и квантованиях. 3 приоритетных класса: – класс реального времени; – класс системных процессов; – класс процессов разделения времени.

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

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

Выбор потока осуществляется: 3. Приоритет потока автоматически повышается, поступая на выполнения. В роли приоритета Выбор потока осуществляется: 3. Приоритет потока автоматически повышается, поступая на выполнения. В роли приоритета используется изменение кванта времени. Границы кванта времени можно задать при настройке 32 ≤ τк < 65536 мс. Если поток был прерван до истечения кванта, то следующий выделенный ему квант будет увеличен на время, равное одному периоду таймера: τт = 32 мс и так до тех пор, пока квант не доставляет заданного предела.

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

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

Планирование в системах реального времени (СРВ) Планирование в системах реального времени (СРВ)

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

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

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

Для жестких систем реального времени используется классический алгоритм с одним процессором. В 1973 году Для жестких систем реального времени используется классический алгоритм с одним процессором. В 1973 году Лью и Лейланд создали динамический алгоритм. Он использует вытесняющую многозадачность, основан на относительных статических приоритетах. Основан на следующих предположениях: • запросы на выполнение всех задач набора, имеющих жесткие ограничения на время реакции, являются периодическими. • все задачи независимы, т. е. между любой парой задач не существует никаких ограничений на предшествование и взаимное исключение. • срок выполнение каждой задачи равен ее периоду τвi ~ pi; • максимальное время выполнения каждой задачи постоянно τmaxi=ci=const; • время переключения контекста можно игнорировать τперекл. з. =0;

классический алгоритм с одним процессором(продолжение) • (вывод) суммарный максимальный загрузки процессора коэффициент при существовании классический алгоритм с одним процессором(продолжение) • (вывод) суммарный максимальный загрузки процессора коэффициент при существовании n задач в системе не превосходит величины Суть всем задачам назначается статические приоритеты, в соответствии с величиной их выполнения, самый короткий период – самый высокий приоритет ri = 1/pi. При выполнении временных ограничений для всех задач при любых ситуациях. Если периоды повторения задач кратны периоду выполнения самой короткой задачи, то требуется к максимальному коэффициенту загрузки смягчаются и он может доходить до единицы.

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

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

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

Поэтому в больших ОС используется централизованная схема обслуживания системных вызовов. При этом схема имеет Поэтому в больших ОС используется централизованная схема обслуживания системных вызовов. При этом схема имеет диспетчер системных вызовов. Диспетчер помещается в ВАП. В диспетчере системных вызовов есть таблица адресов системных вызовов. «+» : возможность модифицировать состав системных вызовов.

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

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

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

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

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

Семафоры (Дийкстры) Семафор – обобщенное понятие блокирующих переменных, но может принимать множество целых положительных Семафоры (Дийкстры) Семафор – обобщенное понятие блокирующих переменных, но может принимать множество целых положительных значений, включая 0. P(S) – уменьшает семафор на единицу, если это возможно. S: = S-1 если S > 0 Если поток, вызывающий операцию P при S= 0 ждёт, пока S не станет > 0, пока не станет это уменьшение возможным. V(S): S: =S+1; При операции V переменная S доступ к другим потокам запрещён. Эти действия не могут быть прерваны. Применяется при обмене информацией между буферами и внешними устройствами. Классический пример работы с семафорами чтения или записи через буфер. Пусть часть буфера занята, а часть свободна.

Пока буферный набор свободен e = N, a f = 0. Начинаем работу с Пока буферный набор свободен e = N, a f = 0. Начинаем работу с буферами. Семафор должен приобрести значение «+1» . Количество свободных буф. уменьшится. Далее происходит запись в ресурс, V(f) – увеличится. P(f) – уменьшится. Чтение из буфера V(e) – увеличится количество свободных.

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

4. Алгоритм банкира (алгоритм Дийкстры). Для обеспечения надежности требуются резервы, обеспечивающие возможность завершения хотя 4. Алгоритм банкира (алгоритм Дийкстры). Для обеспечения надежности требуются резервы, обеспечивающие возможность завершения хотя бы одного задания. Пусть имеется 12 однотипных устройств и 3 пользователя, и им выделены ресурсы: Выделен Пользо ные ватель ресурсы П 1 1(2) П 2 4 П 3 5 Резерв 1(2) Требуем ые ресурсы 4 6 8

6. Алгоритм запрещения запуска процесса. Пусть в системе n процессов и m типов ресурсов: 6. Алгоритм запрещения запуска процесса. Пусть в системе n процессов и m типов ресурсов: R = [ R 1, R 2, . . . , Rm ] – вектор занятых ресурсов; V = [ V 1, V 2, . . . , Vm ] – вектор свободных ресурсов, не выделенных никакому процессу; – матрица требуемых ресурсов

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

Тупики Обнаружение тупиков и восстановление работоспособного состояния. Р 1 П 2 П 3 Р Тупики Обнаружение тупиков и восстановление работоспособного состояния. Р 1 П 2 П 3 Р 2 Один из методов обнаружения тупика – редукция графа распределения ресурса и запросов. Редукция – приведение графа к состоянию, в котором все процессы будут завершены. Ситуация, когда граф не может быть редуцирован путем завершением процесса, тогда и возникает тупик. Процесс П 2 может быть завершен и освободит занимаемый ресурс, а затем завершаться П 3 и П 1.

Мультипроцессорные системы Типы ВС SISD – один поток команд и один поток данных (однопроцессорная Мультипроцессорные системы Типы ВС SISD – один поток команд и один поток данных (однопроцессорная система); SIMD – один поток команд, много потоков данных; MISD – много потоков команд, один поток данных; MIMD – много потоков команд, много потоков данных. Мультипроцессорные системы – системы, которые имеют два или более процессоров. Цели создания: • повышение эффективности • повышение надежности, готовности; • повышение производительности;

Методы распараллеливания • явный параллелизм (программист сам определяет в программе возможность выполнения действий в Методы распараллеливания • явный параллелизм (программист сам определяет в программе возможность выполнения действий в параллельном режиме). Достоинства – простота трансляции для ОС, учет параллельности. Недостатки – большая ответственность программиста, сложность модификации программы; • неявный параллелизм (автоматическое обнаружение параллелизма и распараллеливания). • распараллеливание вычислений за счет уменьшения высоты дерева вычислений 1. Уменьшение высоты дерева за счет ассоциативности: ((p+q)+r)+S = (p+q)+(r+S) – в результате получается только два уровня.

+ + + S r + p + q + p r q Уменьшение + + + S r + p + q + p r q Уменьшение высоты p+(q*r)+S = (q*r)+(p+S) за счет S коммутативности: + + + S p * r * q + r p q S

 • Уменьшение высоты за счет дистрибутивности: p*(q*r*S+t) = (q*r)*(p*S)+(p*t) * + + p • Уменьшение высоты за счет дистрибутивности: p*(q*r*S+t) = (q*r)*(p*S)+(p*t) * + + p * t * r * q r S * r * p q q * S • расщепление цикла for i: = 1 to N do r[i]: = a[i]+b[i]; V=10, Кпрц =3. mпрц 1 2 3 1 такт 1(1) 2(5) 3(8) 2 такт 4(2) 5(6) 6(9) 3 такт 7(3) 8(7) 9(10) 4 такт

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

Достоинства – простота ОС; надежность работы с небольшими определенными нагрузками. Недостатки – меньшая надежность Достоинства – простота ОС; надежность работы с небольшими определенными нагрузками. Недостатки – меньшая надежность и возможность чрезмерной перегрузки главного процессора и снижения эффективности при небольшом количестве заданий пользователя.

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

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

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

Достоинства: 1. наиболее эффективная и надежная, т. к. при выходе из строя некоторых процессоров Достоинства: 1. наиболее эффективная и надежная, т. к. при выходе из строя некоторых процессоров замечается лишь некоторое снижение эффективности; 2. наиболее эффективное использование ресурсов, каждый ресурс может отдаваться процессорам; 3. легче сбалансировать нагрузку системы в целом; 4. достаточная защита от конфликтов. Недостаток – сложность ОС (при передаче задач).

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

Недостатки: 1. Более сложная ОС и существенно большие накладные расходы на ее работу; 2. Недостатки: 1. Более сложная ОС и существенно большие накладные расходы на ее работу; 2. При достижении максимальных возможностей системы требуется значительные затраты на приобретение нового аппаратного вычислительного комплекса

Требования к мультипроцессорным ОС для сохранения работоспособности вычислительного комплекса в случае аппаратных ошибок необходимо: Требования к мультипроцессорным ОС для сохранения работоспособности вычислительного комплекса в случае аппаратных ошибок необходимо: • 1. Критические данные для системы и различных процессов должны иметь несколько копий, которые должны размещаться в различных модулях памяти; • 2. ОС должна эффективно управлять как максимальной конфигурацией аппаратных средств, так и сокращенной вследствие отказа какой-либо части оборудования; • 3. ОС должна обеспечивать передачу процессов с одного процессора на другой в случае выхода одного из строя.