Sistem Operasi
0
komentar
KONKRUENSI Dan DEADLOCK
Konkurensi adalah proses-proses (lebih dari satu
proses) yang terjadi pada saat bersamaan. Konkurensi merupakan landasan umum
perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses
berada pada saat yang sama. Pada proses-proses konkuren yang berinteraksi
mempunyai beberapa masalah yang harus diselesaikan:
a. Mutual Exclusion
b. Sinkronisasi
c. Deadlock
d. Startvation
Prinsip-Prinsip
Konkurensi
Konkurensi meliputi hal-hal sebagai
berikut :
• Alokasi waktu pemroses untuk proses-proses.
• Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
• Komunikasi antarproses.
• Sinkronisasi aktivitas banyak proses.
• Alokasi waktu pemroses untuk proses-proses.
• Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
• Komunikasi antarproses.
• Sinkronisasi aktivitas banyak proses.
Konkurensi dapat muncul pada konteks
berbeda, antara lain:
a. Banyak aplikasi
(multiple application).
b. Aplikasi
terstruktur.
c. Struktur sistem
operasi.
d. Untuk Strukturisasi
Satu Proses.
Interaksi
Antar Proses
Pada sistem dengan banyak proses
(kongkuren), terdapat 2 katagori interaksi, yaitu:
a. Proses-proses
Saling Tidak Peduli (Independen).
b. Proses-proses Saling Mempedulikan Secara Tidak Langsung.
b. Proses-proses Saling Mempedulikan Secara Tidak Langsung.
Beberapa Kesulitan Yang Ditimbulkan
Konkurensi
1. Pemakaian bersama sumber daya global
2. Pengelolaan alokasi sumber daya agar optimal
3. Pencarian kesalahan pemrograman (Debuging).
4. Mengetahui Proses-Proses Aktif.
5. Alokasi dan Dealokasi bragam sumber daya untuk tiap proses aktif.
6. Proteksi Data dan Sumber Daya
Fisik.
7. Hasil-hasil harus Independen dengan proses eksekusi.
Dalam kesempatan ini akan
menjelaskan tentang masalah konkruensi deadlock.
Deadlock
Deadlock adalah
keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk
waktu yang tidak terbatas lamanya. Analoginya seperti pada kondisi jalan raya
dimana terjadi kemacetan parah. Deadlock adalah efek samping dari sinkronisasi,
dimana satu variabel digunakan oleh 2 proses.
Model Deadlock
• Meminta (request): meminta layananperangkat masukan/keluaran.
• Memakai (use): memakai perangkat masukan/keluaran.
• Melepaskan (release): melepaskan pemakaian perangkat masukan/keluaran.
• Meminta (request): meminta layananperangkat masukan/keluaran.
• Memakai (use): memakai perangkat masukan/keluaran.
• Melepaskan (release): melepaskan pemakaian perangkat masukan/keluaran.
a.
Deadlock Problem
Apa itu deadlock?
Analogi :
Traffic stuck, antrian kendaraan yang saling menunggu Menunggu keadaan yang tidak akan pernah terjadi kebuntuan.
b. Karakteristik Deadlock
Situasi deadlock dapat terjadi bila terdapat 4 kondisi yang berjalan serentak pada sistem. Mutual Exclusion Sebuah resource hanya dapat digunakan oleh sebuah proses pada suatu waktu tertentu. (resource yang non- shareable.) Hold and Wait terdapat proses yang sedang menunggu dan memegang resource.
c. Karakteristik Deadlock (cont.)
- Non-preemption
Resource tidak dapat digunakan sebelum proses yang menggunakan telah selesai menggunakan dan kemudian melepaskannya.
Apa itu deadlock?
Analogi :
Traffic stuck, antrian kendaraan yang saling menunggu Menunggu keadaan yang tidak akan pernah terjadi kebuntuan.
b. Karakteristik Deadlock
Situasi deadlock dapat terjadi bila terdapat 4 kondisi yang berjalan serentak pada sistem. Mutual Exclusion Sebuah resource hanya dapat digunakan oleh sebuah proses pada suatu waktu tertentu. (resource yang non- shareable.) Hold and Wait terdapat proses yang sedang menunggu dan memegang resource.
c. Karakteristik Deadlock (cont.)
- Non-preemption
Resource tidak dapat digunakan sebelum proses yang menggunakan telah selesai menggunakan dan kemudian melepaskannya.
Penyebab
Deadlock
Mutual Exclusion
Meniadakan MUTEX
Masalah pada teknik ini:
Mutual Exclusion
Meniadakan MUTEX
Masalah pada teknik ini:
– Tidak setiap resource eksklusif dapat di
spooling.
– Kompetisi terhadap ruang disk dan spooling dapat menuntun ke arah deadlock
Hold and Wait
Meniadakan Syarat Hold & Wait
• Mengalokasikan semua resource atau tidak sama sekali
• Masalah: –Sukar mengetahui lebih dulu semua resource yg diperlukan suatu proses.
• Cara ini dapat menjadi sangat tidak efisien.
• Hold & Release
• Circular Waiting
Circular Wait
• Contoh Circular Wait
• No Preemption
Meniadakan Kondisi
Non-Preemption
• Non preemption mencegah proses2 lain harus menunggu.
• Masalah: – Saat proses A menulis ke printer, tiba-tiba dihentikan proses B yang juga akan menulis ke printer yang sama. Bila dimungkinkan kondisi preemption ini maka kedua proses akan mencetak secara tak benar.
Strategi mengatasi Deadlock
1. Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku.
Prevention
• Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama
• Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru
• Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level
• No Preemption : membolehkan adanya preemption.
2. Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock,
Algoritma Banker.
Avoidance
• Resource manager menolak proses yang meminta resource yang berpotensi deadlock.
• Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya.
• Perlu adanya informasi tambahan.
Algoritma Banker
• Didasarkan pada kondisi bank, dimana konsumen meminjam sejumlah uang, lalu meminta pinjaman uang lagi
• Proses dan resource dimodelkan dalam satu tabel
3. Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich.
Detection dan Recovery
• Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan tindakan recovery seperlunya
• Algoritma yang paling dikenal adalah algoritma Ostrich
• Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil.
– Kompetisi terhadap ruang disk dan spooling dapat menuntun ke arah deadlock
Hold and Wait
Meniadakan Syarat Hold & Wait
• Mengalokasikan semua resource atau tidak sama sekali
• Masalah: –Sukar mengetahui lebih dulu semua resource yg diperlukan suatu proses.
• Cara ini dapat menjadi sangat tidak efisien.
• Hold & Release
• Circular Waiting
Circular Wait
• Contoh Circular Wait
• No Preemption
Meniadakan Kondisi
Non-Preemption
• Non preemption mencegah proses2 lain harus menunggu.
• Masalah: – Saat proses A menulis ke printer, tiba-tiba dihentikan proses B yang juga akan menulis ke printer yang sama. Bila dimungkinkan kondisi preemption ini maka kedua proses akan mencetak secara tak benar.
Strategi mengatasi Deadlock
1. Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku.
Prevention
• Mutual Exclusion : membuat file spool untuk resource yang digunakan bersama-sama
• Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru
• Circular Waiting : memberikan penamaan resource berdasarkan urutan atau level
• No Preemption : membolehkan adanya preemption.
2. Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock,
Algoritma Banker.
Avoidance
• Resource manager menolak proses yang meminta resource yang berpotensi deadlock.
• Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya.
• Perlu adanya informasi tambahan.
Algoritma Banker
• Didasarkan pada kondisi bank, dimana konsumen meminjam sejumlah uang, lalu meminta pinjaman uang lagi
• Proses dan resource dimodelkan dalam satu tabel
3. Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich.
Detection dan Recovery
• Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan tindakan recovery seperlunya
• Algoritma yang paling dikenal adalah algoritma Ostrich
• Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil.
0 komentar:
Posting Komentar