Что такое остаточные секции и почему потоки которые в них НЕ исполняются имеют право указывать другим когда входить в критическую секцию? У меня в книге приводятся требования которым должен соответствовать хороший алгоритм синхронизации потоков желающих выполнятся в критической секции. И один пункт меня сбивает с толку.Процессы, которые находятся вне своих критических участков и НЕ собираются входить в них, НЕ могут препятствовать другим процессам входить в их собственные критические участки. Если нет процессов в критических секциях и имеются процессы, желающие войти в них, то только те процессы, которые НЕ исполняются в остаточных секциях, должны принимать решение о том, какой процесс войдет в свою критическую секцию. Такое решение НЕ должно приниматься бесконечно долго. Во-первых, что это за остаточные секции? Во-вторых, почему это потоки (тут под процессами понимаются именно потоки, насколько понимаю) которые НЕ входят в них вдруг получают право указывать конкретным потокам, что они должны/могут войти в эту критическую секцию, а всем остальным соответственно это запрещенно? Тем более что ранее прямо говорилось что "Процессы, которые находятся вне своих критических участков и НЕ собираются входить в них, НЕ могут препятствовать другим процессам входить в их собственные критические участки."
Остаточные секции - это участки кода, которые находятся между критическими участками синхронизации потоков. Это могут быть любые другие участки кода, где потоки не находятся в критической секции.
Потоки, которые не исполняются в остаточных секциях, могут указывать другим потокам, когда иметь право входить в критическую секцию, потому что если они не собираются входить в критическую секцию, то они не мешают другим потокам входить в свои критические участки. Это помогает избежать ситуации, когда потоки, находящиеся вне критических участков, случайно блокируют доступ других потоков к своим критическим участкам.
Таким образом, потоки, которые не входят в остаточные секции, могут помочь контролировать доступ других потоков к критическим участкам, чтобы избежать бесконечной блокировки.
Остаточные секции - это участки кода, которые находятся между критическими участками синхронизации потоков. Это могут быть любые другие участки кода, где потоки не находятся в критической секции.
Потоки, которые не исполняются в остаточных секциях, могут указывать другим потокам, когда иметь право входить в критическую секцию, потому что если они не собираются входить в критическую секцию, то они не мешают другим потокам входить в свои критические участки. Это помогает избежать ситуации, когда потоки, находящиеся вне критических участков, случайно блокируют доступ других потоков к своим критическим участкам.
Таким образом, потоки, которые не входят в остаточные секции, могут помочь контролировать доступ других потоков к критическим участкам, чтобы избежать бесконечной блокировки.