Inter-process Communication pada POSIX

Proses adalah basis dari semua komputasi. Proses juga merupakan program yang dieksekusi. Dalam proses eksekusi dijalankan secara sekuensial. Dalam sebuah sistem operasi terdapat banyak proses yang saling berinteraksi. Interaksi antar proses itu dikenal sebagai interprocess communication (IPC).. Interaksi tersebut bertujuan agar terjadi kesinambungan antar proses yang terjadi sehingga sistem operasi dapat berjalan sebagaimana mestinya. Interaksi tersebut dapat melalui sistem berbagi memori atau dengan cara saling berkirim pesan. Terkadang, beberapa pesan yang dikirim tidak dapat diterima seluruhnya oleh penerima dan menyebabkan informasi yang lain menjadi tidak valid, maka dibutuhkanlah sebuah mekanisme sinkronasi yang akan mengatur penerimaan dan pengiriman pesan sehingga kesalahan penerimaan pesan dapat diperkecil. Pesan yang dikirim dapat ditampung dalam penyangga sebelum diterima oleh penerima.

POSIX singkatan dari Portable Operating System Interface for UNIX, adalah sebuah standar yang dicetuskan oleh Institute of Electical and Electronics Engineers (IEEE) yang mendefinisikan sekumpulan layanan dalam sistem operasi. Program-program yang mendukung standar POSIX dapat secara mudah di-port dari satu sistem ke sistem lainnya. POSIX menjadi basis dalam layanan sistem operasi UNIX. Meskipun demikian, POSIX juga dibuat demikian agar sistem operasi lainnya dapat mengimplementasikan layanan POSIX. Antarmuka pengguna standar dalam POSIX adalah Korn shell yang digunakan untuk memasukkan perintah command-line dan pembuatan skrip. Program-program pengguna lainnya juga dimasukkan ke dalam standar, seperti awk, echo, ed, dan ratusan program lainnya. 



POSIX juga mendefinisikan pustaka API standar untuk thread (POSIX Thread) yang banyak diimplementasikan di sistem operasi modern dimana POSIX thread ini memiliki fungsi antara lain untuk :


·      Thread management : Thread dikelola pada library thread routine untuk penciptaan thread, status query thread, normal atau abnormal terminasi thread, menunggu penghentian thread, pengaturan atribut penjadwalan, dan menentukan ukuran stack thread.

·     Assistance for data sharing : Sharing data dengan thread dapat terjadi kesalahan jika terdapat dua atau lebih thread yang di-update dalam waktu bersamaan. Untuk itu disediakan sebuah fungsi yang disebut mutex dimana fungsi tersebut bertugas untuk menjaga agar setiap data yang ada hanya dapat dikases atau digunakan oleh satu thread dan apabila ada thread lain yang membutuhkan data terseut maka thread itu dapat menggunakannya dengan cara bergantian.

·     Assistance for synchronization : Condition variables disediakan untuk memfasilitasi koordinasi antara thread sehingga setiap thread dapat melaksanakan tugasnya masing-masing. Sementara itu, layanan-layanan level program yang dimasukkan ke dalam standar adalah input/output dasar (file, terminal, dan jaringan).


    POSIX juga mendefinisikan bagaimana melakukan pengujian terhadap sebuah aplikasi apakah mendukung POSIX atau tidak, yang disebut dengan POSIX Confirmance Test Suite (PCTS). Linux disusun berdasarkan standard sistem operasi POSIX, yang sebenarnya diturunkan berdasarkan fungsi kerja UNIX. UNIX kompatibel dengan Linux pada level system call, ini berarti sebagian besar program yang ditulis untuk UNIX atau Linux dapat direkompilasi dan dijalankan pada sistem lain dengan perubahan yang minimal. 

Pada POSIX ada empat metode IPC yang digunakan yaitu :

  • Shared memory
  • Message passing
  • Pipes
  • Socket
     Untuk shared memory, message passing dan pipes merupakan metode yang sering digunakan pada single komputer sedangkan untuk socket sering digunakan untuk komunikasi proses komputer yg berbeda.


Leave a Reply