so_kelompok_iv_ sinkronisasi

77
SINKRONISASI PROSES-PROSES Dipresentasikan Oleh Kelompok IV 1. DANANG NURDIANSYAH (10/309040/PPA/03399) 2. MURYANTO (10/309060/PPA/03410) 3. KANDI HARIANTO (10/309044/PPA/03401) 4. I MADE PARTHA WIGUNA (10/309392/PPA/03421)

Upload: putri-elfa

Post on 29-Jun-2015

311 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SO_Kelompok_IV_ SINKRONISASI

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
Page 2: SO_Kelompok_IV_ SINKRONISASI

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
Page 3: SO_Kelompok_IV_ SINKRONISASI

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
Page 4: SO_Kelompok_IV_ SINKRONISASI

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
Page 5: SO_Kelompok_IV_ SINKRONISASI

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
Page 6: SO_Kelompok_IV_ SINKRONISASI

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
Page 7: SO_Kelompok_IV_ SINKRONISASI

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
Page 8: SO_Kelompok_IV_ SINKRONISASI

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
Page 9: SO_Kelompok_IV_ SINKRONISASI

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
Page 10: SO_Kelompok_IV_ SINKRONISASI

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
Page 11: SO_Kelompok_IV_ SINKRONISASI

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
Page 12: SO_Kelompok_IV_ SINKRONISASI

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
Page 13: SO_Kelompok_IV_ SINKRONISASI

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
Page 14: SO_Kelompok_IV_ SINKRONISASI

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
Page 15: SO_Kelompok_IV_ SINKRONISASI

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
Page 16: SO_Kelompok_IV_ SINKRONISASI

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
Page 17: SO_Kelompok_IV_ SINKRONISASI

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
Page 18: SO_Kelompok_IV_ 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
Page 19: SO_Kelompok_IV_ SINKRONISASI

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
Page 20: SO_Kelompok_IV_ SINKRONISASI

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
Page 21: SO_Kelompok_IV_ SINKRONISASI

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
Page 22: SO_Kelompok_IV_ SINKRONISASI

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
Page 23: SO_Kelompok_IV_ SINKRONISASI

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
Page 24: SO_Kelompok_IV_ SINKRONISASI

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
Page 25: SO_Kelompok_IV_ SINKRONISASI

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
Page 26: SO_Kelompok_IV_ SINKRONISASI

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
Page 27: SO_Kelompok_IV_ SINKRONISASI

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
Page 28: SO_Kelompok_IV_ SINKRONISASI

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
Page 29: SO_Kelompok_IV_ SINKRONISASI

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
Page 30: SO_Kelompok_IV_ SINKRONISASI

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
Page 31: SO_Kelompok_IV_ SINKRONISASI

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
Page 32: SO_Kelompok_IV_ SINKRONISASI

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
Page 33: SO_Kelompok_IV_ SINKRONISASI

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
Page 34: SO_Kelompok_IV_ SINKRONISASI

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
Page 35: SO_Kelompok_IV_ SINKRONISASI

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
Page 36: SO_Kelompok_IV_ SINKRONISASI

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
Page 37: SO_Kelompok_IV_ SINKRONISASI

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
Page 38: SO_Kelompok_IV_ SINKRONISASI

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
Page 39: SO_Kelompok_IV_ SINKRONISASI

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
Page 40: SO_Kelompok_IV_ SINKRONISASI

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
Page 41: SO_Kelompok_IV_ SINKRONISASI

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
Page 42: SO_Kelompok_IV_ SINKRONISASI

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
Page 43: SO_Kelompok_IV_ SINKRONISASI

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
Page 44: SO_Kelompok_IV_ SINKRONISASI

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
Page 45: SO_Kelompok_IV_ SINKRONISASI

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
Page 46: SO_Kelompok_IV_ SINKRONISASI

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
Page 47: SO_Kelompok_IV_ SINKRONISASI

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
Page 48: SO_Kelompok_IV_ SINKRONISASI

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
Page 49: SO_Kelompok_IV_ SINKRONISASI

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
Page 50: SO_Kelompok_IV_ SINKRONISASI

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
Page 51: SO_Kelompok_IV_ SINKRONISASI

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
Page 52: SO_Kelompok_IV_ SINKRONISASI

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
Page 53: SO_Kelompok_IV_ SINKRONISASI

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
Page 54: SO_Kelompok_IV_ SINKRONISASI

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
Page 55: SO_Kelompok_IV_ SINKRONISASI

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
Page 56: SO_Kelompok_IV_ SINKRONISASI

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
Page 57: SO_Kelompok_IV_ SINKRONISASI

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
Page 58: SO_Kelompok_IV_ SINKRONISASI

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
Page 59: SO_Kelompok_IV_ SINKRONISASI

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
Page 60: SO_Kelompok_IV_ SINKRONISASI

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
Page 61: SO_Kelompok_IV_ SINKRONISASI

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
Page 62: SO_Kelompok_IV_ SINKRONISASI

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
Page 63: SO_Kelompok_IV_ SINKRONISASI

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
Page 64: SO_Kelompok_IV_ SINKRONISASI

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
Page 65: SO_Kelompok_IV_ SINKRONISASI

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
Page 66: SO_Kelompok_IV_ SINKRONISASI

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
Page 67: SO_Kelompok_IV_ SINKRONISASI

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
Page 68: SO_Kelompok_IV_ SINKRONISASI

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
Page 69: SO_Kelompok_IV_ SINKRONISASI

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
Page 70: SO_Kelompok_IV_ SINKRONISASI

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
Page 71: SO_Kelompok_IV_ SINKRONISASI

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
Page 72: SO_Kelompok_IV_ SINKRONISASI

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
Page 73: SO_Kelompok_IV_ SINKRONISASI

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
Page 74: SO_Kelompok_IV_ SINKRONISASI

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
Page 75: SO_Kelompok_IV_ SINKRONISASI

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
Page 76: SO_Kelompok_IV_ SINKRONISASI

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
Page 77: SO_Kelompok_IV_ SINKRONISASI

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