MANAJEMEN PROSES
SINKRONISASI
&
DEADLOCK
SINKRONISASI
 Latar Belakang
1. Akses-akses yang dilakukan secara bersama-sama ke
data yang sama, dapat menyebabkan data ...
Race Condition
 Race Condition adalah situasi di mana beberapa proses
mengakses dan memanipulasi data bersama pada saat
b...
Critical Section (1)
 Bagian dari program dimana shared memory diakses disebut Critical
Section atau Critical Region.
 W...
Critical Section (2)
 Critical Section adalah sebuah segmen kode di
mana sebuah proses yang mana sumber daya
bersama diak...
SOLUSI MASALAH Critical
Section
 Mutual Exclusion
Jika proses Pi sedang mengeksekusi critical section-nya maka
tidak ada ...
Semaphore sebagai Alat Sinkronisasi
 Mengeksekusi B dalam Pj hanya setelah A dieksekusi di Pi
 Penggunaan semaphore flag...
DEADLOCK
 Dua atau lebih proses yang menunggu dengan tidak terbatas untuk
suatu peristiwa yang disebabkan oleh salah satu...
Resources-Allocation Graph
 Sebuah cara visual (matematika) untuk menentukan apakah ada
deadlock, atau kemungkinan terjad...
Resources-Allocation Graph
 Contoh gambar
Resource-Allocation
Graph
Resources-Allocation Graph
 Jika resource memiliki
banyak instance maka
deadlock terjadi
Resources-Allocation Graph
 Jika setiap tipe
resource memiliki satu
instance, maka
deadlock mungkin akan
terjadi
Metode Menangani Deadlock
 Memastikan bahwa sistem tidak pernah
memasuki status deadlock
 Mengijinkan sistem untuk memas...
Model Sistem
 Menurut Coffman dalam bukunya "Operating System" menyebutkan
empat syarat bagi terjadinya deadlock, yaitu:
...
Strategi menghadapi Deadlock
 Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga
pendekatan, yaitu:
1. Mengabai...
Strategi Ostrich
 Pendekatan yang paling sederhana adalah dengan
menggunakan strategi burung unta: masukkan kepala dalam
...
Mencegah Deadlock
Syarat Langkah Kelemahan
Mutual Exclusion Spooling sumber daya Dapat menyebabkan
chaos
Hold and Wait Mem...
Menghindari Deadlock
 Pendekatan metode ini adalah dengan hanya memberi kesempatan ke
permintaan sumber daya yang tidak m...
ALGORITMA BANKER’S
 Misal ada n proses dalam sistem dan ada m
Resource, maka dibutuhkan :
 Available  suatu vektor deng...
Contoh
Recovery Deadlock : Proses
Termination
 Membatalkan semua proses deadlock
 Membatalkan suatu proses pada waktu yang
sama...
Recovery Deadlock : Resource
Preemption
 Selecting a victim  memperkecil biaya
 Rollback  kembali ke beberapa save sta...
Cara memilih Order untuk
Dibatalkan?
 Prioritas proses
 Berapa lama proses telah menghitung dan
berapa lama sampai ke pe...
Kombinasi penanganan
Deadlock
 Menggkombinasi 3 pendekatan dasar :
1. Pencegahan (prevention)
2. Penghindaran (avoidance)...
Kesimpulan
 Kondisi deadlock akan dapat terjadi jika terdapat dua atau lebih proses yang
akan mengakses sumber daya yang ...
Upcoming SlideShare
Loading in …5
×

Slide3 manajemen proses

1,459 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,459
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
49
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Slide3 manajemen proses

  1. 1. MANAJEMEN PROSES SINKRONISASI & DEADLOCK
  2. 2. SINKRONISASI  Latar Belakang 1. Akses-akses yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten. 2. Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang bekerja.
  3. 3. Race Condition  Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Unutk mencegah race condition, proses-proses yang berjalan besamaan harus di di sinkronisasi. Contoh :  Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain printer, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.
  4. 4. Critical Section (1)  Bagian dari program dimana shared memory diakses disebut Critical Section atau Critical Region.  Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik: 1. Tidak ada dua proses secara bersamaan masuk ke dalam citical section. 2. Tidak ada asumsi mengenai kecepatan atau jumlah cpu. 3. Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain. 4. Tidak ada proses yang menunggu selamamya untuk masuk critical section.
  5. 5. Critical Section (2)  Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari: 1. Entry Section: kode yang digunakan untuk masuk ke dalam critical section 2. Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu 3. Exit Section: akhir dari critical section, mengizinkan proses lain 4. Remainder Section: kode istirahat setelah masuk ke critical section
  6. 6. SOLUSI MASALAH Critical Section  Mutual Exclusion Jika proses Pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section.  Progress Jika ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bisa ditunda  Bounded Waiting Ada sejumlah proses yang diijinkan masuk ke critical section, proses dieksekusi pada nonzero speed (dianggap kecepatannya sama)
  7. 7. Semaphore sebagai Alat Sinkronisasi  Mengeksekusi B dalam Pj hanya setelah A dieksekusi di Pi  Penggunaan semaphore flag intisial 0  Kode Pi Pj … … A signal(flag) wait(flag) B  Dua tipe semaphore 1. Opersi Down Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked. 2. Operasi Up menakkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan dapat dipilih secara acak.
  8. 8. DEADLOCK  Dua atau lebih proses yang menunggu dengan tidak terbatas untuk suatu peristiwa yang disebabkan oleh salah satu dari waiting proses  Membiarkan S dan Q menjadi 2 semaphore P1 P2 Wait x Wait y Wait y Wait x Signal(x) Signal(y) Signal(y) Signal(x)  Starvation  indefinite blocking. Suatu proses yang tidak boleh dipindahkan dari semaphore queue ditempatnya berada
  9. 9. Resources-Allocation Graph  Sebuah cara visual (matematika) untuk menentukan apakah ada deadlock, atau kemungkinan terjadinya.  G = (V, E) Graf berisi node and edge. Node V terdiri dari proses- proses = {P1, P2, P3, ...} dan jenis resource. {R1, R2, ...} Edge E adalah (Pi, Rj) atau (Ri, Pj)  Sebuah panah dari process ke resource menandakan proses meminta resource. Sebuah panah dari resource ke process menunjukkan sebuah instance dari resource telah dtempatkan ke proses.  Process adalah lingkaran, resource adalah kotak; titik-titik merepresentasikan jumlah instance dari resource Dalam tipe. Meminta poin-poin ke kotak, perintah datang dari titik.
  10. 10. Resources-Allocation Graph  Contoh gambar Resource-Allocation Graph
  11. 11. Resources-Allocation Graph  Jika resource memiliki banyak instance maka deadlock terjadi
  12. 12. Resources-Allocation Graph  Jika setiap tipe resource memiliki satu instance, maka deadlock mungkin akan terjadi
  13. 13. Metode Menangani Deadlock  Memastikan bahwa sistem tidak pernah memasuki status deadlock  Mengijinkan sistem untuk memasuki status deadlock dan kemudian dipulihkan  Mengabaikan masalah deadlock dan menganggap bahwa deadlock tidak pernah terjadi dalam sistem
  14. 14. Model Sistem  Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat bagi terjadinya deadlock, yaitu: 1. Mutual Exclusion Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu. 2. Hold and Wait Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain. 3. Non-pre-emptive Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya. 4. Circular Wait Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.
  15. 15. Strategi menghadapi Deadlock  Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu: 1. Mengabaikan adanya deadlock. 2. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock. 3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:  Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.  Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
  16. 16. Strategi Ostrich  Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali.  Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli Matematika, cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock harus ditangani.  Sementara menurut para ahli Teknik, jika komputer lebih sering mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada kompilator atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan keadaan deadlock tersebut. Metode ini diterapkan pada sistem operasi UNIX
  17. 17. Mencegah Deadlock Syarat Langkah Kelemahan Mutual Exclusion Spooling sumber daya Dapat menyebabkan chaos Hold and Wait Meminta sumber daya di awal Sulit memperkirakan di awal dan tidak optimal No Pre-emptive Mengambil sumber daya di tengah proses Hasil proses tidak akan baik Circular Wait Penomoran permintaan sumber daya Tidak ada penomoran yang memuaskan semua pihak Secara ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan masalah-masalah yang menghambatnya, terangkum dibawah ini
  18. 18. Menghindari Deadlock  Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock.  Metode ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock, maka sumber daya akan diberikan pada proses yang meminta.  Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan.  Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state.  Kondisi Aman (Safe state) Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.  Kondisi Tak Aman (Unsafe state) Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.
  19. 19. ALGORITMA BANKER’S  Misal ada n proses dalam sistem dan ada m Resource, maka dibutuhkan :  Available  suatu vektor dengan panjang m yang menunjukkan resource2 yang tersedia untuk setiap tipe  Max  matrik n X m yang mendifinisikan maksimum permintaan untuk tipe2 proses  Allocation  matrik n X m yang mendifinisikan jumlah resource untuk tiap2 tipe yang sedang dialokasikan untuk tiap2 tipe proses  Need  matrik n X m yang menunjukkan sisa resource yang dibutuhkan tiap2 proses
  20. 20. Contoh
  21. 21. Recovery Deadlock : Proses Termination  Membatalkan semua proses deadlock  Membatalkan suatu proses pada waktu yang sama sampai siklus deadlock dihapuskan
  22. 22. Recovery Deadlock : Resource Preemption  Selecting a victim  memperkecil biaya  Rollback  kembali ke beberapa save state, restart kembali proses untuk status tersebut  Starvation  proses yang sama boleh dijadikan korban, meliputi jumlah rollback dalam faktor pembiayaan
  23. 23. Cara memilih Order untuk Dibatalkan?  Prioritas proses  Berapa lama proses telah menghitung dan berapa lama sampai ke penyelesaian  Sumber daya proses telah digunakan  Sumber daya proses harus lengkap  Berapa banyak proses yang perlu diakhiri
  24. 24. Kombinasi penanganan Deadlock  Menggkombinasi 3 pendekatan dasar : 1. Pencegahan (prevention) 2. Penghindaran (avoidance) 3. Pendekteksian (detection)  Membagi sumber daya kedalam order class  Menggunakan teknik yang sesuai untuk menangani deadlock di tiap klas
  25. 25. Kesimpulan  Kondisi deadlock akan dapat terjadi jika terdapat dua atau lebih proses yang akan mengakses sumber daya yang sedang dipakai oleh proses yang lainnya. Pendekatan untuk mengatasi deadlock dipakai tiga buah pendekatan, yaitu: 1. Memastikan bahwa tidak pernah dicapai kondisi deadlock 2. Membiarkan deadlock untuk terjadi dan memulihkannya 3. Mengabaikan apa pun deadlock yang terjadi  Dari ketiga pendekatan diatas, dapat diturunkan menjadi empat buah metode untuk mengatasi deadlock, yaitu: 1. Pencegahan deadlock 2. Menghindari deadlock 3. Mendeteksi deadlock 4. Pemulihan deadlock  Silberschatz (1994) merumuskan sebuah strategi penanggulangan deadlock terpadu yang dapat disesuaikan dengan kondisi dan situasi yang berbeda, strateginya sendiri berbunyi: 1. Kelompokkan sumber daya kedalam kelas yang berbeda 2. Gunakan strategi pengurutan linear untuk mencegah kondisi circular waityang nantinya akan mencegah deadlock diantara kelas sumber daya 3. Gunakan algoritma yang paling cocok untuk suatu kelas sumber daya yang berbeda satu dengan yang lain

×