Мьютексы и семафоры обычно считаются решениями параллелизма в одном и том же адресном пространстве - это означает, что разные части одной и той же программы блокируют свой доступ к ресурсу, используя одно из этих изобретений.
Когда вы работаете с отдельными процессами, стандартный способ сделать это в Linux - создать что-то в /var/lock
, например /var/lock/myapp.lock
, и поместить свой PID, за которым следует новая строка, Затем другие процессы проверят его существование, и, если вы хитроумны, проверьте PID, чтобы убедиться, что он все еще жив.
Если вам нужен доступ к области в режиме реального времени, пропустите файловую систему, и процессы должны будут обмениваться данными через IPC (LET_ME_KNOW_WHEN_DONE
, OKAY_IM_DONE
, вы поняли), или - лучше - написать процесс чья единственная цель - чтение и запись в память GPIO, а другие ваши программы обмениваются данными с it через IPC (вероятно, лучший подход).