Kamis, 25 September 2014

TUGAS 4 SISTEM OPERASI

Semaphore
·         Definisi
Merupakan pendekatan yang dikemukan oleh Dijkstra. Semaphore adalah sebuah struktur data komputer yang digunakan untuk sinkronisasi proses. Semaphore dinyatakan dalam suatu nilai integer.
·         Karakteristik
-          Semaphore dapat diinialisasikan dengan nilai non negatif.
-          Terdapat 2 operasi dalam semaphore, yaitu Up dan Down.
·         Kelebihan
1.      Dapat digunakan untuk membentuk mutex.
2.      Merupakan tool yang serba guna.
·         Kekurangan
1.      Tidak mudah membuat program dengan mengimplementasikan semaphore.
2.      Penanganan mutex dan sinkronisasi merupakan tanggung jawab programmer.

Contoh-contoh semaphore
1.      Primitive semaphore

Keterangan :
-          Prosedur semWait(s) digunakan untuk menerima signal semaphore s.
-          Prosedur semSignal(s) digunakan untuk mengirimkan signal semaphore s.
-          Inisialisasi variable semaphore tidak boleh negatif.

2.      Semaphore biner

Keterangan :
-          Prosedur semWait(s) digunakan untuk menerima signal semaphore s.
-          Prosedur semSignal(s) digunakan untuk mengirimkan signal semaphore s.
-          Inisialisasi variable semaphore hanya bernilai 0 atau 1.

Implementasi mutual exclusion dengan semaphore
            Berikut contoh implementasi mutex menggunakan semaphore :


Monitor
·         Definisi
Adalah kumpulan prosedur, variable dan struktur data di satu modul dan proses dapat memanggil prosedur-prosedur di monitor kapan saja dibutuhkan. Monitor merupakan suatu konsep bahasa pemrograman yang mempunyai fungsionalitas seperti semaphore dan lebih mudah dikontrol.
·         Karakteristik
-          Variable data lokal hanya dapat diakses oleh oleh monitor.
-          Proses untuk memasuki monitor ialah dengan memanggil salah satu prosedurnya.
-          Hanya ada satu proses yang berjalan dalam satu waktu
·         Kelebihan
1.      Bisa menangani  sinkronisasi.
2.      Jika program monitor benar, maka akses terhadap critical resource oleh semua proses akan benar.
3.      Pengecekan masalah yang berhubungan dengan mutex hanya terpusat pada modul monitor.
·         Kekurangan
1.      Memerlukan mekanisme penjadwalan proses yang handal.
2.      Proses yang mengeluarkan csignal harus segera keluar.
3.      Bila signal pada csignal hilang, maka proses yang berada dalam antrian akan terblok.
4.      Jika proses terblok diperlukan 2 tahapan switching tambahan.
Contoh Monitor
          Contoh: Bounded-buffer producer consumer




Contoh monitor dengan notify : (If diganti while)
Contoh Monitor Dengan Broadcast :
Seperti Pada saat Producer menaruh data ke buffer, maka Producer tidak perlu tahu seberapa cepat konsumer dapat mengambil data dari buffer  ke Produser. Dan produser dapat menaruh data dengan ukuran berbeda-beda 


Message Passing
·         Definisi
Message Passing adalah salah satu teknik dalam operating system untuk kebutuhan komunikasi dan sinkronisasi antar proses-proses yang ada. Message passing ini biasa digunakan pada sistem terdistribusi, shared-memory pada prosesor baik uni maupun multiprocessor. Message passing ini digunakan sebagai cara agar objek-objek yang membentuk sebuah program dapat bekerja satu sama lain dan sebagai cara agar objek dan sistem yang berjalan pada beberepa komputer untuk saling berinteraksi.
·         Operasi dasar yang digunakan :
1.      Operasi send : untuk mengirim informasi dalam bentuk message ke proses tujuan.
2.      Operasi receive : untuk menerima informasi dalam bentuk message dari proses sumber.
Message yang dikirim bisa berisi sesuatu yang saling dipahami oleh proses proses yang ada seperti data, remote procedure call, executable code dan lain sebagainya . Dan biasanya message mengandung filed standart yang berisi procedd ID tujuan, message length, tipe data dan lain sebagainya.
·         Sinkronisasi
Bertujuan agar komunikasi antar proses bias diatur dengan baik. Pada operasi send terdapat 2 kemungkinan kejadian pada proses tersebut yaitu:
-          Blocking send : proses akan terblok sampai message diterima,
-          Nonblocking send : proses masih tetap bisa melanjutkan eksekusi yang lain.
Sedangkan pada operasi receive suatu proses akan bisa mengalami 2 kejadian yang hampir sama seperti operasi send namun apabila message sudah dikirim oleh proses lain maka proses akan menerima pesan dan melanjutkan ekseskusi. Namun apabila pesan belum terkirim atau bahkan belum ada maka terjadi 2 hal yang sama dengan apa yang terjadi ketika operasi send yaitu :
-          Blocking receive : proses terblok sampai pesan telah ada,

-          Nonblocking receive : proses akan mengabaikan pesan dan tetap melanjutkan eksekusi.

Tidak ada komentar: