RIO PRATAMA-18316097
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 kamibuat untuk memenuhi tugas dari mata kuliah Sistem Operasi.
Terima kasih juga kepada Bapak dosen Pembimbing 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.
DAFTARISI
KATAPENGANTAR...............................................................................................i
DAFTARISI..........................................................................................................ii
BABI PENDAHULUAN.........................................................................................1
1.1 LatarBelakang....................................................................................................1
1.2 RumusanMasalah.........................................................................................1
1.3 Tujuan..........................................................................................................1
BAB II PEMBAHASAN...................................................................................2
2.1 Pengertian Sinkronisasi...............................................................................2
2.2 Tujuan Sinkronisasi.....................................................................................2
2.3 Masalah dalam Sinkronisasi Beserta Solusinya..........................................2
PENUTUP..........................................................................................................8
3.1 Kesimpulan.................................................................................................8
DAFTAR PUSTAKA........................................................................................9
BAB IPENDAHULUAN
LATAR BELAKANG
Sinkornisasi di perlukan untuk menghindari terjadinyaketidakkonsistenan
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.
RUMUSAN MASALAH
1. Apa pengertian dari Sinkronisasi ?
2. Apa Tujuan Sinkronisasi ?
3. Apa saja masalah Sinkronisasi dan solusinya ?
2. BAB II
PEMBAHASAN
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).
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.
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.
PENUTUP
3.1KESIMPULAN
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 :
http://rahmadican.blogspot.com/2017/01/makalah-sitem-operasi-sinkronisasi
Komentar
Posting Komentar