Факторы, определяющие часть кода как критическую секцию
Насколько я понимаю, process synchronization
используется с использованием структур данных ядра, таких как semaphores
, для предотвращения одновременного доступа к critical section
кода. В целом я вижу следующие определения: критическая секция — это фрагмент кода, который может получить доступ к общим данным (или) общим ресурсам. Итак, вопросы:
- Общие данные — это объект пользовательского пространства. Следовательно, пользовательский процесс несет ответственность за обеспечение согласованности своего доступа.
- Я предполагаю, что одновременный доступ к ресурсам несколькими процессами — это то, о чем должно позаботиться ядро. Какая синхронизация на уровне пользователя требуется?
- Каковы факторы, по которым часть кода в программе пользовательского пространства считается критическим разделом.