Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Sistem Operasi Pertemuan 15. Proses terlibat di dalam deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Sekumpulan.

Presentasi serupa


Presentasi berjudul: "Sistem Operasi Pertemuan 15. Proses terlibat di dalam deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Sekumpulan."— Transcript presentasi:

1 Sistem Operasi Pertemuan 15

2 Proses terlibat di dalam deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap saat proses yang berada di kumpulan itu menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu. Dengan demikian proses- proses menunggu kejadian yang tidak pernah terjadi Deadlock terjadi ketika proses-proses mengakses sumber daya secara ekslusif. Semua deadlock yang terjadi melibatkan persaingan untuk memperoleh sumber daya ekslusif oleh dua proses atau lebih

3 Model deadlock Urutan kejadian operasi perangkat masukan/keluaran adalah Meminta (request) meminta layanan perangkat masukan/keluaran Memakai (use) memakai perangkat masukan/keluaran Melepaskan (release) melepaskan pemakaian perangkat masukan/keluaran

4 Deadlock Ilustrasi deadlock. misalnya, Dua proses, P1 dan P2 Dua sumber daya kritis R1 dan R2 Proses P1 dan P2 harus mengakses kedua sumber daya Kondisi berikut dapat terjadi : R1 diberikan ke P1, sedangkan R2 diberikan ke P2 Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya yang lainnya, selamanya. Tidak ada proses yg dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yg tidak pernah diperolehnya. Keduanya tidak membuat kemajuan apapun. Kedua proses dalam kondisi deadlock. Kondisi deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semua yg terlibat tidak dapat mengakhiri prosesnya secara benar. Beragam mekanisme diusulkan untuk mengatasi kondisi deadlock.

5 Skenario yang menimbulkan deadlock : –P1 dialokasikan ke R1 –P2 dialokasikan ke R2 Kemudian : –P1 sambil masih menggenggam R1, meminta R2. –P2 sambil masih menggenggam R2, meminta R1. Kejadian ini mengakibatkan deadlock karena sama-sama proses P1dan P2 akan saling menunggu. Graph deadlock ini digambarkan seperti graph melingkar.

6 Ilustrasi Deadlock P1 P2 R1 R2 R1 diberikan ke P1 R2 diberikan ke P2 P1 R1 P2 R2 P1 sambil masih menggenggam R1, meminta R2. P2 sambil masih menggenggam R2, meminta R1. Kejadian ini mengakibatkan deadlock karena sama-sama proses P1 dan P2 akan saling menunggu.

7 Syarat-syarat perlu terjadinya deadlock Mutual Exclusion sumber daya saat itu diberikan pada tepat satu proses Kondisi genggam dan tunggu (hold and wait condition) proses proses yang sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru Kondisi non preemption sumber daya –sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari proses yang sedang menggenggamnya. Sumber daya – sumber daya harus secara eksplisit dilepaskan dari proses yang menggenggamnya Kondisi menunggu secara sirkuler (circular wait condition) Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menungu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu

8 Ketiga syarat pertama merupakan syarat perlu bagi terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi ketiga kondisi itu. Tidak mungkin terjadi deadlock bila tidak ada ketiga kondisi itu, Deadlock terjadi berarti terdapat ketiga syarat itu tetapi adanya ketiga kondisi itu belum berarti terjadinya deadlock Deadlock baru benar-benar terjadi bila kondisi keempat terpenuhi. Kondisi keempat merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu dari keempat kondisi itu tidak terpenuhi maka deadlock tidak terjadi

9 Metode-metode mengatasi deadlock Metode pencegahan terjadinya deadlock (deadlock prevention) Metode penghindaran terjadinya deadlock (deadlock avoidance) Metode deteksi dan pemulihan dari deadlock (deadlock detection and reccovery)

10 Metode pencegahan) terjadinya deadlock (deadlock prevention) Metode ini berkaitan dengan pengkondisian sistem sehingga menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang dari sisi tercegahnya deadlock. Namun metode ini sering menghasilkan penggunaan sumber daya yang buruk. Pencegahan deadlock merupakan metode yang banyak dipakai

11 Metode penghindaran terjadinya deadlock (deadlock avoidance) Tujuan metode ini adalah menghindarkan kondisi- kondisi yang paling mungkin menimbulkan deadlock agar memperoleh utilisasi sumber daya yang lebih baik. Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock. Secara teoritis, deadlock dimungkinkan. Sistem operasi memeriksa semua permintaan sumber daya secara hati hati. Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock. Sistem menolak pengaksesan itu. Dengan itu menghindari terjadinya deadlock

12 Metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery) Metode deteksi digunakan pada sistem yang mengizinkan terjadinya deadlock. Tujuan metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses dan sumber daya – sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan Metode pemulihan dari deadlock berupaya untuk menghilangkan deadlock dari sistem sehingga sistem beroperasi kembali, bebas dari deadlock. Proses-proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber daya-sumber daya

13 Pencegahan deadlock Meniadakan mutual exclusion Meniadakan syarat hold and wait Meniadakan non preemtion Meniadakan menunggu sirkular

14 Meniadakan mutual exclusion Deadlock disebabkan terdapatnya pengaksesan ekslusif terhadap sumber daya. Jika tidak ada sumber daya ekslusif untuk satu proses tunggal maka tidak pernah akan dijumpai deadlock. Cara yang ditempuh untuk mengakali pengaksesan ekslusif adalah melakukan spooling perangkat perangkat yang harus didedikasikan ke suatu proses. Pengaksesan sumber daya seolah-olah tidak ekslusif walau sebenarnya tetap ekslusif, hanya dengan spooling berarti permintaan- permintaan itu diantrikan di harddisk. Job-job di antrian spooler akan dilayani satu per satu

15 Terdapat masalah terhadap teknik ini –Tidak setiap sumber daya ekslusif dapat di spooling, misalnya tabel proses –Kompetisi terhadap ruang harddisk untuk spooling dapat menuntun ke deadlock. Abstraksi ini sebenarnya bearti kembali terjadi kondisi yang mengharuskan mutual exclusion namun mutual exclusion menjadi di level lebih bawah yaitu level suatu lokasi memori bukan lagi satu perangkat Mutual exclusion benar-benar tidak dapat dihindari, hanya mampu diperkecil granularitas/lama waktu berlangsungnya

16 Meniadakan syarat hold and wait Mengalokasikan semua sumber daya atau tidak sama sekali Proses hanya dilayani permintaannya bila semua sumber daya yang diperlukan tersedia. Teknik ini berbasis pada kaidah memperoleh semua atau tidak sama sekali –Jika semua sumber daya tersedia, proses dialokasikan semua sumber dayayang diperlukannya dan berjalan sampai selesai –Jika tidak tersedia sedikitnya satu sumber daya maka proses menunggu sampai semua sumber daya yang diperlukannya tersedia untuk dialokasikan padanya Masalah Sukar mengetahui lebih dulu sumber daya yang diperlukan suatu proses karena di awal proses tidak diketahui berapa sumber daya yang akan diperlukan Cara ini dapat mengakibatkan penggunaan sumber daya yang sangat tidak efisien

17 Cara ini dapat menjadi sangat tidak efisien Misalnya proses memerlukan sepuluh disk maka proses meminta sepuluh disk dan menerima sepuluh disk di awal proses –Jika kesepuluh disk memang diperlukan sepanjang eksekusi proses maka tidak ada pemborosan yang serius –Jika proses hanya membutuhkan satu disk di awal eksekusi (atau lebih buruk lagi tanpa disk smaa sekali) dan menganggurkan disk-disk lain selama beberpa jam Perlunya proses meminta dan menerima seluruh disk yang diperlukan sebelum eksekusi dimulai menyebabkan sumber daya – sumber daya menganggur selama waktu yang lama, sementara proses-proses yang memerlukan harus menunggu

18 Hold and release Genggam dan lepaskan, yaitu setiap kali terjadi permintaan suatu sumber daya maka proses harus melepas sumber daya lain yang telah digunakan. Pada suatu saat, hanya satu sumber daya yang dialokasikan untuk proses Masalah Teknik ini tidak mungkin sebab terdapat proses yang mensyaratkan harus memegang beberapa sumber daya sekaligus untuk melanjutkan eksekusinya. Misalnya menggambar pada plotter memerlukan plotter serta disk yang menyimpan data gambar yang di plot

19 Meniadakan non preemption Peniadaan non preemption mencegah proses proses lain harus menunggu. Seluruh proses menjadi preemption agar tidak ada kejadian tunggu menunggu Masalah Tidak mungkin meniadakan non preemptive Misalnya : saat proses A menulis ke printer tiba tiba dihentikan oleh proses B yang juga akan menulis ke printer yang sama. Bila kondisi preemption ini dimungkinkan maka kedua proses akan mencetak secara tidak benar

20 Meniadakan menunggu sirkular Proses hanya dibolehkan menggenggam satu sumber daya pada satu saat Teknik ini tidak dimungkinakan karena terdapat proses yang mengharuskan memegang lebih dari satu sumber daya pada ssat yang sama untuk menyelesaikan prosesnya Penomoran global semua sumber daya proses dapat meminta proses kapanpun menginginkan tapi permintaan harus dibuat terurut secara numerik. Cara ini tidak akan menimbulkan siklus Masalah Tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak


Download ppt "Sistem Operasi Pertemuan 15. Proses terlibat di dalam deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Sekumpulan."

Presentasi serupa


Iklan oleh Google