zhelaevdenis / Parallel-Programming

My labs with graphics
0 stars 0 forks source link

Вопросы lw5 #5

Open ReactiveTurtle opened 3 months ago

ReactiveTurtle commented 3 months ago

https://github.com/zhelaevdenis/Parallel-Programming/blob/dd332cf8826929668087c119c304ca986f375aae/lw5Folder/CriticalSection/lw5AppCriticalSection/lw5AppCriticalSection.cpp#L11 Приложи сюда ответы на вопросы из лабораторной И дополнительно Чем отличается именованный мьютекс от неименованного?

zhelaevdenis commented 3 months ago

Ответы на вопросы есть в readme в папке lw5Folder, дублирую здесь.

  1. Рассказать каким подходом пользовались при выполнении задания для обнаружения участков, которые необходимо синхронизировать. Ответ: смотрел на выполнение программы и логику его выполнения. Проблема в том, что баланс не обновляется при каждой операции снятия денег и со старого неактуального счёта снимаются деньги. Таким образом каждый поток имеет устаревшую версию общей переменной и некорректно влияет на неё.

  2. Объяснить разницу между CRITICAL_SECTION и MUTEX. Рассказать в каких ситуациях они должны использоваться. Ответ: разница в том, что CriticalSection менее времязатратно, но синхронизирует работу только среди потоков. Mutex в свою очередь является более затратным, но синхронизирует работу так же и среди процессоров.

  3. Объяснить правильно ли используется FileLockingCriticalSection, нужно ли в этом случае использовать Mutex или можно обойтись CRITICAL_SECTION. Ответ: считаю что Mutex более оправдан, если мы собираемся запускать приложение параллельно в двух экземплярах. Если такой задачи не стоит, можно ограничиться CriticalSection.

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

ReactiveTurtle commented 3 months ago

Принято