- •НИУ ВШЭ – Пермь
- •Понятие информационной системы
- •Понятие корпоративной информационной системы
- •Эволюция информационных систем и технологий
- •Понятие процесса
- •Понятие ресурса
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Понятие критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Условия реализации критической секции
- •Условия реализации критической секции
- •Простейший пример критической секции
- •Простейший пример критической секции
- •Простейший пример критической секции
- •Программные методы решения: вариант 1
- •Программные методы решения: вариант 1
- •Программные методы решения: вариант 1
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения:
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Недостатки программных методов
- •Современные методы решения проблемы взаимного исключения
- •Современные методы решения проблемы взаимного исключения
- •Блокирующие функции
- •Блокирующие функции
- •Блокирующие функции
- •Аппаратная поддержка выполнения блокирующих функций
- •Блокирование файлов при создании или открытии
- •Современные методы решения проблемы взаимного исключения
- •Современные методы решения проблемы взаимного исключения
- •Понятие семафора
- •Семафорные примитивы
- •Семафорные примитивы
- •Семафорные примитивы
- •Решение проблемы взаимного исключения с помощью семафоров
- •Реализация отношения предшествования с помощью семафоров
- •Реализация отношения предшествования с помощью семафоров
- •Реализация отношения предшествования с помощью семафоров
- •Объекты диспетчеризации и синхронизация процессов
- •Использованные источники:
Свойства критической секции
На критическую секцию, связанную с доступом к какому-либо
разделяемому несколькими процессами информационному ресурсу, налагаются следующие требования:
1)главное требование – взаимное исключение;
2)ни один процесс не должен ждать бесконечно долго входа в критическую секцию;
3)ни один процесс не может находиться в своей критической секции бесконечно долго;
4)никакой процесс, находящийся вне своей критической секции, не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции.
21
Свойства критической секции
|
На критическую секцию, связанную с доступом к какому-либо |
|
разделяемому несколькими процессами информационному |
|
ресурсу, налагаются следующие требования: |
|
1)главное требование – взаимное исключение: в любой |
|
момент времени только один процесс может находиться в |
|
своей критической секции по данному ресурсу; |
|
2)ни один процесс не должен ждать бесконечно долго входа в |
|
критическую секцию; |
|
3)ни один процесс не может находиться в своей критической |
|
секции бесконечно долго; |
|
4)никакой процесс, находящийся вне своей критической секции, |
|
не должен задерживать выполнение других процессов, |
22 |
ожидающих входа в свои критические секции. |
|
Свойства критической секции
На критическую секцию, связанную с доступом к какому-либо
разделяемому несколькими процессами информационному ресурсу, налагаются следующие требования:
1)главное требование – взаимное исключение;
2)ни один процесс не должен ждать бесконечно долго входа в критическую секцию: реализация взаимного исключения не
должна приводить к ошибкам или невозможности выполнения процессами своих функций – взаимное исключение только устанавливает порядок доступа к общим ресурсам, исключающий их разрушение;
3)ни один процесс не может находиться в своей критической секции бесконечно долго;
4)никакой процесс, находящийся вне своей критической секции, не должен задерживать выполнение других процессов, ожидающих
23 входа в свои критические секции.
Свойства критической секции
На критическую секцию, связанную с доступом к какому-либо
разделяемому несколькими процессами информационному ресурсу, налагаются следующие требования:
1)главное требование – взаимное исключение;
2)ни один процесс не должен ждать бесконечно долго входа в критическую секцию;
3)ни один процесс не может находиться в своей критической секции бесконечно долго: это следствие предыдущего требования – все процессы в течение приемлемого времени должны получить доступ к разделяемым данным для выполнения своих функций;
4)никакой процесс, находящийся вне своей критической секции, не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции.
24
Свойства критической секции
На критическую секцию, связанную с доступом к какому-либо
разделяемому несколькими процессами информационному ресурсу, налагаются следующие требования:
1)главное требование – взаимное исключение;
2)ни один процесс не должен ждать бесконечно долго входа в критическую секцию;
3)ни один процесс не может находиться в своей критической секции бесконечно долго;
4)никакой процесс, находящийся вне своей критической секции, не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции: не допускается
«захват» ресурсов «заранее», «про запас», т.е. ресурсы запрашиваются тогда, когда они необходимы для выполнения процессами своих функций.
25
Условия реализации критической секции
Относительно режима работы с разделяемыми
информационными ресурсами сделаны следующие
предположения:
•относительные скорости процессов неизвестны;
•программа может останавливаться только вне её критической секции;
•операции считывания и записи разделяемых данных неделимы;
•процессы не имеют приоритетов, связанных с доступом к общим данным (то есть нет приоритетов на вход в критические секции) или они неизвестны;
•одновременные обращения к одним и тем же данным для выполнения операции чтения или записи более чем одного процессора приведут к последовательным обращениям в
26 неустановленном порядке.
Условия реализации критической секции
Относительно режима работы с разделяемыми информационными ресурсами сделаны следующие предположения:
•относительные скорости процессов неизвестны;
•программа может останавливаться только вне её критической секции;
•операции считывания и записи разделяемых данных неделимы;
•процессы не имеют приоритетов, связанных с доступом к общим данным (то есть нет приоритетов на вход в критические секции) или они неизвестны;
•одновременные обращения к одним и тем же данным для выполнения операции чтения или записи более чем одного процессора приведут к последовательным обращениям в
27 неустановленном порядке.
Простейший пример критической секции
process Pi; begin
while true do begin
BEFOREi; {Операторы, предшествующие критической секции } CSi; {Операторы критической секции }
AFTERi; {Операторы, следующие за критической секцией } end
end Pi.
28
Простейший пример критической секции
|
process Pi; |
|
begin |
|
while true do |
|
begin |
|
BEFOREi; |
|
Вход в критическую секцию – как реализовать? |
|
CSi; |
|
Выход из критической секции – как реализовать? |
|
AFTERi; |
|
end |
29 |
end Pi. |
Простейший пример критической секции
process Pi; |
Проверка состояния |
|
begin |
||
критической секции (КС) и |
||
while true do |
организация ожидания, |
|
если она занята |
||
begin |
||
|
BEFOREi;
Вход в критическую секцию – как реализовать? CSi;
Выход из критической секции – как реализовать?
|
AFTERi; |
Освобождение КС или |
|
end |
активизация |
|
end Pi. |
ожидающего входа в |
30 |
неё процесса |
|
|
|
