Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


courses:high_performance_computing:questions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
courses:high_performance_computing:questions [2016/11/20 00:33] kelcourses:high_performance_computing:questions [2016/11/20 00:55] kel
Line 62: Line 62:
   - Система в целом продвигается вперед не зависимо ни от чего   - Система в целом продвигается вперед не зависимо ни от чего
   - Любой поток может выполнить свои функции за конечное число шагов, не зависимо ни от чего   - Любой поток может выполнить свои функции за конечное число шагов, не зависимо ни от чего
 +
 +===== 9. Определение типа ошибки =====
 +Какая ошибка потенциально может возникнуть в приведённом коде:
 +<code c++>
 +void f() {
 +  first_mutex.lock();
 +  second_mutex.lock();
 +  ...
 +}
 +
 +void g() {
 +  second_mutex.lock();
 +  first_mutex.lock();
 +  ...
 +}
 +</code>
 +  - Гонка данных (Data Race)
 +  - Взаимная блокировка (Deadlock)
 +  - Проблема ABA
 +  - Инверсия приоритетов
 +
 +===== 10. Реализация lock-free алгоритмов =====
 +Почему lock-free алгоритмы легче реализовать на языке со сборщиком мусора, нежели на нативных языках, например C++:
 +  - Невозможна инверсия приоритетов
 +  - Наличие существующих базовых контейнеров в java.util.concurrent
 +  - Невозможна проблема ABA
 +  - Наличие CAS-операций
  
 ===== Консенсус ===== ===== Консенсус =====
courses/high_performance_computing/questions.txt · Last modified: 2016/11/24 00:07 by kel