Pengenalan Sinkronisasi Proses
Atas dasar sinkronisasi, proses dikategorikan sebagai salah satu dari dua jenis berikut:
- Proses Independen : Eksekusi satu proses tidak memengaruhi eksekusi proses lainnya.
- Proses Kerjasama : Eksekusi satu proses mempengaruhi pelaksanaan proses lainnya.
Masalah sinkronisasi proses muncul dalam kasus proses Koperasi juga karena sumber daya digunakan bersama dalam proses Koperasi.
Kondisi Balapan
Ketika lebih dari satu proses mengeksekusi kode yang sama atau
mengakses memori yang sama atau variabel yang dibagi dalam kondisi itu
ada kemungkinan bahwa output atau nilai variabel bersama salah sehingga
semua proses melakukan perlombaan untuk mengatakan bahwa keluaran saya
benar kondisi ini dikenal sebagai kondisi balapan. Beberapa proses
mengakses dan memproses manipulasi atas data yang sama secara bersamaan,
kemudian hasilnya bergantung pada urutan tertentu di mana akses
tersebut terjadi.
Kondisi balapan adalah situasi yang mungkin terjadi di dalam bagian kritis. Hal ini terjadi jika hasil eksekusi beberapa utas di bagian kritis berbeda sesuai dengan urutan eksekusi utas.
Kondisi balapan di bagian kritis dapat dihindari jika bagian kritis diperlakukan sebagai instruksi atom. Selain itu, sinkronisasi utas yang tepat menggunakan kunci atau variabel atom dapat mencegah kondisi balapan.
Masalah Bagian Kritis
Bagian kritis adalah segmen kode yang dapat diakses hanya dengan satu proses dalam satu waktu. Bagian kritis berisi variabel bersama yang perlu disinkronkan untuk menjaga konsistensi variabel data.
Di bagian entri, proses meminta entri di Bagian Kritis.
Setiap solusi untuk masalah bagian kritis harus memenuhi tiga persyaratan:
- Saling Pengecualian : Jika suatu proses sedang dijalankan di bagian kritisnya, maka tidak ada proses lain yang diizinkan untuk dijalankan di bagian kritis.
- Kemajuan : Jika tidak ada proses yang dijalankan di bagian kritis dan proses lain menunggu di luar bagian kritis, maka hanya proses yang tidak dijalankan di bagian sisanya yang dapat berpartisipasi dalam memutuskan mana yang akan masuk ke bagian kritis berikutnya, dan pemilihan dapat tidak ditunda tanpa batas waktu.
- Bounded Waiting : Harus ada batasan berapa kali proses lain diizinkan untuk memasuki bagian kritisnya setelah proses membuat permintaan untuk masuk ke bagian kritisnya dan sebelum permintaan tersebut dikabulkan.
Solusi
Peterson Solusi Peterson adalah solusi berbasis perangkat lunak klasik untuk masalah bagian kritis.
Dalam solusi Peterson, kami memiliki dua variabel bersama:
- boolean flag [i]: Diinisialisasi menjadi FALSE, awalnya tidak ada yang tertarik masuk ke bagian kritis
- int turn: Proses yang gilirannya memasuki bagian kritis.
Solusi Peterson mempertahankan ketiga kondisi:
- Saling Pengecualian dijamin karena hanya satu proses yang dapat mengakses bagian penting kapan saja.
- Kemajuan juga terjamin, karena proses di luar bagian kritis tidak menghalangi proses lain untuk memasuki bagian kritis.
- Bounded Waiting dipertahankan karena setiap proses mendapat peluang yang adil.
Kerugian dari Solusi Peterson- Ini melibatkan penantian yang sibuk
- Dibatasi pada 2 proses.
TestAndSet
TestAndSet adalah solusi perangkat keras untuk masalah sinkronisasi. Di TestAndSet, kami memiliki variabel kunci bersama yang dapat mengambil salah satu dari dua nilai, 0 atau 1.0 Buka kunci 1 Kunci
Sebelum masuk ke bagian kritis, sebuah proses menanyakan tentang kunci. Jika terkunci, ia terus menunggu hingga menjadi gratis dan jika tidak terkunci, ia mengambil kunci dan menjalankan bagian kritis.
Di TestAndSet, Saling pengecualian dan kemajuan dipertahankan tetapi menunggu terbatas tidak dapat dipertahankan.
Pertanyaan: Fungsi enter_CS () dan leave_CS () untuk mengimplementasikan bagian kritis dari suatu proses direalisasikan menggunakan instruksi test-and-set sebagai berikut:int TestAndSet (int & kunci) { int inisial = kunci; kunci = 1; kembali awal; } batal enter_CS (X) { saat test-and-set (X); } batal cuti_CS (X) { X = 0; }
Dalam solusi di atas, X adalah lokasi memori yang terkait dengan CS dan diinisialisasi ke 0. Sekarang, pertimbangkan pernyataan berikut:
I. Solusi di atas untuk masalah CS adalah bebas-jalan buntu
II. Solusinya adalah bebas kelaparan.
AKU AKU AKU. Proses masuk CS dalam urutan FIFO.
IV. Lebih dari satu proses dapat masuk CS secara bersamaan.
Manakah dari pernyataan di atas yang BENAR?
(A) I
(B) II dan III
(C) II dan IV
(D) IVKlik di sini untuk Solusinya . Semaphores
sejatiSemafor adalah mekanisme pensinyalan dan utas yang menunggu di semafor dapat ditandai oleh utas lain. Ini berbeda dari mutex karena mutex hanya dapat ditandai oleh utas yang memanggil fungsi tunggu.
Semaphore menggunakan dua operasi atom, tunggu dan sinyal untuk sinkronisasi proses.
Semaphore adalah variabel integer, yang hanya dapat diakses melalui dua operasi wait () dan signal () .
Ada dua jenis semaphore: Binary Semaphore dan Counting Semaphore- Semaphore Biner: Mereka hanya bisa 0 atau 1. Mereka juga dikenal sebagai kunci mutex, karena kunci dapat memberikan pengecualian timbal balik. Semua proses dapat berbagi semaphore mutex yang sama yang diinisialisasi ke 1. Kemudian, proses harus menunggu hingga kunci menjadi 0. Kemudian, proses dapat membuat mutex semaphore 1 dan memulai bagian kritisnya. Ketika menyelesaikan bagian kritisnya, itu dapat mengatur ulang nilai mutex semaphore menjadi 0 dan beberapa proses lain dapat memasuki bagian kritisnya.
- Menghitung Semaphores: Mereka dapat memiliki nilai apa pun dan tidak dibatasi pada domain tertentu. Mereka dapat digunakan untuk mengontrol akses ke sumber daya yang memiliki batasan pada jumlah akses simultan. Semaphore dapat diinisialisasi ke jumlah instance sumber daya. Kapan pun sebuah proses ingin menggunakan sumber daya itu, ia memeriksa apakah jumlah instance yang tersisa lebih dari nol, yaitu, proses tersebut memiliki instance yang tersedia. Kemudian, proses dapat memasuki bagia
- n kritisnya sehingga mengurangi nilai semaphore penghitungan sebesar 1. Setelah proses selesai dengan penggunaan instance sumber daya, proses dapat meninggalkan bagian kritis sehingga menambahkan 1 ke jumlah instance yang tersedia sumber daya.
benar
Referensi
www.csee.wvu.edu/~jdmooney/classes/cs550/notes/tech/mutex/Peterson.html
http://iit.qau.edu.pk/books/OS_8th_Edition.pdf- Alamat Blog Dosen : https://syaifulahdan.wordpress.com
- Alamat web Program studi, Fakultas, Universitas : http://ti.ftik.teknokrat.ac.id, http://ftik.teknokrat.ac.id, www.teknokrat.ac.id
- Nama Mahasiswa : Ariyadi dwi saputra_20312084_IF20C
Tidak ada komentar:
Posting Komentar