Рубрики
Uncategorized

Вопрос о бинарном семафоре | Операционная система — M03 P07

Это многочисленная серия статьи в блоге, и в этой серии я собираюсь объяснить вам концепции … Tagged с Linux, DevOps, Tutorial, Beginters.

Это многочисленная серия статьи в блоге, и в этой серии я собираюсь объяснить вам концепции операционной системы. Эта серия статьи разделена на несколько модулей, и это третий модуль, который состоит из 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 В критическом разделе со значением MUTEX 1 Анкет
  • И снова 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

🚀 Другие ссылки

GitHub Хакерранк

Оригинал: «https://dev.to/rahulmishra05/question-on-binary-semaphore-operating-system-m03-p07-3alp»