MAKALAH SISTEM OPERASI
SINKRONISASI
OLEH :
Nama : ADELLA WIDIYANTI
NPM : 151100039
Prodi : INFORMATIKA
UNIVERSITAS
TEKNOKRAT INDONESIA
TAHUN PELAJARAN
2020/2021
KATA
PENGANTAR
Puji syukur kehadirat
Allah SWT yang telah memberikan rahmat dan hidayah-Nya. Dengan rahmat dan
hidayah-Nya, Alhamdulillah Makalah yang berjudul “ SINKRONISASI” ini dapat
terselesaikan dangan tepat waktu. Makalah ini dibuat untuk memenuhi tugas dari
mata kuliah Sistem Operasi.
Terima
kasih juga kepada Bapak Syaiful Ahdan selaku dosen mata kuliah Sistem Operasi
yang telah memberi kami arahan untuk menyelesaikan tugas pembuatan makalah ini.
Kami berharap kepada semua pihak dengan segala kritik dan saran yang bersifat
membangun, sangat kami harapkan untuk dimasa yang akan datang agar bisa
menyempurnakan makalah ini, sebab makalah ini masih banyak kekurangannya.
Gedong
Tataan, 3 April 2021
DAFTAR ISI
3. Solusi ke Masalah Critical-Section
6. Problem Klasik pada Sinkronisasi
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Sinkornisasi di perlukan untuk menghindari terjadinya ketidak konsistenan
data akibat adanya akses secara konkuren.Proses-Proses tersebut disebut
konkuren jika Proses itu ada dan berjalan pada waktu yang bersamaan.
Istilah Sinkronisasi sering terdengar ketika kita menggunakan
alat elektronik. Sinkronisasi sendiri berasal dari bagian sistem operasi. Sistem
operasi adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan
manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan
perangkat lunak aplikasi seperti program-program pengolah kata dan peramban
web.
Jadi, agar sinkronisasi bisa berjalan, sangat di butuhkan yang
namanya sistem operasi.Dalam kehidupan sehari-hari tanpa di sadari, kita sering
melakukan sinkronisasi dalam berbagai hal.Mulai pada saat menggunakan
smartphone, komputer dan lain sebagainya.
1.2 RUMUSAN MASALAH
1. Apa pengertian dari Sinkronisasi ?
2. Apa Tujuan Sinkronisasi ?
3. Apa saja masalah Sinkronisasi dan solusinya ?
1.3 TUJUAN
1. Mengetahui apa itu Sinkronisasi.
2. Mengetahui tujuan Sinkronisasi.
3. Mengetahui Masalah dalam Sinkronisasi dan solusinya.
BAB II
PEMBAHASAN
2.1 PENGERTIAN 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.
Shared memory
merupakan solusi ke masalah bounded-butter yang mengijinkan paling banyak n-1
materi dalam buffer pada waktu yang sama. Suatu solusi, jika semua N buffer
digunakan tidaklah sederhana. Dimisalkan kita memodifikasi producer-consumer code
dengan menambahkan suatu variable counter, dimulai dari 0 dan masing-masing
waktu tambahan dari suatu item baru diberikan kepada buffer. Sinkronisasi
merupakan “issue” penting dalam rancangan/implementasi OS (shared resources,
data, dan multitasking).
2.2 TUJUAN SINKRONISASI
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.
2.3
MASALAH DALAM SINKRONISASI BESERTA SOLUSINYA
1.
Race Condition
Race Condition adalah
situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada
saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses
yang terakhir selesai. Untuk mencegah race condition, proses-proses yang
berjalan besamaan harus di disinkronisasi.
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.
2. Critical
Section
Kunci untuk mencegah masalah ini dan di situasi yang lain yang
melibatkan shared memori, shared berkas, and 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 sama.
Dengan kata lain kita memutuhkan 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.
Masalah menghindari race conditions dapat juga diformulasikan
secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan
perhitungan internal dan hal lain yang tidak menggiring ke kondisi race
conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory
atau shared berkas atau melakukan sesuatu yang kritis akan menggiring kepada
race conditions. Bagian dari program dimana shaed memory diakses disebut
Critical Section atau Critical Region.
Walau pun dapat mencegah race conditions, tapi tidak cukup untuk
melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam
menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang
baik:
·
Tidak ada dua proses secara bersamaan masuk ke dalam citical
section.
·
Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
·
Tidak ada proses yang berjalan di luar critical secion yang
dapat mengeblok proses lain.
·
Tidak ada proses yang menunggu selamamya untuk masuk critical
section.
Critical Section adalah sebuah segmen kode di mana sebuah proses
yang mana sumber daya bersama diakses. Terdiri dari:
1)
Entry Section: kode yang digunakan untuk masuk ke dalam critical
section
2)
Critical Section: Kode di mana hanya ada satu proses yang dapat
dieksekusi pada satu waktu
3)
Exit Section: akhir dari critical section, mengizinkan proses lain
4)
Remainder Section: kode istirahat setelah masuk ke critical
section.
3. Solusi
ke Masalah Critical-Section
Ada bebrapa Solusi
untuk mengatasi masalah Critical Section, yaitu:
·
Mutual exclution
Jika proses pi sedang
mengeksekusi critical section-nya maka tidak ada proses lain yang dapat
mengeksekusi dalam critical section mereka.
·
Progress
Jika tidak ada proses
yang sedang dieksekusi dalam critical section dan ada beberapa proses
yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan
masuk ke critical section berikutnya tidak bias 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, Po dan P1
·
Struktur umum dari proses adalah Pi (proses lain Pj)
4.
Bakery Algorithm
Critical section untuk n proses:
a)
Sebelum memasuki critical Section-nya, proses menerima nomor
pemilik nomor terkecil memasuki critical section.
b)
Jika proses Pi dan Pj menerima nomor yang sama, jika i < j,
maka Pi dilayani duluan, lainnya Pj dilayani duluan (if i< j, then Pi is
served first; else Pj is served first).
c)
Skema penomoran selalu menghasilkan angka –angka yang disebutkan
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.
Semaphore mempunyai 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. Skema penyelesaian mutual exclusion mempunyai
bagian sebagai berikut:
Sebelum masuk critical section, proses melakukan Down. Bila berhasil maka
proses masuk ke critical section. Bila tidak berhasil maka proses di-blocked
atas semaphore itu. Proses yang diblocked akan dapat melanjutkan kembali bila
proses yang ada di critical section keluar dan melakukan opersai up sehingga
menjadikan proses yang diblocked ready dan melanjutkan sehingga opersi Down-nya
berhasil.
6.
Problem Klasik pada Sinkronisasi
Ada tiga hal yang selalu menjadi masalah pada proses
sinkronisasi:
a.
Problem Bounded buffer.
b.
Problem Reades and Writer.
c.
Problem Dining Philosophers.
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.
Properti-properti monitor adalah sebagai berikut:
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
3.1 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.
Sinkronisasi umumnya dilakukan dengan bantuan perangkat sinkronisasi.Beberapa
perangkat sinkronisasi, yaitu : TestAndSet(), Semafor, dan Monitor
SUMBER
REFERENSI
Siteblogforu.blogspot.com.
Genggaminternet.com.
Gurupendidikan.com.