1 / 60

Sinkronisasi Proses

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

wauna
Télécharger la présentation

Sinkronisasi Proses

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SinkronisasiProses Oleh : Wahyu Andhyka Kusuma 081233148591 Wahyu_dink@umm.ac.id

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

  3. MengapaPerluSinkronisasi ? • Banyakproses yang mengaksessatu data padasaat yang bersamaan • Sehinggaterjadiketidakkonsistenan data • Untukitulah, sinkronisasiprosesdipelukanuntukmenjaga agar data tersebuttetapkonsisten

  4. Masalah yang seringkalimuncul • MasalahBounded Buffer • Masalah Race Condition

  5. Masalah Bounded Buffer + + - - P1 Counter P2 Seharusnya Masalah Bounded Buffer

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

  7. PROBLEMA CRITICAL SECTION

  8. Apaitu Critical Section ?? • Kunciuntukmencegahterjadinya Race Condition adalahdenganmencegahsuatuprosesmelakukanmanipulasi data secarabersamaan • Suatu code prosesterdiridaribeberapabagian : • Critical Section adalahbagiandari code proses yang berisi code-code untukmemanipulasisuatu data

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

  10. Jenis-JenisSolusi Critical Section DuaJenisSolusi Critical Section • SolusiPerangkatKeras • SolusiPerangkatLunak

  11. SOLUSI PERANGKAT LUNAK Solusisinkronisasiuntuk 2 proses : • Algoritma Turn • Algoritma Flag • Algoritma Turn-Flag Solusisinkronisasiuntukbanyakproses : • Bakery Algorithm ( AlgoritmaTukangRoti )

  12. Algoritma Turn • Hanyaproses yang mempunyai ID yang samadengan ID giliran (Turn) yang bolehmasukke critical sectionnya

  13. Algoritma Flag • Setiapprosesberusahauntukmengecek state (keadaan) prosesyg lain. Jikaproses lain sedangberadadi critical sectionnya, makadiaakanmenunggusampaiproses lain tersebutkeluardari state critical sectionnya.

  14. Algoritma Turn-Flag • Merupakanpenggabunganantaraalgoritma Turn danalgoritma Flag.

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

  16. SolusiPerangkatKeras Ada 2 metode yang umumdigunakan : • ProcessorSynchronous • Memory Synchronous

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

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

  19. Processor Synchronous ….( 3 ) • Mekanismeinisudahcukupmengatasiisu yang ada • Mekanismeinitidakdapatditerapkandenganbaikdilingkunganmultiprocessor • Hal inidisebabkanjikakitamenon-aktifkan interrupt, maka yang akandinon-aktifkanhanyalahsatuprosesorsaja, sehinggadapatmengakibatkanterjadinyahal-hal yang tidakdiinginkan Back

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

  21. Memory Synchronous …. ( 2 ) • Keunggulandarimemory synchronousadalahpadalingkunganmultiprocessor, semua processor akanterkenadampakini • Semuaproses yang beradadi processor, yang inginmengaksescritical section, meskipunberadadi processor yang berbeda-beda, akanberusahauntukmengubahnilai yang dimaksud

  22. Memory Synchronous …. ( 3 ) • Mekanismeinimemilikisuatusyarat yang harusdipenuhiyaituperlunyaperangkatkerasmempunyaikemampuanuntukmembuatsuatuinstruksidijalankansecaraatomic

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

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

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

  26. PeranPerangkatKerasDalamProsesSinkronisasi • Sebelumadanyaberbagaimacamtekniksinkronisasisepertisaatini, para programmer cenderungmenggunakanfasilitas yang disediakanolehperangkatkerasdarikomputeruntukmelakukansinkronisasi • Pendekatanmelaluiperangkatlunakcenderungsulitdankompleksdiimplementasikan, selainitudapatmenyebabkanturunnyakinerjadarisuatuproduk yang dibuat

  27. Review Padapembahasansebelumnya.. • Algoritmaturn • Algoritma flag • Algoritmapeterson’s (turn & flag) Algoritmadiatasdapatmenjadisolusiatasberbagaimasalahseperti : mutual exclusion dan progres, akan tetapitidakuntukbusywaiting.

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

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

  30. Semaphores • Semaphoredalam OS adalahinteger yang digunakansebagai signal diantarabeberapa proses, 3 operasidalamsemaphoreyaitu : inisialisasi, increment (up) & decrement (down). • Up berlakupadasaatunblockingprocess. • Down berlakupadasaatblockingprocess

  31. Semaphores (next..) • Operasi down adalahatomic, dan tidakdapatdiinterupsisebelumdiselesaikan. Operasiinimenurunkannilaisemaphore, jikanilainyamenjadi non positif (<=0) maka proses yang mengeksekusi di block. • Operasi up adalahmenaikkannilaisemaphore.

  32. 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)

  33. FungsiSemaphores Mutual exclusion (next..):

  34. FungsiSemaphores Mutual exclusion (next..): • Semaphoremutexadalahbinarysemaphoredengannilaiawal 1 • Thread manapun yang mengeksekusi down terlebihdahulu akan terusjalan, sedangkan yang datangkemudian akan menunggusampai up dieksekusi.

  35. FungsiSemaphores Resource Controller (next..): • Semaphoremenyimpanbanyaknyaresource yang tersedia, saat thread inginmenggunakanresourcemaka thread menggunakanfungsi down, jikaresourcetersediamaka thread dapatlangsungmenggunakannya, jikamasihdigunakan, makaresoursemenunggusampaifungsi up dieksekusi.

  36. FungsiSemaphores Resource Controller (next..):

  37. FungsiSemaphores Resource Controller (next..): • Semaphore multiplex adalahcountingsemaphoredengannilaiawalsesuaikapasitasresource.

  38. FungsiSemaphores Sinkronisasiantar proses: • Bertujuanuntukmengatururutaneksekusi thread

  39. FungsiSemaphores Sinkronisasiantar proses (next..): • Semaphore spinlock kondisidimana thread beradadalamwaitingloop dan looptersebuttidakmenghasilkanapapun (busywaiting) • Mengatasi spinlock denganwaiting queue yaitudenganmemindahkan thread yang menunggukewaiting queue, dan menghentikanprosesnya.

  40. FungsiSemaphores Sinkronisasiantar proses (next..): • Padasemaphore yang telahdimodifikasiini, terdapatnilainegatif yang menggambarkanjumlah thread dalamwaiting queue.

  41. KeuntunganSemaphores • dari segiprogramming, penangananmasalahsinkronisasidengansemaphoreumumnyarapi dan teratur, sehinggamudahuntukdibuktikankebenarannya. • semaphorediimplementasikandalam hard code sehinggapenggunaannyabersifatportabel.

  42. Monitors • Monitor adalahsuatu tipe data abstrak yang dapatmengaturaktivitassertapenggunaanresourceolehbeberapa thread. • Monitor terdiriatas data-data privatedenganfungsi public. • Method-method monitor hanya ada satubuahmethod yang dapatbekerjapadasuatusaat.

  43. Monitors

  44. Monitors Tipe data Condition : • Wait, menghentikankerja thread. • Signal, membangunkan thread yang sedangmenunggu. Operasiinihanyamembangunkansatu thread. • Perbedaanantara signal dan up, signal tidak akan memprosesapapunjikatidakterdapat thread ygmenunggu.

  45. Monitors Penggunaansemaforkurangpraktis. Sebabkesalahanpadasemafortidakdapatdideteksioleh compiler. Keuntunganmemakai monitor: • Kompilator yang telahmengimplementasikan monitor akan memastikanbahwaresource yang dapatdiaksesolehbeberapa thread dilindungioleh monitor, sehinggaprinsipmutual exclusion tetapterjaga. • Kompilator bisa memeriksakemungkinanadanyadeadlock.

  46. Message Passing • Message Passing hampirsamadengansemaphore dan berbedadengan monitor. • Menggunakanduakondisiyaknisend dan receive • Message Passing digunakanpadaproblem yang tidakdapatdiatasiolehsemaphore dan monitor, mis : Proses komunikasiantarmesindalam network.

  47. Message Passing • Dalamkasusprodusen – konsumen, maka message yang di pertukarkanberisiinformasimengenaikondisiprodusenmaupunkonsumen. • Untukmenfasilitasikecepatanakses message disalahsatubagian (di produsenatau di konsumen), maka di sediakanmailboxdalam buffer.

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

  49. Classical I.P.C Problem • The Dining Philosophers Problem

  50. Classical I.P.C Problem • The Dining Philosophers Problem (next..) Kehidupanfilosofterdiridari 2 kondisiyaitumakandanberfikir, ketikaseseoranglapar, makadiaakanberusahamendapatkangarpukanandankirisekaligus, jikaberhasilmakadiaakanmakansementarawaktukemudianmelanjutkanberpikir.

More Related