Tugas 1:Sistem Operasi (Teori) : Process Synchronization
MAKALAH SISTEM OPERASI
SINKRONISASI
DISUSUN OLEH :
YOHANES BOSCO CHRISTO SETYA ATMAKA
19316049
UNIVERSITAS TEKNOKRAT INDONESIA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
TEKNIK KOMPUTER
T.A 2020/2021
KATA PENGANTAR
Puji syukur
kehadirat Tuhan YME yang telah memberikan rahmat dan hidayah-Nya. Dengan rahmat
dan hidayah-Nya, Puji syukur Makalah yang berjudul “ SINKRONISASI” ini dapat
terselesaikan dangan tepat waktu. Makalah ini kami buat 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.
Bandar
Lampung , 1 November 2020
Penulis
DAFTAR ISI
BAB
I
PENDAHULUAN
1.1. Latar Belakang
1.2. Rumusan Masalah
1.3. Tujuan
BAB
II
PEMBAHASAN
2.1. Pengertian
Sinkronisasi
2.2. Tujuan Sinkronisasi
2.3. Masalah Dalam
Sinkronisasi Beserta Solusinya
BAB
III
PENUTUP
3.1. Kesimpulan
3.2. Saran
BAB I
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.
·
Asumsikan bahwa
tiap proses mengeksekusi pada nonzero speed.
·
Tidak ada asumsi
mengenai kecepatan relative dan n proses.
Cara-cara
memecahkan masalah, yaitu :
·
Hanya dua proses,
Po dan P1
·
Struktur umum dari
proses adalah Pi (proses lain Pj)
4.
Masalah
sinkronisasi Software (perangkat lunak)
Solusi perangkat lunak(Software) Dengan menggunakan
algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada
asumsi-asumsi lain, selain itu setiap proses berjalan pada kecepatan yang bukan
nol.
5. Masalah sinkronisasi hardware (perangkat keras)
Seperti
yang telah kita ketahui bahwa, sinkronisasi haruslah mutual exclusive, atau
dengan kata lain, harus ada satu atau sekelompok instruksi yang tidak dapat
diberhentikan pada waktu eksekusi (sifat mutual exclusive). Jadi, solusi untuk
sinkronisasi dengan cara pendekatan hardware lebih menekankan kepada
usaha-usaha untuk membuat suatu atau sekelompok instruksi menjadi mutual
exclusive.
Pendekatan dari
sisi Hardware dapat dibagi menjadi dua:
·
Processor
Synchronous
Central Processing
Unit, CPU, mempunyai suatu mekanisme yang dinamakan interrupt. Di dalam sistim
operasi, mekanisme ini digunakan secara intensif, atau dengan kata lain, banyak
konsep-konsep sistim operasi yang menggunakan mekanisme ini. Sebagai contoh :
system call, process scheduling, dsb.
·
Memory Synchronous
Dilihat dari nama
mekanismenya, maka kita sudah dapat memprediksi bahwa mekanisme ini akan
menggunakan jasa memori. Memang hal tersebut benar, mekanisme memory
synchronous memakai suatu nilai yang disimpan di memori, dan jikalau suatu proses
berhasil mengubah nilai ini, maka proses ini akan meneruskan ke instruksi
selanjutnya, jika tidak, maka proses ini akan berusaha terus untuk dapat
mengubahnya.
6.
Bakery Algorithm
Critical
section untuk n proses :
·
Sebelum memasuki
critical Section-nya, proses menerima nomor pemilik nomor terkecil memasuki
critical section.
·
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).
·
Skema penomoran
selalu menghasilkan angka –angka yang disebutkan satu per satu, yaitu
1,2,3,3,3,3,4,5….
7.
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:
·
Semaphore dapat
diinisialisasi dengan nilai non-negatif.
·
Terdapat dua
operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan
Djikstra adalah operasi P dan V.
a)
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.
b)
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.
8.
Problem Klasik
pada Sinkronisasi
Ada
tiga hal yang selalu menjadi masalah pada proses sinkronisasi:
·
Problem Bounded
buffer.
·
Problem Reades and
Writer.
·
Problem Dining
Philosophers.
9.
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 akses bebarengan untuk
berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan
konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses
kerjasama.
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.
3.2.
Saran
Terima kasih sudah membaca makalah yang sudah
kami buat, mohon maaf atas kesalahan dan kekurangan makalah kami. Kami
membutuhkan kriktik dan saran agar makalah yang kami akan buat nanti bisa lebih
baik lagi.
DAFTAR PUSTAKA
https://www.gurupendidikan.co.id/pengertian-sinkronisasi-sistem-operasi-lengkap/
http://rahmadican.blogspot.com/2017/01/makalah-sitem-operasi-sinkronisasi.html
http://arifmauu.blogspot.co.id/2016/11/sinkronisasi-deadlock-pada-sistem.html
http://www.erllang.ga/teknik-informatika/makalah-sinkronisasi-data-dan-deadlock.html
https://aanazar.wordpress.com/2012/12/26/makalah-sinkronisasi-dan-deadlock/
http://ariskuliah.blogspot.com/2017/12/makalah-sinkronisasi-data-dan-deadlock.html
- Alamat Blog Dosen : https://syaifulahdan.wordpress.com
- Alamat web Program studi, Fakultas, Universitas : http://ti.ftik.teknokrat.ac.id, http://ftik.teknokrat.ac.id, www.teknokrat.ac.id
- Nama Mahasiswa : Yohanes Bosco Christo Setya Atmaka
Komentar
Posting Komentar