Seperti yang orang lain katakan semaphore adalah IPC (struktur komunikasi antarproses). Semafor seperti semua IPC digunakan untuk memungkinkan berbagai proses berkomunikasi satu sama lain.
Mereka pada dasarnya adalah penghitung yang dibuat, diakses dan dihancurkan menggunakan panggilan sistem khusus, seperti sempost (3), semwait (3), semget (2) dan semop (2). Lihat sem_overview (7) pada sistem linux untuk deskripsi singkat.
Definisi berkomunikasi di sini cukup primitif. "Berkomunikasi" untuk semafor berarti membaca, menambah atau mengurangi penghitung melalui sistem / panggilan perpustakaan yang disebutkan di atas.
Hal khusus tentang semaphore selain dari fakta bahwa mereka adalah bahwa hanya satu proses pada suatu waktu dapat melakukan operasi pada mereka, dan operasi semaphore dijamin atom , artinya Anda tidak dapat masuk ke dalam kondisi balapan lebih dari satu semaphore sebagai kernel tidak akan menukar proses yang melakukan operasi semaphore.
Hal khusus lainnya adalah mereka dibuat dalam memori bersama yang memungkinkan banyak proses untuk mengaksesnya.
Bagaimana mereka memanifestasikan / dibuat adalah bahwa program membuatnya menggunakan semget (2). Misalnya apache membuat sempahores saat dijalankan.
ipcs -l akan memberi tahu Anda tentang sumber daya ipc sistem.
Anda dapat memanipulasi beberapa batas semaphore sistem dan ipc terkait dengan sysctls. Cobalah sysctl kernel.sem
untuk melihat pengaturan terkait sempahore melalui sysctl. Jika Anda ingin tetap ada perubahan sysctl Anda mencoba memasukkannya ke dalam /etc/sysctl.conf
.