Post on 11-Jun-2015
SISTEM OPERASI
Chapter 10Create By: Syaputri Artami
Prodi Pendidikan Teknik Informatika dan KomputerJurusan Teknik Informatika
Fakultas TeknikUNM
Critical Section dan Mutual Exclusion
Merupakan bagian dari proses yang menggunakan memori dan/atau variable yang berbagi-bagi. Setiap prosesn yang yang dibagi-pakai memori mempunyai critical section yang saling terkait ketika menggunakan memori tersebut.
untuk mengatasi race condition adalah dengan menyakinkan bahwa hanya ada satu proses saja yang akan mengeksekusi critical section.
Mutual Exclusion: pendekatan secara software
•Algoritma dekker•Algoritma peterson
Mutual Exclusion : Dukungan hardware
•Pematian interrupt•Intruksi mesin khusus
Semaphore
prinsip dasar semaphore adalah dua atau elbih proses bekerja sama dengan signal yang sederhana, misalnya proses dipaksa unutk berhenti di tempat yang ditunjukan sampai menerima suatu signal khusus. Untuk mengirim signal semaphore, proses mengeksekusi operasi wait() yang sederhana, jika signal yang bersangkutan belum dikirimkan, maka proses ditunda sampai pengiriman datang.
Lanjutan
semaphore merupakan variable yang bertipe integer. Variable semaphone ini merupakan variable global untuk semua proses, sehingga jika dua proses yang berbeda menggunakan variable semaphore yang sama, maka proses-proses tersebut menggunakan variable semaphore yang sama; sehingga proses-proses dapat diatur kerjanya dengan jelas.
Ada 3 operasi yang didefenisikan dalam semaphore sebagai variable bertipe integer:
• Semaphore dapat dianalisis dengan nilai non-negatif.
• Operasi wait() mengurangkan nilai semaphore. Jika nilai smaphore menjadi negatif, maka proses mengeksekusi wait() diblok.
• Operasi signal() menambahkan nilai semaphore. Jika nilai semaphore negatif, maka proses yang diblok oleh operasi wait() dibebaskan (tidak diblok lagi)
Lanjutan
operasi wait() dan signal() diasumsikan sebagai atomic, di mana keduanya tidak dapat diinterrupsi dan setiap rutin merupakan langkah yang todak dapat dipecah-pecah. Atomic action adalah dua penulis atau satu pembacaan dan satu penulisan tidak dapat dilakukan secara bersamaan.
Implementasi Semaphore
seperti disebutkan sebelumnya, operasi wait() dan signal() merupakan sebuah operasi yang sangat oenting dan seharusnya diimplementasikan sebagai suatu operasi yang aomic. Salah satu cara yang sudah jelas adalah implementasi ke dalam hardware atau firmware. Jika implementasi tersebut gagal, maka ada alternatif untuk memakai software.
Lanjutan
sebenarnya masalah mendasar dalam penggunaan semaphore adalah mutual exclusion, yaitu hanya satu proses pada waktu yang boleh memanipulasi semaphore dengan operasi wait() dan signal(), sehingga algoritma-algoritma mutual exclusion secara software, yaitu algoritma Dekker dan algoritma Peterson tetap digunakan.
THANK YOU SEMOGA BERMANFAATTHANK YOU SEMOGA BERMANFAAT