Selasa, 30 Maret 2021

Process Synchronization

Sistem Operasi : Process Synchronization


Disusun
Oleh

Nama    : Dera Aprinaldi
NPM     : 20312113
Kelas     : IF 20 C

 

Kata Pengantar

Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikan rahmat dan karuniaNya kepada kami sehingga kami berhasil menyelesaikan makalah ini, dengan tepat waktu yang berjudul "Process Synchronization", Makalah ini berisikan tentang informasi mengenai sinkronisasi, seperti pengenalan lebih jelas tentang sinkronisasi, tujuan sinkronisasi pada sistem operasi dan lain-lain. Kami menyadari bahwa makalah ini masih jauh dari kata sempurna, oleh karena itu kritik dan saran yang bersifat membangun selalu kami harapkan demi perbaikan makalah ini.

Akhir kata, kami sampaikan terimakasih kepada bapak dosen yang telah memberikan tugas ini dan senantiasa membimbing kami agar kami dapat mengerjakan semua tugas yang diberikan. Dan ucapan terimakasih pada semua pihak yang telah membantu penyelesaian makalah ini. Harapan kami mudah-mudahan makalah ini dapat memenuhi harapan kita semua.

BAB I 

PENDAHULUAN

Saat mempeljari 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 antara satu dengan yang lain. Dua proses ini merupakan sinkronisasi data dan sinkorinisasi proses. Inti dari permasalahan sinkronisasi ini nantinya akan mengacu pada sebuah gagasan yang di dalamnya terdapat banyak proses yang pada suatu titik akan bertemu, bergabung kedalam rangka untuk mencapai sebuah tujuan.
Sinkronisasi diperlukan untuk menghindari terjadinya ketidak konsistenan data akibat adanya akses secara konkuren. Proses-proses tersebit disebut konkuren jika proses itu ada dan berjalan pada waktu yang bersamaan. Istilah sinkronisasi sering terdengar ketika kita menggunakan alat-alat elektronik. Sinkornisasi sendiri berasal dari bagian sistem operasi. Sistem operasi adalah perangkat lunak sistem yang bertugas untuk mengontrol dan memanajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan perangkat lunak aplikasi seperti program-program pengolah kata dan web.
Jadi, agar sinkronisasi dapat berjalan, sangat dibutuhkan yang namanya sistem operasi. Dalam kehidupan sehari-hari tanpa kita sadari, kita sering melakukan sinkronisasi di berbagai hal. Mulai pada saat menggunakan smartphone, komputer dan benda elektronik lainnya.

BAB II

ISI

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

Tujuan Sinkronisasi
Tujuan dari sinkronisasi itu sendiri adalah untuk menghindari terjadinya inkosistensi data karena pengaksesan oleh beberapa proses berbeda dan utnuk mengantur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di inginkan.
Sudah kita ketahui bahwa hidup saling berkaitan satu sama lain, begitu juga dengan sinkronisasi pada sistem operasi. Jika hal ini tidak ada, penopang dalam menjalankan suatu sistem, akan menemui suatu kendala yang bersifat ketidak konsistenan (inkonsisten) pada data, sehingga data menjadi tidak konkuren.

Masalah-Masalah Dalam Sinkronisasi dan Solusinya

1. Race Condition
Race Condition adalah suatu situasi dimana beberapa proses mengkases dan memanipulasi data bersama pada saat yang bersamaan. Nilai akhir dari data bersama tersebut bergantung pada proses yang terakhir selsesai. Untuk mencegah race condition, proses-proses yang berjalan secara bersamaan tersebut harus disinkronisasikan. Dalam beberapa sistem operasi, proses-proses yang berjalan secara 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 komunikasi atau masalah yang muncul.

2. Critical Section
Kunci untuk mencegah masalah ini dan di situasi lain yang melibatkan shared memori, shared berkas, dan shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang bersamaan. Dengan kata lain kita membutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.

3. Solusi Masalah Critical-Section
Untuk mengatasi masalah Critical Section, ada beberapa cara yaitu:
  • Mutual Exclution
    Jika proses pi sedang mengeksekusi critical section nya maka tidak ada proses lain yang dapat mengeksekusi critical section nya masing-masing.
  • Prongress
    Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang akan masuk ke critical section nya masing-masing, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bisa ditunda.
  • Bounded Waiting
    Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima.
    a. Asumsikan bahwa tiap proses mengeksekusi pada nonzero speed.
    b. Tidak ada asumsi mengenai kecepatan relative dan n proses.

    Cara-cara memecahkan masalah
  • Hanya dua proses, P0 dan P1 
  • Struktur umum dari proses adalah pi (proses lain pj)
4. Bakrey Algorithm
Critical section untuk n proses:
a). Sebelum memasuki Critical Section nya, proses menerima nomor pemilik, nomor terkecil memasuki critical secion terlebih dulu.

b). Jika proses Pi dan Pj menerima nomor yang sama, jika i<j, maka Pi dilayani duluan, selain itu Pj dilayani duluan (if  i<j, then Pi is served first ; else Pj is served first).

c). Skema penomoran selalu mengahislkan angka-angka yang dikeluarkan satu per satu yaitu 1,2,3,3,3,3,4,5,...

5. 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.

Semapohre memiliki dua sifat, yaitu :

a. Semaphore dapat diinisialisasi dengan nilai non-negatif.
b. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan            Djikstra adalah operasi P dan V.

  • Operasi Down
    Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked. Operasi Down adalah atomic, tidak dapat diinterupsi sebelum diselesaikan. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai, tidak ada proses lain yang dapat mengakses semaphore sampai operasi selesai atau diblocked.
  • Operasi UP
    Operasi Up menaikkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tidak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan oleh Djikstra, dapat dipilih secara acak. Adanya semaphore mempermudah persoalan mutual exclusion. 

6. Masalah Klasik Pada Sinkronisasi
Ada tiga hal yang selalu menadji masalah pada proses sinkronisasi, yaitu :

A. Problem Bounded Buffer.
Adalah proses di antara produsen dan konsumen. Kendala yang dari masalah ini yaitu penjadwalan (scheduling) dan mutual exclusion (mutex) seperti konsumen harus menunggu jika ada buffer kosong, produsen harus menunggu jika buffer sedang penuh, dan hanya satu buffer yang dapat memanipulasi buffer tersebut. Dengan kata lain, terdapat samber daya yang terbatas dan produsen mengisikan (write) harus produknya ke dalam sumber daya tersebut. Sedangkan, konsumen akan mengambil (read) sumber daya yang penuh tersebut dan meninggalkannya pada sumber daya yang kosong. Kompleksitas utama dari masalah tersebut adalah menjaga perhitungan jumlah ketersediaan sumber daya yang kosong ataupun penuh.
Untuk mengatasi masalah tersebut, dibutuhkan semaphore yang berfungsi sebagai penjaga agar produsen tidak mengakses sumber daya saat buffer sedang penuh. Sebaliknya, semaphore juga akan menghalangi konsumen saat buffer kosong. Sedangkan, semaphore biner digunakan untuk menjamin mutex ketika buffer sedang diakses. Semaphore yang tidak penuh akan ditandakan oleh konsumen dan semaphore yang penuh akan diisyaratkan oleh produsen.

B. Problem Read and Writer.
Permasalahan ini muncul saat ada beberapa pembaca dan penulis yang berbagi data yang sama atau berbagi sumber daya penyimpanan yang sama. Data yang diakses dapat berupa buffer, file, ataupun objek dari suatu program.  Dalam permasalahan ini, di setiap proses yang berjalan, penulis yang melakukan kegiatan menulis hanya diperbolehkan satu penulis saja. Jika sedang ada penulis yang melakukan proses menulis, maka tidak boleh ada proses membaca.
Terdapat 3 solusi untuk mengatasi masalah ini, yaitu:
1. Memprioritaskan pembaca
Solusi ini tepat digunakan jika tujuan yang ingin dicapai adalah memperoleh throughput semaksimal mungkin. Solusi ini bekerja dengan lebih memprioritaskan pembaca meskipun sudah banyak writer yang mengantri.
2. Memprioritaskan penulis.
Pada solusi ini, jika tidak ada yang mengaksess berkas maka penulis akan mengakses berkas dan pembaca akan dibiiarkan mengantri sampai semua penulis  menyelesaikan tugasnya.
3. Pembaca dan Penulis memperoleh prioritas yang sama secara bergantian.
Pada solusi ini, penulis dan pembaca diberi giliran yang adil dalam hal pengaksesan berkas. Jika tidak ada thread pembaca yang sedang mengakses berkas, maka penulis dapat mengaksesnya. Dan jika selesai maka akan memberikan giliran pada pembaca untuk mengakses berkas.

C. Problem Dining Philosopher
 Permasalahan dining-philosophers digambarkan pada gambar dibawah ini dimana terdapat 5 filosof yang akan makan. Di sana disediakan 5 supit. Jika filosof lapar, ia akan mengambil 2 supit yaitu di tangan kanan dan kiri. Namun adakalanya hanya diambil supit satu saja. Jika ada filosof yang mengambil 2 supit, maka ada filosof yang harus menunggu sampai supit tersebut diletakkan. Hal ini dapat diimplementasikan dengan wait dan signal.  Meskipun solusi ini menjamin bahwa tidak ada 2 tetangga yang makan bersama-sama, namun masih mungkin terjadi deadlock, yaitu jika tiap-tiap filosof lapar dan mengambil supit kiri, maka semua nilai supit = 0, dan jika kemudian tiap-tiap filosof akan mengambil supit kanan, maka akan terjadi
deadlock.
Ada beberapa cara untuk menghindari deadlock, antara lain :
1. Mengijinkan paling banyak 5 orang filosof yang duduk bersama-sama pada satu meja
2. Mengijinkan seorang filosof mangambil supit hanya jika kedua supit itu ada (dengan catatan,  bahwa ia harus mengambil pada critical section)
3. Menggunakan suatu solusi asimetrik, yaitu filosof pada nomor ganjil mengambil supit kanan dulu baru supit kiri. Sedangkan filosof yang duduk di kursi genap mengambil supit kanan dulu baru supit kiri.

7. Monitors
Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tidak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.
a). Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dalam monitor dan tidak oleh prosedur di luar monitor.
b). Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini (mutual exclusion).
c). Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.
d). Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor.
e). Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya.
f). Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda proses lain.
g). Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor.Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu.

BAB III

PENUTUP

Kesimpulan 
Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda (mutualexclusion) serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar dan terhindar dari deadlock atau starvation.

Demikian yang bisa saya susun mengenai materi yang menjadi bahasan dalam makalah ini, tentunya masih banyak kekurangan dan kelemahannya, karena terbatasnya pengetahuan yang saya ketahui dan kurangan bahan bacaan dan referensi yang ada hubungan nya dengan judul makalh ini.

Saya berharap para pembaca dan kepada bapak dosen bisa memberikan kritik dan saran yang membangun kepada diri saya untuk membuat makalah menjadi lebih baik di kesempatan-kesempatan berikutnya. Semoga makalah ini bisa berguna bagi saya dan para pembaca lainnya.

Referensi dan Sumber :
https://www.idjurnal.com/2016/04/pengertian-sinkronisasi-sistem-operasi.html
https://nyomanchandra.blogspot.com/2018/01/masalah-klasik-sinkronisasi-yang-kerap.html
https://pelopers.wordpress.com/2012/03/22/definisi-dining-philosopher/

Catatan Kaki :
Nama Mahasiswa: Dera Aprinaldi
Alamat webblog Anda: https://deraaprinaldi.blogspot.com/
Alamat webblog Dosen: https://syaifulahdan.wordpress.com


Tidak ada komentar:

Posting Komentar