Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Лекция 3

.pdf
Скачиваний:
143
Добавлен:
25.02.2015
Размер:
92.12 Кб
Скачать

Классические задачи синхронизации процессов

I.Обедающий философ

сидят философы за столом, посередине стола тарелка со спагетти, для того, чтобы взять спагетти необходимо воспользоваться двумя вилками, но количество вилок не превосходит количества философов. нужно как-то контролировать очередность взятия «вилки»

можно поставить официанта (семафор в ОС) у каждой вилки (ресурс), который будет контролировать когда вилку будет использовать тот или иной философ

можно поставить официанта возле каждого философа, который будет контролировать когда философ может есть поставить менеджера стола, который будет контролировать и философов и вилки

II.Спящий брадобрей

в парикмахерской работает один брадобрей и есть несколько стульчиков для ожидающих клиентов, надо обслужить как можно больше клиентов

добавить стульчики

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

III.Читатели и писатели кто-то пишет, а кто-то читает, надо как-то оптимально организовать этот процесс

читатель имеет доступ к последнему варианту книги

блокируются читатели, писатель получает максимальный приоритет писатель встает в очередь читатели читают последнюю версию, а писатель в это время пишет новую

версию, которая становится доступной всем последующим читателям