SISTEM OPERASI
Disusun oleh:
Aurora Hanna Violetta/180533631583
S1 PTI 2018 / OFFERING A
Fungsi Semafor digunakan untuk menangani masalah sinronisasi secara umum serta dua proses
atau lebih dapat bekerjasama dengan menggunakan penanda-penanda sederhana.
- Setelah thread keluaar dari critical section-nya, thread tersebut menggunakan fungsi buka
untuk pemanggilan fungsi nya.
- Algoritma :
Kesimpulan :
Jika kita cermati fungsi kunci, thread akan terus berada dalam waiting loop sampai
sem_value naik lebih dari 0. Padahal, di dalam loop tersebut thread tidak melakukan
tugas apa-apa. Inilah yang disebut dengan busy waiting (semafor jenis ini disebut
dengan semafor spinlock). Hal ini tentu saja akan berakibat buruk terhadap kinerja
CPU, karena loop tersebut membutuhkan CPU cycle, sementara loop tersebut tidak
menghasilkan apa-apa, jadi sama saja dengan menyia-nyiakan CPU cycle.
Untuk mengatasi hal ini, dibuatlah modifikasi dari semafor, yaitu dengan
menambahkan waiting queue pada masing-masing semafor. Tujuannya adalah
agar thread yang harus menunggu dipindahkan ke waiting queue dan kegiatannya
dihentikan sementara.
Ketika thread keluar dari critical section-nya, thread tersebut akan memanggil
fungsi buka yang akan mengeluarkan satu (dari beberapa) thread yang berada
dalam waiting queue lalu membangunkannya untuk kemudian memasuki critical
section-nya.
DAFTAR RUJUKAN