Proses Synchronization
Background
Akses bersamaan ke data bersama dapat menyebabkan ketidak konsistenan data.
• Menjaga konsistensi data membutuhkan mekanisme untuk memastikan pelaksanaan proses kerjasama yang tertib.
- Misalkan kita memodifikasi kode produsen-konsumen dengan menambahkan a
variabel counter, diinisialisasi ke 0
Pengertian proses Synchronization
Proses Sinkronisasi adalah tugas mengkoordinasikan pelaksanaan proses sedemikian rupa sehingga tidak ada dua proses yang dapat memiliki akses ke data dan sumber daya bersama yang sama.
Ini secara khusus diperlukan dalam sistem multi-proses ketika beberapa proses berjalan bersama, dan lebih dari satu proses mencoba untuk mendapatkan akses ke sumber daya atau data bersama yang sama pada waktu yang sama.
Hal ini dapat menyebabkan ketidakkonsistenan data yang dibagikan. Jadi perubahan yang dibuat oleh satu proses tidak serta merta tercermin ketika proses lain mengakses data bersama yang sama. Untuk menghindari jenis data yang tidak konsisten ini, proses perlu disinkronkan satu sama lain.
Bagian dari Program
Ada empat elemen penting dari bagian kritis:
Bagian Entri: Ini adalah bagian dari proses yang memutuskan masuknya proses tertentu.
Bagian Kritis: Bagian ini memungkinkan satu proses untuk masuk dan memodifikasi variabel bersama.
Bagian Keluar: Bagian Keluar memungkinkan proses lain yang menunggu di Bagian Entri, untuk masuk ke Bagian Kritis. Ia juga memeriksa bahwa proses yang menyelesaikan eksekusinya harus dihapus melalui Bagian ini.
Bagian Sisa: Semua bagian lain dari Kode, yang tidak berada di Bagian Kritis, Masuk, dan Keluar, dikenal sebagai Bagian Sisa
Apa itu Masalah Bagian Kritis?
Bagian kritis adalah segmen kode yang dapat diakses oleh proses sinyal pada titik waktu tertentu. Bagian ini terdiri dari sumber data bersama yang perlu diakses oleh proses lain.
Entri ke bagian kritis ditangani oleh fungsi wait (), dan direpresentasikan sebagai P ().
Keluar dari bagian kritis dikontrol oleh fungsi signal (), yang direpresentasikan sebagai V ().
Di bagian kritis, hanya satu proses yang dapat dijalankan. Proses lain, menunggu untuk mengeksekusi bagian kritisnya, perlu menunggu hingga proses saat ini menyelesaikan eksekusinya
Ada 3 aturan penting bagian kritis,yaitu :
Mutual Exclusion: Mutual Exclusion adalah jenis khusus semaphore biner yang digunakan untuk mengontrol akses ke sumber daya bersama. Ini mencakup mekanisme pewarisan prioritas untuk menghindari masalah inversi prioritas yang diperpanjang. Tidak lebih dari satu proses yang dapat dijalankan di bagian kritisnya pada satu waktu.
Kemajuan: Solusi ini digunakan ketika tidak ada orang di bagian kritis, dan seseorang ingin masuk. Kemudian proses yang tidak ada di bagian pengingat mereka harus memutuskan siapa yang harus masuk, dalam waktu yang terbatas.
Bound Waiting: Ketika suatu proses membuat permintaan untuk masuk ke bagian kritis, ada batasan khusus tentang jumlah proses yang dapat masuk ke bagian kritisnya. Jadi, ketika batas tercapai, sistem harus mengizinkan permintaan ke proses untuk masuk ke bagian kritisnya
Perangkat Keras Sinkronisasi
Beberapa kali masalah Bagian Kritis juga diselesaikan oleh perangkat keras. Beberapa sistem operasi menawarkan fungsionalitas kunci di mana Proses memperoleh kunci saat memasuki bagian Kritis dan melepaskan kunci setelah meninggalkannya.
Jadi ketika proses lain mencoba masuk ke bagian kritis, itu tidak akan bisa masuk karena terkunci. Ini hanya dapat dilakukan jika gratis dengan memperoleh kunci itu sendiri.
Semaphore
Semaphore hanyalah variabel yang non-negatif dan dibagikan di antara utas. Ini adalah algoritma atau solusi lain untuk masalah bagian kritis. Ini adalah mekanisme pensinyalan dan utas yang menunggu di semaphore, yang dapat ditandai oleh utas lain.
Classical problem of Synchronization
Ada tiga masalah pada classical problem :
-Masalah Bounded-Buffer
Masalah ini digeneralisasikan dalam istilah masalah Konsumen Produsen, di mana kumpulan buffer terbatas digunakan untuk bertukar pesan antara proses produsen dan konsumen.
Karena buffer pool memiliki ukuran maksimum, masalah ini sering disebut dengan masalah buffer Terikat.
Solusi untuk masalah ini adalah, membuat dua semaphore penghitungan "penuh" dan "kosong" untuk melacak masing-masing jumlah buffer penuh dan kosong saat ini
-Masalah Makan Filsuf
Masalah filsuf makan melibatkan alokasi sumber daya terbatas ke sekelompok proses dengan cara yang bebas jalan buntu dan bebas kelaparan.
Ada lima filsuf duduk mengelilingi sebuah meja, di mana ada lima sumpit / garpu disimpan di sampingnya dan semangkuk nasi di tengahnya. Ketika seorang filsuf ingin makan, ia menggunakan dua sumpit - satu dari kiri dan satu dari kanan. . Ketika seorang filsuf ingin berpikir, dia meletakkan kedua sumpit di tempat asalnya.
-Masalah Pembaca Penulis
Dalam masalah ini ada beberapa proses (disebut reader) yang hanya membaca data yang dibagikan, dan tidak pernah mengubahnya, dan ada proses lain (disebut penulis) yang dapat mengubah data sebagai tambahan untuk membaca, atau sebagai gantinya membacanya.
Ada berbagai jenis masalah pembaca-penulis, kebanyakan berpusat pada prioritas relatif pembaca dan penulis.
Pengertian wilayah kritis
Adalah himpunan hasil uji statistik yang hipotesis nolnya akan ditolak.
monitors
Konstruksi sinkronisasi tingkat tinggi yang memungkinkan berbagi jenis data abstrak dengan aman di antara proses bersamaan.
Solaris 2 operasi system
Menerapkan berbagai kunci untuk mendukung multitasking, multithreading (termasuk utas waktu nyata), dan multiprosesing.
• Menggunakan mutex adaptif untuk efisiensi saat melindungi data dari segmen kode pendek.
• Menggunakan variabel kondisi dan pembaca-penulis terkunci ketika bagian kode yang lebih panjang membutuhkan akses ke data.
Komentar
Posting Komentar