Anda di halaman 1dari 17

MAKALAH SISTEM OPERASI

SINKRONISASI PROSES

Disusun Oleh :

Nama : Muhammad Alif alfajriqo

NIM : 062030701684

Kelas : 3CE

Dosen Pengampu : Mustaziri S.T.,M.Kom

POLITEKNIK NEGERI SRIWIJAYA


JURUSAN KOMPUTER
PROGRAM STUDI D3 KOMPUTER
TAHUN 2021-2022

i
KATA PENGANTAR

Puji syukur kehadirat ALLAH SWT yang telah memberikan rahmat dan hidayah-
Nya. Dengan rahmat dan hidayah-Nya, Alhamdulillah makalah ini dapat terselesaikan
dangan 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.

Saya 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.

Palembang,25 Januari 2022

Penulis
Ersa Monica Sari

ii
DAFTAR ISI

KATA PENGANTAR............................................................................................................................i

DAFTAR ISI...........................................................................................................................................ii

BAB I PENDAHULUAN........................................................................................................................1

1.1 Latar Belakang.....................................................................................................................1


1.2 Rumusan Masalah................................................................................................................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
2.4 Contoh kasus pada sinkronisasi............................................................................................8

PENUTUP.............................................................................................................................................13

3.1 Kesimpulan............................................................................................................................13

DAFTARPUSTAKA……………………………………………………………………………………………………………………….14

iii
BAB I

PENDAHULUAN

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.

1
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

2
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:

3
 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:

Entry Section: 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.

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.

4
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.


Operasi ini menurunkan nilai semaphore,jika nilai semaphore menjadi non-positif maka
proses yang mengeksekusinya diblocked.

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

5
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.

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

b. Problem Reades and Writer.

6
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.

c. Problem Dining Philosophers.


Masalah ini pertama ,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 mkan . Semua filusuf
berada di sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf
pada sebuah piring berisi mie dan diantara dua piring yang bersebelahan terdapat
sumpit

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.

7
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,

2.4 CONTOH KASUS PADA SINKRONISASI

8
 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.

9
 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

10
· 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

11
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)

12
PENUTUP

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 (mutual exclusion) 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.

13
DAFTAR PUSTAKA

Watrianthos, R., & Purnama, I. (2018). Buku Ajar Sistem Operasi. Uwais

Inspirasi Indonesia. http://informaraka.blogspot.com/2016/02/makalah-sistem-

operasi.html

Pangera, A. A., & Ariyus, D. (2005). Sistem Operasi. Penerbit Andi.

Iqbal, Muhammad. "Sinkronisasi dan Deadlock Sistem Operasi."

14

Anda mungkin juga menyukai