Изменения
Новая страница: «'''Алгоритм Лампорта''' взаимного исключения: Каждый поток поддерживает очередь запросов н…»
'''Алгоритм Лампорта''' взаимного исключения:
Каждый поток поддерживает очередь запросов на вход в критическую секцию. Приоритет – временная метка (векторные часы) (+ номер потока ?).
Когда поток хочет войти в критическую секцию, он:
# Добавляет свой запрос в свою очередь
# Посылает всем потокам запрос
# Ждет от них ответа
# Получив все ответы, ждет, когда он станет первым в своей очереди, и входит в критическую секцию
# Выйдя из критической секции, посылает всем сообщение release
Действия вне критической секции:
* При получении запроса от другого потока, запрос добавляется в очередь и запрашивающему потоку посылается ответ.
* При получении release от другого потока, его запрос удаляется из очереди
<tex>3*(N -– 1)</tex> messages.
Каждый поток поддерживает очередь запросов на вход в критическую секцию. Приоритет – временная метка (векторные часы) (+ номер потока ?).
Когда поток хочет войти в критическую секцию, он:
# Добавляет свой запрос в свою очередь
# Посылает всем потокам запрос
# Ждет от них ответа
# Получив все ответы, ждет, когда он станет первым в своей очереди, и входит в критическую секцию
# Выйдя из критической секции, посылает всем сообщение release
Действия вне критической секции:
* При получении запроса от другого потока, запрос добавляется в очередь и запрашивающему потоку посылается ответ.
* При получении release от другого потока, его запрос удаляется из очереди
<tex>3*(N -– 1)</tex> messages.