Чем отличаются sem_post / sem_wait между семафорами на основе памяти и ядра - PullRequest
0 голосов
/ 11 января 2020

Не в состоянии понять, как функции sem_post / sem_wait различают основанный на памяти и основанный на ядре семафор, передаваемый им? Для основанного на ядре семафора (называемого семафором) для выполнения любой операции потребуется системный вызов. Для памяти не требуется никаких системных вызовов для выполнения каких-либо операций. Предположим, что мы создали именованный семафор sem1 с помощью вызова sem_open. Затем в / dev / shm показано, что для этого семафора появляется файл ls -l /dev/shm/sem.* -rw-r ----- 1 root root 16 янв. 12 14:38 sem.sem1. Поскольку это файл, то когда мы обращаемся к нему через sem_post / sem_wait, нам потребуется выполнить системный вызов. Или же они отображаются в адресном пространстве процесса во время sem_open, тогда нам не потребуется системный вызов в sem_post / sem_wait. Так какой же правильный путь для именованного семафора?

...