Pembagian Dan Pencegahan Deadlock, Mutual Exclusion, Startvation Serta Sinkronisasi

Pembagian Dan Pencegahan Deadlock, Mutual Exclusion, Startvation Serta Sinkronisasi - Pada artikel ini saya akan memberikan informasi terkait Deadlock, Mutual Exclusion, Startvation dan artikel ini dilatar belakangi oleh tugas yang diberikan oleh dosen saya pada mata kuliah sistem operasi terdistribusi dan saya bermaksud memberikan referensi untuk teman-teman pelajar atau mahasiswa/i sebagai referensi untuk menyelesaikan tugasnya dan mohon untuk membaca sampai selesai agar teman-teman dapat memahaminya secara keseluruhan.

Mutual Exclusion


Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan.

Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus memenuhi kriteria sebagai berikut:

  • Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri. Di sini terjadi proses tunggal.
  • Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang ingin masuk critical section. Hal ini bisa terjadi startvation.
  • Harus dijamin bahwa proses yang ingin masuk critical section tidak menunggu selama waktu yang tak terhingga. Ini bisa mengakibatkan masalah deadlock dan antrian proses bertambah panjang.
  • Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section harus ijinkan masuk tanpa waktu tunda.
  • Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada.
  • Proses hanya tinggal pada critical section selama satu waktu yang tidak terhingga.

Deadlock 


Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena proses mengalami startvation, yaitu suatu job yang sedang dieksekusi dan eksekusi job tersebut tidak ada hentinya, tidak diketahui kapan berhentinya proses tersebut atau bahkan job yang antri bisa dikatakan mempunyai status mati, padahal proses-proses lain sedang menunggu sumber daya proses.

Pembagian Dan Pencegahan Deadlock, Mutual Exclusion, Startvation Serta Sinkronisasi

Kondisi Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.

Baca Juga : Analisis Dan Perancangan Sistem Operasi Serta Definisi Menurut Para Ahli

Metode Mengendalikan Deadlock

  1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah mengalami deadlock.
  2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat memperbaikinya.
  3. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di dalam sistem.

Penanganan Deadlock


Ada tiga cara untuk menangani deadlock, yaitu timeout, deadlock prevention dan deadlock detection and recovery.

Timeout
Pendekatan sederhana pada pencegahan deadlock adalah berdasarkan lock timeout. Dengan pendekatan ini, sebuah transaksi yang meminta sebuah lock akan menunggu hanya sampai periode waktu tertentu yang didefinisikan sistem.

Deadlock Prevention
Pendekatan lain untuk mencegah deadlock adalah untuk memesan transaksi menggunakan timestamp transaksi. Dua algoritma telah ditemukan oleh Rosenkrantz. Algoritma pertama, Wait-Die, mengijinkan hanya transaksi yang lebih tua untuk menunggu yang lebih muda, jika tidak transaksi dibatalkan (die/mati) dan restart dengan timestamp yang sama, sehingga lama kelamaan transaksi tersebut akan menjadi transaksi aktif tertua dan tidak akan mati. Algoritma kedua, Wound-Wait, menggunakan pendekatan simetrikal. Hanya transaksi yang lebih muda yang dapat menunggu untuk yang lebih tua. Jika transaksi yang lebih tua meminta lock yang dipegang oleh transaksi yang lebih muda, transaksi yang lebih muda digagalkan.

Deadlock Detection
Deadlock detection biasanya ditangani oleh konstruksi wait-for graph (WFG) yang menunjukkan ketergantungan transaksi, yaitu transaksi Ti tergantung pada Tj jika transaksi Tj memegang lock pada sebuah item data yang ditunggu oleh Ti.

WFG adalah sebuah directed graph G = (N, E ) yang terdiri dari satu set node N dan satu set directed edge E, yang dikonstruksi sebagai berikut:

  • Buat sebuah node untuk setiap transaksi.
  • Buat sebuah directed edge Ti → Tj , jika transaksi Ti menunggu untuk melakukan  lock sebuah item yang sedang di-lock oleh Tj.
Deadlock terjadi jika dan hanya jika WFG mengandung sebuah cycle. Gambar di atas menunjukkan WFG yang menunjukkan deadlock antara dua transaksi.

Mendeteksi Deadlock Dan Memulihkan Deadlock


Metode deteksi digunakan pada system yang mengijinkan 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, system dipulihkan dari deadlock dengan metode pemulihan.

Baca Juga : Kontrol Konkurensi Dalam Transaksi Atau Proses Pada Sistem Operasi

Metode pemulihan dari deadlock berupaya untuk menghilangkan deadlock dari system sehingga system beroperasi kembali, bebas dari deadlock. Proses-proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber daya-sumberdayanya.

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/selesai.

  4. Circular Wait
    Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.

Pencegahan Deadlock


Untuk mencegah terjadinya deadlock ini dapat dilakukan dengan beberapa cara, salah satunya adalah dengan menghinari empat syarat diatas. Setiap masalah pasti ada cara mengatasinya. Berikut adalah beberapa cara mengatasi masalah deadlock:

  1. Meniadakan Mutual Exclusion
    Harus tetap menjaga resource-resource yang bersifat non-shareable. Yaitu, proses menahan sebuah resource, proses lain yang meminta resource tsb harus menunggu sampai proses melepaskannya. Jika terjadi pada perangkat I/O dan berkas, maka sulit untuk menghindari mutual exclusion pada sumber daya non shareable.

  2. Meniadakan Syarat Hold Dan Wait
    Apabila suatu proses minta ijin untuk mengakses suatu resource, maka proses tersebut tidak boleh membawa resource yang lainnya. Sebleum proses meminta resource, maka harus melepas semua resource yang dibawa.

  3. Meniadakan Non Preemption
    Jika suatu proses minta ijin mengakses resource, sementara resource tersebut tidak dapat dipenuhi secepatnya, maka proses tersebut harus membebaskan semua resourcenya terlebih dahulu.

  4. Meniadakan Circular Wait
    Memberi nomor pada setiap resource yang ada, dan setiap resource hanya boleh mengakses resource secara berurutan.

Startvation


Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya. Juga dapat dimaksudkan bahwa kondisi bila beberapa proses-proses menunggu alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.

Hal ini disebabkan biasa pada kebijaksanaan atau strategi alokasi sumber daya. Kondisi seperti ini harus dihindari pada sistem operasi karena tidak adil, tapi dikehendaki penghindaran dilakukan seefisien mungkin. Penanganan ini merupakan persoalan yang sulit untuk menemukan kriteria yang benar, adil dan efesien dalam suatu strategi Sistem Operasi.

Perhatikan contoh berikut:

  • Terdapat tiga proses, P1, P2, dan P3.
  • P1, P2 dam P3 memerlukan pengaksesan sumber daya R secara periodik. Skenario berikut terjadi: P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R. d. Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
e. Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang satu itu kembali membutuhkan sumber daya R. Jika pemberian hak akses bergantian terus menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R, meski tidak ada deadlock. Pada situasi ini, P2 mengalami situasi yang disebut dengan startvation.

Sinkronisasi


Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. tujuan utama sinkronisasi adalah menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar dan terhindar dari deadlock dan starvation. Sinkronisasi umumnya dilakukan dengan bantuan perangkat sinkronisasi. Penyelesaian terhadap masalah ini sangat penting karena perkembangan teknologi sistem komputer menuju ke sistem multiprocessing, terdistribusi dan paralel yang mengharuskan adanya proses-proses kongkuren.

Baca Juga : Klasifikasi Name Service Dan File Service Pada Sistem Operasi Terdistribusi

Demikianlah artikel ini saya buat terkait Pembagian Dan Pencegahan Deadlock, Mutual Exclusion, Startvation Serta Sinkronisasi untuk membantu para mahasiswa/i untuk menyelesaikan tugas atau makalah yang telah diberikan dosen. Semoga artikel ini bisa bermanfaat, silahkan untuk meninggalkan komentar dibawah ini dan memberikan masukan setelah membaca. Terima kasih.

0 komentar:

Post a Comment