2013-11-01 3 views
0

я имел экзамен и я столкнулся этот вопрос на экзамене:операционной системы и параллельных потоков

Для каждого из приведенных ниже утверждений, указывают в одном предложении или не утверждение истинным или ложным, и почему. • В среде параллельного программирования, которая обеспечивает потоки без преднамеренного планирования (т. Е. без принудительных переключателей контекста), синхронизация взаимного исключения не требуется.

После экзамена я получил ответ, который:

[Ложные. Синхронизация Mutex по-прежнему требуется (1) на мультипроцессорах и (2) на однопроцессорных устройствах для критических секций, которые содержат операции блокировки.]

Но я не могу его подстать. Может ли кто-нибудь объяснить это ясно?

ответ

2

В случае многопроцессорной системы, то есть, например 2 задачи, работающих одновременно и совместно переменную S:

s = 1; 
T1 reads s1 = 1; 
T2 reads s2 = 1; 
T1 increments s1: s1 = 2; 
T2 increments s2: s2 = 2; 
T1 writes s: s = s1 = 2; 
T2 writes s: s = s2 = 2; 

Но s должно быть 3 к настоящему времени, поскольку две задачи увеличивается его на единицу. Чтобы этого избежать, вы должны убедиться, что переменная читается, обрабатывается и записывается до того, как прочитает ее другая задача.

В однопроцессорной системе, то же самое может произойти:

T1 reads s; 
T1 blocks on an operation; 
T2 runs and reads s; 
T2 blocks on an operation; 
T1 manipulates and writes; 
T2 manipulates and writes; 

с манипулировали в два раза, но результат только показывает манипуляции Т2.

Если вы просто изменили одну переменную, вы можете использовать атомные операции. Но если ваш критический раздел больше, вы должны защитить его, используя мьютекс.

+0

Спасибо, но как T1 может быть заблокирован, когда мы используем потоки, не связанные с упреждением? –

+0

non-preemptive означает, что планировщик не может остановить поток и позволить другому работать. Таким образом, поток может блокировать только добровольно. Но операция, как и чтение с жесткого диска, также заблокирует поток. И в ожидании запроса завершить другой поток будет работать. – Philipp

Смежные вопросы