🗊Презентация Межпроцессорное взаимодействие

Нажмите для полного просмотра!
Межпроцессорное взаимодействие, слайд №1Межпроцессорное взаимодействие, слайд №2Межпроцессорное взаимодействие, слайд №3Межпроцессорное взаимодействие, слайд №4Межпроцессорное взаимодействие, слайд №5Межпроцессорное взаимодействие, слайд №6Межпроцессорное взаимодействие, слайд №7Межпроцессорное взаимодействие, слайд №8Межпроцессорное взаимодействие, слайд №9Межпроцессорное взаимодействие, слайд №10Межпроцессорное взаимодействие, слайд №11Межпроцессорное взаимодействие, слайд №12Межпроцессорное взаимодействие, слайд №13Межпроцессорное взаимодействие, слайд №14Межпроцессорное взаимодействие, слайд №15Межпроцессорное взаимодействие, слайд №16Межпроцессорное взаимодействие, слайд №17Межпроцессорное взаимодействие, слайд №18Межпроцессорное взаимодействие, слайд №19Межпроцессорное взаимодействие, слайд №20Межпроцессорное взаимодействие, слайд №21Межпроцессорное взаимодействие, слайд №22Межпроцессорное взаимодействие, слайд №23Межпроцессорное взаимодействие, слайд №24Межпроцессорное взаимодействие, слайд №25Межпроцессорное взаимодействие, слайд №26Межпроцессорное взаимодействие, слайд №27Межпроцессорное взаимодействие, слайд №28Межпроцессорное взаимодействие, слайд №29

Содержание

Вы можете ознакомиться и скачать презентацию на тему Межпроцессорное взаимодействие. Доклад-сообщение содержит 29 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Межпроцессорное взаимодействие
Описание слайда:
Межпроцессорное взаимодействие

Слайд 2





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

Слайд 3





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

Слайд 4





Состояние состязания (2)
Описание слайда:
Состояние состязания (2)

Слайд 5





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

Слайд 6





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

Слайд 7





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

Слайд 8





Критические области
Взаимное исключение использования критических областей
Описание слайда:
Критические области Взаимное исключение использования критических областей

Слайд 9





Взаимное исключение с активным ожиданием 
Запрещение прерываний
Переменные блокировки
Строгое чередование
Алгоритм Петерсона
Команда TSL
Семафоры
Мьютексы
Мониторы
Передача сообщений
Барьеры
Описание слайда:
Взаимное исключение с активным ожиданием Запрещение прерываний Переменные блокировки Строгое чередование Алгоритм Петерсона Команда TSL Семафоры Мьютексы Мониторы Передача сообщений Барьеры

Слайд 10





Взаимное исключение
с активным ожиданием
способы реализации
Описание слайда:
Взаимное исключение с активным ожиданием способы реализации

Слайд 11





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

Слайд 12





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

Слайд 13





Переменные блокировки
Рассмотрим одну совместно используемую переменную блокировки, изначально равную 0. 
Если процесс хочет попасть в критическую область, он предварительно считывает значение переменной блокировки. 
Если переменная равна 0, процесс изменяет ее на 1 и входит в критическую область. 
Если же переменная равна 1, то процесс ждет, пока ее значение сменится на 0.
Описание слайда:
Переменные блокировки Рассмотрим одну совместно используемую переменную блокировки, изначально равную 0. Если процесс хочет попасть в критическую область, он предварительно считывает значение переменной блокировки. Если переменная равна 0, процесс изменяет ее на 1 и входит в критическую область. Если же переменная равна 1, то процесс ждет, пока ее значение сменится на 0.

Слайд 14





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

Слайд 15





Строгое чередование
Третий метод реализации взаимного исключения.
Описание слайда:
Строгое чередование Третий метод реализации взаимного исключения.

Слайд 16





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

Слайд 17





Алгоритм Петерсона
Описание слайда:
Алгоритм Петерсона

Слайд 18





Команда TSL
Рассмотрим решение, требующее участия аппаратного обеспечения. Многие компьютеры, особенно разработанные с расчетом на несколько процессоров, имеют команду 
TSL RX.LOCK (Test and Set Lock - проверить и заблокировать), которая действует следующим образом. 
В регистр RX считывается содержимое слова памяти lock, а в ячейке памяти lock сохраняется некоторое ненулевое значение. Гарантируется, что операция считывания слова и сохранения неделима - другой процесс не может обратиться к слову в памяти, пока команда не выполнена.
Описание слайда:
Команда TSL Рассмотрим решение, требующее участия аппаратного обеспечения. Многие компьютеры, особенно разработанные с расчетом на несколько процессоров, имеют команду TSL RX.LOCK (Test and Set Lock - проверить и заблокировать), которая действует следующим образом. В регистр RX считывается содержимое слова памяти lock, а в ячейке памяти lock сохраняется некоторое ненулевое значение. Гарантируется, что операция считывания слова и сохранения неделима - другой процесс не может обратиться к слову в памяти, пока команда не выполнена.

Слайд 19





Команда TSL
Описание слайда:
Команда TSL

Слайд 20





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

Слайд 21





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

Слайд 22





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

Слайд 23





Семафоры
В 1965 году Дейкстра (Е. W. Dijkstra) предложил использовать целую переменную для подсчета сигналов запуска, сохраненных на будущее. 
Им был предложен новый тип переменных, так называемые семафоры, значение которых может быть нулем (в случае отсутствия сохраненных сигналов активизации) или некоторым положительным числом, соответствующим количеству отложенных активизирующих сигналов.
Описание слайда:
Семафоры В 1965 году Дейкстра (Е. W. Dijkstra) предложил использовать целую переменную для подсчета сигналов запуска, сохраненных на будущее. Им был предложен новый тип переменных, так называемые семафоры, значение которых может быть нулем (в случае отсутствия сохраненных сигналов активизации) или некоторым положительным числом, соответствующим количеству отложенных активизирующих сигналов.

Слайд 24





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

Слайд 25





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

Слайд 26





Мьютексы
Мьютекс - переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. 
Для описания мьютекса требуется всего один бит, хотя чаще используется целая переменная, у которой 0 означает неблокированное состояние, а все остальные значения соответствуют блокированному состоянию. 
Значение мьютекса устанавливается двумя процедурами. Если поток собирается войти в критическую область, он вызывает процедуру mutex_lock. Если мьютекс не заблокирован, запрос выполняется и вызывающий поток может попасть в критическую область.
Описание слайда:
Мьютексы Мьютекс - переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Для описания мьютекса требуется всего один бит, хотя чаще используется целая переменная, у которой 0 означает неблокированное состояние, а все остальные значения соответствуют блокированному состоянию. Значение мьютекса устанавливается двумя процедурами. Если поток собирается войти в критическую область, он вызывает процедуру mutex_lock. Если мьютекс не заблокирован, запрос выполняется и вызывающий поток может попасть в критическую область.

Слайд 27





Мониторы
В 1974 году Хоар (Ноаге) и Бринч Хансен (Brinch Hansen) предложили примитив синхронизации более высокого уровня, называемый монитором. 
Монитор - набор процедур, переменных и других структур данных, объединенных в особый модуль или пакет. Процессы могут вызывать процедуры монитора, но у процедур, объявленных вне монитора, нет прямого доступа к внутренним структурам данных монитора.
Описание слайда:
Мониторы В 1974 году Хоар (Ноаге) и Бринч Хансен (Brinch Hansen) предложили примитив синхронизации более высокого уровня, называемый монитором. Монитор - набор процедур, переменных и других структур данных, объединенных в особый модуль или пакет. Процессы могут вызывать процедуры монитора, но у процедур, объявленных вне монитора, нет прямого доступа к внутренним структурам данных монитора.

Слайд 28





Передача сообщений
Этот метод межпроцессного взаимодействия использует два примитива: send и receive, которые скорее являются системными вызовами, чем структурными компонентами языка.
Например:
send(destination, Smessage); 
receive(source, &message); 
Первый запрос посылает сообщение заданному адресату, а второй получает сообщение от указанного источника. Если сообщения нет, второй запрос блокируется до поступления сообщения либо немедленно возвращает код ошибки.
Описание слайда:
Передача сообщений Этот метод межпроцессного взаимодействия использует два примитива: send и receive, которые скорее являются системными вызовами, чем структурными компонентами языка. Например: send(destination, Smessage); receive(source, &message); Первый запрос посылает сообщение заданному адресату, а второй получает сообщение от указанного источника. Если сообщения нет, второй запрос блокируется до поступления сообщения либо немедленно возвращает код ошибки.

Слайд 29





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



Похожие презентации
Mypresentation.ru
Загрузить презентацию