202331102_Dhea Febrina Kusumawardhani_Sistem Operasi4.pdf
Document Details
Full Transcript
SINKRONISASI PROSES Dhea Febrina Kusumawardhani 202331102 MATERI Konsep Sinkronisasi Proses Teknik Sinkronisasi Proses Deadlock dan Cara Penanganannya 01 KONSEP SINKRONISASI PROSES Sinkronisasi merupakan suatu proses secara bersama sama dan sal...
SINKRONISASI PROSES Dhea Febrina Kusumawardhani 202331102 MATERI Konsep Sinkronisasi Proses Teknik Sinkronisasi Proses Deadlock dan Cara Penanganannya 01 KONSEP SINKRONISASI PROSES Sinkronisasi merupakan suatu proses secara bersama sama dan saling berbagi data bersama dapat mengakibatkan race condition atau inkosistensi data. Definisi lain dari sinkronisasi adalah suatu prses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data. 02 TUJUAN SINKRONISASI Tujuan dari sinkronisasi adalah untuk menghindari terjadinya inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingg dapat berjalan dengan baik dan sesuai dengan apa yang diharapkan 03 MANFAAT SINKRONISASI 02 Agar seluruh data yang ada 01 tetap konsisten membutuhkan 03 mekanisme-mekanisme sehingga dapat dipastikan proses Adanya akses-akses data eksekusi berjalan Adanya Race Condition yang yang sama yang dilakukan merupakan kondisi di mana secara bersamaan bisa saja beberapa proses mengakses dan menyebabkan data tidak memanipulasi data secara konsisten. bersamaan akan membuat nilai terakhirnya nanti bergantung dari proses mana yang duluan diakhiri. 04 KEADAAN SINKRON Blocking send : Blocking receive : Pemblokiran pengirim sampai pesan Pemblokiran penerima sampai sebelumnya diterima. terdapat pesan yang akan dikirim. 05 KEADAAN ASINKRON Non-Blocking send : Non-Blocking receive : Pengirim dapat terus mengirim Penerima menerima semua pesan pesan tanpa memperdulikan apakah baik berupa pesan yang valid atau pesan sebelumnya sampai atau pesan yang salah (null) tidak. 06 TEKNIK SINKRONISASI Mutex (Mutual Exclusion) Teknik ini adalah teknik yang memastikan hanya satu proses yang dapat mengakses sumber daya bersama pada satu waktu. Dengan mutex, kita Semaphore bisa mencegah terjadinya masalah ketika Semaphore adalah variabel yang digunakan untuk beberapa proses mencoba mengakses data yang mengontrol akses ke sumber daya bersama. Ada sama sekaligus. dua jenis semaphore: binary (yang hanya bisa bernilai 0 atau 1) dan counting (yang bisa bernilai lebih dari 1, mengizinkan beberapa proses mengakses sumber daya sampai batas tertentu). 07 TEKNIK SINKRONISASI Monitor Monitor adalah sebuah struktur yang menggabungkan data dan fungsi untuk mengatur akses ke sumber daya. Dengan menggunakan Condition Variable monitor, proses dapat mengakses data dengan Teknik ini digunakan bersama dengan monitor. aman dan menunggu jika sumber daya sedang Proses dapat menunggu pada condition variable digunakan oleh proses lain. hingga kondisi tertentu terpenuhi. Misalnya, jika kita sedang menunggu data untuk siap, kita bisa menunggu di sini. 08 TEKNIK SINKRONISASI Spinlock: Teknik ini adalah teknik sederhana di mana proses yang ingin mengakses sumber daya bersama akan terus Barrier: memeriksa (spin) apakah sumber Barrier adalah teknik yang daya tersebut sudah tersedia. Message Passing: digunakan untuk membuat Spinlock cocok digunakan ketika Dalam teknik ini, proses sejumlah proses menunggu hingga waktu tunggu diperkirakan sangat berkomunikasi dan sinkronisasi semuanya mencapai titik tertentu singkat. dengan mengirim pesan satu sama sebelum melanjutkan. Semua lain. Dengan message passing, proses harus sampai di barrier proses tidak perlu akses langsung sebelum salah satu dari mereka ke memori bersama, sehingga lebih bisa melanjutkan. aman. 09 DEFINISI DEADLOCK Deadlock merupakan suatu kondisi dimana dua proses atau lebih saling menunggu proses untuk melepaskan sumber daya (resource) yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. 10 DAMPAK DEADLOCK Kinerja Sistem Menurun: Karena proses tidak bisa melanjutkan, kinerja sistem secara keseluruhan akan terpengaruh. Hal ini terutama bermasalah dalam sistem yang menangani banyak tugas secara bersamaan. Kehilangan Data: Deadlock dapat menyebabkan hilangnya data jika proses yang terkunci memerlukan sumber daya penting yang terhubung dengan penyimpanan atau transfer data. Crash Sistem: Dalam beberapa kasus yang parah, deadlock dapat menyebabkan sistem crash, terutama jika tidak ada mekanisme untuk mendeteksi atau mengatasi situasi ini. 11 PENYEBAB DEADLOCK Mutual Exclusion: terjadi ketika resource yang digunakan adalah resource yang non-shareable. Hold & Wait: terdapat suatu proses yang menahan resource, padahal resource tersebut telah dialokasikan oleh proses yang lain. No Preemption: resource yang telah dialokasikan untuk sebuah proses tidak dapat didahului oleh proses lain. Circular Wait: beberapa proses berurutan membentuk sirkular dimana masing-masing proses menunggu proses sebelumnya untuk selesai. 12 DETEKSI DEADLOCK Menggunakan algoritma khusus untuk mendeteksi deadlock, seperti graf penunggu (wait-for graph). Jika terdapat lingkaran dalam graf, ini menunjukkan bahwa deadlock telah terjadi. 13 DUA CARA UTAMA PENANGANAN DEADLOCK Terminasi Proses: Proses yang menyebabkan deadlock bisa Rollback (Kembali ke State Sebelumnya): dihentikan untuk membebaskan sumber Dalam beberapa sistem, proses dapat daya. Pendekatan ini bisa dilakukan dengan kembali ke titik sebelumnya (checkpoint) menghentikan satu atau beberapa proses, sebelum deadlock terjadi, kemudian biasanya dimulai dari proses yang paling mencoba menjalankan kembali proses sedikit memegang sumber daya. tersebut. 14 CARA LAIN PENANGANAN DEADLOCK Memaksa proses melepaskan sumber daya: Menghentikan proses (Kill process): Dalam strategi ini, sistem operasi memaksa proses Dalam kasus yang lebih ekstrem, sistem operasi dapat yang terlibat dalam deadlock untuk melepaskan memilih untuk menghentikan satu atau lebih proses beberapa atau semua sumber daya yang mereka untuk membebaskan sumber daya yang mereka pegang. pegang, sehingga sumber daya tersebut bisa digunakan Ini tentu saja dapat menghasilkan kerugian data atau oleh proses lain. Ini bisa mengganggu proses yang pekerjaan yang dilakukan oleh proses yang dihentikan, terpaksa melepaskan sumber dayanya, tetapi bisa dan oleh karena itu biasanya merupakan opsi terakhir. mencegah secara keseluruhan menjadi tidak responsif. 15