Презентация Системные механизмы. Синхронизация процессов онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Системные механизмы. Синхронизация процессов абсолютно бесплатно. Урок-презентация на эту тему содержит всего 47 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Системные механизмы. Синхронизация процессов
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:47 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.04 MB
- Просмотров:72
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№8 слайд
![Главная синхронизация -](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img7.jpg)
Содержание слайда: Главная синхронизация - Всегда держите Единого в поле зрения,
и ничто не принесёт вам вреда
Мудрость — это видение Единого везде. Это всеохватывающее единство — Тотальность — и есть Истина. Найдите это единство и постоянно держите его в поле зрения. Если все ваши действия будут основаны на Едином, они станут священными и чистыми. Если вы совершаете все действия во имя Единого, вы будете освящены и наполнены мудростью.
№13 слайд
![Пусть два процессора](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img12.jpg)
Содержание слайда: Пусть два процессора обслуживают каждый свой процесс и эти процессы, примерно, в одно и то же время блокируются по вводу-выводу. Выполнив процедуру сохранения состояния прерванных процессов, каждый процессор выбирает себе следующий процесс для обслуживания. Поскольку оба процессора применяют при этом один и тот же алгоритм независимо друг от друга, они выберут в качестве следующего один и тот же процесс. Кроме этой ошибки, при обработке очереди готовых процессов возможны и другие ошибки. Например, может быть пропущен процесс, который следовало обслужить, как это показано на рис. 9.
№15 слайд
![Перед обращением к очереди](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img14.jpg)
Содержание слайда: Перед обращением к очереди готовых процессов каждый процессор должен проверить состояние специального «бита блокировки». Если этот бит не включен, значит, в настоящий момент данные, отображающие состояние процессов в очереди, не используются никаким другим процессором. В этом случае ищущий» процессор включает бит блокировки и приступает к работе с очередью. После завершения обработки процессор должен вернуть бит в состояние «выключен». Если второй процессор во время этой обработки попробует получить доступ к очереди, то он найдет бит блокировки, включенным и будет ожидать снятия блокировки. В таких условиях втоpой процессор как бы приостанавливается (не может выполнять полезной работы) .
№16 слайд
![Эта ситуация называется](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img15.jpg)
Содержание слайда: Эта ситуация называется программной блокировкой процессора. То же самое может случиться не только со вторым, но и с третьим, и четвертым процессорами или даже с любым числом процессоров одновременно. Отметим, что в конфликтных ситуациях важна не только координация, но и кооперация процессов. Если процесс «забудет» освободить назначенный ему ресурс, этот ресурс уже никогда не будет доступен для использования никакими другими процессами. На практике реализуют принудительное освобождение операционной системой всех назначенных процессу ресурсов при его завершении.
№18 слайд
![Команда ПРОВЕРИТЬ И](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img17.jpg)
Содержание слайда: Команда ПРОВЕРИТЬ И УСТАНОВИТЬ (TEST-AND-SET)
Перед обращением к ресурсу процесс должен выполнить следующие шаги:
1. Проверить значение байта блокировки (0 или 1).
2. Установить байт блокировки в 1.
3. Если первоначальное значение байта блокировки было равно 1, вернуться к шагу 1.
После завершения использования ресурса процесс должен установить байт блокировки в 0.
№19 слайд
![Механизмы ОЖИДАНИЕ и](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img18.jpg)
Содержание слайда: Механизмы ОЖИДАНИЕ и ОПОВЕЩЕНИЕ.
ЗАНЯТЬ (Х):
1. Проверить значение байта блокировки (0 или 1).
2. Установить байт блокировки в 1.
3. Если первоначальное значение байта блокировки было
равно 1, выполнить функцию ОЖИДАНИЕ (Х).
ОСВОБОДИТЬ (Х):
1. Установить байт блокировки в 0.
2. Выполнить функцию ОПОВЕЩЕНИЕ (Х).
№21 слайд
![Операции Р и V над считающими](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img20.jpg)
Содержание слайда: Операции Р и V над считающими семафорами.
Р (S):
1. Уменьшить значение S на 1 (S: = S - 1).
2. Если S меньше 0, выполнить ОЖИДАНИЕ (S).
V(S):
1. Увеличить значение S на 1 (S:=S+ 1).
2. Если S больше либо равно 0, выполнить ОПОВЕЩЕНИЕ (S).
Читателю следует еще раз убедиться, что синхронизация действительно реализуется. Полезным методом изучения взаимодействия семафоров является рассмотрение последовательности событий, как это показано на рис. 11 для случая п = 2.
№22 слайд
![Пример Рассмотрим](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img21.jpg)
Содержание слайда: Пример
Рассмотрим использование семафоров на классическом примере взаимодействия двух выполняющихся в режиме мультипрограммирования потоков, один из которых пишет данные в буферный пул, а другой считывает их из буферного пула. Пусть буферный пул состоит из N буферов, каждый из которых может содержать одну запись. В общем случае поток-писатель и поток-читатель могут иметь различные скорости и обращаться к буферному пулу с переменой интенсивностью. В один период скорость записи может превышать скорость чтения, в другой — наоборот. Для правильной совместной работы поток-писатель должен приостанавливаться, когда все буферы оказываются занятыми, и активизироваться при освобождении хотя бы одного буфера. Напротив, поток-читатель должен приостанавливаться, когда все буферы пусты, и активизироваться при появлении хотя бы одной записи.
№23 слайд
![Введем два семафора е число](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img22.jpg)
Содержание слайда: Введем два семафора: е — число пустых буферов, и f — число заполненных буферов, причем в исходном состоянии е =N, a f =0. Тогда работа потоков с общим буферным пулом может быть описана следующим образом (рис. 4.20).
Поток-писатель прежде всего выполняет операцию Р(е), с помощью которой он проверяет, имеются ли в буферном пуле незаполненные буферы. В соответствии с семантикой операции Р, если семафор е равен 0 (то есть свободных буферов в данный момент нет), то поток-писатель переходит в состояние ожидания. Если же значением е является положительное число, то он уменьшает число свободных буферов, записывает данные в очередной свободный буфер и после этого наращивает число занятых буферов операцией V(f). Поток-читатель действует аналогичным образом, с той разницей, что он начинает работу с проверки наличия заполненных буферов, а после чтения данных наращивает количество свободных буферов.
№25 слайд
![В данном случае](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img24.jpg)
Содержание слайда: В данном случае предпочтительнее использовать семафоры вместо блокирующих переменных. Действительно, критическим ресурсом здесь является буферный пул, который может быть представлен как набор идентичных ресурсов — отдельных буферов, а значит, с буферным пулом могут работать сразу несколько потоков, и именно столько, сколько буферов в нем содержится. Использование двоичной переменной не позволяет организовать доступ к критическому ресурсу более чем одному потоку. Семафор же решает задачу синхронизации более гибко, допуская к разделяемому пулу ресурсов заданное количество потоков. Так, в нашем примере с буферным пулом могут работать максимум N потоков, часть из которых может быть «писателями», а часть — «читателями».
Таким образом, семафоры позволяют эффективно решать задачу синхронизации Доступа к ресурсным пулам, таким, например, как набор идентичных в функциональном назначении внешних устройств (модемов, принтеров, портов), или набор областей памяти одинаковой величины, или информационных структур. Во всех этих и подобных им случаях с помощью семафоров можно организовать доступ к разделяемым ресурсам сразу нескольких потоков.
№26 слайд
![Синхронизация посредством](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img25.jpg)
Содержание слайда: Синхронизация посредством сообщений.
В случаях, аналогичных задаче производства/потребления, проблема также может быть решена путем непосредственного обмена сообщениями между процессами. Для этого используются операции ПОСЛАТЬ (Pr, М) и ПРИНЯТЬ (Рs, M), где Pr , и Ps - идентификаторы процессов, а М - сообщение (некая строка символов).
Клинчи.
Существуют следующие способы борьбы с клинчами:
1. Предварительное распределение всех совместно используемых
ресурсов.
2. Контроль над распределением:
а) регулируемое распределение;
б) стандартная последовательность распределения.
3. Обнаружение и восстановление.
№27 слайд
![В рассмотренных примерах](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img26.jpg)
Содержание слайда: В рассмотренных примерах тупик был образован двумя потоками, но взаимно блокировать друг друга может и большее число потоков. На рис. 2.23 показано такое распределение ресурсов Ri между несколькими потоками Tj, которое привело к возникновению взаимных блокировок. Стрелки обозначают потребность потока в ресурсах. Сплошная стрелка означает, что соответствующий ресурс был выделен потоку, а пунктирная стрелка соединяет поток с тем ресурсом, который необходим, но не может быть пока выделен, поскольку занят другим потоком. Например, потоку Т1 для выполнения работы необходимы ресурсы R1 и R2, из которых выделен только один — R1, а ресурс R2 удерживается потоком Т2. Ни один из четырех показанных на рисунке потоков не может продолжить свою работу, так как не имеет всех необходимых для этого ресурсов.
№28 слайд
![Невозможность потоков](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img27.jpg)
Содержание слайда: Невозможность потоков завершить начатую работу из-за возникновения взаимных блокировок снижает производительность вычислительной системы. Поэтому проблеме предотвращения тупиков уделяется большое внимание. На тот случай, когда взаимная блокировка все же возникает, система должна предоставить администратору-оператору средства, с помощью которых он смог бы распознать тупик, отличить его от обычной блокировки из-за временной недоступности ресурсов. И наконец, если тупик диагностирован, то нужны средства для снятия взаимных блокировок и восстановления нормального вычислительного процесса.
№30 слайд
![Синхронизация в Windows .](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img29.jpg)
Содержание слайда: Синхронизация в Windows 2000.
Пример потребности в синхронизации
Поскольку второй поток получил значение указателя на конец очереди до того, как первый поток завершил его обновление, второй вставил свои данные в то же место, что и первый. Таким образом, данные первого потока были перезаписаны другими данными, а один участок очереди остался пустым.
№31 слайд
![Синхронизация ядра Механизм,](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img30.jpg)
Содержание слайда: Синхронизация ядра
Механизм, применяемый ядром для взаимоисключения в многопроцессорных системах, называется спин-блокировкой (spinlock). Спин-блокировка — это блокирующий примитив, сопоставленный с какой-либо глобальной структурой данных вроде очереди DPC (рис. 3-18).
Во многих архитектурах спин-блокировка реализуется аппаратно поддерживаемой командой test-and-set, которая проверяет значение переменной блокировки и устанавливает блокировку, выполняя всего одну атомарную команду.
Всем спин-блокировкам режима ядра в Windows 2000 назначен IRQL, всегда соответствующий уровню «DPC/dispatch» или выше. Поэтому, когда поток пытается установить спин-блокировку, все действия на этом или более низком уровне IRQL на данном процессоре прекращаются.
№33 слайд
![Спин-блокировки ядра](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img32.jpg)
Содержание слайда: Спин-блокировки ядра накладывают ограничения на использующий их код. Как уже отмечалось, их IRQL всегда равен «DPC/dispatch», поэтому установивший спин-блокировку код может привести к краху системы, если попытается заставить планировщик выполнить операцию диспетчеризации или вызовет ошибку страницы.
В Windows 2000 появился особый тип спин-блокировки — с очередью (queued spinlock), применяемый только ядром и недоступный другим компонентам исполнительной системы или драйверам устройств. Тот факт, что спин-блокировка с очередью устанавливает флаги, а не глобальные блокировки, имеет два следствия. Во-первых, уменьшается интенсивный трафик, связанный с межпроцессорной синхронизацией. Во-вторых, вместо случайного выбора процессора из группы ожидающих спин-блокировку, реализуется четкий порядок спин-блокировки по типу FIFO («первым вошел, первым вышел»). Такой порядок позволяет достичь более согласованной работы процессоров, использующих одну и ту же блокировку.
№34 слайд
![Синхронизация в](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img33.jpg)
Содержание слайда: Синхронизация в исполнительной системе
Поскольку спин-блокировка означает фактическую остановку процессора, она применяется только при двух условиях:
- требуется непродолжительное обращение к защищенным ресурсам без сложного взаимодействия с другим кодом;
- код критической секции нельзя выгрузить в страничный файл, он не ссылается на данные в подкачиваемой памяти, не вызывает внешние процедуры (включая системные сервисы) и не генерирует прерывания или исключения.
Ядро предоставляет исполнительной системе дополнительные механизмы синхронизации в форме объектов, в совокупности известных как объекты диспетчера ядра. Синхронизирующие объекты, видимые из пользовательского режима, берут свое начало именно от этих объектов диспетчера ядра. Каждый синхронизирующий объект, видимый из пользовательского режима, инкапсулирует минимум один объект диспетчера ядра.
№35 слайд
![Еще один тип синхронизирующих](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img34.jpg)
Содержание слайда: Еще один тип синхронизирующих объектов исполнительной системы назван (без особой на то причины) ресурсами исполнительной системы (executive resources). Ресурсы исполнительной системы являются не объектами диспетчера ядра, а скорее структурами данных, память для которых выделяется прямо из не подкачиваемого пула, имеющего свои специализированные сервисы для инициализации, блокировки, освобождения, запроса и ожидания.
№37 слайд
![Ожидание на объектах](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img36.jpg)
Содержание слайда: Ожидание на объектах диспетчера ядра
Взаимосвязь синхронизации с диспетчеризацией потоков иллюстрирует следующий пример с использованием объекта «событие».
1. Поток пользовательского режима ждет на описателе объекта «событие» (т. е. ждет перехода этого объекта в свободное состояние).
2. Ядро изменяет состояние потока с «готов» на «ожидает» и добавляет его в список потоков, ждущих объект «событие».
3. Другой поток устанавливает объект «событие».
4. Ядро просматривает список потоков, ожидающих этот объект. Если условия ожидания какого-либо потока выполнены, ядро переводит его из состояния «ожидает» в состояние «готов». Если это поток с динамическим приоритетом, ядро может повысить его приоритет для выполнения.
№38 слайд
![. Поскольку новый поток](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img37.jpg)
Содержание слайда: 5. Поскольку новый поток теперь готов к выполнению, происходит перераспределение процессорного времени. Если при этом диспетчер обнаружит, что приоритет выполняемого потока ниже, чем приоритет потока, только что перешедшего в состояние «готов», он вытеснит поток с более низким приоритетом и выдаст программное прерывание для инициации переключения контекста на поток с более высоким приоритетом.
6. Если в данный момент вытеснение невозможно ни на одном из процессоров, диспетчер включает поток в свою очередь потоков, готовых к выполнению.
(Некоторые потоки могут ждать более одного объекта, и в таком случае их ожидание продолжается.)
№40 слайд
![Когда объект переводится в](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img39.jpg)
Содержание слайда: Когда объект переводится в свободное состояние, ожидающие его потоки обычно немедленно выходят из ждущего состояния. Однако, как показано на рис. 3-20, некоторые объекты диспетчера ядра и системные события ведут себя иначе.
Например, объект «событие уведомления» — в Win32 API он называется событием со сбросом вручную (manual reset event) — используется для уведомления о каком-либо событии. Когда этот объект переводится в свободное состояние, все потоки, ожидающие его, освобождаются. Исключением является тот поток, который ждет сразу несколько объектов: он может продолжать ожидание, пока не освободятся дополнительные объекты.
№42 слайд
![Структуры данных Учет](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img41.jpg)
Содержание слайда: Структуры данных
Учет ожидающих потоков и их объектов ожидания базируется на двух ключевых структурах данных: заголовках диспетчера (dispatcher headers) и блоках ожидания (wait blocks).
Заголовок диспетчера содержит тип объекта, информацию о состоянии (занят/свободен) и список потоков, ожидающих этот объект. У каждого ждущего потока есть список блоков ожидания, где перечислены ожидаемые потоком объекты, а у каждого объекта диспетчера ядра — список блоков ожидания, где перечислены ожидающие его потоки. Этот список ведется так, что при освобождении объекта диспетчера ядро может быстро определить, кто ожидает данный объект.
В блоке ожидания имеются указатели на объект ожидания, ожидающий поток и на следующий
№44 слайд
![На рис. - показана связь](/documents_5/2ddd6ca7772fa1a736b7280fe298462c/img43.jpg)
Содержание слайда: На рис. 3-21 показана связь объектов диспетчера ядра с блоками ожидания потоков. В данном примере поток 1 ждет объект В, а поток 2 — объекты А и В.
Если объект А освободится, поток 2 не сможет возобновить свое выполнение, так как ядро обнаружит, что он ждет и другой объект. С другой стороны, при освобождении объекта В ядро сразу же подготовит поток 1 к выполнению, поскольку он не ждет никакие другие объекты.
Скачать все slide презентации Системные механизмы. Синхронизация процессов одним архивом:
Похожие презентации
-
На тему "Механизмы реализации ФГОС на основе системно- деятельностного подхода Л. Г. Петерсон с позиции непрерывност
-
Системно-деятельностный подход в образовательном процессе как методологическая основа реализации ФГОС основного общего образов
-
Осуществление системного подхода к формированию мыслительных умений и навыков в процессе преподавания физики
-
Системное использование ИКТ в образовательном процессе как способ повышения качества изучения учебной темы «Причастие» на урока
-
Операционные системы: Синхронизация процессов
-
Возможности и механизмы участия граждан в законотворческом процессе
-
Процессы и потоки данных. (понятие процессов в операционных системах. Виды процессов. Потоки. Средства синхронизации потоков в ОС)
-
Процесс обучения сетевого и системного администратора
-
. Управление системными процессами в ОУ
-
Содержание доклада Определение понятия «конфликт»; Причины этнических конфликтов; Процесс нарастания конфликта; Этнические конф