SIKRONISASI PROSES SISTEM OPERASi
MAKALAH
(SIKRONISASI
PROSES)
Imam
Bukhori (20372004P)
UNIVERSITAS TEKNOKRAT INDONESIA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
INFORMATIKA
2020
Kata Pengantar
Puji syukur kami panjatkan kehadirat Allah SWT yang
telah memberikan rahmat serta karunia-Nya kepada kami sehingga kami berhasil
menyelesaikan Makalah ini yang alhamdulillah tepat pada waktunya yang berjudul
“SINKRONISASI ” Makalah ini berisikan tentang informasi mengenai sinkronisasi
atau yang lebih khususnya membahas tentang pengenalan lebih jelas tentang
sinkronikasi , tujuan sinkronikasi pada sistem operasi dan lain-lain. Kami
menyadari bahwa makalah ini masih jauh dari sempurna, oleh karena itu kritik dan
saran dari semua pihak yang bersifat membangun selalu kami harapkan demi
kesempurnaan makalah ini.
Akhir kata,
kami sampaikan terima kasih kepada bapak dosen yang memberi tugas ini dan
berterima kasih kepada Allah Swt karena telah memberikan kami kesehatan
sehingga kami dapat mengerjakan makalah ini. Semoga Allah SWT senantiasa
meridhai segala usaha kami. Amin
Daftar isi
Kata
pengantar...........................................................................
BAB I
PENDAHULUAN...............................................................
BAB II
ISI......................................................................................
Pengertian sinkronisasi...................................................................
Manfaat
sinkronisasi......................................................................
Tujuan sinkronisasi .......................................................................
Masalah dalam sinkronisasi...........................................................
Sinkronisasi hardware....................................................................
Semaphores ...................................................................................
Monitors ........................................................................................
Contoh kasus..................................................................................
BAB III
PENUTUP......................................................................
Daftar
Referensi
BAB
I
PENDAHULUAN
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.bIstilah
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
perambanweb.
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.
BAB
II
ISI
PENGERTIAN SINKRONISASI
Sinkronisasi
adalah suatu proses dimana proses tersebut saling bersamaan dan saling berbagi
data bersama yang mengakibatkan race condition atau lebih dikenal dengan
inkonsistensi data atau 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.
MANFAAT SINKRONISASI.
·
Bermanfaat untuk menyimpan
data, baik sementara atau pemanen sehingga memudahkan pekerjaan.
·
Jadi dengan menggunakan
sistem ini pekerjaan Anda akan lebih terbantu dan lebih efektif karena bisa
menghemat waktu.
TUJUAN SINKRONISASI
Kenapa
Sistem Operasi membutuhkan 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.
sama Seperti
yang kita ketahui bahwa hidup saling berkaitan satu sama lain, begitu juga
Sinkronisasi Pada Sistem Operasi. Jika hal
ini jika tidak ada penopang dalam menjalankan suatu sistem, maka akan menemui
suatu kendala yang berakibat ketidakkonsistenan pada data, sehingga data tidak
menjadi konkuren.
MASALAH DALAM SINKRONISASI
o Race
Condition
Arti
dari Race Conditon 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.
o Critical
Section
Arti
dari masalah Critical Section adalah sebuah segmen kode
di mana sebuah proses yang mana sumber daya diakses bersama .
Critical Section ini
sendiri mempunyai beberapa kode seperti :
Entry
Section : adalah
kode yang digunakan untuk masuk ke dalam critical section.
Critical
Section : Kode di mana hanya ada
satu proses yang dapat dieksekusi pada satu waktu.
Exit Section:
akhir dari critical section, mengizinkan proses lain.
Remainder Section :
kode istirahat setelah masuk ke critical section.
Solusi untuk mencegah
kesalahan pada 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 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.
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 kerja sama
antar proses secara pararel dengan baik dan efisien dalam menggunakan shared
data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik yaitu:
a.
Tidak ada dua proses secara
bersamaan masuk ke dalam citical section.
b.
Tidak ada asumsi mengenai
kecepatan atau jumlah cpu.
c.
Tidak ada proses yang
berjalan di luar critical secion yang dapat mengeblok proses lain.
d.
Tidak ada proses yang
menunggu selamamya untuk masuk critical section.
Ada pun Solusi lain untuk
mengatasi masalah Critical Section, yaitu:
Mutual
exclution : yaitu 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 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.
Selain masalah race condition dan critical yang ada sinkronisasi ,ada
juga masalah klasik yang terjadi pada sinkronisasi di sistem operasi seperti :
o Bounded
– Buffer Problem
Bounded-buffer problem merupakan
suatu struktur data yang mampu untuk menyimpan beberapa nilai dan
mengeluarkannya kembali ketika diperlukan . Jika dianalogikan bounded buffer
ini akan mirip dengan sebuah tumpukan piring. Kita menaruh piring dan menaruh
lagi sebuah piring, ketika ingin mengambil piring maka tumpukan yang paling
atas yang akan terambil.Jadi piring terakhir yang dimasukan akan pertama kali
diambil.
Solusi Bounded – Buffer
Problem
Solusi Shared Memory untuk
Bounded – Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu
waktu tertentu.
o Readers
and Writers Problem
Readers
and Writers Problem adalah problem yang memodelkan proses yang mengakses
database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data
yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek
dari suatu program.
Solusi readels and writers
problem
Pembaca di Prioritaskan
Reader
tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada
writer yang sedang menunggu. Dengan kata lain, Jika ada reader yang datang
ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka
reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca.
Writer akan ditunda pengerjaannya.
Penulis di Prioritaskan
Di
mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader
yang memulai untuk membaca data.sehingga Kedua Jenis Punya
Prioritas yang Sama yaitu tidak ada prioritas khusus yang
diberikan kepada kedua jenis proses.
o Dining
Philosophers Problem
Masalah ini pertama
ini pertama kali ditulis dan diselesaikan oleh Djikstra pada tahun
1965.Masalah ini memodelkan masalah enkapsulasi dari ketergantungan mesin dan
masalah portabilitas. Dalam masalah Dining Philosophers, diketahui sejumlah (N)
filusuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua
filusuf berada di sebuah meja makan bundar yang ditata sehingga di depan setiap
filusuf ada sebuah piring berisi mie dan di antara dua piring yang
bersebelahan terdapat sebuah sumpit.
Solusi Dining Philosophers
Problem
Solusi Dining –
Philosophers Problem ada dua, yakni :
Solusi Waiter
Solusi Waiter
: solusi sederhana ini dilakukan
dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan
sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang
dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada
sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai
terpakai.
Solusi
Hierarki Resource
Solusi
Hirarki Resource: resources (sumpit) di meja makan
telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah
sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan
sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas
meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai
5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah,
kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak
mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih
tinggi terlebih dahulu, lalu yang rendah.
Sinkronisasi Hardware
Sinkronisasi Memerlukan
dukungan hardware (prosesor).
· Dalam
bentuk “instruction set” khusus: test-and-set.
· Menjamin
operasi atomik (satu kesatuan): test nilai dan mengubah nilai tersebut
.
Test-and-Set (mutual
exclusion).
Mutual
exclusion dapat diterapkan dengan menggunakan shared data,
Semaphores
Semaphores adalah
sebuah struktur
data komputer yang digunakan untuk sinkronisasi proses, yaitu untuk
memecahkan masalah di mana lebih dari satu proses atau thread dijalankan
secara bersamaan dan harus diatur urutan kerjanya. Semafor dicetuskan oleh Edsger Dijkstra dan
pertama digunakan dalam sistem operasi THE.
Nilai semafor diinisialisasi dengan jumlah
resource yang dikendalikannya. Dalam kasus khusus di mana ada satu shared
resource, semafornya disebut "semafor biner". Semafor adalah solusi
klasik dari dining philosophers problem,
walaupun tidak mencegah deadlock.
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. Operasi ini menurunkan
nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang
mengeksekusinya diblocked. Terdapat dua operasi terhadap semaphore, yaitu
Down dan Up.
a.
Operasi Down adalah
atomic, tak dapat diinterupsi sebelum diselesaikan.menurunkan nilai, memeriksa
nilai, menempatkan proses pada antrian dan memblocked sebagai instruksi
tunggal. Sejak dimulai, tak ada proses lain yang dapat mengakses semaphore
sampai operasi selesai atau diblocked.
b.
Operasi Up menaikkan
nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tak
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.
Dua Jenis Semaphore
Counting semaphore
-
nilai integer S dapat
berkisar melalui domain tak terbatas.
-
Biasanya nilai S
diinisiasi sebanyak resource yang dibagi
-
Jika S=0, maka semua
resource sedang dipakai
Binary semaphore
ü
nilai integer S dapat
mempunyai jangkauan 0 atau 1
ü
Lebih sederhana untuk
diimplementasikan
Implementasi Semaphore
Untuk
menghindari busy waiting, process yang menunggu akses critical-section harus dihentikan sementara. Ada dua operasi sederhana
yang terlibat :
a.
block : menghentikan
sementara (suspend) proses yang memanggil
b.
wakeup(P) : melanjutkan
(resume) eksekusi dari proses P yang di-blok
Semaphore
tanpa busy waiting butuh struktur data untuk menyimpan process yang sedang suspend.
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 tak
dapat mengakses struktur data internal dalam monitor secara langsung. Hanya
lewat prosedur-prosedur yang dideklarasikan monitor untuk mengakses struktur
internal.
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.
Properti-properti monitor
adalah sebagai berikut:
- Variabel-variabel
data lokal, hanya dapat diakses oleh prosedur-prosedur dalam monitor dan tidak
boleh prosedur di luar monitor.
- Hanya
satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus
mengimplementasi ini(mutual exclusion).
- Terdapat
cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan
variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.
- Wait:
Ketika prosedur monitor tidak dapat berlanjut (misal producer menemui buffer
penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk
monitor.
- Signal:
Proses membangunkan partner-nya yang sedang diblocked dengan signal pada
variabel kondisi yang sedang ditunggu partnernya.
- Versi
Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda
proses lain.
Monitor mensinkronisasi
sejumlah proses:
suatu
saat hanya satu yang aktif dalam monitor dan yang lain menunggu
Bagian dari bahasa program
(mis. Java).
Tugas
compiler menjamin hal tersebut terjadi dengan menerjemahkan ke “low level
synchronization” (semphore, instruction set dll)
- Cukup
dengan statement (deklarasi) suatu section/fungsi adalah monitor =>
mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Proses-proses
harus disinkronisasikan di dalam monitor:
·
Memenuhi solusi critical
section.
·
Proses dapat menunggu di
dalam monitor.
·
Mekanisme: terdapat
variabel (condition) dimana proses dapat menguji/menunggu sebelum mengakses
“critical section”
var x,
y: condition
Condition: memudahkan
programmer untuk menulis code pada monitor.
Misalkan
: var x: condition ;
·
Variabel condition hanya
dapat dimanipulasi dengan operasi: wait() dan signal()
·
x.wait() jika dipanggil
oleh suatu proses maka proses tsb. akan suspend - sampai ada proses lain yang
memanggil: x. signal()
·
x.signal() hanya akan
menjalankan (resume) 1 proses saja yang sedang menunggu (suspend) (tidak ada
proses lain yang wait maka tidak berdampak apapun)
Contoh Kasus Bounded –
Buffer pada sinkronisasi
Pada
bagian ini akan dicontohkan suatu produser konsumer. produser akan menghasilkan
suatu barang dan konsumer akan mengkonsumsi barang yang dihasilkan oleh
produser. produser dan konsumer ini akan mengakses bounded buffer yang sama.
produser setelah menghasilkan suatu barang dia akan menaruh barang itu di
bounded buffer sebaliknya konsumer ketika membutuhkan suatu barang, dia akan
mengambilkannya dari bounded buffer.
Contoh kasus Readers
and Writers Problem pada sinkronisasi
Reader
tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada
writer yang sedang menunggu. Dengan kata lain, Jika ada reader yang datang
ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka
reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca.
Writer akan ditunda pengerjaannya.Di mana suatu writer sedang dijalankan oleh
sistem, maka tidak boleh ada reader yang memulai untuk membaca data.Dengan tidak
ada prioritas khusus yang diberikan kepada kedua jenis proses.
Contoh
Kasus Dining – Philosophers Problem pada sinkronisasi
Pada
sebuah computer tentunya terdapat aplikasi-aplikasi yang dapat memudahkan
kita untuk melakukan suatu pekerjaan. Namun disamping kemudahan yang diberikan,
terdapat ancaman negative yang dapat aplikasi-aplikasi itu berikan pada
computer kita jika kita tidak menggunakannya dengan benar. Suatu contoh ketika
kita mengerjakan suatu tugas. Kita membuka dan menjalankan beberapa aplikasi
secara bersamaan. Aplikasi yang kita gunakan misalnya ms. Word (membuka 6 file
word sebagai sumber tugas), winamp untuk memainkan lagu, firefox untuk browsing
internet, pidgin untuk sesekali chating, sementara itu aplikasi start up yang
berjalan juga banyak dan RAM yang tersedia tidak begitu besar sehingga hal ini
akan membuat computer menjalankan aplikasi itu terus-menerus jika kita tidak
mematikannya. Hal ini akan membuat computer berjalan semakin lambat dan
memungkinkan terjadinya starvation atau deadlock dalam beberapa waktu kemudian.
Contoh Kasus semaphores
sinkronisasi
Keterangan:
· Mula-mula
nilai s = 1, proses A, B, D, dan C berada dalam status ready; proses A
dieksekusi, nilai s berkurang menjadi 0
· Proses
A selesai à masuk status ready; proses B
dieksekusi à s menjadi -1 à proses
B di-blok à masuk antrian
· Proses
D dieksekusi
· semSignal à s
menjadi 0 à proses B dibebaskan dari antrian;
proses D selesai à masuk status ready (mulai) lagi Urutan
eksekusi: A, B, D
· Proses
C dieksekusi à s menjadi -1 à C
di-blok à masuk antrian; hal yang sama
terjadi
pula untuk proses A dan B à diblok à masuk
antrian à s menjadi -3
· Proses
D dieksekusi lagi
· semSignalà s
menjadi -2 à proses C dibebaskan Urutan eksekusi: A,
B, D, C, A, B, D, C, D, A, D, B, D, C, D, A, D, …
Contoh kasus monitors
sinkronisasi
Penyelesaian
Masalah Monitor dapat dianalogikan sebagai sebuah bangunan dengan tiga buah
ruangan yaitu satu buah ruangan kontrol, satu buah ruang-tunggu-masuk, satu
buah ruang-tunggu-dalam. Ketika suatu thread memasuki monitor, ia memasuki
ruang-tunggu-masuk (enter). Ketika gilirannya tiba, thread memasuki ruang
kontrol (acquire), di sini thread menyelesaikan tugasnya dengan shared resource
yang berada di ruang kontrol (owning). Jika tugas thread tersebut belum selesai
tetapialokasi waktu untuknya sudah habis atau thread tersebut menunggu
pekerjaan thread lain selesai, thread melepaskan kendali atas monitor (release)
dan dipindahkan ke ruang-tunggu-dalam (waiting queue). Ketika gilirannya tiba
kembali, thread memasuki ruang kontrol lagi (acquire). Jika tugasnya selesai,
ia keluar dari monitor (release and exit)
BAB
III
PENUTUP
Demikian yang dapat saya susun mengenai
materi yang menjadi pokok bahasan dalam makalah ini, tentunya masih banyak
kekurangan dan kelemahannya, kerena terbatasnya pengetahuan yang saya
ketahui dan kurangnya rujukan atau referensi yang ada
hubungannyadengan judul makalah ini.
Saya banyak berharap
para pembaca dan kepada bapak dosen sudi memberikan kritik dan saran
yang membangun kepada diri saya demi sempurnanya makalah ini
dan untuk penulisan makalah di kesempatan – kesempatan berikutnya menjadi
lebih baik lagi.
Semoga
makalah ini berguna bagi saya pada khususnya juga para pembaca pada
umumnya.
§
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 : Imam Bukhori
Daftar Referensi
http://bariqsitorus054.blogspot.com/2016/09/sinkronisasi-sistem-operasi.html
Comments
Post a Comment