Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Проблемы взаимодействия процессов и общая схема решения задачи синхронизации.




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

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

 

 


Пролог Эпилог

 

 

 

Проблема отстранения процесса.

Проблема отстранения процесса связана с расслоением критической секции. Может возникнуть ситуация, в которой процессы окажутся взаимоблокированны (см. рис.). Пусть процесс p запросил некоторый критический ресурс №1 и вошёл в критическую секцию; процесс q тоже запросил критический ресурс №2 и вошёл в критическую секцию. Процесс p захотел ресурс №2 не освободив первый, а процесс q наоборот. Ресурс №1 будет всё время занят и процесс p будет ожидать ресурс №2, который тоже занят.

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

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

Общая постановка задачи синхронизации.

1) Участок на котором процесс использует критический ресурс называется критическая секция. Задача синхронизации решается отдельно для каждого критического ресурса. Задача синхронизации трасс состоит в том, что в одинаковый момент времени нет двух критических секций.

2) процессы не знают о существовании друг друга, строятся по одинаковым правилам и не согласуют между собой свои действия.

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

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

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

 


 


Поделиться:

Дата добавления: 2015-04-18; просмотров: 314; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты