Читайте также: |
|
В ОС под монитором понимают программу ОС, обеспечивающую организацию параллельных процессов. Концепция монитора была впервые изложена Б. Хансеном в 1973 г. и развита Хоаром в 1974 г. Поэтому иногда мониторы, построенные по Хоару, называют монитором Хоара.
Монитор динамически (т.е. во время исполнения процессов) распределяет общие ресурсы между процессами. Процесс обращается к монитору для выделения ему ресурса. После использования ресурса процесс также должен обратиться к монитору. ЦП с момента обращения к монитору обслуживает только монитор, связанный с процессом, который к ему обратился.
В однопроцессорных ЭВМ в каждый момент времени может войти в монитор только один процесс. Остальные не могут выполняться, так как ЦП занят, т.е. они ждут, готовы к выполнению или приостановлены.
Рассмотрим функционирование монитора (рис. 4.8).
Если при обращении процесса для выделения ресурса монитор установит, что необходимый ресурс свободен, то он его помечает "занято" в списке ресурсов и запускает готовый процесс.
Если монитор установит, что необходимый ресурс занят, то монитор выдает примитив (команду) "ждать", как будто это выдал сам процесс, и переводит первый в очереди готовности процесс в состояние выполнения.
В конце критического интервала процесс, занимавший ресурс, входит в монитор, чтобы освободить ресурс. Монитор выдает команду "свершить", помечает ресурс свободным и передает управление на первый из ожидающих этот ресурс процессов. Это делается для того, чтобы освободившийся ресурс прежде всего получал ожидающий его процесс, а не новый процесс из "готовых", которому нужен этот же ресурс. Если нет процесса, ожидающего этот ресурс, то монитор продолжит выполнять процесс, обратившийся к нему за освобождением. При отсутствии ожидающих этот ресурс процессов можно передать управление процессу из головы списка готовых программ как при запросе ресурса, так и при освобождении. Это увеличивает частоту переключения между готовыми программами.
Достоинство подобного распределителя ресурсов в том, что он работает как двоичный семафор: вход "захватить ресурс" выполняет функцию Р-оператора, а вход "освободить ресурс" выполняет функцию V-оператора.
Дата добавления: 2015-10-02; просмотров: 122 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Синхронизация на основе P и V операций | | | Почтовые ящики |