Rabu, 07 Oktober 2026

THREAD DAN INTER-PROCESS COMMUNICATION (IPC) DALAM SISTEM OPERASI

 


1. Pendahuluan

Sistem operasi merupakan perangkat lunak utama yang berfungsi sebagai penghubung antara pengguna (user) dengan perangkat keras (hardware) komputer. Sistem operasi bertugas mengatur, mengontrol, dan mengoptimalkan penggunaan seluruh sumber daya komputer agar program aplikasi dapat berjalan secara efektif. Komponen utama dalam sistem komputer terdiri atas perangkat keras, sistem operasi, program aplikasi, dan pengguna. Sistem operasi berperan sebagai pengelola sumber daya (resource allocator) yang memastikan setiap program memperoleh sumber daya yang diperlukan tanpa terjadi konflik penggunaan.   

Dalam menjalankan berbagai aplikasi secara bersamaan, sistem operasi harus mampu mengelola banyak aktivitas yang berjalan secara paralel. Aktivitas tersebut dikenal sebagai proses (process). Pengelolaan proses menjadi salah satu fungsi utama sistem operasi karena setiap program yang dijalankan membutuhkan alokasi CPU, memori, serta perangkat masukan dan keluaran (Input/Output). Sistem operasi tidak hanya menjalankan proses, tetapi juga mengatur hubungan antarproses agar pertukaran informasi dapat berlangsung secara aman dan efisien. 

Seiring berkembangnya teknologi komputer, kebutuhan terhadap efisiensi pemrosesan semakin meningkat. Sistem modern tidak hanya menjalankan satu proses, tetapi mampu menangani banyak proses secara bersamaan (multitasking). Salah satu pendekatan yang digunakan untuk meningkatkan efisiensi tersebut adalah penggunaan thread. Thread memungkinkan sebuah proses memiliki beberapa jalur eksekusi yang dapat berjalan secara bersamaan sehingga meningkatkan kinerja dan respons sistem.

Selain thread, sistem operasi juga membutuhkan mekanisme komunikasi antarproses atau Inter-Process Communication (IPC). IPC memungkinkan beberapa proses saling bertukar data dan melakukan koordinasi sehingga aplikasi kompleks dapat berjalan secara terintegrasi.

2. Konsep Dasar Proses dalam Sistem Operasi

Proses merupakan program yang sedang berada dalam kondisi eksekusi. Sebuah program yang tersimpan dalam media penyimpanan belum dapat disebut proses sebelum dimuat ke memori utama dan dijalankan oleh prosesor. Ketika proses berjalan, sistem operasi harus mengatur berbagai komponen seperti instruksi program, data, register CPU, serta sumber daya lain yang digunakan.

Menurut konsep sistem operasi modern, komputer terdiri atas CPU dan berbagai device controller yang bekerja secara bersamaan. Sistem operasi bertugas melakukan sinkronisasi akses terhadap sumber daya tersebut agar tidak terjadi konflik antarproses. 

Setiap proses memiliki informasi pengendalian yang disebut Process Control Block (PCB). PCB menyimpan informasi penting mengenai suatu proses, seperti status proses, program counter, register CPU, informasi manajemen memori, serta sumber daya yang sedang digunakan. Dengan adanya PCB, sistem operasi dapat melakukan perpindahan proses (context switching) ketika CPU berpindah dari satu proses ke proses lain.

Dalam sistem operasi, proses memiliki beberapa keadaan (state), yaitu:

1. New

   Proses baru dibuat dan belum mulai dijalankan.

2. Ready

   Proses telah siap dijalankan dan menunggu giliran mendapatkan CPU.

3. Running

   Proses sedang dieksekusi oleh CPU.

4. Waiting/Blocked

   Proses menunggu suatu kejadian, misalnya penyelesaian operasi I/O.

5. Terminated

   Proses telah selesai dijalankan.

Pengaturan perpindahan keadaan proses tersebut dilakukan oleh sistem operasi melalui mekanisme penjadwalan (scheduling).

3. Pengertian Thread

Thread merupakan unit terkecil dari proses yang dapat dijadwalkan oleh sistem operasi. Jika proses dianggap sebagai sebuah aplikasi yang sedang berjalan, maka thread dapat dianalogikan sebagai jalur kerja di dalam aplikasi tersebut.

Sebuah proses dapat memiliki satu atau lebih thread. Proses dengan satu thread disebut single-threaded process, sedangkan proses dengan beberapa thread disebut multithreaded process.

Thread memiliki beberapa komponen yang sama dengan proses, seperti:

- program counter,

- register,

- stack,

- status eksekusi.

Namun, beberapa sumber daya seperti kode program, data, dan file yang digunakan dapat dibagikan antarthread dalam satu proses.

Konsep multithreading dibahas sebagai bagian penting dalam sistem operasi modern karena memungkinkan suatu aplikasi melakukan beberapa pekerjaan secara bersamaan. Buku Sistem Operasi Meyti Eka Apriyani dkk. memasukkan pembahasan multithread sebagai bagian dari konsep proses dan hubungan antarproses. 

4. Perbedaan Process dan Thread

Walaupun proses dan thread memiliki hubungan erat, keduanya mempunyai karakteristik berbeda.

Aspek Process Thread
Definisi Program yang sedang berjalan Jalur eksekusi dalam proses
Sumber Daya Memiliki sumber daya sendiri Berbagi sumber daya proses
Komunikasi Membutuhkan IPC (Inter-Process Communication) Lebih mudah karena berbagi memori
Pergantian Eksekusi Lebih berat karena membutuhkan context switching antar proses Lebih ringan karena berada dalam proses yang sama
Kecepatan Relatif lebih lambat Relatif lebih cepat


Proses memiliki ruang memori sendiri sehingga lebih aman dari gangguan proses lain. Namun, komunikasi antarproses membutuhkan mekanisme khusus. Sebaliknya, thread dalam satu proses dapat berbagi memori sehingga komunikasi lebih cepat, tetapi memiliki risiko konflik data apabila tidak dilakukan sinkronisasi dengan baik.

5. Jenis-Jenis Thread

5.1 User Level Thread

User level thread merupakan thread yang dikelola oleh pustaka (library) pada tingkat pengguna. Sistem operasi tidak mengetahui keberadaan thread secara langsung karena seluruh pengelolaan dilakukan oleh aplikasi.

Keuntungan user thread:

- pembuatan thread lebih cepat,

- tidak membutuhkan perubahan mode kernel,

- mudah diterapkan.

Namun kelemahannya adalah apabila satu thread mengalami masalah, seluruh proses dapat terganggu.

5.2 Kernel Level Thread

Kernel level thread merupakan thread yang dikelola langsung oleh sistem operasi. Kernel mengetahui setiap thread yang berjalan sehingga proses penjadwalan dapat dilakukan secara langsung.

Keuntungan:

- sistem operasi dapat mengatur setiap thread,

- lebih baik untuk sistem multiprosesor,

- kegagalan satu thread tidak selalu menghentikan seluruh proses.

Namun, pembuatan dan pengelolaan kernel thread membutuhkan biaya lebih besar karena melibatkan kernel.

6. Model Multithreading

Sistem operasi modern menggunakan beberapa model hubungan antara user thread dan kernel thread.

6.1 Many-to-One Model

Pada model ini banyak user thread dipetakan ke satu kernel thread.

Kelebihan:

- implementasi sederhana,

- pengelolaan cepat.

Kekurangan:

- jika satu thread mengalami blocking, seluruh proses berhenti,

- tidak dapat memanfaatkan banyak CPU secara maksimal.

6.2 One-to-One Model

Setiap user thread memiliki satu kernel thread.

Kelebihan:

- memungkinkan eksekusi paralel,

- lebih efektif pada sistem multiprosesor.

Kekurangan:

- membutuhkan sumber daya lebih banyak.

6.3 Many-to-Many Model

Model ini menggabungkan kelebihan model sebelumnya dengan memetakan banyak user thread ke beberapa kernel thread.

Model ini memberikan fleksibilitas lebih baik karena sistem operasi dapat mengatur jumlah kernel thread sesuai kebutuhan.

Pembahasan mengenai model multithreading seperti many-to-one, one-to-one, dan many-to-many menjadi bagian penting dalam referensi sistem operasi modern. 

7. Keuntungan Penggunaan Thread

Penggunaan thread memberikan beberapa keuntungan utama:

7.1 Responsivitas

Thread memungkinkan aplikasi tetap memberikan respons kepada pengguna walaupun terdapat pekerjaan lain yang sedang berlangsung.

Contohnya:

- aplikasi pengolah kata tetap dapat menerima input pengguna saat melakukan penyimpanan file.

7.2 Berbagi Sumber Daya

Karena thread berada dalam satu proses yang sama, thread dapat berbagi data dan sumber daya dengan lebih mudah.

7.3 Efisiensi

Pembuatan dan pergantian thread membutuhkan biaya lebih kecil dibandingkan proses.

7.4 Skalabilitas

Thread memungkinkan aplikasi memanfaatkan prosesor multicore sehingga pekerjaan dapat dibagi ke beberapa CPU.

8. Inter-Process Communication (IPC)

Dalam sistem operasi, setiap proses biasanya berjalan dalam ruang memori masing-masing. Kondisi ini memberikan keamanan, tetapi membuat proses tidak dapat langsung bertukar informasi.

Untuk mengatasi masalah tersebut digunakan mekanisme Inter-Process Communication (IPC).

IPC adalah mekanisme yang memungkinkan dua atau lebih proses melakukan komunikasi dan pertukaran data.

Menurut konsep sistem operasi, layanan komunikasi diperlukan agar proses dapat bertukar informasi baik dalam satu komputer maupun antar komputer. 

IPC banyak digunakan pada:

- sistem operasi jaringan,

- aplikasi client-server,

- database,

- aplikasi paralel.

9. Mekanisme IPC

9.1 Shared Memory

Shared memory merupakan metode komunikasi dengan menyediakan area memori yang dapat diakses oleh beberapa proses.

Cara kerja:

1. Sistem operasi membuat area memori bersama.

2. Proses mendapatkan akses terhadap area tersebut.

3. Proses membaca dan menulis data pada area yang sama.

Keuntungan:

- sangat cepat,

- cocok untuk pertukaran data besar.

Kelemahan:

- membutuhkan mekanisme sinkronisasi agar tidak terjadi konflik.

9.2 Message Passing

Message passing menggunakan mekanisme pengiriman pesan antarproses.

Operasi utama:

- send(message)

  Mengirim pesan.

- receive(message)

  Menerima pesan.

Keuntungan:

- lebih aman,

- cocok untuk sistem terdistribusi.

Kelemahan:

- lebih lambat dibanding shared memory karena membutuhkan komunikasi melalui sistem operasi.

10. Sinkronisasi pada IPC

Ketika beberapa proses atau thread mengakses sumber daya yang sama, dapat terjadi masalah race condition, yaitu kondisi ketika hasil eksekusi bergantung pada urutan proses yang tidak terkontrol.

Untuk mengatasi masalah tersebut diperlukan sinkronisasi.

Beberapa mekanisme sinkronisasi:

10.1 Critical Section

Critical section adalah bagian kode yang mengakses sumber daya bersama.

Tujuannya adalah memastikan hanya satu proses yang dapat mengakses bagian tersebut pada satu waktu.

10.2 Semaphore

Semaphore merupakan variabel sinkronisasi yang digunakan untuk mengatur akses terhadap sumber daya bersama.

Operasi utama:

- wait()

- signal()

Semaphore banyak digunakan dalam pengendalian proses paralel.

10.3 Mutex

Mutex (mutual exclusion) merupakan mekanisme penguncian sederhana yang memastikan hanya satu thread dapat mengakses sumber daya tertentu.

11. Implementasi IPC pada Sistem Operasi Modern

Pada sistem operasi modern seperti Linux dan Windows, IPC diterapkan melalui berbagai mekanisme seperti:

- pipe,

- socket,

- shared memory,

- message queue,

- semaphore.

Sebagai contoh:

- browser menggunakan beberapa proses untuk meningkatkan keamanan,


- server menggunakan komunikasi antarproses untuk menangani banyak permintaan pengguna,

- database menggunakan sinkronisasi agar transaksi tetap konsisten.

12. Kesimpulan

Thread dan Inter-Process Communication merupakan dua konsep penting dalam sistem operasi modern. Thread memungkinkan sebuah proses menjalankan beberapa aktivitas secara bersamaan dengan penggunaan sumber daya yang lebih efisien. Sementara itu, IPC memungkinkan berbagai proses melakukan komunikasi dan koordinasi.

Penggunaan thread meningkatkan kinerja aplikasi melalui paralelisme, sedangkan IPC memastikan proses yang berbeda dapat bertukar informasi secara aman. Namun, penggunaan keduanya membutuhkan mekanisme sinkronisasi agar tidak terjadi konflik data.

Dengan memahami konsep proses, thread, multithreading, IPC, dan sinkronisasi, pengembang sistem dapat merancang aplikasi yang lebih cepat, stabil, dan mampu memanfaatkan kemampuan perangkat keras modern secara optimal.

Daftar Pustaka

Apriyani, M. E., Hamdana, E. N., & Alhamri, R. Z. (2022). Sistem Operasi. Jember: Cerdas Ulet Kreatif.

Dewi, M. U. (2021). Sistem Operasi dan Utility. Semarang: Yayasan Prima Agus Teknik.

Hartono, Abdullah, D., Fadlisyah, & Erliana, C. I. (2018). Sistem Operasi: Buku Referensi Informatika dan Sistem Informasi. Lhokseumawe: SEFA Bumi Persada.

Silberschatz, A., Galvin, P. B., & Gagne, G. (2018). Operating System Concepts. Wiley.

Stallings, W. (2018). Operating Systems: Internals and Design Principles. Pearson.

Siyamta. (2013). Sistem Operasi. Jakarta: Kementerian Pendidikan dan Kebudayaan.


Tidak ada komentar:

Posting Komentar