Sebutkan dan Jelaskan Pengertian Deadlock dan Starvation. Dan berikan contohnya
Deadlock
Deadlock terjadi jika dua atau lebih proses menunggu tanpa ada batas waktu. Deadlock merupakan suatu kondisi yang saling menunggu.Karena beberapa poses saling menunggu maka tidak ada proses kemajuan. Deadlock ini salah satu masalah yang biasa terjadi,sebab saling menunggu. Apalbila deadlock terjadi pada sistem komputer, maka akan terjadi efek berantai dimana sumber daya yang seharusnya digunakan oleh proses lain tidak dapat digunakan sehingga proses lain juga akan terhambat eksekusinya.
Contoh deadlock:
- Terdapat 2 proses kita sebut P1 dan P2 yang masing-masing membutuhkan 2 sumber daya yang sama, kita sebut: S1 dan S2.
- P1 meminta ijin untuk menggunakan S1 terlebih dahulu. Karena S1 memang sedang tidak ada yang menggunakan, maka S1 diberikan kepada P1.
- Pada waktu yang hampir bersamaaan, P2 meminta ijin untuk menggunakan S2. Karena memang S2 sedang tidak ada yang menggunakan, maka S2 diberikan kepada P2.
- Setelah P1 mendapatkan S1, langkah selanjutnya adalah meminta ijin untuk menggunakan S2. Karena S2 sedang digunakan oleh P2, maka P1 menunggu sampai S2 dibebasakan.
- Disisi lain, P2 sudah mendapatkan S2, yang kemudian meminta ijin menggunakan S1. Karena S1 sedang digunakan oleh P1, maka P2 menunggu sampai S1 dibebaskan.
- Situasinya akan menjadi P1 menunggu P2 melepaskan S2, padahal S2 akan dilepaskan jika P2 sudah mendapatkan S1(yang sedang digunakan P1) dan menyelesaikan prosesnya. Begitu juga sebaliknya.
Starvation
Starvation merupakan suatu kondisi yang terjadi setelah deadlock. Starvation terjadi jika suatu proses tidak mendapatkan resource yang diminta atau tidak dapat menjalankan critical sectionnya dalam jangka waktu yang sangat lama. Suatu proses dikatakan mengalami starvation jika proses tersebut tidak mendapatkan sumber daya yang dibutuhkan dan mengalami penjadwalan yang buruk.penjadwalan berdasarkan prioritas akan memungkinkan proses dengan prioritas terendah tidak kebagian sumber daya krena disela oleh proses baru.Hal ini dapat diselesaikan dengan Aging dan round robin. Metode aging dilakukan dengan cara menaikkan prioritas proses sedikit demi sedikit pada proses yang berprioritas rendah seiring dengan watu tunggu.Sedangkan proses round robin dimana setiap proses mendapatkan unit satuan waktu CPU,setelah jatah waktu selesai,proses akan ditunda dan dimasukkan ke akhir dari ready queue.
Berikut contoh dari starvation :
- P1 menggunakan sumber daya S
- P2 dan P3 ingin menggunakan S, keadaan menunggu
- P1 melepaskan S, P3 diijinkan menggunakan S (bisa karena prioritas lebih tinggi)
- P1 membutuhkan S sebelum P3 selesai
- P1 diberikan akses ke S setelah P3 selesai
- P1 dan P3 bergantian menggunakan S, sedangkan P2 tidak pernah mendapatkan jatah menggunakan S.
Comments
Post a Comment