Пусть имеются два параллельных процесса. в одном выполняется код p(s1); p(s2) , в другом – код p(s2); p(s1) , где s1 и s2 – семафоры. как будет вести себя программа?

ГретхенМарго ГретхенМарго    1   05.08.2019 17:00    3

Ответы
pcd1gg pcd1gg  03.10.2020 23:42
Все зависит от того, что обеспечивают эти семафоры.
1. Семафоры обеспечивают синхронизацию потоков. Тогда будут выполнены P(S!) в первом потоке и P(S2) во втором, причем более быстрый процесс подождет, а затем работа пойдет одновременно с точки P(S2) в первом потоке и P(S1) во втором.
2. Семафоры захватывают ресурсы. В этом случае произойдет взаимная блокировка. Например, P(S2) в первом потоке будет ждать некоего ресурса, захваченного вторым потоком, а P(S1) во втором потоке - ресурса, захваченного первым потоком.
3. Семафоры запрещают одновременное выполнение некоторого общего участка кода. Также возможна взаимная блокировка по принципу, описанному выше.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика