Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ОССио.docx
Скачиваний:
2
Добавлен:
22.11.2019
Размер:
3.4 Mб
Скачать

Мониторы

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

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

У процессов может возникнуть необходимость находится в режиме ожидания вне монитора по многим различных причинам. Поэтому было ведено понятие переменные-условия. Для каждой причины назначается свое условие. Переменные-условия совершено не похожи на обычные переменные. Когда определяется такая переменная происходит 3 действия:

  1. Заводится очередь

  2. Процесс выдавший команду ожидание вкл. в эту очередь

  3. Процесс выдавший команду сигнализации тем самым позволяет ожидающему процессу выти из очереди и войти в монитор

Пример Monitor читатели и писатели

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

Тупики

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

Тупики отличаются от зависания (подумать)???

Примеры тупиков:

  1. Пробки в Москве.

  2. Обедающие философы (забрали вилку)

  3. Рисунок на листке

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

Концепция ресурсов

Бывают два вида ресурсов: оперативно перераспределяемые и оперативно не перераспределяемые.

Примеры оперативно перераспределяемые: такие как центральный процессор(самый динамичный) и основная память.

Оперативно не перераспределяемые их нельзя произвольно убирать от процессов за которыми они закреплены.

Пример : принтер, сканер.