- •Операционные системы и спо
- •Понятие процесса.
- •Прерывания:
- •Планирование и управление ресурсами. Цели планирования
- •Дисциплины диспетчеризации.
- •Проектирование взаимодействующих вычислительных процессов.
- •Светофоры (семафоры)
- •Почтовые ящики
- •Программные каналы (pipe)
- •Очереди сообщений
- •Понятие тупиковой ситуации и выполнение параллельных вычислительных процессов.
- •Организация ввода-вывода Основные понятия
- •Режимы управления вводом/выводом
- •Спулинг
- •Основные системные таблицы ввода/вывода
- •Основные характеристики
- •Ос unix.
- •Основные концепции системы
- •Функции ядра
- •Процесс
- •Межпроцессорные коммуникации
- •Свопинг
- •Файловые системы
- •Специальные файлы
- •Файлы связи
- •Обычные файлы
- •Каталоги
- •Переназначение входа и выхода
- •Конвейеры.
- •Защита информации.
Проектирование взаимодействующих вычислительных процессов.
Одной из основных проблем проектирования является проблема синхронизации. Существующие методы различаются по удобству использования, по стоимости реализации и по эффективности выполнения самих вычислительных процессов и работы вычислительной системы в целом.
Различные ОС имеют разные средства синхронизации.
Знание средств синхронизации позволяет создавать корректно работающие программы, которые, во-первых, обеспечивают правильный обмен данными между процессами и, во-вторых, позволяют избежать возникновение тупиков в системе.
Параллельными называются процессы, которые одновременно находятся в каком-либо активном состоянии.
Два параллельных процесса могут быть независимыми.
Независимыминазываются процессы множество переменных, которых не пересекаются. Под переменными подразумеваются формы данных, а также области операционной памяти, сопоставленные определенной программе и промежуточным переменным.
Независимые процессы не влияют на работу друг друга (с точки зрения логики исполнения), они могут только задерживать работу друг друга.
Взаимодействующие – это те процессы, которые совместно используют некоторые переменные и выполнение одного может влиять на выполнение другого.
Критическими ресурсами называются ресурсы, которые не могут быть использованы несколькими процессами. Поэтому когда несколько процессов требуют этот ресурс, нужна их синхронизация.
В результате чего этот ресурс будет находиться в распоряжении только одного процесса на интервале времени. Другие процессы должны ждать.
Взаимодействовать могут 2 разновидности процессов: конкурирующие и совместно исполняющие некоторую работу. Конкурирующие действуют в некотором плане независимо, но имеют доступ к некоторым переменным.
Процессы, выполняющие некоторую работу характеризуются тем, что результаты передаются другому процессу (т. е обмениваются данными).
Пример:
Имеются 2 процесса Р1 и Р2 с общей переменной х. Пусть эти 2 процесса независимы друг от друга, изменяют это значение при этом используется некоторая область операционной памяти.
№ оператора |
Р1 |
№ оператора |
Р2 |
1 |
R1:=x |
4 |
R2:=x |
2 |
R1: R1+1 |
5 |
R2: R2+1 |
3 |
X:= R1 |
6 |
X:= R2 |
Оба процесса могут исполняться с разной скоростью, поэтому время исполнения 1-6 не предсказуемо. Рассмотрим 2 случая:
Первый случай – когда используются операторы 1,2,3, а затем 4,5,6.
P1 R1:=x R1:=R1+1 x:=R1
P2 R2:=x R2:=R2+1 x:=R2
X
2 случай – когда в исполнение 1,2,3 вмешиваются 4,5,6
P1 R1:=x R1:=R1+1 x:=R1
P2 R2: =x R2: =R2+1 x: =R2
X
Лекция 7. (9.10.02)
Для организации взаимодействия вычислительных процессов необходим механизм их синхронизации. Та область процесса, в которой происходит непосредственное обращение к критическому ресурсу, называется критической секцией (или интервалом).
Таким образом, говоря о синхронизации процессов, имеется в виду синхронизация критических секций.
К синхронизации критических секций выдвигаются следующие требования:
В любой момент времени только один процесс может находиться в своей критической секции.
Ни один процесс не может находиться в своей критической секции бесконечно долгое время.
Если процесс, находящийся в своей критической секции завершился нормально или аварийно любые другие процессы должны получить возможность входа в свою секцию.
Ни один процесс не должен ждать бесконечно долго входа в свою критическую секцию. При этом никакой процесс, находящийся в вне своей критической секции возможно бесконечно долго, не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции.
ПР1 ПР2
Простейшим способом синхронизации может быть использование общего типа переменной, служащей указателем свободен критический ресурс или нет. Каждый раз, когда какой-то процесс первым занимает критический ресурс, он устанавливает указатель в состояние «занято». В результате никакой другой процесс не может обратиться к этому ресурсу.
Когда процесс, захвативший ресурс выходит из своей критической секции он устанавливает указатель в состояние «свободен», разрешая процессам использовать ресурс.
+ Простота
изменение указателя должно выполнятся самим процессом.
Если по какой-то причине процесс закончился аварийно, то другие процессы могут бесконечно долго ждать. Этот механизм в настоящее время используется редко.
Более широко используется механизм светофоров.