so_kelompok_iv_ sinkronisasi
TRANSCRIPT
SINKRONISASI PROSES-PROSES
Dipresentasikan Oleh Kelompok IV
1 DANANG NURDIANSYAH (10309040PPA03399)2 MURYANTO (10309060PPA03410)3 KANDI HARIANTO (10309044PPA03401)4 I MADE PARTHA WIGUNA (10309392PPA03421)
LATAR BELAKANG
bull Adanya Proses-proses konkuren ( concurrent process )ndash Proses yang bersifat independen
independence processndash Proses yang bersifat kooperatif cooperating
process
bull Proses konkuren yang kooperatif saling berkomunikasi 1 dengan yang lainndash Memungkinkan sharing data
Race Condition
bull Adanya akses data secara bersama oleh bebera proses memungkinkan data tidak konsisten data inconsistence
bull Perlunya mekanisme untuk menjamin eksekusi yang berurutan pada proses-proses yang bekerjasama
Pemakaian Bounded Buffer
bull Producer akan menambahmemberi data
bull Consumer akan menerimamenggunakan data
bull Buffer sebagai penampungan data
Shared data
define BUFFER_SIZE 10Typedef struct hellip itemItem buffer BUFFER_SIZEInt in=0Int out=0Int counter=0
Producer
Producer while (true)
produce an item and put in nextProduced
while (counter == BUFFER_SIZE) do nothing
buffer [in] = nextProduced
in = (in + 1) BUFFER_SIZE
counter++
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
LATAR BELAKANG
bull Adanya Proses-proses konkuren ( concurrent process )ndash Proses yang bersifat independen
independence processndash Proses yang bersifat kooperatif cooperating
process
bull Proses konkuren yang kooperatif saling berkomunikasi 1 dengan yang lainndash Memungkinkan sharing data
Race Condition
bull Adanya akses data secara bersama oleh bebera proses memungkinkan data tidak konsisten data inconsistence
bull Perlunya mekanisme untuk menjamin eksekusi yang berurutan pada proses-proses yang bekerjasama
Pemakaian Bounded Buffer
bull Producer akan menambahmemberi data
bull Consumer akan menerimamenggunakan data
bull Buffer sebagai penampungan data
Shared data
define BUFFER_SIZE 10Typedef struct hellip itemItem buffer BUFFER_SIZEInt in=0Int out=0Int counter=0
Producer
Producer while (true)
produce an item and put in nextProduced
while (counter == BUFFER_SIZE) do nothing
buffer [in] = nextProduced
in = (in + 1) BUFFER_SIZE
counter++
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Race Condition
bull Adanya akses data secara bersama oleh bebera proses memungkinkan data tidak konsisten data inconsistence
bull Perlunya mekanisme untuk menjamin eksekusi yang berurutan pada proses-proses yang bekerjasama
Pemakaian Bounded Buffer
bull Producer akan menambahmemberi data
bull Consumer akan menerimamenggunakan data
bull Buffer sebagai penampungan data
Shared data
define BUFFER_SIZE 10Typedef struct hellip itemItem buffer BUFFER_SIZEInt in=0Int out=0Int counter=0
Producer
Producer while (true)
produce an item and put in nextProduced
while (counter == BUFFER_SIZE) do nothing
buffer [in] = nextProduced
in = (in + 1) BUFFER_SIZE
counter++
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Pemakaian Bounded Buffer
bull Producer akan menambahmemberi data
bull Consumer akan menerimamenggunakan data
bull Buffer sebagai penampungan data
Shared data
define BUFFER_SIZE 10Typedef struct hellip itemItem buffer BUFFER_SIZEInt in=0Int out=0Int counter=0
Producer
Producer while (true)
produce an item and put in nextProduced
while (counter == BUFFER_SIZE) do nothing
buffer [in] = nextProduced
in = (in + 1) BUFFER_SIZE
counter++
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Shared data
define BUFFER_SIZE 10Typedef struct hellip itemItem buffer BUFFER_SIZEInt in=0Int out=0Int counter=0
Producer
Producer while (true)
produce an item and put in nextProduced
while (counter == BUFFER_SIZE) do nothing
buffer [in] = nextProduced
in = (in + 1) BUFFER_SIZE
counter++
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Producer
Producer while (true)
produce an item and put in nextProduced
while (counter == BUFFER_SIZE) do nothing
buffer [in] = nextProduced
in = (in + 1) BUFFER_SIZE
counter++
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Consumer
Consumerwhile (1)
while (counter == 0) do nothingnextConsumed = buffer[out]out = (out + 1) BUFFER_SIZEcounter-- consume the item in nextConsumed
Peryataan counter++ dan counter-- harus dilakukan secara atomik ( seluruh peryataan sampai selesai tanpa interupsi)
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
bull Pernyataan counter++ dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register1 = counterndash register1 = register1 + 1ndash counter = register1
bull Pernyataan counter-- dapat diimplementasikan dalam bahasa mesin sebagai berikutndash register2 = counterndash register2 = register2 -1ndash counter = register2
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Misal counter=5
bull producer register1 = counter register1 = 5bull producer register1 = register1 + 1 register1 = 6 bull consumer register2 = counter register2 = 5 bull consumer register2 = register2 -1 register2 = 4 bull producer counter = register1 counter = 6 bull consumer counter = register2 counter = 4
Nilai counter menjadi tidak konsisten
ldquo Untuk mencegah race condition maka proses yang konkuren harus di sinkronisasi rdquo
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Masalah Critical Section
bull Banyak proses kemungkinan akses data yang sama
bull Proses kemungkinan memiliki kode segmen dimana jika kode segmen tersebut dieksekusi maka proses-proses tersebut dapat saling mengubah variabel mengupdate tabel menulis ke dalam file dll
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Solusi Critical Sectionndash Setiap proses harus meminta ijin jika akan mengakses critical
section-nya ndash Akhir dari critical section diikuti oleh exit sectionndash Kode pengingat terletak pada remainder sectionndash Skema struktur proses
do
entry sectioncritical section
exit sectionremainder section
while(1)
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Syarat Solusi Critical Section
bull Mutual Exclusionndash Jika sebuah proses sedang berada di critical section tidak boleh
ada proses lain yang berada di critical section nya
bull Progressndash Jika tidak ada proses di critical section dan ada beberapa
proses yang ingin masuk ke critical section maka hanya proses yang berada di entry critical section yang boleh berpartisipasi untuk memasuki critical section
bull Bounded Waitingndash batasan waktu tunggu sebuah proses untuk masuk ke critical
section setelah mereka meminta ijin untuk masuk dan sebelum permintaan tersebut terpenuhi
Asumsi setiap proses dieksekusi dengan kecepatan bukan nol
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Gambaran Proses Pada Kernel Mode
Kernel code memanggil fungsi penjadwalan sendiri setiap waktu banyak proses yang berjalan dalam kernel modeakibatnya sangat mungkin untuk terjadi race conditioncontoh dalam kernel mode terdapat struktur data yang menyimpan list file yang terbuka list tersebut termodofikasi bila ada data file yang baru dibuka atau ditutupdengan menambah atau menghapus dari list race condition timbul ketika ada dua file yang dibuka dan ditutup bersamaan untuk mengatasi hal tersebut kernel mempunyai metode
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Pendekatan Umum Menyikapi Critical Section Sistem Operasi
a Preemptive kernel pada mode ini proses yang sedang dieksekusi dalam kernel diizinkan untuk diinterupsi oleh proses lain yang memenuhi syarat akibatnya mode ini juga rentan terkena race condition Keuntungannya adalah mode ini amat efektif untuk digunakan dalam real time programming namun mode ini lebih sulit diimplementasikan dari pada mode non preemptive kernel Mode ini diimplementasikan oleh Linux versi 26 dan versi komersial linux lainnya
b non preemptive kernel mode yang tidak memperbolehkan suatu proses yang berjalan dalam kernel mode diinterupsi oleh proses lain proses lain hanya bisa dijalankan setelah proses yang ada dalam kernel selesai dieksekusi implementasinya memang lebih mudah dibandingkan dengan preemptive kernel mode ini diimplementasikan lewat Windows XP dan Windows 2000
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
NEXT
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Solusi Critical Section Ada dua jenis solusi masalah critical section yaitu 1Solusi perangkat lunakDengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain selain bahwa setiap proses berjalan pada kecepatan yang bukan nol
2Solusi perangkat keras Tergantung pada beberapa instruksi mesin tertentu misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Cara Pemecahan Masalah
bull Hanya dua proses P0 and P1
bull Struktur umum dari proses adalah Pi (proses lain Pj)do
entry sectioncritical section
exit sectionreminder section
while (1)
bull Proses-proses dapat share variabel untuk sinkronisasi
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma 1bull Shared variabel
ndash int turninitially turn = 0
ndash turn = i Pi dapat masuk ke dalam critical section
bull Process Pi
do while (turn = i)
critical sectionturn = j
reminder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma 2 (1)
bull Menggunakan flag untuk setiap proses dan memeriksa flag proses yang lain dan tidak akan masuk critical section bila ada proses lain yang sedang masuk
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma 2 (2)bull Shared variabel
ndash boolean flag[2]initially flag [0] = flag [1] = false
ndash flag [i] = true Pi siap untuk masuk ke dalam critical section
bull Process Pi
do flag[i] = truewhile (flag[j]) critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi mutual exclusion tapi tidak menuhi progres
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma 3 (1)
bull Flag untuk meminta ijin masukndash Setiap proses menge-set sebuah flag untuk
meminta ijin masuk Lalu setiap proses men-toggle bit untuk mengijinkan proses yang lain untuk yang pertama
bull Kombinasi shared variabel algoritma 1 amp 2
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma 3 (2)
bull Process Pi
do flag [i]= trueturn = jwhile (flag [j] and turn = j)
critical sectionflag [i] = false
remainder section while (1)
bull Memenuhi ketiga persyaratan memecahkan masalah critical-section untuk kedua proses
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma Bakery (1)
bull Sebelum masuk ke dalam critical section proses menerima sebuah nomor Pemegang nomor yang terkecil masuk ke critical section
bull Jika ada dua proses atau lebih (Pi and Pj) menerima nomor sama maka proses dengan indeks terkecil (i lt j) yang dilayani lebih dulu untuk masuk ke critical section Misal Pi dilayani lebih dulu baru kemudian Pj
bull Skema penomoran selalu naik secara berurut contoh 12333345
Critical section untuCritical section untukk n n proses proses
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma Bakery (2)
bull Shared data
boolean choosing[n]
int number[n]
Struktur data masing-masing diinisialisai false dan 0
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Algoritma Bakery (3)
bull Algoritmado
choosing[i] = truenumber[i] = max(number[0] number[1] hellip number [n ndash 1])+1choosing[i] = falsefor (j = 0 j lt n j++)
while (choosing[j]) while ((number[j] = 0) ampamp (number[jj] lt number[ii]))
critical section
number[i] = 0remainder section
while (1)
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Synchronization Hardware Perangkat Keras Sinkronisasi
Pada sistem multiprosessor proses-pmroses bertindak independen Interupsi di satu pemroses tidak mempengaruhi pemroses-pemroses yang lain Pemroses-pemroses yang memakai memori bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak boleh pemroses lain tidak dapat mengakses suatu lokasi yang sama di saat yang sama
Perancang perangkat keras menyediakan instruksi-instruksi atomik yang tak dapat diinterupsi Instruksi dilaksanakan sampai selesai Instruksi ini biasanya dilaksanakan dengan cara mengunci bus sehingga pemroses-pemroses lain tak dapat menggunakan bus Pemroses yang mengunci bus dengan leluasa membaca danatau memodifikasi suatu lokasi memori
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Metode Processor Synchronous
Central Processing Unit (CPU) mempunyai suatu mekanisme yang dinamakan interrupt Di dalam sistem operasi mekanisme ini digunakan secara intensif atau dengan kata lain banyak Konsep sistem operasi yang menggunakan mekanisme ini Sebagai contoh system call process scheduling dsb
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Main Modul Prosesor Atmel ARM tm
00 CLI masuk ke Critical Section dengan lsquo cara men-disable interrupt
01 ADD r1r2 Critical Section
02 lsquo Critical Section
03 SBI pergi dari Critical Section dengan lsquo cara men-enable interrupt
04 Remainder Section
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Metode Memory Synchronous
bull Hal tersebut benar adanya mekanisme memory synchronous memakai suatu nilai yang disimpan di dalam memori dan jika suatu proses berhasil mengubah nilai ini maka proses tersebut akan meneruskan ke instruksi selanjutnya Tetapi jika tidak maka proses ini akan berusaha terus untuk mengubah nilai tersebut
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Metode Test and Set
Metode ini melakukan testing dan memodifikasi isi memori secara atomik menggunakan fungsi Test and Set sebagai berikut boolean TestAndSet (boolean amptarget)boolean rv = targettqrget = truereturn rvvariable umum yang digunakan pada metode ini adalah boolean Contonya lock = falseSedangkan Process Pi mempunyai struktur sebagai berikut do while (TestAndSet(lock)) critical sectionlock = falseremainder section
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Metode Swap
Prosedur swap adalah sebagai berikut
void Swap(boolean ampa boolean ampb)
boolean temp = a
a = b
b = temp
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Metode Swap
Untuk menyelesaikan permasalahan mutual exclusion menggunakan prosedur swap variabel umum yang digunakan adalah boolean lock boolean waiting[n]Kedua variable diatas diinisialisasi false Sedangkan struktur process Pi adalah sebagai berikut do key = truewhile (key == true)Swap(lockkey)critical sectionlock = falseremainder section
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Instruksi Atomikadalah satu atau sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut selesai Kita telah memakai instruksi ini pada method testAndSet
Instruksi yang dimaksud di sini adalah instruksi-instruksi pada high-level programming bukanlah pada tingkat instruksi mesin yang memang sudah bersifat atomic Sebagai contoh i++ pada suatu bahasa pemrograman akan diinterpertasikan beberapa instruksi mesin yang bersifat atomic sbb
00 Load R1i load nilai i ke register 1
01 Inc R1 tambahkan nilai register 1 dengan angka 1
02 Store iR1 simpan nilai register 1 ke i
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Designer processor dapat mengimplementasi konsep ini dengan dua cara yaitu
1 mengimplementasi instruksi yg build-in
2 mengimplementasi processor mampu membuat suatu instruksi menjadi atomic
Intel Pentium memakai cara yang kedua yaitu dengan adanya suatu perintah LOCK-Assert Dengan perintah ini maka semua instruksi dapat dijadikan atomic Sedangkan SPARC dan IBM mengimplementasikan suatu rutin yang bersifat atomic seperti swap dan compareAndSwap
Instruksi Atomik
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
NEXT
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Semaphore
bull Perangkat sinkronisasi yang membutuhkan busy waiting
bull Semaphore S ndash integer variablendash Dapat dijamin akses ke var S oleh dua
operasi atomikbull wait (S) while S le0 do no-op
S = S ndash1bull signal (S) S = S + 1
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Contoh n proses
bull Shared variablesndash Var mutex semaphorendash initially mutex= 1
bull Process Pido
wait(mutex)
critical section
signal(mutex)
remainder section
while (1)
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Implementasi Semaphore
bull Didefinisikan sebuah Semaphore dengan sebuah record
Typedef struct
Int value
Struct process L
semaphore
bull Diasumsikan terdapat 2 operasi sederhanandash Block menhambat proses yang akan masukndash wakeup(P) memulai eksekusi pada proses P yang
diblock
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Implementasi Semaphore (2)
bull Operasi Semaphore-nya menjadiwait(S)
Svalue--
If (Svalue lt 0)
add this process to SL
block
signal(S) Svalue++
if (Svalue lt= 0)
remove a process P from SL
wakeup(P)
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Masalah Klasik Sinkronisasi
bull Bounded-Buffer Problem
bull Readers and Writers Problem
bull Dining-Philosophers Problem
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Bounded-Buffer Problem
bull Shared datasemaphore full empty mutex
Initially
full = 0 empty = n mutex= 1
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Bounded-Buffer Problem Producer-Consumer
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Readers-Writers Problem
bull Shared data
semaphore mutex wrt
Initially
mutex= 1 wrt= 1 readcount= 0
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Readers-Writers Problem (2)
bull WrittersProcess
wait(wrt)
hellip
writing is performed
hellip
signal(wrt)
bull Readers Process wait(mutex)
readcount++
if (readcount== 1)
wait(rt)
signal(mutex)
hellip
reading is performed
hellip
wait(mutex)
readcount--
if (readcount== 0)
signal(wrt)
signal(mutex)
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
NEXT
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Dining-Philosophers Problem
bull Shared data semaphore chopstick[5]
Semua inisialisasi bernilai 1
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Dining-Philosophers Problem
bull Philosopher i
do
wait(chopstick[i])
wait(chopstick[(i+1) 5])
hellip
eat
hellip
signal(chopstick[i])
signal(chopstick[(i+1) 5])
hellip
think
hellip
while (1)
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Solusi Tingkat Tinggi
bull Motifndash Operasi wait(S) dansignal(S) tersebar pada code program
=gt manipulasi langsung struktur data semaphorendash Bagaimana jika terdapat bantuan dari lingkungan HLL (programming) untuk
sinkronisasi ndash Pemrograman tingkat tinggi disediakan sintaks-sintaks khusus untuk menjamin
sinkronisasi antar proses thread
bull 1048698Misalnyabull 1048698Monitor amp Conditionbull 1048698Conditional Critical Region
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Monitor
bull Monitor mensinkronisasi sejumlah prosesndash Suatu saat hanya satu yang aktif dalam monitor dan yang lain
menunggu
bull Bagian dari bahasa program (mis Java)ndash Tugas compiler menjamin hal tersebut terjadi dengan
menerjemahkan ke ldquolow level synchronizationrdquo (semphore instruction set dll)
bull Cukup dengan statement (deklarasi) suatu sectionfungsi adalah monitor =gt mengharuskan hanya ada satu proses yang berada dalam monitor (section) tsb
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Monitor (2)
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Monitor (3)
bull Proses-proses harus disinkronisasikan di dalam monitorndash Memenuhi solusi critical sectionndash Proses dapat menunggu di dalam monitorndash Mekanisme terdapat variabel (condition) dimana proses dapat
mengujimenunggu sebelum mengakses ldquocritical sectionrdquo
varx y condition
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Monitor (4)
bull Condition memudahkan programmer untuk menulis code pada monitor
bull Misalkan varx condition bull Variabel condition hanya dapat dimanipulasi dengan
operasi wait() dan signal()ndash xwait() jika dipanggil oleh suatu proses maka proses tsb Akan
suspend ndash sampai ada proses lain yang memanggil x signal()ndash xsignal() hanya akan menjalankan (resume) 1 proses saja yang
sedang menunggu (suspend) (tidak ada proses lain yang wait maka tidak berdampak apapun)
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Skema Monitor
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
Solaris II dan Windows 2000
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Atomic transaction
bullKoleksi dari instruksi-instruksi( operasi ) pada sebuah fungsi logika tunggal sering disebut sebagai transaski bullTransaksi sebagai sebuah program yang mengakse dan mungkin juga melakukan perubahan item data dari beberapa file yang ada di disk bullTransaksi merupakn urutan dari operasi read dan write yang akan berhenti ketika abort maupun commit
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Memory transaction
bull Sebuah memory transaction ( transaski memori ) adalah urutan operasi read-write pada memory secara atomik Jika operasi sampai selesai atau komplet maka sebuah transaski dinyatakan commit kalau sebaliknya maka harus di abort digagalkan dan dibatalkan(rollback)
bull Pada transaski aatomik harus bias menjamin bahwa abort terhadap sebuah transaksi tidak boleh menimbulkan efek perubahan status data yang diupdate
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Untuk menjamin bahwa system atomic maka pertama kali perlu mengidentifikisasi media pemyimpan yang dipergunakan untk menyimpan data yang dilibatkan dalam transaksi
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
bull Volatile storagendash tidak bertahan saat sistem crash
contoh memori utama cache memori ndash akses sangat cepat karena menggunakan metode akses
langsungbull Non volatile storage
ndash bertahan saat sistem crash namun tetap berpeluang akan terjadinya kerusakan yang memungkinkan data dan infromasi yang disimpan akan hilang
ndash contoh disk magnetik dan tape magneticndash kecepatan akses lebih lambat dari volatile storage
bull Stabel storagendash Data dan informasi yang telah tersimpan tidak hilang
pendekatanya dengan membuat beberapa salinan pada media nonvolatile
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Log Based Recovery
bull log menjadi sarana perekaman perubahan yang terjadi pada data
bull setiap record log medeskripsikan sebuah operasi tunggal dari operasi write
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Log Based Recovery fields
bull Nama Transaksi transaction indentifier memiliki nilai unik yang menunjukan identifikasi transaksi operasi write
bull Pengidentifikasi data data-item identifier nama unik yang menunjukkan item data yang ditulis
bull Nilai lama Old value menunjukan nilai item data sebelum operasi write dijalankan
bull Nilai baru New value menunjukkan item data setelah operasi write dijalankan
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
operasi-operasi selama pemrosesan transaksi pada log
bull lt Ti start gt ditulis di log sebelum transaksi Ti dieksekusi
bull lt Ti commit gt ditulis di log ketika Ti
commit
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Prosedur yang dipakai untuk recovery
bull Undo ( Ti ) yang merekam kembali ( restore ) nilai semua item data yang diupdate oleh transaksi Ti ke nilai awalsebelumnya
bull Redo( Ti ) yang membuat semua nilai item data yang diupdate oleh transaksi Ti ke nilai berikutnya
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Ketika terjadi kegagalan
bull Transaksi Ti perlu di di undone jika log terdapat lt Ti start gt namun tidak punya
lt Ti commit gt
bull Transaki Ti perlu di redo jika log terdapat
lt Ti start gtdan juga punya lt Ti commit gt
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Checkpoint
bull Ketika kegagalan terjadi seluruh isi log harus diperiksa untuk menentukan transaksi mana yang harus diulang dan mana yang dikembalikan ke keadaan semula ( redo atau undo )
bull 2 pendekatan utama yang perlu dipertimbangkan ndash Proses pencarian memakan waktundash Sebagian besar transaksi yang perlu diulangi
sudah menuliskan perubahannya sehingga tidak perlu diulangi
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Checkpoint
bull Untuk mengurangi beban kerja dan waktu tambahan ini maka perlu dilakukan checkpoint Selama eksekusi disamping perekaman ke file logndash Menuliskan semua record log yang ada di
volatile storage( biasanya mai memory ) ke media penyimpan stabil
ndash Menuliskan semua data yang telah dimodifikasi dirubah dari volatile stirage ke stable storage media penyimpan stabil
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Operasi recovery membutuhkan hal-hal berukut ini
bull Untuk seluruh transaksi Tk pada T untuk yang memiliki record lt Tk commit gt jalankan operasi redo(Tk )
bull Untuk seluruh transaksi Tk pada T yang tidak memiliki record lt Tk commit gt jalankan operasi undo(Tk )
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Seriabilitas dalam transaski
bull Sebuah schedule yang dimana setiap transaksi deksekusi secara atomisasi disebut sebagai serial schedule
bull a serial schedule in which T0 is followed by T1
T0 T1
Read(A)Write(A)Read(B)Write(B)
Read(A)Write(A)Read(B)Write(B)
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
a concurrent serializable schedule
bull Missal sebuah schedule S dimana memiliki 2 buah operasi Oi
dan Oj dari transaksi Ti dan Tj Oi dan Oj akan terjadi konflik jika mereka mengakses item data yang sama dan paling sedikit 1 dari mereka melakukan operasi write
bull write (A) dari T0 konflik dengan Read(A) T1 Akan tetapi Write(A) pada T1 tidak mengalami konflik dengan Read(B) dari T0 karena 2 operasi tersebut mengakses item data yang berbeda
T0 T1
Read(A)Write(A) Read(A)
Write(A)Read(B)Write(B) Read(B)
Write(B)
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
bull Jika Oi dan Oj adalah operasi-operasi berbeda transaksi dan keduanya tidak konfilk maka kita dapat melakukan pertukaran( swap ) urutan dari Oi dan Oj
ndash Swap Read(B) dari T0 dengan Read(A) dari T1
ndash Swap Write(B) dari T0 dengan Write(A) dari T1
ndash Swap Write(B) dari T0 dengan Read(A) dari T1
bull Hasil akhir dari swap-swap tersebut sama dengan schedule serial sebelumnya Jadi schedule 2 adalah equivalent dengan dengan serial schedule ( schedule 1 )
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Locking Protocol
bull Salah satu cara untuk menjamin serializabilitybull Beberapa model cara item data dapat di lock
ndash Shared jika sebuah transaksi Ti menggunakan mode ini ( dilambangkan dengan S ) pada item data Q maka Ti akan dapat membaca item data tersebut namun tidak dapat mengubahnya
ndash Exclusive jika sebuah transaksi Ti menggunakn mode ini ( dilambangkan dengan X ) pada item data Q maka Ti akan dapat membaca item data tersebut dan dapat mengubahnya
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
bull Missal untuk mengakse data Q sebuah transaski Ti pertama kali harus menntukan mode lock yang paling tepat Jika Q tidak sedang di lock maka Ti dapat mengkasesnya namun jika Q sedang di lock oleh transaksi yang lain maka Ti harus menunggunya khusunya jika Q sedang dilock dengan mode eksklusiv maka dia akan terus menunggu sampai Q dibebaskan selain itu dia dapat ijin lock dan mengakses Q
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Dua (2) fase locking protocol
bull Fase pertumbuhan Growing Phase sebuah transaksi dapat melakukan penguncian-penguncian namun belum melepaskan penguncianlocking walupun 1 buah
bull Fase pelepasanShrinking Phase sebuah transaksi dapat melepaskan sejumlah penguncian tetapi belum melakukan penguncian yang baru
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Timestamp Based Protocold
bull digunakan untk menentukan urutan seriability dengan memilih urutan transaksi sebbelumnya
bull Untuk setiap transaski Ti dalam sistem maka ditetapkan nilai berdasar waktu yang tetap dan unik dengan notasi TS(Ti) Timestamp ditentukan sistem seblum transaksi Ti mulai dikerjakan Jika sebuah transaksi TI telah diberi timesramp TS(Ti) dan kemudian datang transaksi baru Tj maka nilai TS(Ti) lt TS(Tj)
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Ada 2 metode sederhana
bull Menggunkan jan komputer (system clock) sebagai timestamp sehingga timestamp dari suatu transaksi akan sama dengan jam komputer saat transaksi masuk sistem
bull Menggunakan pencacah lojik ( logical counter ) dimana timestamp sebuah transaksi akan sama dengan nilai dari counter ketika sebuah transaksi masuk ke dalam sistem
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
2 nilai timestamp pada setiap item data Q
bull W- timestamp(Q) menunjukkan nilai terbesar dari setiap transaski yang berhasil menjalankan operasi write(Q)
bull R- timestamp(Q) menunjukkan nilai timestamp terbesar dari setiap transaksi yang berhasil menjalankan operasi Read(Q)
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
Protokol tersebut berjalan dengan aturan sebagai berikut
bull Untuk transaksi Ti yang menjalankan operasi Read(Q)ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti perlu membaca kembali nilai
Q yang telah ditulis Karenanya operasi read ini akan ditolak dan Ti akan dibatalkan( rollback)
ndash Jika TS(Ti) gt= W- timestamp(Q) maka operasi read akan dieksekusi dan R-timestamp akan diisi dengan nilai maksimum dari R-timestamp(Q) dan TS(Ti)
bull Untuk transaksi Ti yang menjalankan operasi Write(Q)ndash Jika TS(Ti) lt R- timestamp(Q) maka nilai dari Q yang dihasilkan Ti
adalah nilai yang diinginkan sebelumnya( nilai tidak akan dimanfaatkan ) dan Ti berasumsi bahwa nilai tersebut tidak pernah dihasilkan sehingga operasi ditolak dan Ti dibatalkan( rollback)
ndash Jika TS(Ti) lt W- timestamp(Q) maka Ti sedang berusaha menulis nilai Q yang kedaluwarsa sehingga operasi write ditolak dan Ti dibatalkan(Rollback)
ndash Selain 2 jenis hal di atas maka operari write akan dieksekusi
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-
bull Contoh ilustrasi schedule possible under the timestamp protocolbull Diasumsikan bahwa sebuah transaksi diberi nilai timestamp segera
sebelum instruksi pertama Pada gambaran ini TS(T2) lt TS(T3) dan schedule dimungkinkan dieksekusi dengan menggunakan protokol timestamp ordering
T2 T3
Read(B)Read(B)Write(B)
Read(A)Read(A)Write(A)
- SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV
- LATAR BELAKANG
- Race Condition
- Pemakaian Bounded Buffer
- Shared data
- Producer
- Consumer
- Slide 8
- Misal counter=5
- Masalah Critical Section
- Solusi Critical Section
- Syarat Solusi Critical Section
- Gambaran Proses Pada Kernel Mode
- Pendekatan Umum Menyikapi Critical Section Sistem Operasi
- NEXT
- Solusi Critical Section
- Cara Pemecahan Masalah
- Algoritma 1
- Algoritma 2 (1)
- Algoritma 2 (2)
- Algoritma 3 (1)
- Algoritma 3 (2)
- Algoritma Bakery (1)
- Algoritma Bakery (2)
- Algoritma Bakery (3)
- Synchronization Hardware Perangkat Keras Sinkronisasi
- Metode Processor Synchronous
- Main Modul Prosesor Atmel ARM tm
- Metode Memory Synchronous
- Metode Test and Set
- Metode Swap
- Slide 32
- Instruksi Atomik
- Slide 34
- NEXT
- Semaphore
- Contoh n proses
- Implementasi Semaphore
- Implementasi Semaphore (2)
- Masalah Klasik Sinkronisasi
- Bounded-Buffer Problem
- Bounded-Buffer Problem Producer-Consumer
- Readers-Writers Problem
- Readers-Writers Problem (2)
- Slide 45
- Dining-Philosophers Problem
- Dining-Philosophers Problem
- Solusi Tingkat Tinggi
- Monitor
- Monitor (2)
- Monitor (3)
- Monitor (4)
- Skema Monitor
- Gambaran Implementasi Sinkronisasi Pada Beberapa Sistem Operasi
- Atomic transaction
- Memory transaction
- Slide 57
- Beberapa tipe media penyimpan yang dibedakan bedsar kecepatan kapasistas dan ketahannnya terhadap kerusakan
- Log Based Recovery
- Log Based Recovery fields
- operasi-operasi selama pemrosesan transaksi pada log
- Prosedur yang dipakai untuk recovery
- Ketika terjadi kegagalan
- Checkpoint
- Slide 65
- Operasi recovery membutuhkan hal-hal berukut ini
- Seriabilitas dalam transaski
- a concurrent serializable schedule
- Slide 69
- Locking Protocol
- Slide 71
- Dua (2) fase locking protocol
- Timestamp Based Protocold
- Ada 2 metode sederhana
- 2 nilai timestamp pada setiap item data Q
- Protokol tersebut berjalan dengan aturan sebagai berikut
- Slide 77
-