Рубрики

ВОРОТА | Gate IT 2007 | Вопрос 54

Синхронизация в классической задаче чтения и записи может быть достигнута с помощью семафоров. В следующем неполном коде для проблемы читателей-писателей два двоичных семафора mutex и wrt используются для получения синхронизации

wait (wrt)
writing is performed
signal (wrt)
wait (mutex)  
readcount = readcount + 1
if readcount = 1 then S1
S2
reading is performed
S3
readcount = readcount - 1
if readcount = 0 then S4 
signal (mutex)

Значения S1, S2, S3, S4, (в этом порядке)
(A) сигнал (мьютекс), ожидание (WRT), сигнал (WRT), ожидание (MUTEX)
(B) сигнал (WRT), сигнал (мьютекс), ожидание (мьютекс), ожидание (WRT)
(C) ожидание (WRT), сигнал (мьютекс), ожидание (мьютекс), сигнал (WRT)
(D) сигнал (мьютекс), ожидание (мьютекс), сигнал (мьютекс), ожидание (мьютекс)

Ответ: (с)
Объяснение: Для S1: если readcount = 1 => читатель сейчас читает, значит, ни один писатель не должен выполняться. Следовательно, S1 должен быть в ожидании (относительно)
Для S2: после того, как readcount был обновлен, устанавливается в 1, чтобы другие читатели могли войти в раздел ввода. Многократные чтения разрешены. (Только 1 одновременно может быть в разделе входа), следовательно, сигнал (мьютекс)
Для S3: Теперь только один процесс может находиться в секции Exit, и для его реализации используется мьютекс семафора (в секции выхода может быть только 1 за раз). Ожидание ожидания (мьютекс)
Для S4: если readcount равен нулю, т. Е. Ни один из читателей не читает, это означает, что последний читатель завершил чтение, он должен разблокировать ресурсы, чтобы любой писатель, ожидающий его, мог использовать его. и S4 — не что иное, как реализация первой проблемы читателя и писателя.

Ссылки:
Читатели-писатели-проблемно-набор-1-внедрение-и-считыватели-предпочтения-решение /
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/6_Synchronization.html

Рекомендуемые посты:

ВОРОТА | Gate IT 2007 | Вопрос 54

0.00 (0%) 0 votes