2011-gre-cs-practice-book.pdf/Q47 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: « == Вопрос: Q47-08c765 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…»)
 
 
(не показано 10 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
 
== Вопрос: Q47-08c765 ==
 
== Вопрос: Q47-08c765 ==
  
<i>Тут вставьте перевод вопроса.
+
Рассмотрим следующие 2 многопоточные задачи, в которых операции присваивания исполняются атомарно. Изначально, переменные с разделяемым состоянием x и y равны 0.
Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 возможности разметки],  
+
включая формулы и т.п, если будут графы — посмотрите как задать их текстом https://wiki.4intra.net/Graphviz .
+
Если код — теги «code-pascal», «code-c» или «code-python».
+
  
Старайтесь нетривиальные понятия, особенно незнакомые вам, найти ссылку на википедию и вставить (нейросети лажают!).
+
* Задача 1
Это важно, чтобы найти корректный перевод (то, что в википедии, или на худой конец — точно массово гуглится).
+
<code-c>
 +
x = 1
 +
a = y
 +
</code-c>
  
Потом конечно сотрите инструкции, которые тут курсивом.</i>
+
* Задача 2
 +
<code-c>
 +
y = 1
 +
b = x
 +
</code-c>
  
=== Ответы ===
+
В конце выполнения обеих многопоточных задач значения переменных a и b проверяются.
<i>Если ответы простые, однострочные, используйте простой способ задания ответов списком, типа так
+
Какие из следующих утверждений должны быть истинными?
(префикс «Правильный ответ:» — это дословно, для правильного ответа, неважно, какой он будет в списке)</i>
+
  
* Правильный ответ: тут реально правильный ответ
+
;I: a == 0 → b == 1
* неправильный ответ
+
;II: b == 0 → a == 1
* еще какой-то неправильный ответ
+
;III: a == 1 → b == 1
* еще какой-то неправильный ответ
+
* еще какой-то неправильный ответ
+
 
+
<i>Если ответы длинные, многострочные, или там графы, используйте
+
[https://wiki.4intra.net/MediawikiQuizzer/ru#.D0.9E.D1.82.D0.B2.D0.B5.D1.82.D1.8B способ задания ответов разделами],
+
Но такое очень редко встречается. </i>
+
  
 +
=== Ответы ===
 +
* Только I
 +
* Только II
 +
* Только III
 +
* Правильный ответ: (D) I и II
 +
* I, II и III
  
 
=== Объяснение ===
 
=== Объяснение ===
<i>Сначала заполните номер страницы с этим вопросом
+
{{cstest-source|2011-gre-cs-practice-book.pdf|38|47}}
{{cstest-source|2011-gre-cs-practice-book.pdf|тут-номер-страницы-с-вопросом-47|47}}
+
 
+
Если все сделаете правильно, по ссылке выше будет открываться правильная страница в правильном PDFе.
+
  
Ну и наконец, вики-разметкой напишите ваше понимание, почему правильный ответ — правильный, а [[2004-gre-cs-practice-book.pdf/Q16|неправильные варианты — неправильны]].
+
Разберём каждый случай:
Тут тоже могут быть полезны [[2004-gre-cs-practice-book.pdf/Q03|ссылки на википедию]],  
+
;I.: a == 0 → b == 1
решение вами [[2004-gre-cs-practice-book.pdf/Q12|рекуррентных уравнений в sympy]].
+
* Если a == 0, то задача 1 выполнилась полностью раньше задачи 2.
 +
* Следовательно, b == 1 и это утверждение верно.
 +
;II: b == 0 → a == 1
 +
* Если b == 0, то задача 2 выполнилась полностью раньше задачи 1.
 +
* Следовательно, a == 1 и это утверждение верно.
 +
;III: a == 1 → b == 1
 +
* В данном случае мы не можем гарантировать, что b == 1.
 +
* Оно может быть равно как 1, так и 0.
  
</i>
+
{{question-ok|[[Участник:StasFomin|StasFomin]] 10:10, 9 января 2025 (UTC)}}
  
{{question-ok|}}
+
[[Категория:Параллельные вычисления]]

Текущая версия на 10:10, 9 января 2025

Вопрос: Q47-08c765

Рассмотрим следующие 2 многопоточные задачи, в которых операции присваивания исполняются атомарно. Изначально, переменные с разделяемым состоянием x и y равны 0.

  • Задача 1
x = 1
a = y
  • Задача 2
y = 1
b = x

В конце выполнения обеих многопоточных задач значения переменных a и b проверяются. Какие из следующих утверждений должны быть истинными?

I
a == 0 → b == 1
II
b == 0 → a == 1
III
a == 1 → b == 1

Ответы

  • Только I
  • Только II
  • Только III
  • Правильный ответ: (D) I и II
  • I, II и III

Объяснение

Исходники — вопрос 47 на 38 странице книги «2011-gre-cs-practice-book.pdf»

Разберём каждый случай:

I.
a == 0 → b == 1
  • Если a == 0, то задача 1 выполнилась полностью раньше задачи 2.
  • Следовательно, b == 1 и это утверждение верно.
II
b == 0 → a == 1
  • Если b == 0, то задача 2 выполнилась полностью раньше задачи 1.
  • Следовательно, a == 1 и это утверждение верно.
III
a == 1 → b == 1
  • В данном случае мы не можем гарантировать, что b == 1.
  • Оно может быть равно как 1, так и 0.