SlideShare a Scribd company logo
1 of 41
7 
Sinkronisasi 
Edi Ismanto,S.T,M.Kom 
Mata Kuliah Sistem Operasi
2 
Proses Sinkronisasi 
 Latar Belakang 
Masalah Critical Section 
 Sinkronisasi Hardware 
 Semaphores 
Monitors
3 
Overview (1) 
 Proteksi OS: 
 Independent process tidak terpengaruh atau dapat 
mempengaruhi eksekusi/data proses lain. 
 “Concurrent Process” 
 OS: mampu membuat banyak proses pada satu saat 
 Proses-proses bekerja-sama: sharing data, pembagian 
task, passing informasi dll 
 Proses => mempengaruhi proses lain dalam menggunakan 
data/informasi yang sengaja di-”share” 
 Cooperating process – sekumpulan proses yang 
dirancang untuk saling bekerja-sama untuk 
mengerjakan task tertentu.
4 
Overview (2) 
 Keuntungan kerja-sama antar proses 
 Information sharing: file, DB => digunakan bersama 
 Computation speed-up: parallel proses 
 Modularity: aplikasi besar => dipartisi dalam banyak 
proses. 
 Convenience: kumpulan proses => tipikal lingkungan kerja. 
 “Cooperating Process” 
 Bagaimana koordinasi antar proses? Akses/Update data 
 Tujuan program/task: integritas, konsistensi data dapat 
dijamin
5 
Latar Belakang 
 Menjamin konsistensi data: 
 Program/task-task dapat menghasilkan operasi yang benar 
setiap waktu 
 Deterministik: untuk input yang sama hasil harus sama 
(sesuai dengan logika/algroitma program). 
 Contoh: Producer – Consumer 
 Dua proses: producer => menghasilkan informasi; 
consumer => menggunakan informasi 
 Sharing informasi: buffer => tempat penyimpanan data 
 unbounded-buffer, penempatan tidak pada limit praktis dari 
ukuran buffer 
 bounded-buffer diasmumsikan terdapat ukuran buffer yang 
tetap
6 
Bounded Buffer (1) 
 Implementasi buffer: 
 IPC: komunikasi antar proses melalui messages 
membaca/menulis buffer 
 Shared memory: programmer secara eksplisit melakukan 
“deklarasi” data yang dapat diakses secara bersama. 
 Buffer dengan ukuran n => mampu menampung n data 
 Producer mengisi data buffer => increment “counter” 
(jumlah data) 
 Consumer mengambil data buffer => decrement “counter” 
 Buffer, “counter” => shared data (update oleh 2 proses)
7 
Bounded Buffer (2) 
 Shared data type item = … ; 
var buffer array 
in, out: 0..n-1; 
counter: 0..n; 
in, out, counter := 0; 
 Producer process 
repeat 
…produce an item in nextp 
…w 
hile counter = n do no-op; 
buffer [in] := nextp; 
in := in + 1 mod n; 
counter := counter +1; 
until false;
8 
Bounded Buffer (3) 
 Consumer process 
repeat 
while counter = 0 do no-op; 
nextc := buffer [out]; 
out := out + 1 mod n; 
counter := counter – 1; 
… 
consume the item in nextc 
… 
until false;
9 
Bounded Buffer (4) 
 Apakah terdapat jaminan operasi akan benar jika 
berjalan concurrent? 
 Misalkan: counter = 5 
 Producer: counter = counter + 1; 
 Consumer: counter = counter - 1; 
 Nilai akhir dari counter? 
 Operasi concurrent P & C => 
 Operasi dari high level language => sekumpulan instruksi 
mesin: “increment counter” 
Load Reg1, Counter 
Add Reg1, 1 
Store Counter, Reg1
10 
Bounded Buffer (5) 
 “decrement counter” 
Load Reg2, Counter 
Subtract Reg2, 1 
Store Counter, Reg2 
 Eksekusi P & C tergantung scheduler (dapat 
gantian) 
 T0: Producer : Load Reg1, Counter (Reg1 = 5) 
 T1: Producer : Add Reg1, 1 (Reg1 = 6) 
 T2: Consumer: Loag Reg2, Counter (Reg2 = 5) 
 T3: Consumer: Subtract Reg1, 1 (Reg2 = 4) 
 T4: Producer: Store Counter, Reg1 (Counter = 6) 
 T5: Consumer: Store Counter, Reg2 (Counter = 4)
11 
Race Condition 
 Concurrent C & P 
 Shared data “counter” dapat berakhir dengan nilai: 4, atau 
5, atau 6 
 Hasilnya dapat salah dan tidak konsisten 
 Race Condition: 
 Keadaan dimana lebih dari satu proses meng-update data 
secara “concurrent” dan hasilnya sangat bergantung dari 
urutan proses mendapat jatah CPU (run) 
 Hasilnya tidak menentu dan tidak selalu benar 
 Mencegah race condition: sinkronisasi proses dalam 
meng-update shared data
12 
Sinkronisasi 
 Sinkronisasi: 
 Koordinasi akses ke shared data, misalkan hanya 
satu proses yang dapat menggunakah shared var. 
 Contoh operasi terhadap var. “counter” harus 
dijamin di-eksekusi dalam satu kesatuan (atomik) : 
 counter := counter + 1; 
 counter := counter - 1; 
 Sinkronisasi merupakan “issue” penting dalam 
rancangan/implementasi OS (shared resources, 
data, dan multitasking).
13 
Masalah Critical Section 
 n proses mencoba menggunakan shared data bersamaan 
 Setiap proses mempunyai “code” yang mengakses/ 
manipulasi shared data tersebut => “critical section” 
 Problem: Menjamin jika ada satu proses yang sedang 
 “eksekusi” pada bagian “critical section” tidak ada proses lain 
yang diperbolehkan masuk ke “code” critical section dari 
proses tersebut. 
 Structure of process Pi
14 
Solusi Masalah Critical Section 
 Ide : 
 Mencakup pemakaian secara “exclusive” dari shared variable 
tersebut 
 Menjamin proses lain dapat menggunakan shared variable 
tersebut 
 Solusi “critical section problem” harus memenuhi: 
1. Mutual Exclusion: Jika proses Pi sedang “eksekusi” pada 
bagian “critical section” (dari proses Pi) maka tidak ada proses 
proses lain dapat “eksekusi” pada bagian critical section dari 
proses-proses tersebut. 
2. Progress: Jika tidak ada proses sedang eksekusi pada critical 
section-nya dan jika terdapat lebih dari satu proses lain yang 
ingin masuk ke critical section, maka pemilihan siapa yang 
berhak masuk ke critical section tidak dapat ditunda tanpa 
terbatas.
15 
Solusi (cont.) 
3. Bounded Waiting: Terdapat batasan berapa lama suatu 
proses harus menunggu giliran untuk mengakses “critical 
section” – jika seandainya proses lain yang diberikan hak akses 
ke critical section. 
 Menjamin proses dapat mengakses ke “critical section” (tidak 
mengalami starvation: proses se-olah berhenti menunggu request 
akses ke critical section diperbolehkan). 
 Tidak ada asumsi mengenai kecepatan eksekusi proses proses n 
tersebut.
16 
Solusi Sederhana : Kasus 2 
proses 
 Hanya 2 proses 
 Struktur umum dari program code Pi dan Pj: 
 Software solution: merancang algoritma program untuk solusi 
critical section 
 Proses dapat mengunakan “common var.” untuk menyusun 
algoritma tsb.
17 
Algoritma 1 
 Shared variables: 
 int turn; 
initially turn = 0 
 turn - i Þ Pi dapat masuk ke criticalsection 
 Process Pi 
do {w 
hile (turn != i) ; 
critical section 
turn = j; 
reminder section 
} while (1); 
 Mutual exclusion terpenuhi, tetapi menentang progress
18 
Algoritma 2 
 Shared variables 
 boolean flag[2]; 
initially flag [0] = flag [1] = false. 
 flag [i] = true Þ Pi siap dimasukkan ke dalam critical 
section 
 Process Pi 
do { 
flag[i] := true; 
while (flag[j]) ; 
critical section 
flag [i] = false; 
remainder section 
} while (1); 
 Mutual exclusion terpenuhi tetapi progress belum 
terpenuhi.
19 
Algoritma 3 
 Kombinasi shared variables dari algoritma 1 and 2. 
 Process Pi 
do { 
flag [i]:= true; 
turn = j; 
while (flag [j] and turn = j) ; 
critical section 
flag [i] = false; 
remainder section 
} while (1); 
 Ketiga kebutuhan terpenuhi, solusi masalah critical 
section pada dua proses
20 
Algoritma Bakery 
Critical section untuk n proses 
 Sebelum proses akan masuk ke dalam “critical 
section”, maka proses harus mendapatkan 
“nomor” (tiket). 
 Proses dengan nomor terkecil berhak masuk ke 
critical section. 
 Jika proses Pi dan Pj menerima nomor yang sama, jika 
i < j, maka Pi dilayani pertama; jika tidak Pj dilayani 
pertama 
 Skema penomoran selalu dibuat secara berurutan, 
misalnya 1,2,3,3,3,3,4,5...
21 
Algoritma Bakery (2) 
 Notasi <º urutan lexicographical (ticket #, process 
id #) 
 (a,b) < c,d) jika a < c atau jika a = c and b < d 
 max (a0,…, an-1) dimana a adalah nomor, k, seperti 
pada k ³ ai untuk i - 0, 
…, n – 1 
 Shared data 
var choosing: array [0..n – 1] of boolean 
number: array [0..n – 1] of integer, 
 Initialized: choosing =: false ; number => 0
22 
Algoritma Bakery (3) 
do { 
choosing[i] = true; 
number[i] = max(number[0], number[1], …, number [n – 1]) 
+1; 
choosing[i] = false; 
for (j = 0; j < n; j++) { 
while (choosing[j]) ; 
while ((number[j] != 0) && (number[j,j] < number[i,i])) ; 
} 
critical section 
number[i] = 0; 
remainder section 
} while (1);
23 
Sinkronisasi Hardware 
 Memerlukan dukungan hardware (prosesor) 
 Dalam bentuk “instruction set” khusus: test-and-set 
 Menjamin operasi atomik (satu kesatuan): test nilai dan 
ubah nilai tersebu 
 Test-and-Set dapat dianalogikan dengan kode:
24 
Test-and-Set (mutual exclusion) 
Mutual exclusion dapat diterapkan: 
 Gunakan shared data, 
variabel: lock: boolean (initially false) 
 lock: menjaga critical section 
 Process Pi: 
do { 
while (TestAndSet(lock)) ; 
critical section 
lock = false; 
remainder section 
}
25 
Semaphore 
 Perangkat sinkronisasi yang tidak 
membutuhkan busy waiting 
 Semaphore S – integer variable 
 Dapat dijamin akses ke var. S oleh dua operasi 
atomik: 
 wait (S): while S ≤ 0 do no-op; 
S := S – 1; 
 signal (S): S := S + 1;
26 
Contoh : n proses 
 Shared variables 
 var mutex : semaphore 
 initially mutex = 1 
 Process Pi 
do { 
wait(mutex); 
critical section 
signal(mutex); 
remainder section 
} while (1);
27 
Implementasi Semaphore 
 Didefinisikan sebuah Semaphore dengan sebuah 
record 
typedef struct { 
int value; 
struct process *L; 
} semaphore; 
 Diasumsikan terdapat 2 operasi sederhana : 
 block menhambat proses yang akan masuk 
 wakeup(P) memulai eksekusi pada proses P yang di block
28 
Implementasi Semaphore (2) 
 Operasi Semaphore-nya menjadi : 
wait(S): 
S.value--; 
if (S.value < 0) { 
add this process to S.L; 
block; 
} 
signal(S): 
S.value++; 
if (S.value <= 0) { 
remove a process P from S.L; 
wakeup(P); 
}
29 
Masalah Klasik Sinkronisasi 
 Bounded-Buffer Problem 
 Readers and Writers Problem 
 Dining-Philosophers Problem
30 
Bounded-Buffer Problem 
 Shared data 
semaphore full, empty, mutex; 
Initially: 
full = 0, empty = n, mutex = 1
31 
Bounded-Buffer Problem : 
Producer-Consumer
32 
Readers-Writers Problem 
 Shared data 
semaphore mutex, wrt; 
Initially 
mutex = 1, wrt = 1, readcount = 0
33 
Readers-Writers Problem (2) 
 Writters Process 
wait(wrt); 
… 
writing is performed 
… 
signal(wrt); 
 Readers Process 
wait(mutex); 
readcount++; 
if (readcount == 1) 
wait(rt); 
signal(mutex); 
… 
reading is performed 
… 
wait(mutex); 
readcount--; 
if (readcount == 0) 
signal(wrt); 
signal(mutex):
34 
Dining-Philosophers Problem 
 Shared data 
semaphore chopstick[5]; 
Semua inisialisasi bernilai 1
35 
Dining-Philosophers Problem 
 Philosopher i: 
do { 
wait(chopstick[i]) 
wait(chopstick[(i+1) % 5]) 
… 
eat 
… 
signal(chopstick[i]); 
signal(chopstick[(i+1) % 5]); 
… 
think 
… 
} while (1);
36 
Solusi Tingkat Tinggi 
 Motif: 
 Operasi wait(S) dan signal(S) tersebar pada code program 
=> manipulasi langsung struktur data semaphore 
 Bagaimana jika terdapat bantuan dari lingkungan HLL 
(programming) untuk sinkronisasi ? 
 Pemrograman tingkat tinggi disediakan sintaks-sintaks 
khusus untuk menjamin sinkronisasi antar proses, thread 
 Misalnya: 
 Monitor & Condition 
 Conditional Critical Region
37 
Monitor 
 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
38 
Monitor (2)
39 
Monitor (3) 
 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
40 
Monitor (4) 
 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)
41 
Skema Monitor

More Related Content

What's hot

Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxYaya610291
 
dasar-dasar pemrograman
dasar-dasar pemrogramandasar-dasar pemrograman
dasar-dasar pemrogramanReza Optoriter
 
Bagan terstruktur
Bagan terstrukturBagan terstruktur
Bagan terstrukturiimpunya3
 
Mata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan KomputerMata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan KomputerBambang
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristikBaguss Chandrass
 
7 sort dan merge
7 sort dan merge7 sort dan merge
7 sort dan mergeRenol Doang
 
Organisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasiOrganisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasidaru2501
 
Deadlock pada sistem operasi
Deadlock pada sistem operasiDeadlock pada sistem operasi
Deadlock pada sistem operasiAyu Arri Andanni
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar KriptografiRoziq Bahtiar
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Tri Sugihartono
 
unit kontrol
unit kontrolunit kontrol
unit kontroldewi2093
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerAuliaa Oktarianii
 
Mp 4 mode-pengalamatan
Mp 4 mode-pengalamatanMp 4 mode-pengalamatan
Mp 4 mode-pengalamatanOlbers Letfaar
 
Testing&implementasi 3
Testing&implementasi 3Testing&implementasi 3
Testing&implementasi 3aiiniR
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
 

What's hot (20)

Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
 
dasar-dasar pemrograman
dasar-dasar pemrogramandasar-dasar pemrograman
dasar-dasar pemrograman
 
Bagan terstruktur
Bagan terstrukturBagan terstruktur
Bagan terstruktur
 
Mata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan KomputerMata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan Komputer
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
7 sort dan merge
7 sort dan merge7 sort dan merge
7 sort dan merge
 
Organisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasiOrganisasi Komputer- representasi informasi
Organisasi Komputer- representasi informasi
 
Deadlock pada sistem operasi
Deadlock pada sistem operasiDeadlock pada sistem operasi
Deadlock pada sistem operasi
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)
 
Deadlock
DeadlockDeadlock
Deadlock
 
unit kontrol
unit kontrolunit kontrol
unit kontrol
 
Kinerja io bus
Kinerja io busKinerja io bus
Kinerja io bus
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 
Mp 4 mode-pengalamatan
Mp 4 mode-pengalamatanMp 4 mode-pengalamatan
Mp 4 mode-pengalamatan
 
Testing&implementasi 3
Testing&implementasi 3Testing&implementasi 3
Testing&implementasi 3
 
Penjadualan CPU
Penjadualan CPUPenjadualan CPU
Penjadualan CPU
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
 

Similar to Sinkronisasi

Ferli Apriadi - Sinkronisasi
Ferli Apriadi - SinkronisasiFerli Apriadi - Sinkronisasi
Ferli Apriadi - Sinkronisasibelajarkomputer
 
Reni Seftiani - Sinkronisasi Proses Sistem Operasi
Reni Seftiani -  Sinkronisasi Proses Sistem OperasiReni Seftiani -  Sinkronisasi Proses Sistem Operasi
Reni Seftiani - Sinkronisasi Proses Sistem Operasibelajarkomputer
 
Oktaviani Tri Andini - Sinkronisasi Proses
Oktaviani Tri Andini - Sinkronisasi ProsesOktaviani Tri Andini - Sinkronisasi Proses
Oktaviani Tri Andini - Sinkronisasi Prosesbelajarkomputer
 
5.sinkronisasi proses
5.sinkronisasi proses5.sinkronisasi proses
5.sinkronisasi prosesAditya Asmara
 
Sinkronisasi Proses
Sinkronisasi ProsesSinkronisasi Proses
Sinkronisasi ProsesDEDE IRYAWAN
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasieddie Ismantoe
 
Muhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem OperasiMuhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem Operasibelajarkomputer
 
Novita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem OperasiNovita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem Operasibelajarkomputer
 
referensi materi Manajemen Proses - Sistem Operasi 1
referensi materi Manajemen Proses - Sistem Operasi 1referensi materi Manajemen Proses - Sistem Operasi 1
referensi materi Manajemen Proses - Sistem Operasi 1DedeAlamsyah2
 
Bernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesBernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesbelajarkomputer
 
Nurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi ProsesNurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi Prosesbelajarkomputer
 
Sistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSamuel Bosawer
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algoSTMIK AKAKOM
 
Khoirul Mar’ati - Proses pada sistem operasi
Khoirul Mar’ati - Proses pada sistem operasiKhoirul Mar’ati - Proses pada sistem operasi
Khoirul Mar’ati - Proses pada sistem operasibelajarkomputer
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen prosesHz Tena
 

Similar to Sinkronisasi (20)

Ferli Apriadi - Sinkronisasi
Ferli Apriadi - SinkronisasiFerli Apriadi - Sinkronisasi
Ferli Apriadi - Sinkronisasi
 
So1
So1So1
So1
 
Reni Seftiani - Sinkronisasi Proses Sistem Operasi
Reni Seftiani -  Sinkronisasi Proses Sistem OperasiReni Seftiani -  Sinkronisasi Proses Sistem Operasi
Reni Seftiani - Sinkronisasi Proses Sistem Operasi
 
Oktaviani Tri Andini - Sinkronisasi Proses
Oktaviani Tri Andini - Sinkronisasi ProsesOktaviani Tri Andini - Sinkronisasi Proses
Oktaviani Tri Andini - Sinkronisasi Proses
 
5.sinkronisasi proses
5.sinkronisasi proses5.sinkronisasi proses
5.sinkronisasi proses
 
Sinkronisasi Proses
Sinkronisasi ProsesSinkronisasi Proses
Sinkronisasi Proses
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasi
 
Muhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem OperasiMuhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem Operasi
 
Novita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem OperasiNovita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem Operasi
 
referensi materi Manajemen Proses - Sistem Operasi 1
referensi materi Manajemen Proses - Sistem Operasi 1referensi materi Manajemen Proses - Sistem Operasi 1
referensi materi Manajemen Proses - Sistem Operasi 1
 
Bernis Sagita - Manajemen proses
Bernis Sagita - Manajemen prosesBernis Sagita - Manajemen proses
Bernis Sagita - Manajemen proses
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Nurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi ProsesNurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi Proses
 
Os06
Os06Os06
Os06
 
Sistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlock
 
sp243-061043-959-1.ppt
sp243-061043-959-1.pptsp243-061043-959-1.ppt
sp243-061043-959-1.ppt
 
Modul vii dan viii algo
Modul vii dan viii algoModul vii dan viii algo
Modul vii dan viii algo
 
Khoirul Mar’ati - Proses pada sistem operasi
Khoirul Mar’ati - Proses pada sistem operasiKhoirul Mar’ati - Proses pada sistem operasi
Khoirul Mar’ati - Proses pada sistem operasi
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen proses
 
Os ppt.6
Os ppt.6Os ppt.6
Os ppt.6
 

More from eddie Ismantoe

Object Oriented Programming (OOP) With Java Programming
Object Oriented Programming (OOP) With Java ProgrammingObject Oriented Programming (OOP) With Java Programming
Object Oriented Programming (OOP) With Java Programmingeddie Ismantoe
 
Database with SQL Server
Database with SQL ServerDatabase with SQL Server
Database with SQL Servereddie Ismantoe
 
Modul Web Programming dengan PHP dan MySQL
Modul Web Programming dengan PHP dan MySQLModul Web Programming dengan PHP dan MySQL
Modul Web Programming dengan PHP dan MySQLeddie Ismantoe
 
Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...
Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...
Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...eddie Ismantoe
 
contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...
contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...
contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...eddie Ismantoe
 
Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...
Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...
Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...eddie Ismantoe
 
Interface Perancangan Website Komisi Informasi Provinsi Riau By Edi Ismanto
Interface Perancangan Website Komisi Informasi Provinsi Riau By Edi IsmantoInterface Perancangan Website Komisi Informasi Provinsi Riau By Edi Ismanto
Interface Perancangan Website Komisi Informasi Provinsi Riau By Edi Ismantoeddie Ismantoe
 
Interface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi Ismanto
Interface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi IsmantoInterface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi Ismanto
Interface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi Ismantoeddie Ismantoe
 
Contoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi Ismanto
Contoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi IsmantoContoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi Ismanto
Contoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi Ismantoeddie Ismantoe
 
Pratikum Sistem Operasi DOS pada Windows
Pratikum Sistem Operasi DOS pada WindowsPratikum Sistem Operasi DOS pada Windows
Pratikum Sistem Operasi DOS pada Windowseddie Ismantoe
 
Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasieddie Ismantoe
 
Struktur Sistem Operasi
Struktur Sistem OperasiStruktur Sistem Operasi
Struktur Sistem Operasieddie Ismantoe
 
Struktur Sistem Komputer
Struktur Sistem KomputerStruktur Sistem Komputer
Struktur Sistem Komputereddie Ismantoe
 
Pengantar Sistem Operasi
Pengantar Sistem OperasiPengantar Sistem Operasi
Pengantar Sistem Operasieddie Ismantoe
 
Introduction Operating System
Introduction Operating SystemIntroduction Operating System
Introduction Operating Systemeddie Ismantoe
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010eddie Ismantoe
 

More from eddie Ismantoe (19)

Object Oriented Programming (OOP) With Java Programming
Object Oriented Programming (OOP) With Java ProgrammingObject Oriented Programming (OOP) With Java Programming
Object Oriented Programming (OOP) With Java Programming
 
Database with SQL Server
Database with SQL ServerDatabase with SQL Server
Database with SQL Server
 
Modul Web Programming dengan PHP dan MySQL
Modul Web Programming dengan PHP dan MySQLModul Web Programming dengan PHP dan MySQL
Modul Web Programming dengan PHP dan MySQL
 
Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...
Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...
Sistem Pendukung Keputusan Penerimaan Karyawan Dengan Metode Simple Additive ...
 
contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...
contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...
contoh portfolio project aplikasi sistem informasi publik (SIP) untuk badan p...
 
Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...
Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...
Interface Website Dinas Komunikasi dan Informatika Provinsi Riau dengan CSS B...
 
Interface Perancangan Website Komisi Informasi Provinsi Riau By Edi Ismanto
Interface Perancangan Website Komisi Informasi Provinsi Riau By Edi IsmantoInterface Perancangan Website Komisi Informasi Provinsi Riau By Edi Ismanto
Interface Perancangan Website Komisi Informasi Provinsi Riau By Edi Ismanto
 
Interface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi Ismanto
Interface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi IsmantoInterface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi Ismanto
Interface Perancangan Website Dinas Tanama Pangan Provinsi Riau By Edi Ismanto
 
Contoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi Ismanto
Contoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi IsmantoContoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi Ismanto
Contoh Proposal Portofolio Penawaran Aplikasi e-PublicInfo by Edi Ismanto
 
Pratikum Sistem Operasi DOS pada Windows
Pratikum Sistem Operasi DOS pada WindowsPratikum Sistem Operasi DOS pada Windows
Pratikum Sistem Operasi DOS pada Windows
 
Sistem File
Sistem FileSistem File
Sistem File
 
Virtual Memory
Virtual MemoryVirtual Memory
Virtual Memory
 
Memory
MemoryMemory
Memory
 
Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasi
 
Struktur Sistem Operasi
Struktur Sistem OperasiStruktur Sistem Operasi
Struktur Sistem Operasi
 
Struktur Sistem Komputer
Struktur Sistem KomputerStruktur Sistem Komputer
Struktur Sistem Komputer
 
Pengantar Sistem Operasi
Pengantar Sistem OperasiPengantar Sistem Operasi
Pengantar Sistem Operasi
 
Introduction Operating System
Introduction Operating SystemIntroduction Operating System
Introduction Operating System
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
 

Recently uploaded

Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxsdn3jatiblora
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptxHendryJulistiyanto
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxWirionSembiring2
 
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxTugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxmawan5982
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxnerow98
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)3HerisaSintia
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptxMiftahunnajahTVIBS
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
Lembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxLembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxbkandrisaputra
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptxGiftaJewela
 

Recently uploaded (20)

Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptx
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx442539315-ppt-modul-6-pend-seni-pptx.pptx
442539315-ppt-modul-6-pend-seni-pptx.pptx
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
 
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxTugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
Lembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxLembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocx
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
 

Sinkronisasi

  • 1. 7 Sinkronisasi Edi Ismanto,S.T,M.Kom Mata Kuliah Sistem Operasi
  • 2. 2 Proses Sinkronisasi  Latar Belakang Masalah Critical Section  Sinkronisasi Hardware  Semaphores Monitors
  • 3. 3 Overview (1)  Proteksi OS:  Independent process tidak terpengaruh atau dapat mempengaruhi eksekusi/data proses lain.  “Concurrent Process”  OS: mampu membuat banyak proses pada satu saat  Proses-proses bekerja-sama: sharing data, pembagian task, passing informasi dll  Proses => mempengaruhi proses lain dalam menggunakan data/informasi yang sengaja di-”share”  Cooperating process – sekumpulan proses yang dirancang untuk saling bekerja-sama untuk mengerjakan task tertentu.
  • 4. 4 Overview (2)  Keuntungan kerja-sama antar proses  Information sharing: file, DB => digunakan bersama  Computation speed-up: parallel proses  Modularity: aplikasi besar => dipartisi dalam banyak proses.  Convenience: kumpulan proses => tipikal lingkungan kerja.  “Cooperating Process”  Bagaimana koordinasi antar proses? Akses/Update data  Tujuan program/task: integritas, konsistensi data dapat dijamin
  • 5. 5 Latar Belakang  Menjamin konsistensi data:  Program/task-task dapat menghasilkan operasi yang benar setiap waktu  Deterministik: untuk input yang sama hasil harus sama (sesuai dengan logika/algroitma program).  Contoh: Producer – Consumer  Dua proses: producer => menghasilkan informasi; consumer => menggunakan informasi  Sharing informasi: buffer => tempat penyimpanan data  unbounded-buffer, penempatan tidak pada limit praktis dari ukuran buffer  bounded-buffer diasmumsikan terdapat ukuran buffer yang tetap
  • 6. 6 Bounded Buffer (1)  Implementasi buffer:  IPC: komunikasi antar proses melalui messages membaca/menulis buffer  Shared memory: programmer secara eksplisit melakukan “deklarasi” data yang dapat diakses secara bersama.  Buffer dengan ukuran n => mampu menampung n data  Producer mengisi data buffer => increment “counter” (jumlah data)  Consumer mengambil data buffer => decrement “counter”  Buffer, “counter” => shared data (update oleh 2 proses)
  • 7. 7 Bounded Buffer (2)  Shared data type item = … ; var buffer array in, out: 0..n-1; counter: 0..n; in, out, counter := 0;  Producer process repeat …produce an item in nextp …w hile counter = n do no-op; buffer [in] := nextp; in := in + 1 mod n; counter := counter +1; until false;
  • 8. 8 Bounded Buffer (3)  Consumer process repeat while counter = 0 do no-op; nextc := buffer [out]; out := out + 1 mod n; counter := counter – 1; … consume the item in nextc … until false;
  • 9. 9 Bounded Buffer (4)  Apakah terdapat jaminan operasi akan benar jika berjalan concurrent?  Misalkan: counter = 5  Producer: counter = counter + 1;  Consumer: counter = counter - 1;  Nilai akhir dari counter?  Operasi concurrent P & C =>  Operasi dari high level language => sekumpulan instruksi mesin: “increment counter” Load Reg1, Counter Add Reg1, 1 Store Counter, Reg1
  • 10. 10 Bounded Buffer (5)  “decrement counter” Load Reg2, Counter Subtract Reg2, 1 Store Counter, Reg2  Eksekusi P & C tergantung scheduler (dapat gantian)  T0: Producer : Load Reg1, Counter (Reg1 = 5)  T1: Producer : Add Reg1, 1 (Reg1 = 6)  T2: Consumer: Loag Reg2, Counter (Reg2 = 5)  T3: Consumer: Subtract Reg1, 1 (Reg2 = 4)  T4: Producer: Store Counter, Reg1 (Counter = 6)  T5: Consumer: Store Counter, Reg2 (Counter = 4)
  • 11. 11 Race Condition  Concurrent C & P  Shared data “counter” dapat berakhir dengan nilai: 4, atau 5, atau 6  Hasilnya dapat salah dan tidak konsisten  Race Condition:  Keadaan dimana lebih dari satu proses meng-update data secara “concurrent” dan hasilnya sangat bergantung dari urutan proses mendapat jatah CPU (run)  Hasilnya tidak menentu dan tidak selalu benar  Mencegah race condition: sinkronisasi proses dalam meng-update shared data
  • 12. 12 Sinkronisasi  Sinkronisasi:  Koordinasi akses ke shared data, misalkan hanya satu proses yang dapat menggunakah shared var.  Contoh operasi terhadap var. “counter” harus dijamin di-eksekusi dalam satu kesatuan (atomik) :  counter := counter + 1;  counter := counter - 1;  Sinkronisasi merupakan “issue” penting dalam rancangan/implementasi OS (shared resources, data, dan multitasking).
  • 13. 13 Masalah Critical Section  n proses mencoba menggunakan shared data bersamaan  Setiap proses mempunyai “code” yang mengakses/ manipulasi shared data tersebut => “critical section”  Problem: Menjamin jika ada satu proses yang sedang  “eksekusi” pada bagian “critical section” tidak ada proses lain yang diperbolehkan masuk ke “code” critical section dari proses tersebut.  Structure of process Pi
  • 14. 14 Solusi Masalah Critical Section  Ide :  Mencakup pemakaian secara “exclusive” dari shared variable tersebut  Menjamin proses lain dapat menggunakan shared variable tersebut  Solusi “critical section problem” harus memenuhi: 1. Mutual Exclusion: Jika proses Pi sedang “eksekusi” pada bagian “critical section” (dari proses Pi) maka tidak ada proses proses lain dapat “eksekusi” pada bagian critical section dari proses-proses tersebut. 2. Progress: Jika tidak ada proses sedang eksekusi pada critical section-nya dan jika terdapat lebih dari satu proses lain yang ingin masuk ke critical section, maka pemilihan siapa yang berhak masuk ke critical section tidak dapat ditunda tanpa terbatas.
  • 15. 15 Solusi (cont.) 3. Bounded Waiting: Terdapat batasan berapa lama suatu proses harus menunggu giliran untuk mengakses “critical section” – jika seandainya proses lain yang diberikan hak akses ke critical section.  Menjamin proses dapat mengakses ke “critical section” (tidak mengalami starvation: proses se-olah berhenti menunggu request akses ke critical section diperbolehkan).  Tidak ada asumsi mengenai kecepatan eksekusi proses proses n tersebut.
  • 16. 16 Solusi Sederhana : Kasus 2 proses  Hanya 2 proses  Struktur umum dari program code Pi dan Pj:  Software solution: merancang algoritma program untuk solusi critical section  Proses dapat mengunakan “common var.” untuk menyusun algoritma tsb.
  • 17. 17 Algoritma 1  Shared variables:  int turn; initially turn = 0  turn - i Þ Pi dapat masuk ke criticalsection  Process Pi do {w hile (turn != i) ; critical section turn = j; reminder section } while (1);  Mutual exclusion terpenuhi, tetapi menentang progress
  • 18. 18 Algoritma 2  Shared variables  boolean flag[2]; initially flag [0] = flag [1] = false.  flag [i] = true Þ Pi siap dimasukkan ke dalam critical section  Process Pi do { flag[i] := true; while (flag[j]) ; critical section flag [i] = false; remainder section } while (1);  Mutual exclusion terpenuhi tetapi progress belum terpenuhi.
  • 19. 19 Algoritma 3  Kombinasi shared variables dari algoritma 1 and 2.  Process Pi do { flag [i]:= true; turn = j; while (flag [j] and turn = j) ; critical section flag [i] = false; remainder section } while (1);  Ketiga kebutuhan terpenuhi, solusi masalah critical section pada dua proses
  • 20. 20 Algoritma Bakery Critical section untuk n proses  Sebelum proses akan masuk ke dalam “critical section”, maka proses harus mendapatkan “nomor” (tiket).  Proses dengan nomor terkecil berhak masuk ke critical section.  Jika proses Pi dan Pj menerima nomor yang sama, jika i < j, maka Pi dilayani pertama; jika tidak Pj dilayani pertama  Skema penomoran selalu dibuat secara berurutan, misalnya 1,2,3,3,3,3,4,5...
  • 21. 21 Algoritma Bakery (2)  Notasi <º urutan lexicographical (ticket #, process id #)  (a,b) < c,d) jika a < c atau jika a = c and b < d  max (a0,…, an-1) dimana a adalah nomor, k, seperti pada k ³ ai untuk i - 0, …, n – 1  Shared data var choosing: array [0..n – 1] of boolean number: array [0..n – 1] of integer,  Initialized: choosing =: false ; number => 0
  • 22. 22 Algoritma Bakery (3) do { choosing[i] = true; number[i] = max(number[0], number[1], …, number [n – 1]) +1; choosing[i] = false; for (j = 0; j < n; j++) { while (choosing[j]) ; while ((number[j] != 0) && (number[j,j] < number[i,i])) ; } critical section number[i] = 0; remainder section } while (1);
  • 23. 23 Sinkronisasi Hardware  Memerlukan dukungan hardware (prosesor)  Dalam bentuk “instruction set” khusus: test-and-set  Menjamin operasi atomik (satu kesatuan): test nilai dan ubah nilai tersebu  Test-and-Set dapat dianalogikan dengan kode:
  • 24. 24 Test-and-Set (mutual exclusion) Mutual exclusion dapat diterapkan:  Gunakan shared data, variabel: lock: boolean (initially false)  lock: menjaga critical section  Process Pi: do { while (TestAndSet(lock)) ; critical section lock = false; remainder section }
  • 25. 25 Semaphore  Perangkat sinkronisasi yang tidak membutuhkan busy waiting  Semaphore S – integer variable  Dapat dijamin akses ke var. S oleh dua operasi atomik:  wait (S): while S ≤ 0 do no-op; S := S – 1;  signal (S): S := S + 1;
  • 26. 26 Contoh : n proses  Shared variables  var mutex : semaphore  initially mutex = 1  Process Pi do { wait(mutex); critical section signal(mutex); remainder section } while (1);
  • 27. 27 Implementasi Semaphore  Didefinisikan sebuah Semaphore dengan sebuah record typedef struct { int value; struct process *L; } semaphore;  Diasumsikan terdapat 2 operasi sederhana :  block menhambat proses yang akan masuk  wakeup(P) memulai eksekusi pada proses P yang di block
  • 28. 28 Implementasi Semaphore (2)  Operasi Semaphore-nya menjadi : wait(S): S.value--; if (S.value < 0) { add this process to S.L; block; } signal(S): S.value++; if (S.value <= 0) { remove a process P from S.L; wakeup(P); }
  • 29. 29 Masalah Klasik Sinkronisasi  Bounded-Buffer Problem  Readers and Writers Problem  Dining-Philosophers Problem
  • 30. 30 Bounded-Buffer Problem  Shared data semaphore full, empty, mutex; Initially: full = 0, empty = n, mutex = 1
  • 31. 31 Bounded-Buffer Problem : Producer-Consumer
  • 32. 32 Readers-Writers Problem  Shared data semaphore mutex, wrt; Initially mutex = 1, wrt = 1, readcount = 0
  • 33. 33 Readers-Writers Problem (2)  Writters Process wait(wrt); … writing is performed … signal(wrt);  Readers Process wait(mutex); readcount++; if (readcount == 1) wait(rt); signal(mutex); … reading is performed … wait(mutex); readcount--; if (readcount == 0) signal(wrt); signal(mutex):
  • 34. 34 Dining-Philosophers Problem  Shared data semaphore chopstick[5]; Semua inisialisasi bernilai 1
  • 35. 35 Dining-Philosophers Problem  Philosopher i: do { wait(chopstick[i]) wait(chopstick[(i+1) % 5]) … eat … signal(chopstick[i]); signal(chopstick[(i+1) % 5]); … think … } while (1);
  • 36. 36 Solusi Tingkat Tinggi  Motif:  Operasi wait(S) dan signal(S) tersebar pada code program => manipulasi langsung struktur data semaphore  Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk sinkronisasi ?  Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin sinkronisasi antar proses, thread  Misalnya:  Monitor & Condition  Conditional Critical Region
  • 37. 37 Monitor  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
  • 39. 39 Monitor (3)  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
  • 40. 40 Monitor (4)  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)