650 likes | 1.24k Views
Sinkronisasi Proses. Oleh : Wahyu Andhyka Kusuma 081233148591 Wahyu_dink@umm.ac.id. Konsep Bahasan. Perlunya Sinkronisasi Bounded Buffer & Race Condition Critical Section Solusi Logic : Algoritma Turn , Algoritma Flag , Algoritma Turn-Flag , Bakery Algorithm Solusi Hardware
E N D
SinkronisasiProses Oleh : Wahyu Andhyka Kusuma 081233148591 Wahyu_dink@umm.ac.id
Konsep Bahasan • Perlunya Sinkronisasi • Bounded Buffer & Race Condition • Critical Section • Solusi Logic : Algoritma Turn, Algoritma Flag, Algoritma Turn-Flag, Bakery Algorithm • Solusi Hardware • Sleep and Wake up • Semaphores • Monitor • Message Passing • The Dining Philosophers Problem • Readers and Writers Problem • The Sleeping Barber Problem
MengapaPerluSinkronisasi ? • Banyakproses yang mengaksessatu data padasaat yang bersamaan • Sehinggaterjadiketidakkonsistenan data • Untukitulah, sinkronisasiprosesdipelukanuntukmenjaga agar data tersebuttetapkonsisten
Masalah yang seringkalimuncul • MasalahBounded Buffer • Masalah Race Condition
Masalah Bounded Buffer + + - - P1 Counter P2 Seharusnya Masalah Bounded Buffer
Masalah Race Condition • Race Condition adalahsuatukondisidimanabeberapaprosesmengaksesdanmemanipulasisuatu data secarakonkuren. Nilaiakhirdari data tersebuttergantungdariprosesmana yang terakhirselesaidieksekusi. • Contohpadamasalah Bounded Buffer diatassebenarnyasudahmenggambarkanterjadinya Race Condition. P1 dan P2 salingberlombameng-update nilai counter sehinggapadasuatuwaktu, nilai counter-nyabisasalah. • Untukmenghindari Race Condition inilahdilakukanapa yang dinamakanProsesSinkronisasi.
Apaitu Critical Section ?? • Kunciuntukmencegahterjadinya Race Condition adalahdenganmencegahsuatuprosesmelakukanmanipulasi data secarabersamaan • Suatu code prosesterdiridaribeberapabagian : • Critical Section adalahbagiandari code proses yang berisi code-code untukmemanipulasisuatu data
Solusi Dari Problema Critical Section Solusi yang baikharusmemenuhi 3 syaratberikut: • Mutual Exclution Tidakadaproses yang menjalankan critical section bersamaan • TerjadiKemajuan ( Progress ) Proses yang sedangmenjalankan Remainder Sectionnya, tidakbolehmenjalankanCritival Section berikutnyasebelumproses lain menyelesaikan Critical Sectionnya • Ada Batas Waktu ( Bounded Waiting ) Adabataswaktusuatuprosesdapatmenjalankan critical sectionnya
Jenis-JenisSolusi Critical Section DuaJenisSolusi Critical Section • SolusiPerangkatKeras • SolusiPerangkatLunak
SOLUSI PERANGKAT LUNAK Solusisinkronisasiuntuk 2 proses : • Algoritma Turn • Algoritma Flag • Algoritma Turn-Flag Solusisinkronisasiuntukbanyakproses : • Bakery Algorithm ( AlgoritmaTukangRoti )
Algoritma Turn • Hanyaproses yang mempunyai ID yang samadengan ID giliran (Turn) yang bolehmasukke critical sectionnya
Algoritma Flag • Setiapprosesberusahauntukmengecek state (keadaan) prosesyg lain. Jikaproses lain sedangberadadi critical sectionnya, makadiaakanmenunggusampaiproses lain tersebutkeluardari state critical sectionnya.
Algoritma Turn-Flag • Merupakanpenggabunganantaraalgoritma Turn danalgoritma Flag.
Bakery Algorithm • Ketikamemasukitoko, setiappelangganmenerimasebuahnomor. Sayangnya, tukangrotitidakdapatmenjaminbahwaduaproses (duapelanggan) tidakakanmenerimanomor yang sama. • Dalamkasusdimanaduaprosesmenerimanomor yang sama, makaprosesdengannomor ID terkecil yang akandilayanidahulu. • Jadi, jika Pi danPjmenerimanomor yang samadani < j, maka Pi dilayanidahulu.
SolusiPerangkatKeras Ada 2 metode yang umumdigunakan : • ProcessorSynchronous • Memory Synchronous
Processor Syncronous • Central Processing Unit (CPU) mempunyaisuatumekanisme yang dinamakan interrupt yang digunakansecaraintensif. • Sistemtime-shared yang seringdiimplementasikandenganalgoritma RR (Round Robin), memanfaatkanmekanisme interrupt di CPU • Teknisnya, akanadasuatu interrupt ( yang biasanyaadalah timer interrupt ) yang secaraberkalaakanmenginterruptsistem
Processor Synchronous ….( 2 ) • Jikakitadapatmenon-aktifkan interrupt padasaatsebuahprosesberadadidalamcritical sectionmakapermasalahandarisinkronisasidapatdiselesaikan • Contoh program dariprosesor Atmel ARMtm mainModul: 00 CLI ' masukke Critical Section dengancara ' men-disable interrupt 01 ADD r1,r2 ' Critical Section 02 .... ' Critical Section 03 SBI ' pergidari Critical Section dengancara ' meng-enable interrupt 04 .. ' Remainder Section
Processor Synchronous ….( 3 ) • Mekanismeinisudahcukupmengatasiisu yang ada • Mekanismeinitidakdapatditerapkandenganbaikdilingkunganmultiprocessor • Hal inidisebabkanjikakitamenon-aktifkan interrupt, maka yang akandinon-aktifkanhanyalahsatuprosesorsaja, sehinggadapatmengakibatkanterjadinyahal-hal yang tidakdiinginkan Back
Memory Synchronous • Mekanismememory synchronousmemakaisuatunilai yang disimpandidalammemori, danjikasuatuprosesberhasilmengubahnilaiini, makaprosestersebutakanmeneruskankeinstruksiselanjutnya • jikatidak, makaprosesiniakanberusahaterusuntukmengubahnilaitersebut • Keunggulandarimemory synchronousadalahpadalingkunganmultiprocessor, semua processor akanterkenadampakini • Semuaproses yang beradadi processor, yang inginmengaksescritical section, meskipunberadadi processor yang berbeda-beda, akanberusahauntukmengubahnilai yang dimaksud
Memory Synchronous …. ( 2 ) • Keunggulandarimemory synchronousadalahpadalingkunganmultiprocessor, semua processor akanterkenadampakini • Semuaproses yang beradadi processor, yang inginmengaksescritical section, meskipunberadadi processor yang berbeda-beda, akanberusahauntukmengubahnilai yang dimaksud
Memory Synchronous …. ( 3 ) • Mekanismeinimemilikisuatusyarat yang harusdipenuhiyaituperlunyaperangkatkerasmempunyaikemampuanuntukmembuatsuatuinstruksidijalankansecaraatomic
Instruksi Atomic • instruksi atomic adalahsatuatausekelompokinstruksi yang tidakdapatdiberhentikansampaiinstruksitersebutselesai • Instruksi yang dimaksuddisiniadalahinstruksi-instruksipada high-level programming • Sebagaicontoh: i++ padasuatubahasapemrogramanakandiinterpertasikanbeberapainstruksimesin yang bersifatatomicsebagaiberikut: 00 Load R1,i ' load nilaiike register 1 01 Inc R1 ' tambahkannilai register 1 denganangka 1 02 Store i,R1 ' simpannilai register 1 kei
Instruksi Atomic …. ( 2 ) • instruksibaris 00-02 bersifatatomic, tetapii++ tidakbersifat atomic • Jikalauinstruksiini (i++) bersifatatomic, makaketigainstruksimesintsbtidakakandiganggudengan interrupt • instruksiinibukanlahsepertipadaprocessor synchronous yang manaakanmematikan interrupt terlebihdahulu, tetapiinstruksiinisudah build-in di processor
Instruksi Atomic …. ( 3 ) • Designer processor dapatmengimplementasikonsepinidenganduacarayaitu: • mengimplementasiinstruksi yang build-in • mengimplementasi processor mampumembuatsuatuinstruksimenjadiatomic • Intel Pentium ternyatamemakaicara yang kedua, yaitudenganadanyasuatuperintah LOCK-Assert. Denganperintahinimakasemuainstruksidapatdijadikan atomic. Sedangkan SPARC dan IBM mengimplementasikansuaturutin yang bersifat atomic seperti swap dancompareAndSwap
PeranPerangkatKerasDalamProsesSinkronisasi • Sebelumadanyaberbagaimacamtekniksinkronisasisepertisaatini, para programmer cenderungmenggunakanfasilitas yang disediakanolehperangkatkerasdarikomputeruntukmelakukansinkronisasi • Pendekatanmelaluiperangkatlunakcenderungsulitdankompleksdiimplementasikan, selainitudapatmenyebabkanturunnyakinerjadarisuatuproduk yang dibuat
Review Padapembahasansebelumnya.. • Algoritmaturn • Algoritma flag • Algoritmapeterson’s (turn & flag) Algoritmadiatasdapatmenjadisolusiatasberbagaimasalahseperti : mutual exclusion dan progres, akan tetapitidakuntukbusywaiting.
Sleep and Wake up • Solusipertamaadalahsleep dan wake up. • Sleepadalah system call yang mengakibatkandihentikansementarasebuah proses, sampai proses lainmembangunkan. • Wake up adalah system call yang mengakibatkansebuah proses terbangun.
Sleep and Wake up (next..) • Masalah yang timbulkemudian signal wake up tidaktersampaikankarenaberbagaikondisi, sehinggakedua proses akan sleepforever. • Solusiuntukkasusdiatasadalahdenganmenggunakanwake up waiting bit. • Ketika proses berjalanmakawake up waiting bit di set on padasaat proses akan sleepmaka proses akan diset off
Semaphores • Semaphoredalam OS adalahinteger yang digunakansebagai signal diantarabeberapa proses, 3 operasidalamsemaphoreyaitu : inisialisasi, increment (up) & decrement (down). • Up berlakupadasaatunblockingprocess. • Down berlakupadasaatblockingprocess
Semaphores (next..) • Operasi down adalahatomic, dan tidakdapatdiinterupsisebelumdiselesaikan. Operasiinimenurunkannilaisemaphore, jikanilainyamenjadi non positif (<=0) maka proses yang mengeksekusi di block. • Operasi up adalahmenaikkannilaisemaphore.
FungsiSemaphores Mutual exclusion : • Thread yang akan memasukicritical section harusmemanggilfungsi down (nilaisemaphore <=0), jikatidak ada thread yang laindalamcritical section maka thread menggunakancritical section, jika ada maka thread menunggu, kemudiansetelahselesai thread memanggilfungsi up (nilaisemaphore > 0)
FungsiSemaphores Mutual exclusion (next..):
FungsiSemaphores Mutual exclusion (next..): • Semaphoremutexadalahbinarysemaphoredengannilaiawal 1 • Thread manapun yang mengeksekusi down terlebihdahulu akan terusjalan, sedangkan yang datangkemudian akan menunggusampai up dieksekusi.
FungsiSemaphores Resource Controller (next..): • Semaphoremenyimpanbanyaknyaresource yang tersedia, saat thread inginmenggunakanresourcemaka thread menggunakanfungsi down, jikaresourcetersediamaka thread dapatlangsungmenggunakannya, jikamasihdigunakan, makaresoursemenunggusampaifungsi up dieksekusi.
FungsiSemaphores Resource Controller (next..):
FungsiSemaphores Resource Controller (next..): • Semaphore multiplex adalahcountingsemaphoredengannilaiawalsesuaikapasitasresource.
FungsiSemaphores Sinkronisasiantar proses: • Bertujuanuntukmengatururutaneksekusi thread
FungsiSemaphores Sinkronisasiantar proses (next..): • Semaphore spinlock kondisidimana thread beradadalamwaitingloop dan looptersebuttidakmenghasilkanapapun (busywaiting) • Mengatasi spinlock denganwaiting queue yaitudenganmemindahkan thread yang menunggukewaiting queue, dan menghentikanprosesnya.
FungsiSemaphores Sinkronisasiantar proses (next..): • Padasemaphore yang telahdimodifikasiini, terdapatnilainegatif yang menggambarkanjumlah thread dalamwaiting queue.
KeuntunganSemaphores • dari segiprogramming, penangananmasalahsinkronisasidengansemaphoreumumnyarapi dan teratur, sehinggamudahuntukdibuktikankebenarannya. • semaphorediimplementasikandalam hard code sehinggapenggunaannyabersifatportabel.
Monitors • Monitor adalahsuatu tipe data abstrak yang dapatmengaturaktivitassertapenggunaanresourceolehbeberapa thread. • Monitor terdiriatas data-data privatedenganfungsi public. • Method-method monitor hanya ada satubuahmethod yang dapatbekerjapadasuatusaat.
Monitors Tipe data Condition : • Wait, menghentikankerja thread. • Signal, membangunkan thread yang sedangmenunggu. Operasiinihanyamembangunkansatu thread. • Perbedaanantara signal dan up, signal tidak akan memprosesapapunjikatidakterdapat thread ygmenunggu.
Monitors Penggunaansemaforkurangpraktis. Sebabkesalahanpadasemafortidakdapatdideteksioleh compiler. Keuntunganmemakai monitor: • Kompilator yang telahmengimplementasikan monitor akan memastikanbahwaresource yang dapatdiaksesolehbeberapa thread dilindungioleh monitor, sehinggaprinsipmutual exclusion tetapterjaga. • Kompilator bisa memeriksakemungkinanadanyadeadlock.
Message Passing • Message Passing hampirsamadengansemaphore dan berbedadengan monitor. • Menggunakanduakondisiyaknisend dan receive • Message Passing digunakanpadaproblem yang tidakdapatdiatasiolehsemaphore dan monitor, mis : Proses komunikasiantarmesindalam network.
Message Passing • Dalamkasusprodusen – konsumen, maka message yang di pertukarkanberisiinformasimengenaikondisiprodusenmaupunkonsumen. • Untukmenfasilitasikecepatanakses message disalahsatubagian (di produsenatau di konsumen), maka di sediakanmailboxdalam buffer.
Classical I.P.C Problem • The Dining Philosophers Problem Di temukan 1965 olehdjikstra, digambarkansebagaiberikut, 5 filosofmelingkarimeja, setiapfilosofmemilikisepiringspageti, spageti yang merekamakansangatlicin (?) sehinggamerekabutuh 2 garpuuntukmemakannya. Diantara 2 piringspagetiterdapat 1 garpu.
Classical I.P.C Problem • The Dining Philosophers Problem
Classical I.P.C Problem • The Dining Philosophers Problem (next..) Kehidupanfilosofterdiridari 2 kondisiyaitumakandanberfikir, ketikaseseoranglapar, makadiaakanberusahamendapatkangarpukanandankirisekaligus, jikaberhasilmakadiaakanmakansementarawaktukemudianmelanjutkanberpikir.