Langsung ke konten utama

Sistem Operasi #7 Deadlock


A. Definisi Deadlock

Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut.

Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:

  • Terdapat satu jalur pada jalan.
  • Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
  • Untuk mengatasinya beberapa mobil harus preempt (mundur).
  • Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).


B. 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, yaitu untuk mengidentifikasi ketika deadlock terjadi.
  • Pemulihan deadlock, yaitu untuk mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
C. Mencegah Deadlock
Metode ini merupakan metode yang paling sering digunakan. Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock.  Tetapi pencegahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk.

Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion, jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan 
pernah terjadi deadlock. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos.

Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat 
menunggu sumber daya yang lain, maka deadlock dapat dicegah.  

Cara terakhir adalah dengan meniadakan syarat keempat circular wait. Terdapat dua pendekatan, yaitu:
1. Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu 
waktu, jika menginginkan sumber daya lain maka sumber daya yang dimiliki harus dilepas.
2. Membuat penomoran pada proses-proses yang mengakses sumber daya. Suatu proses 
dimungkinkan untuk dapat meminta sumber daya kapan pun, tetapi permintaannya harus dibuat terurut.

D. 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 disuspend 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.
1. 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.
2. 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.












Komentar

Postingan populer dari blog ini

Sistem Operasi #5 Sinkronisasi

Sinkronisasi mengacu pada salah satu dari dua proses yang berbeda tetapi saling berkaitan satu sama lainnya. Dua proses ini merupakan sinkronisasi data dan sinkronisasi proses. A. Definisi Sinkronisasi Sinkronisasi merupakan suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. Sinkronisasi ini dibutuhkan ketika menemukan sebuah kasus yang menyebabkan ketidakkonsistenan data sehingga data menjadi tidak konkuren.  Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan. Adapun manfaat sikronisasi pada sistem operasi adalah:  Adanya akses-akses dat...

Sistem Operasi #4 Thread

  Ilustrasi Thread Thread  merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Perbedaan antara proses thread tunggal dengan proses thread yang banyak (Multi thread) adalah proses thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. A. Definisi Thread Proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread. Thread terdiri atas ID thread, program counter, himpunan register, dan stack sehingga dengan banyaknya kont...

Perintah-perintah Dasar Linux

  Perintah Dasar Linux Beserta Skenario Pembuatan Struktur Folder ` Linux adalah sebuah sistem operasi seperti Unix yang menggunakan kernel linux sebagai inti dan disertakan aplikasi dan module pendukung lain agar berfungsi dan bisa digunakan secara utuh layaknya sistem operasi pada umumnya. Untuk mengoperasikan linux kalian perlu mengakses terminal, terminal merupakan sebuah insterface berbasis Command Line Interface (CLI) yang dapat mengeksekusi perintah yang kalian ketik. Agar dapat memahami perintah-perintah tersebut kalian harus mempelejari sintaks-sintaks dasar Linux. Apa saja perintahnya? yuk simak perintah-perintah dasar Linux dibawah ini. 1. mkdir Perintah mkdir digunakan untuk membuat direktori. Pada skenario, kita mempunyai lima direktori yaitu, member, ashar, rico, ukki dan caca.  Buat direktori member, gunakan perintah  mkdir latihan 2. cd Change directory digunakan untuk pindah dari satu direktori ke direktori lain. Untuk pindah ke direktori member, gunakan ...