Anda di halaman 1dari 18

Sistem Operasi

Modul ke:

06
Ilmu Komputer
Fakultas
Sinkronisasi

Dwi Ade Handayani Capah, S.Kom, M.Kom

Program Studi
Informatika

www.mercubuana.ac.id
Pendahuluan

Sinkronisasi merupakan suatu proses secara


bersama sama dan saling berbagi data bersama
dapat mengakibatkan race condition atau
inkosistensi data. Sinkornisasi di perlukan untuk
menghindari terjadinya ketidak konsistenan data
akibat adanya akses secara konkuren. Proses-
Proses tersebut disebut konkukuren jika Proses
itu ada dan berjalan pada waktu yang
bersamaan.
Sinkronisasi

• Sinkronisasi proses
– Mengacu pada gagasan bahwa banyak proses yang
nantinya, pada titik tertentu, akan bergabung atau
berjabat tangan, dalam rangka untuk mencapai
kesepakatan atau komitmen untuk suatu urutan
tindakan tertentu.
• Sinkronisasi data
– Mengacu pada gagasan menjaga beberapa salinan
dari dataset dalam koherensi dengan satu sama
lain, atau untuk menjaga integritas data.
Thread atau Proses Sinkronisasi

• Deadlock
• Starvation
• Priority inversion
Perangkat Sinkronisasi

• Intruksi Test-and-set adalah Intuksi atomik yang


dapat dihunakan untuk menangani masalah
Critical Section.
• Semafor merupakan sebuah variabel yang hanya
dapat di akses oleh dua buah operasi standar
yaitu increment dan decrement.
• Monitor digunakan untuk menangani masalah
yang akan muncul karna pemakai semafor.
• JVM iyalah mengimplementasikan monitor.
monitor JVM dapat digunakan menggunakan
keyword synchronized
Alasan Dilakukan Sinkronisasi

Sinkronisasi diperlukan untuk menghindari


terjadinya ketidak konsistenan data akibat
adanya akses data secara konkuren. Untuk
menjaga kekonsistenan data tersebut, diperlukan
adanya suatu mekanisme untuk memastikan
urutan pengaksesan suatu data yang saling
bekerjasama sehingga terjadi sinkronisasi
Sinkronisasi

• Manfaat Sinkronisasi
– Sebagai penyimpanan data sementara dan non
sementara agar dapat mempermudah pekerjaan.
• Tujuan Sinkronisasi
– 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.
Problem Klasik pada Sinkronisasi

Ada tiga hal yang selalu menjadi masalah pada


proses sinkronisasi:
• Problem Bounded buffer.
• Problem Reades and Writer.
• Problem Dining Philosophers.
Masalah yang Timbul Sinkronisasi
tdk Dilakukan

• Race Condition
– Adalah situasi dimana beberapa proses mengakses
dan memanipulasi suatu data secara konkuren.
Nilai akhir dari data tersebut tergantung dari
proses mana yang terakhir selesai dieksekusi.
Untuk menghindari terjadinya situasi tersebut,
semua proses yang dapat mengakses suatu data
tertentu harus disinkronisasi
Masalah yang Timbul Sinkronisasi
tdk Dilakukan

• Critical Section
– Critical Section merupakan suatu kode segmen dari
proses-proses yang memungkinkan terjadinya Race
Condition. Suatu system terdiri dari banyak proses
dimana semuanya berlomba-lomba pada saat yang
sama untuk menggunakan data yang sama.
Solusi Critical Section

• Mutual Exclusion
– Tidak ada dua proses yang berada di critical
section pada saat yang bersamaan.
• Progress
– Jika tidak ada proses yang sedang berada di critical
section, maka proses lain yang ingin menjalankan
critical section dapat masuk kedalam critical
section tersebut.
• Bounded Waiting (Batas waktu tunggu)
Jenis Solusi Masalah Critical Section

• Solusi perangkat lunak


– Dengan menggunakan algoritma-algoritma yang
nilai kebenarannya tidak tergantung pada asumsi-
asumsi lain, selain bahwa setiap proses berjalan
pada kecepatan yang bukannol.
• Solusi perangkat keras
– Tergantung pada beberapa instruksi mesin
tertentu, misalnya dengan menonaktifkan
interupsi atau dengan mengunci suatu variabel
tertentu.
Critical Section dalam Kernel

• Interupsi
– Interupsi merupakan pusat pada sistem operasi,
yang menyediakan cara efisien bagi sistem operasi
untuk berinteraksi terhadap lingkungannya.
Pemrograman berbasis interupsi secara langsung
didukung hampir dengan seluruh CPU modern.
• Page Fault
– Page fault merupakan exception untuk permintaan
alokasi page ke memori. Dalam konteks memori
maya, page fault sering disingkat fault.
Kondisi Menghasilkan Solusi 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.
Monitors
Properti-properti monitor :
• Variabel-variabel data lokal, hanya dapat
diakses oleh prosedur-prosedur dalam monitor
dan tidak oleh prosedur di luar monitor.
• Hanya satu proses yang dapat aktif di monitor
pada satu saat. Kompilator harus
mengimplementasi ini(mutual exclusion).
Monitors

• 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
berkanjut (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.
Daftar Pustaka
• Stalling.W, Operating System Internals and Design Principle
Seventh Edition, Prentice hall, 2012
• Silberschatz. A, Galvin. P.B, Gagne. Greg, Operating System
Concepts Ninth perEdition, Jhon, Wiley & Sons, 2013
• Kumpulan Modul Dosen Universitas Mercu Buana
• Andrew S Tenenbaum. 2001. Modern Operating System.
Second Edition. Prentice-Hall.
• Risi Fitri Sari dan Ynsen. 2005. Sistem Operasi Modern. Edisi
Pertama. Andi. Yogyakarta
• Sri Kusumadewi. 2000. Sistem Operasi. Edisi Kedua. Graha
Ilmu. Yogyakarta
Terima Kasih
Dwi Ade Handayani Capah, S.Kom, M.Kom

Anda mungkin juga menyukai