Langsung ke konten utama

Sinkronisasi (Proses Synchronization)


Singkronisasi Sistem

Sinkronisasi mengacu pada salah satu dari dua proses yang berbeda tetapi saling berkaitan satu sama lainnya.

Dua proses ini merupakan sinkronisasi data dan sinkronisasi proses.

Inti dari permasalahan sinkronisasi ini nantinya akan mengacu pada sebuah gagasan yang di dalamnya terdapat banyak proses yang pada titik tertentu akan bertemu, bergabung dalam rangka untuk mencapai sebuah kesepakatan ataupun komitmen untuk suatu urutan tindakan tertentu.

Sinkronisasi ini mengacu pada gagasan yang menjaga beberapa salinan dari dataset yang ada dalam koherensi antara satu sama lain.

 Definisi Sinkronisasi

Sinkronisasi merupakan suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. Disini sinkronisasi diperlukan agar data tersebut tetap konsisten

Pengertian dari Sinkronisasi adalah akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.

Jadi sinkronisasi itu lebih jelasnya merupakan akses secara berbarengan untuk berbagi dua bersama dalam mengakibatkan inkonsistensi data. Pemeliharaan konsistensi data memerlukan mekanisme yang tepat untuk memastikan eksekusi dari proses kerjasama.

Sinkronisasi ini dibutuhkan ketika menemukan sebuah kasus yang menyebabkan ketidakkonsistenan data sehingga data menjadi tidak konkuren. Jadi pada proses sinkronisasi primitif biasanya yang digunakan adalah untuk mengimplementasikan sinkronisasi data dan proses ini di lakukan oleh fungsi lain di luar sistem utama dari sistem operasi.

Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.

 

Adapun manfaat sikronisasi pada sistem operasi adalah:

1.      Adanya akses-akses data yang sama yang di lakukan secara bersamaan bisa saja menyebabkan data menjadi tidak konsisten

2.      Agar semua data yang ada tetap konsisten membutuhkan mekanisme-mekanisme agar bisa di pastikan proses eksekusi berjalan.

3.      Adanya Race Condition yang merupakan kondisi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan akan membuat nilai terkhirnya nanti bergantung dari proses mana yang duluan diakhiri.

 

Race Condition

Race Condition merupakan situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan.

Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir.

Untuk menghindari Race Condition, proses-proses secara bersamaan harus di-sinkronisasikan.

Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write).

Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul.

Untuk mengetahui bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh sederhana, sebuah print spooler.

Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus.

Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.

Bayangkan bahwa spooler direktori memiliki slot dengan jumlah yang sangat besar, diberi nomor 0, 1, 2, 3, 4,... masing-masing dapat memuat sebuah nama berkas.

Juga bayangkan bahwa ada dua variabel bersama, out, penunjuk berkas berikutnya untuk dicetak, dan in, menunjuk slot kosong di direktori.

Dua variabel tersebut dapat menangani sebuah two-word berkas untuk semua proses.

Dengan segera, slot 0, 1, 2, 3 kosong (berkas telah selesai dicetak), dan slot 4, 5, 6 sedang terisi (berisi nama dari berkas yang antre untuk dicetak).

Lebih atau kurang secara besamaan, proses A dan B, mereka memutuskan untuk antre untuk sebuah berkas untuk dicetak. Situasi ini digambarkan seperti berikut:


Dalam Murphy‟s Law kasus tesebut dapat terjadi. Proses A membaca in dan menyimpan nilai "7" di sebuah variabel lokal yang disebut next_free_slot.

Sebuah clock interrupt terjadi dan CPU memutuskan bahwa proses A berjalan cukup lama, sehingga digantikan oleh proses B.

Proses B juga membaca in, dan juga mengambil nilai 7, sehingga menyimpan nama berkas di slot nomor 7 dan memperbaharui nilai in menjadi 8. Maka proses mati dan melakukan hal lain.

Akhirnya proses A berjalan lagi, dimulai dari tempat di mana proses tersebut mati. Hal ini terlihat dalam next_free_slot, ditemukan nilai 7 di sana, dan menulis nama berkas di slot nomor 7, menghapus nama berkas yang baru saja diletakkan oleh proses B. Kemudian proses A menghitung next_free_slot + 1, yang nilainya 8 dan memperbaharui nilai in menjadi 8.

Direktori spooler sekarang secara internal konsisten, sehingga printer daemon tidak akan memberitahukan apa pun yang terjadi, tetapi poses B tidak akan mengambil output apa pun. Situasi seperti ini, dimana dua atau lebih proses melakukan proses reading atau writing beberapa shared data dan hasilnya bergantung pada ketepatan berjalan disebut race condition.

 

Critical Section

Critical Section adalah sebuah segmen kode dimana sebuah proses memiliki sumber daya bersama yang diakses

 

Sumber daya bersama yang diakses terdiri dari:

1.      Entry Section, kode yang digunakan untuk masuk ke dalam critical section

2.      Critical Section, kode dimana hanya ada satu proses yang dapat dieksekusi pada satu waktu

3.      Exit Section, akhir dari critical section, mengizinkan proses lain

4.      Remainder Section, merupakan kode istirahat setelah masuk ke critical section.

 

Semaphore

Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu.

Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut semaphore.

 

Semaphore mempunyai dua sifat, yaitu:

1.      Semaphore dapat diinisialisasi dengan nilai non-negatif.

2.      Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikanDjikstra adalah operasi P dan V.

 

 

 

 



Komentar

Postingan populer dari blog ini

Kunci Jawaban soal mata kuliah pengembangan sistem informasi

METODE AGILE 1. Apa yang dimaksud dengan proses Agile ? Jawaban :   Process Agile merupakan sekelompok aktifitas pembangunan perangkat lunak secara iteratif yang menekankan pada aktifitas kontruksi (desain dan koding). 2. Sebutkan faktor-faktor yang ada dalam kinerja Team Support adalah Jawaban :   Sumber daya, moral, kepercayaan, fun, dan komitmen METODE SCRUM 1. Jelaskan yang dimaksud dengan SCRUM ? Jawaban :  SCRUM yaitu kunci terciptanya sebuah produk dengan perkembangan nilai setinggi mungkin, yang di buat dengan penuh kreativitas dan produktivitas. contoh seperti pengembangan produk perangkat lunak, perangkat keras, aplikasi dan hal lain yang biasa kita temui sehari-hari. 2. Sebutkan fungsi-fungsi dari SCRUM tersebut ? Jawaban : - menganalisis kemampuan produk dan menggali sektor pasar yang berpotensi   -  mengembangkan nilai dan kualitas produk - memelihara dan melakukan peningkatan produk - menciptakan produk yang telah mengalami peningkatan dan perkemba...

Kunci Jawaban Sistem Operasi

    1. Sistem oprasi jaringan mempunyai fungsi utama yaitu...      A. Pusat kendali sumber daya jaringan       B. Menghubungkan sejumlah komputer dan perangkat lainnya      C. Sistem yang kurang stabil      D. akses aman kesebuah jaringan 2. Jenis topologi yang memiliki node tengah sebagai pusat penghubung dari suatu jaringan adalah topologi...       A. Topologi star      B. Topologi bus      C. Topologi ring      D. Topologi tree 3. Apa yang di maksud teori dasar jaringan...      A. Serve-clien       B. Time can answer       C. OSI layer      D. Certificate 4.  Berikut ini adalah contoh-contoh media transmisi yang menggunakan kabel,kecuali...      A. Fiber Optic       B. Wireless      C. STP       D. Coaxial 5. Berikut i...

STRUKTUR SISTEM OPERASI

  Sistem komputer modern yang semakin kompleks dan rumit memerlukan sistem operasi yang dirancang dengan sangat hati-hati agar dapat berfungsi secara optimum dan mudah untuk dimodifikasi. Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama.   Menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut: A. Manajemen Proses B. Manajemen Memori Utama C. Manajemen Secondary Storage D. Manajemen Sistem I/O E. Manajemen Berkas F. Sistem Proteksi G. Jaringan H. Command Interpreter System I. Layanan Sistem Operasi J. System Calls K. Mesin Virtual L. Perancangan Sistem dan Implementasi M. System Generation (Sys Gen)   A. Manajemen Proses Proses adalah keadaan ketika sebuah program sedang dieksekusi. Sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan perangkat-pe...