Это многочисленная серия статьи в блоге, и в этой серии я собираюсь объяснить вам концепции операционной системы. Эта серия статьи разделена на несколько модулей, и это третий модуль, который состоит из 10 статей.
В этом мы увидим вопрос о бинарном семафоре и попытаемся понять концепцию бинарного семафора.
Вопрос: Какое максимальное количество процессов, которые могут присутствовать в критическом разделе в любой момент времени?
Каждый процесс из P1-P9 выполнит этот код
repeat p(mutex) critical section v(mutex) forever
Процесс P10 выполнит этот код
repeat v(mutex) critical section v(mutex) forever
Начальное значение Все процессы P1-P10 являются кооперативным процессом
Отвечать:
- Здесь, когда
P1
Попробуйте ввести критический раздел, затем он запустит первый код. После выполнения кода IT успешно получите и введите критический раздел. Теперь как значение Mutex это0
Ни один другой процесс не может ввести в критический раздел, если они попытаются ввести, они будут отправлены в приостановленный список и будут заблокированы. - Это происходит, потому что, чтобы ввести критический раздел, они должны выполнить
P ()
Операция, которая снижает значение MUTEX из1
к0
, но значение Mutex уже0
какP1
ранее выполнил это. - Так что процесс из
P2- P9
не может ввести критический раздел, в то время какP1
здесь. - Теперь мы постараемся отправить
P10
В критическом разделе для этогоP10
Выполнит второй код, и в этомv ()
Операция сделает значение Mutex из0
к1
и, таким образом, успешно проникнуть в критический раздел. Теперь у нас естьP1
иP10
В критическом разделе со значением MUTEX1
Анкет - И снова
P2
Попробую ввести критический раздел, но потому что теперь значение Mutex —1
Он успешно попадет в критический раздел. - Теперь у нас есть
P1
,P10
иP2
Внутри критического раздела. И все остальные процессы отP3-P9
не может войти в критический раздел. - Но это неправильный ответ.
- Мы можем сделать одну вещь, если
P10
Выйдите из критического раздела, тогда значение Mutex станет1
иP3
может ввести критический раздел, теперь значение Mutex — это0
, мы выполним второй код и сноваP10
введет критический раздел. Таким образом, теперь у нас есть четыре процесса внутри критического раздела (P1, P2, P3 и P10) Анкет - Это будет продолжаться, и в конце мы будем иметь
10
процесс внутри критического раздела, и все это происходит, потому чтоP10
Код имеетv ()
Операция в разделе входа. И мы знаем, чтоv ()
Операция увеличивает значение из0
к1
и если это1
тогда это остается1
Анкет
Следовательно, окончательный ответ 10 процессы (P1, P2, P3, P4, P5, P6, P7, P8, P9 и P10)
Так что это было все о вопросе о бинарном семафоре. Надеюсь, вам понравилось и узнал что -то новое из этого.
Если у вас есть какие -либо сомнения, вопрос, звонки, связанные с этой темой, или просто хотите поделиться со мной чем -то, пожалуйста, не стесняйтесь, чтобы свяжитесь со мной.
📱 Свяжитесь со мной
Twitter LinkedIn Телеграмма Instagram
📧 Напишите почту
rahulmishra102000@gmail.com
🚀 Другие ссылки
Оригинал: «https://dev.to/rahulmishra05/question-on-binary-semaphore-operating-system-m03-p07-3alp»