Pengertian Sinkronisasi Sistem Operasi – Membicarakan tentang sinkronisasi pasti hubungannya dengan komputer. Apalagi yang akan kita bahas kali ini mengenai sinkronisasi sistem operasi. Nah, untuk mengetahui apakah itu sinkronisasi? Maka terlebih dahulu akan kita bahas mengenai sistem operasi. Sistem operasi atau biasa disebut dengan OS adalah seperangkat program yang mengelola sumber daya perangkat keras komputer atau hardware dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi disini merupakan jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Karena tanpa adanya sistem operasi ini, maka pengguna komputer tidak akan dapat menjalankan program aplikasi apapun pada komputer mereka kecuali program aplikasi booting.
Yang akan kita bahas kali ini mengenai permasalahan yang terjadi pada sistem operasi. Mengingat permasalahan yang terjadi sangatlah banyak, hanya saja yang akan kita bahas fokus pada sinkronisasi. Di karenakan sinkronisasi merupakan salah satu yang penting jadi kita akan membahasanya agar ke depan ketika terjadi suatu problem atau masalah dapat langsung di tangani dengan cepat. Baik, silahkan simak penjelasan berikut ini!
Pengertian Sinkronisasi
Ketika mempelajari ilmu komputer, pastinya kita akan menemukan bagian yang membahas tentang sinkronisasi. Sinkronisasi ini 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.
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 di butuhkan ketika menemukan sebuah kasus yang menyebabkan ketidakkonsistenan data sehingga data menjadi tidak konkuren. Jadi pada proses sinkronisasi primitif biasanya yang di gunakan adalah untuk mengimplementasikan sinkronisasi data dan proses ini di lakukan oleh fungsi lain di luar sistem utama dari sistem operasi.
Manfaat dari Sinkronisasi
- Adanya akses-akses data yang sama yang di lakukan secara bersamaan bisa saja menyebabkan data menjadi tidak konsisten
- Agar semua data yang ada tetap konsisten membutuhkan mekanisme-mekanisme agar bisa di pastikan proses eksekusi berjalan.
- 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 di akhiri.
Jika ingin menghindari terjadinya race condition, maka proses-prosesnya harus di sinkronisasikan secara bersamaan.
Ada beberapa perangkat yang digunakan saat sedang menjalankan proses sinkronisasi, yaitu:
- Ketika masalah critical section terjadi maka salah satu langkah yang bisa digunakan untuk menanganinya yaitu instruksi test and set yang merupakan bentuk dari instruksi atomik.
- Yang kedua ada semaphore yang berfungsi untuk menangani masalah saat sinkronisasi antar proses juga saat critical section terjadi. Yang dikatakan dengan semaphore disini ialah sebuah variable atau tipe data abstrak yang digunakan untuk mengendalikan akses, oleh beberapa proses ke sumber daya umum dalam pemrograman parallel atau lingkungan multi user. Agar lebih mudah memahaminya, anggap saja semaphore sebagai sebuah catatan terhadap banyaknya unit sumber data tertentu yang tersedia, karena ketika ingin menggabungkan suatu operasi untuk mendapatkan catatan yang banyak akan dibutuhkan berapa banyak unit yang tersedia.
- Semaphore juga disebut sebagai alat yang berguna dalam hal pencegahan kondisi perebutan sumber daya. Akan tetapi, penggunaan semaphore belum menjamin semua masalah akan teratasi. Semaphore terbagi dua, yang untuk menghitung jumlah sumber daya disebut dengan counting semaphore sedangkan semaphore yang digunakan dengan dibatasi oleh nilai-nilai 0 dan 1 disebut dengan Binary semaphore.
- Critical section merupakan masalah umum yang sering terjadi. Untuk memahami mengenai critical section ini, maka harus terlebih dahulu paham mengenai konkurensi. Nah, kita bahas satu-persatu dari apa itu konkurensi?
Konkurensi
Konkuren atau Concurrency dalam istilah lainnya ialah sebuah property sistem dimana terdapat beberapa komputasi yang dijalankan secara bersamaan dan akan berpotensi untuk berinteraksi satu sama lain. Ini juga merupakan bagian dari pembahasan ilmu komputer. Komputasi ini dapat dijalankan pada beberapa core sekaligus dengan catatan dalam chip prosesor yang sama. Atau bisa juga dengan beberapa thread dipreemtive yang berdasarkan waktu pada prosesor yang sama juga. Lainnya bisa dengan sebuah komputasi di eksekusi pada prosesor yang terpisah secara fisik. Desain dari sistem konkuren ini sering memerlukan penemuan teknik yang dapat di andalkan untuk mengkoordinasikan eksekusi mereka, pertukaran data, alokasi memori dan penjadwalan eksekusi untuk menimalkan waktu respon atau pun memaksimalkannya.
Crtitical Section
Kembali ke critical section yang menjadi masalah awal tadi. Ketika berada dalam pemrograman konkuren bagian kritis akan ditemukan nantinya. Bagian kritis ini yang juga sering disebut sebagai critical section yang merupakan bagian dari kode yang mengakses “shared resource” baik berupa struktur data atau perangkat yang tidak boleh bersamaan di akses oleh lebih dari satu thread eksekusi. Biasanya critical section ini hanya akan berhenti dalam waktu yang tetap, jadi untuk thread, task maupun proses tetap harus menunggu juga untuk waktu yang tetap pula agar bisa masuk kedalam critical section ini, proses inilah yang disebut dengan bounded waiting. Beberapa mekanisme sinkronisasi ini di perlukan pada saat entry dan exit dari critical section untuk memastikan suatu penggunaan yang eksklusif misalnya seperti penggunaan perangkat sinkronisasi, salah satunya seperti semaphore.
Dengan melakukan pengontrolan yang hati-hati pada variabel-variabel yang dimodifikasi dengan baik di dalam maupun di luar critical section, maka akses bersamaan ke suatu tahapan dapat dicegah. Sehingga Critical Section yang biasanya digunakan ketika sebuah program multithreaded akan merubah beberapa variabel yang terkait tanpa harus membuat konfilik dengan thread terpisah lain. Dalam situasi terkait, bagian kritis dapat digunakan untuk memastikan shared resource, misalnya seperti printer, hanya dapat diakses oleh satu proses pada suatu waktu.
Nah, itu saja sedikit pembahasan mengenai sinkronisasi pada sistem operasi. semoga materinya bisa membantu menjawab kebingungan anda mengenai sinkronisasi. Semoga bermanfaat!