Editan Deadlock

29
SISTEM OPERASI Deadlock dan Starvation Oleh: Muharriana Maisara Evayanti

Transcript of Editan Deadlock

  • Model-Model Deadlock

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    *

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Model deadlock dua proses dan dua sumber daya

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Skenario yang menimbulkan deadlock

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Syarat-Syarat terjadinya DeadlockMutual exclution conditionTiap sumber daya saat itu diberikan pada tepat satu proses / proses meng-klaim kontrol eksklusif terhadap sumber daya yang dibutuhkannya.Hold and wait condition / kondisi genggam dan tungguProses-proses yang sedang menggenggam sumber daya yang telah dialokasikan untuknya sementara menunggu sumber daya sumber daya tambahan yang baru.Non-preemption condition / kondisi non-preemptionSumber daya sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses sampai sumber daya tersebut digunakan sampai selesai. Sumber daya sumber daya harus secara eksplisit dilepaskan dari proses yang menggenggamnya.Circular wait condition / kondisi menunggu secara sirkularHarus terdapat rantai sirkuler / satu lingkaran proses dari dua proses atau lebih dimana setiap proses memegang satu atau lebih sumber daya yang diminta oleh proses berikutnya pada lingkaran tersebut, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Metode-metode mengatasi deadlock deadlock prevention / metode pencegahan terjadinya deadlockpengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang dari sudut tercegahnya deadlock. Jika mulainya satu atau lebih proses akan menyebabkan terjadinya deadlock, proses tersebut tidak akan dimulai sama sekali.tiap proses harus meminta resource yang dibutuhkan sekaligus dan tidak bisa berjalan sampai semua di dapat (untuk wait for)jika ada resourcce yang tidak terpenuhi, yang lainnya harus dilepas (untuk no preemption)urutkan tipe-tipe resource secara linier / linier ordering (untuk circular wait)

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Metode-metode mengatasi deadlock Deadlock avoidance / metode penghindaran terjadinya deadlockmenghindarkan kondisi yang paling mungkin menimbulkan deadlock agar memperoleh sumber daya lebih baik. Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock. Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, sistem menolak / menghindari pengaksesan itu. Dengan demikian menghindari terjadinya deadlock. Contohnya dengan menggunakan algoritma Banker yang diciptakan oleh Dijkstra.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Metode-metode mengatasi deadlock Deadlock detection and recovery / metode deteksi dan pemulihan dari deadlockdeteksi digunakan pada sistem yang mengijinkan terjadinya deadlock, dengan memeriksa apakah terjadi deadlock dan menentukan proses dan sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. Metode pemulihan dari deadlock sistem sehingga beroperasi kembali, bebas dari deadlock. Proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber dayanya.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Pencegahan deadlockMeniadakan mutual exclusion : yaitu mencegah hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu,

    Meniadakan syarat Hold dan Wait, cara ini dapat dilakukan dengan: mengalokasikan semua sumber daya atau tidak sama sekali dan hold and release. proses untuk mengalokasikan semua sumber daya atau tidak sama sekali permintaan ini hanya dapat dilayani bila semua sumber daya tersedia, jika sumber daya tersedia proses dialokasikan jika diperlukan dan berjalan sampai selesai. Jika sumber daya tidak tersedia atau hanya satu sumber daya maka proses harus menunggu sampai semua sumber daya yang diperlukan tersedia untuk dialokasikan padanya, yang menjadi permasalahan adalah sukar untuk mengetahui lebih dulu sumber daya yang diperlukan suatu proses karena pada awal proses tidak diketahui berapa sumber daya yang diperlukan, jika proses hanya butuh satu disk diawal eksekusi (atau lebih buruk lagi tanpa disk) dan menistrahatkan disk-disk yang lain. Perlunya proses utnuk menerima seluruh disk yang diperlukan sebelum eksekusi dimulai menyebabkan sumber daya komputer menganggur dalam waktu yang lama, sementara proses yg memerlukan harus menunggu. Hold and release (genggam dan lepas)yaitu pada saat terjadi permintaan satu sumber daya Maka proses harus melepaskan sumber daya lain yg telah digunakan, jadi hanya satu sumber daya yg dialokasikan untuk proses. Cara ini tidak mungkin karena ada proses yang di Syaratkan harus memegang beberapa sumber daya sekaligus,misalnya menggambar pada Plotter yang memerlukan plotter serta disk untuk menyimpan data gambar yang diplot.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Pencegahan deadlockmeniadakan kondisi non preempation :yaitu mencegah proses lain harus menunggu menunggu proses preemption sehingga tidak ada tunggu menunggu. Contohnya : saat proses A menulis ke printer tiba-tiba di stop oleh proses B yang juga akan menulis ke printer yang sama bila dimungkinkan preemption ini maka kedua proses akan mencetak seca ra tidak benar.

    Meniadakan kondisi menunggu sirkular: Kondisi ini dapat ditiadakan dengan cara yaitu proses hanya dibolehkan menggenggam satu sumber daya pada satu saat , jika perlu sumber daya yang kedua maka proses harus melepaskan sumber daya pertama. (sama dengan hold & release), cara ini tidak dimungkinakn karena terdapat proses yang mengharuskan memegang lebih dari satu sumber daya pada saat yg sama untuk menyelesaikan prosenya. Untuk meniadakan kondisi sirkular juga dapat dilakukan dengan penomoran global semua Sumber daya, karena proses dapat meminta kapanpun proses menginginkan,tetapi permintaan dibuat terurut secara numerik, cara ini tidak menimbulkan siklus , permasalah yang timbul tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Pencegahan deadlockHavendar mengemukakan bahwa jika keempat syarat tersebut diatas tidak dipenuhi maka tidak akan terjadi deadlock, sehingga Havendar menyarankan strategi strategi untuk meniadakan dengan syarat :Setiap proses harus meminta semua sumber yang diperlukan sekaligus dan tidak berlanjut sampai semua diberikan.Jika proses telah/sedang memegang sumber daya tertentu , untuk permintaan berikutnya Proses harus melepas sumber daya yang dipegangnya , jika diperlukan proses harus meminta kembali sekaligus dengan sumber daya yang baru.Buat urutan yang linear untuk semua sumber daya pada semua proses, jika proses telah dialokasikan pada suatu type sumber daya maka proses berikutnya boleh meminta type sumber daya berikutnya.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Penghindaran DeadlockGagasan dasar penghindaran deadlock adalah untuk memberi akses ke permintaan sumber daya yang tidak menimbulkan deadlock, cara ini biasa digunakan dengan mengalokasikan sumber daya dan memeriksa dampak pemberian akses ke suatu permintaanJika pemberian akses sumber daya tidak mungkin menimbulkan deadlock maka sumber daya diberikan ke peminta sumber daya, jika timbul deadlock maka proses yang meminta di suspend sampai waktu permintaannya aman (tidak timbul deadlock) baru diberikan, kondisi ini biasanya terjadi setelah satu suimber daya atau lebih yang semula dipegang oleh proses-yang aktif liannya dilepas.Untuk penghindaran deadlock diperlukan pengertian mengenai state selamat (safe state) dan dan state tak selamat (unsafe state), dinyatakan sebagai state selamat jika state tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan yang ditunda tanpa menghasilkan deadlock dengan menjalankan proses secara hati-hati & mengikuti urutan tertentu. Contohnya :* State selamat (safe state) dan state tak selamat (unsafe state)* Algoritma bunker olek Dijkstra

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Safe StateSafe State adalah cara untuk memenuhi permintaan yang ditunda tanpa menghasilkan deadlock dengan menjalankan proses secara hati-hati mengikuti urutan tertentu.Contoh:Pada sistem yang memiliki 10 sumber daya se type , proses A memerlukan sumber daya maksimum 10 , sedangkan pada saat ini ia menggenggam 2 sumber daya, sedangkan proses B memerlukan sumber daya maksimum 3 sedangkan saat ini menggenggam 1 sumber daya, proses C memerlukan sumber daya maksimum 7 sedangkan saat ini mengenggam 3 sumber daya ,maka masih tersedia sumber daya 4 seperti pada tabel dibawah ini :

    ProsesJlh sumber daya yg digenggamMaks sumber daya yang dibutuhkanA210B13C37 Tersedia 4

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Sistem terhindar dari deadlock adalah dengan langkah sbb:Alokasikan 4 sumber daya pada proses C sehingga sumber daya tersedia tinggal 1,nanti sampai proses C berakhir sehingga Setelah selesai proses pada C maka diperolehAlokasikan 5 sumber daya nantikan sampai proses B berakhir

    ProsesJlh Sumber daya yg digenggamMaks sumber daya yang dibutuhkanA210B13C77 Tersedia 0

    ProsesJlh sumber daya yg digenggamMaks Sumber daya yang dibutuhkanA210B13C0- Tersedia 7

    ProsesJlh Sumber daya yg di genggamMaks sumber daya yang dibutuhkanA210B33C0- Tersedia 5

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Algoritma bunker olek DijkstraDisebut algoritma karena memodelkan bunker disebuah kota kecil yang berurusan dengan sekumpulan nasabah yang memohon kredit, pada algoritma ini kondisi mutual exclusion, hold and wait dan non preemption diizinkan dan proses melakukan klaim penggunaan sumber daya eksklusif yang diperlukan, proses diizinkan menggenggam sumber daya sambil meminta dan menunggu sumber daya yang lain. Serta sumber daya itu tidak diizinkan di preemption proses lain. Proses dapat meminta sumber daya pada suatu waktu, sistem operasi dapat mengakses dan menolak sumber daya permintaan, jika ditolak proses masih menggenggam sumber daya yg telah dialokasikan dan menunggu sampai waktu yg tak terhingga sampai permintaan dipenuhi.Dan sistem hanya meberikan permintaan yang menghasilkan state selamat, sedangkan permintaan yang menghasilkan state tak selamat ditolak sampai permintaan dipenuhi. Karena sistem selalu memelihara agar dalam kondisi state selamat maka cepat atau lambat dalam waktu yang tak terhingga semua permintaan dapat dipenuhi dan semua proses berakhir.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Kelemahan Algoritma BankerProses jarang mengetahui jumlah sumber daya maksimum diperlukan di awalnya.Jumlah proses tidak tetapSumber daya yang tersedia tiba tiba dapat saja dicopotProses harus independen yaitu urutan proses eksekusi tidak dibatasi kebutuhan sinkronisasi antar proses.Algoritma menghendaki memberikan semua permintaan pada waktu yang tak terhingga Algoritma menghendaki client mengembalikan sumber daya setelah waktu yang tak terhingga

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Deteksi dan pemulihan DeadlockDeteksi adanya dealock adalah cara untuk menentukan apakah deadlock terjadi serta mengidentifikasi proses dan sumber daya yang terlibat dalam deadlock. Umumnya algoritma yang dibutuhkan untuk deteksi adalah menentukan keberadaan menunggu sirkular (circular wait), penggunaan algoritma ini melibatkan over head run time karena secara kontinyu dijalankan untuk mendeteksi menunggu sirkular, sembaranag algoritma pendeteksian siklus graph berarah dapat digunakan. Perioda yang biasa dilakukan adalah memonitor permintaan dan pelepasan sumber daya. Setiap terdapat permintaan & pelepasan maka dilakukan pembaharuan graph dan deteksi adanya siklus. Bila terdapat siklus berarti terjadi menunggu sirkular dan deadlock terjadi.Pemulihan dari deadlock yaitu begitu sistem terdapat deadlock maka deadlock harus diputuskan denagn menghilangkan salah satu atau lebih persyaratannya. Pemulihan dari deadlock ditentukan oleh beberapa faktor :Belum tentu secepatnya dapat menentukan deadlockKebanyakan sistem tidak memilki fasiltas atau fasilitasnya buruk untuk mensuspend proses,menghilangkan dari sistem dan meresume proses dilain waktu, pada sistem waktu nyata yang harus berfungsi kontinyu proses tidak dapat di suspend dan resume.Jika terdapat kemampuan sistem resume dan suspend yang efektif kemampuan ini dapat melibatkan sejumlah overhead, berarti memerlukan perhatian operator yang berkemampuan tinggi,operator ini tidak selalu tersedia.Pemulihan memerlukan sejumlah kerja yang berarti.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Deteksi dan pemulihan DeadlockPada sistem operasi yang hanya tiga state dasar (running,ready dan blocked) maka tak ada cara lain kecuali menyingkirkan proses itu, proses akan hilang dari memori dan harus dimuat kembali, sedangkan pada operasi modern sistem biasanya menerapkan state supended blocked dan suspended ready diman sumber dayanya dilepas tetapi proses masih di memory dan akan ditetapkan kembali proses untuk sumber daya begitu terjadi resume. Pendekatan yang digunakan untuk pemulihan deadlock : Singkirkan semua proses yang melibatkan deadlock (cara ini sering digunakan)Backup semua proses yang terlibat deadlock ke suatu check point yang didefinisikan sebelumnya dan jalankan kembali semua proses itu, cara ini memerlukan mekanisme rollback dan restart,resikonya deadlock semula dapat terjadi lagi , tetapi karena tidak tertentu pemrosesan kong kuren ,biasa tidak akan terjadi deadlock serupa.Secara berurutan singkirkan proses sampai tidak terjadi deadlock lagi, urutan proses yang disingkirkan berdasarkan kriteria ongkos minimum, setelah penyingkiran algoritma deteksi harus dijaalankan untuk melihat apakah masih terjadi deadlock.Secara berurutan preemp sumber daya tidak ada deadlock lagi

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Kriteria-kriterianya sebagai berikut:Waktu pemrosesan yang telah dijalankan paling kecil Jumlah baris keluaran yang diproduksi kecilMempunyai estimasi sisa waktu eksekusi besarJumlah total sumber daya terkecil yang telah dialokasikanPrioritas terkecil.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    Startegi Penanggulanag Deadlock TerpaduSilberschatz menyarankan satu pendekatan terpadu yaitu:Kelompokkan sumber daya menjadi kelas sumber dayaGunakan strategi pengurutan linear seperti yg dijelaskan pada pencegahan menunggu sirkular, strategi ini untuk mencegah deadlock diantara kelas sumber daya yang berbeda.Dalam satu kelas sumber daya gunakan algoritma yang sesuai untuk kelas sumber daya tsb.

    Sistem OperasiAntonius Wahyu Sudrajat, S. Kom., M.T.I

    StarvationIlustarsi dead clock misalnya:Terdapat tiga buah proses yaitu P1, P2 dan P3.P1,P2 dan P3 memerlukan pengaksesan sumber daya R secara kontinyu:

    Skenario berikutnya adalah :P1 sedang diberi sumber daya R maka P2 dan P3 di blocked menunggu sumber daya RKetika P1 keluar dari critical section maka P2 dan P3 diizinkan mengakses RAsumsi kita P3 diberi hak akses kemudian setelah selesai maka hak akses diberikan kembali kepada P1 yang saat itu kembali membutuhkan sumber daya R.Jika hak akses hanya bergantian P1 dan P3 saja secara terus menerus maka P2 tidak memperoleh akses sumber daya R, kondisi ini tidak terjadi deadlock , hanya saja P2 mengalami startvation (tidak ada kesempatan untuk dilayani.)

  • Fakta tentang Deadlock dalam OSPada windows NT, deteksi deadlock yaitu berupa BSOD(Blue Screen Of Death), recoverynya adalah reboot sederhanaPada linux untuk mengetahui apakah terjadi deadlock yaitu dengan menggunakan xosview untuk mengetahui proses yang menggunakan CPU 100%, lalu kill saja proses tersebut

  • Deadlock di LinuxLinux dengan kernel versi 2.4 mengalami deadlock pada sistem dengan prosesor lebih dari 2 unitDeadlock ini pada umumnya terjadi bila akses melalui Ethernet dilakukan, terutama bila melakukan teaming pada jaringan. Proses akan terblock dan saling menunggu resource Ethernet tersebut bebas.

  • Deadlock di LinuxBeberapa kasus deadlock juga terjadi ketika OS Linux dijalankan dari kondisi sleep, proses yang mengakses USB device akan mengalami deadlockHal ini disebabkan fungsi scheduler pada kernel yang digunakan tidak menyimpan state sebelum sleep, sehingga ketika kernel dijalankan kembali, Proses-proses yang mengakses USB device tersebut menunggu giliran mengakses, sementara scheduler belum menjadwalkan masing-masing proses. Kasus ini juga terjadi pada Serial device

  • KesimpulanDeadlock adalah situasi dimana 1 atau lebih proses tidak akan pernah selesai tanpa adanya recoveryEmpat kondisi penting untuk deadlock : mutual exclusion, hold and wait, circular wait, and no preemptionDeadlock bisa diatasi oleh berbagai strategi : prevention, avoidance, detection and recovery