| Issue 10: | 3.11 Exercise 24. |
‹ Prev
2 of 2
|
| 1 person starred this issue and may be notified of changes. | Back to list |
Exercise 24. For each of the histories shown in Figs. 3.13 and 3.14, are they quiescently consistent? Sequentially consistent? Linearizable? Justify your answer.
Sep 18, 2014
Project Member
#1
sergeypr...@gmail.com
Oct 16, 2014
1. тут есть проблемы с формулированием мыслей. перечитай сам и попробуй поправить. 2. напиши пожалуйста как ты сам понял эти три correctness conditions. зачем они вообще нужны.
Oct 20, 2014
Я так и не понял, что значит r.read(2), но если это вычитывание значения с регистра, тогда мы получаем: ----Из рисунка 3.13 Ситуация не quiescently consistent, так как quiescently consistent гарантирует, что один вызов в один момент времени, а здесь несколько вызовов в один момент времени Ситуация sequentially consistent - так как все что не вызывается, здесь можно переделать в последовательность r.read(1), r.write(1), r.write(2), r.read(2), которая равна параллельному вызову процедур Ситуация Linearizable - так как результат параллельному выполнению равен результату последовательного выполнения ----Из рисунок 3.14: Ситуация не quiescently consistent, так как quiescently consistent гарантирует, что один вызов в один момент времени, а здесь несколько вызовов в один момент времени Ситуация не sequentially consistent - так как все что не вызывается, здесь можно переделать в последовательность r.read(1), r.write(1), r.write(2), r.read(1), которая не равна параллельному вызову процедур Ситуация Linearizable - так как результат параллельному выполнению равен результату последовательного выполнения
Oct 20, 2014
Они нужны, чтобы анализировать и понимать, к какому результату может привести те или иные параллельные операции. Это три свойства, которыми можно описывать потоки в программе. Только на практике (и ни кто мне о таком не говорил) я не встречал такого |