MakaIah Sistem Operasi
SISTEM OPERASI PROCESS SYNCHRONIZATION
Disusun
oleh :
Eko
Haryadi (19316029)
KELAS
TEKNIK KOMPUTER 19 A
PROGRAM
STUDY TEKNOKRAT INDONESIA
UNIVERSTAS TEKNOKRAT INDONESIA
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 telah dapat di
selesaikan dengan tepat waktu. Makalah ini saya 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 meneyempurnakan makalah ini, sebab makalah
ini masih banyak kekuranganya.
DAFTAR ISI
KATA PENGANTAR......................................................................................................
DAFTAR ISI...................................................................................................................
BAB I PENDAHULUAN................................................................................................
1.1 Latar Belakang...........................................................................................................................
1.2 Rumusan Masalah....................................................................................................................
1.3 Tujuan Masalah.........................................................................................................................
BAB II PEMBAHASAN..................................................................................................
2.1 Pengertian Singkronasi........................................................................................................
2.2 Tujuan Singkronasi.................................................................................................................
2.3 Masalah dalam Singkronasi...............................................................................................
BAB III PENUTUP........................................................................................................
3.1 Kesimpulan..................................................................................................................................
3.2 Saran................................................................................................................................................
DAFTAR PUSTAKA......................................................................................................
BAB I
PENDAHULUAN
1.1 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.
1.2 Rumusan Masalah
Berangkat dari latar belakang masalah di
atas, maka akan kami susun rumusan masalah. Adapun rumusan masalah tersebut
untuk membatasi penelitian dan membuat kajian yang diteliti menjadi lebih fokus
lagi. Rumusan disusun sebagai berikut :
1.
Apa pengertian dari Sinkronisasi?
2.
Apa Tujuan Sinkronisasi?
1.3 Tujuan dan Manfaat
Makalah ini
merupakan tugas mata kuliah sistem op, adapun tujuan dari penulisan makalah
ini adalah :
1.
Mengetahui Apa Itu Singkronisasi
2.
Mengetahui Tujuan Sinkronisasi
3.
Mengetahui Masalah dalam Sinkroniasi
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
PEMBAHASAN
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.
3.2 Saran
Diharap
kepada seluruh mahasiswa agar lebih giat belajar lagi tentang Sistem Operasi.
Agar mengetahui apa saja yang terkandung dalam Proses Sinkronasi.
DAFTAR PUSTAKA
https://siteblogforu.blogspot.com/ sikronisasi
sistim informasi; di akses pada 18 oktober 2016.
https://Genggaminternet.com/ di akses pada 18 Oktober
2016.
https://Gurupendidikan.com/ di akses pada 18 Oktober
2016.
Waw bagus sekali artikelnya
BalasHapus