← Back to list

Semaphore, Mutex, dan Signaling di Xinu

Dalam sistem operasi, beberapa proses dapat dieksekusi secara bersamaan (concurrent). Ketika proses-proses tersebut mengakses sumber daya…

luthfizikka · 2026-01-02 18:53 · 0 claps · 3.0 min read
#xinu #xinuos #semaphore #mutex
Open on Medium ↗
Wiki topics: ✍️ · Writing & Creative

Semaphore, Mutex, dan Signaling di Xinu

Dalam sistem operasi, beberapa proses dapat dieksekusi secara bersamaan (concurrent). Ketika proses-proses tersebut mengakses sumber daya yang sama, seperti variabel counter, buffer, atau perangkat I/O, dapat terjadi race condition. Race condition adalah keadaan di mana hasil eksekusi bergantung pada urutan jalannya proses, sehingga berpotensi menghasilkan data yang tidak benar atau tidak konsisten. Oleh karena itu, diperlukan mekanisme sinkronisasi untuk mengontrol akses terhadap sumber daya bersama.

Pada sistem operasi Xinu, terdapat beberapa mekanisme sinkronisasi utama, yaitu semaphore, mutex (mutual exclusion), dan signaling (pola pengurutan antarproses). Ketiga mekanisme ini saling berkaitan, dan pada Xinu sebagian besar konsep sinkronisasi dibangun dengan menggunakan semaphore sebagai dasar.

Semaphore Semaphore merupakan mekanisme sinkronisasi berupa variabel bertipe integer yang digunakan untuk mengendalikan akses beberapa proses terhadap satu sumber daya yang sama. Pada semaphore terdapat tiga operasi utama, yaitu inisialisasi, signal, dan wait.

a. Inisialisasi Di Xinu, pembuatan semaphore dilakukan dengan perintah: nama_semaphore = semcreate(nilai_awal_semaphore)

b. Signal Operasi signal bertujuan untuk menaikkan nilai semaphore. Jika ada proses yang sedang menunggu, maka salah satu proses tersebut akan dibangunkan untuk melanjutkan eksekusi.

c. Wait Operasi wait berfungsi untuk menurunkan nilai semaphore. Jika setelah dikurangi nilainya menjadi negatif, maka proses yang memanggil wait akan masuk ke keadaan blocked dan akan melanjutkan eksekusi setelah dibebaskan kembali.

Implementasi pada Xinu

Pertama, Buka development-system, lakukan proses login, kemudian masuk ke direktori system. Setelah itu, salin file main.c ke direktori xinu menggunakan perintah cp main.c /home/xinu/xinu

Lalu, Kembali ke direktori xinu, kemudian unduh file signaling.c dan mutex.c menggunakan perintah berikut.

Untuk signaling, gunakan perintah

wget [https://raw.githubusercontent.com/ramandarafky/implementation-practixum/refs/heads/main/signaling.c](https://raw.githubusercontent.com/ramandarafky/implementation-practixum/refs/heads/main/signaling.c,)

sedangkan untuk mutex, gunakan perintah

wget https://raw.githubusercontent.com/ramandarafky/implementation-practixum/refs/heads/main/mutex.c

seperti ditunjukkan pada gambar di bawah.

Signaling

Signaling

Signaling

Signaling

mutex

mutex

mutex

mutex

Mutex

Salin kode mutex.c dari direktori xinu, lalu tempelkan ke file main.c yang berada di direktori system hingga isi kodenya sesuai seperti pada gambar, kemudian simpan perubahan tersebut.

Output diperoleh dengan menjalankan program di direktori compile. Masuk ke direktori tersebut, kemudian jalankan perintah make clean diikuti dengan make, lalu masuk ke sudo minicom untuk melihat hasil eksekusi.

Signaling

Salin kode signaling.c dari direktori xinu, kemudian tempelkan ke file main.c yang berada di direktori system hingga isi kodenya sesuai seperti pada gambar ini

Output lakukan hal yang sama seprti pada bagian mutex hingga muncul seperti ini

Kesimpulan

Berdasarkan hasil praktikum dan analisis kode, dapat disimpulkan bahwa mekanisme sinkronisasi pada Xinu sangat bergantung pada semaphore. Semaphore digunakan tidak hanya melalui operasi wait() dan signal(), tetapi juga sebagai dasar implementasi signaling dan mutex.

Pada signaling, semaphore mengatur urutan eksekusi proses agar proses A, B, dan C berjalan secara bergantian dan teratur. Pada mutex, semaphore bernilai satu berfungsi sebagai pengunci sehingga hanya satu proses yang dapat mengakses critical section dalam satu waktu, sehingga race condition dapat dicegah.

Melalui praktikum ini, pemahaman tentang sinkronisasi proses menjadi lebih jelas, khususnya peran semaphore dalam mengatur akses sumber daya dan urutan eksekusi pada sistem operasi Xinu.


메타데이터
post_id
b96ced7d2f26
slug
semaphore-mutex-dan-signaling-di-xinu-b96ced7d2f26
url
https://medium.com/@luthfizikka/semaphore-mutex-dan-signaling-di-xinu-b96ced7d2f26
canonical_url
https://medium.com/@luthfizikka/semaphore-mutex-dan-signaling-di-xinu-b96ced7d2f26
author_url
https://medium.com/@luthfizikka
status
ok
fetched_at
2026-07-13 17:43:34