Anda di halaman 1dari 22
SISTEM OPERASI Singkronisasi Proses Oleh : Kamarudin, M.Kom Paralel Processing e Paralel processing is a situation in which _ two/more processor operate in unison. -- Executing instruction simultaneously ¢ Benefits: increase reliability & faster processing e Evolution: _ — Job level: Seren has its own processor and _ all processes and threads are run by the same processor - Process level: unrelated process, are assigned to any available processor - Thread level: threads are assigned to avaliable processor » \ ‘ d Mengapa Sinkronisasi e Sinkronisasi diperlukan untuk menghindari _ terjadinya ketidak konsistenan data akibat adanya akses data secara konkuren e Diperlukan adanya suatu mekanisme untuk memastikan urutan / giliran d Pe sakecoad suatu data yang saling _ bekerjasama_sehingga terjadi sinkronisasi e If we don’t make process synchronization: - Race Condition Atomic Process ¢ The statements _s counter++; counter--; must be performed atomically. \ ‘ “e Atomic operation means an operation that completes in its entirety without interruption. Bounded-Buffer e Perintah “count++” diimplementasikan pada bahasa mesin: | = registert = counter — register1 = register1 + 1 = counter = register1 e Perintah “count--” diimplementasikan pada bahasa mesin: - register2 = counter - register2 = register2 - 1 - counter = register2 e Jika kedua perintah tersebut berusaha mengakses nilai counter secara konkuren, maka dapat terjadi kesalahan - pada nilai counter karena sifat bahasa mesin yang _ menggunakan register untuk mengupdate nilai counter e Kesalahan nilai akhir counter dapat terjadi, tergantung dari penjadwalan yang dilakukan terhadap proses yang dilakukan oleh produsen dan konsumen. e Dengan kata lain, masalah tersebut be/um tentu terjadi, tapi dapat terjadi > h 4 Misalnya e Consider this execution interleaving with “count = 5” initially: tO: producer execute registerl = count {register1 = 5} t1: producer execute register1 = register1 + 1 {register1 = 6} t2: consumer execute register2 = count {register2 = 5} _ t3: consumer execute register2 = register2 - 1 {register2 = 4} A te producer execute count = register1 {count = 6 } t5: consumer execute count = register2 {count = 4} Race Condition e Race condition: situasi dimana beberapa _ proses mengakses dan memanipulasi suatu data secara konkuren. — Nilai akhir dari data tersebut tergantung dari proses mana yang terakhir mengubah data € e Untuk menghindari terjadinya situasi | \ersebut, semua proses yang dapat mengakses suatu data tertentu harus disinkronisasi Critical Section e Lebih dari satu proses berlomba-lomba i pada saat yang sama untuk menggunakan data yang sama. e Setiap proses memiliki segmen kode yang digunakan untuk mengakses data yang digunakan secara bersama-sama. = Segmen kode tersebut disebut critical section. -e Masalahnya: menjamin bahwa jika suatu proses sedang menjalankan critical section, maka proses lain tidak boleh masuk ke dalam critical section tersebut. > h f d Solusi masalah critical section ¢ Mutual Exclusion i - Tidak ada dua proses yang berada di critical section pada saat yang bersamaan. ¢ Terjadi kemajuan (Progress) - Jika tidak ada proses yang sedang berada di critical section, maka proses lain yang ingin menjalankan critical section dapat masuk ke dalam critical section tersebut. _ ¢ Ada batas waktu tunggu (Bounded Waiting) - — Tidak ada proses yang menunggu selama-lamanya untuk masuk ke dalam critical section - Assume that each process executes at a nonzero speed - Tidak ada asumsi lain iengetal kecepatan relatif setiap proses ataupun jumlah CPU. Implementasi solusi e Solusi perangkat lunak _ = Dengan menggunakan algoritma-algoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain, selain bahwa setiap proses berjalan pada kecepatan yang bukan nol d ° Solusi perangkat keras 4 _ — Tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interuppt atau dengan mengunci (lock) suatu variabel tertentu Sinkronisasi © Metode dalam sinkronisasi hardware “= Processor Synchronous ( Disable Interrupt ) _ = Memory Synchronous ( Instruksi Test-And-Set ) ¢ Processor synchronous - Dengan men-disable interupsi (interrupt) — Dalam lingkungan multiprocessor: * Hanya satu processor bisa didisable interruptnya _ © Memory synchronous - Instruksi Test-And-Set dan Semaphore - Dalam lingkungan multiprocessor: ¢ Bisa dilakukan * Semua processor tidak dapat memakai resource karena proteksi dilakukan di memory - Instruksi harus bersifat atomik TestAndSet dengan Java boolean testset (int i) { if (i = 0) { i=i1; return true; i else { return false; } Kelemahan: bisa terjadi starvation & busy waiting Mutual Exclusion: Memory synchronous e Kelebihan: — Dapat diaplikasikan ke beberapa prosesor, _ dengan sharing memory — Simpel - Dapat digunakan untuk banyak critical section e Kekurangan: _ - Busy-waiting memakan processor time yang _ besar - Mungkin terjadi starvation - Deadlock (not responding) ¢ Jika low priority process mendapat critical region dan higher priority process butuh juga, higher priority process akan mendapat processor dan low priority Process akan menunggu Semaphore ) e Invented by Djikstra (1960) f,? Seana digunakan untuk memberi _ sinyal/tanda e Non negative integer, untuk melambangkan jumlah resources e Jika proses menunggu sinyal, maka dia akan ditunda sampai sinyal yg ditunggu tersebut terkirim _e Operasi: wait dan signal 8 Wait dan signal operations tidak dapat diinterupt e Queue digunakan untuk menahan proses proses yang sedang menunggu semaphore > h f d Implementasi Semaphore e Windows _ - Fungsi yg dipakai adalah CreateSemaphore - Biasanya digunakan untuk membatasi jumlah thread yang memakai suatu resource secara bersamaan e Java _ = Semafor di Java™ bersifat transparan oleh programmer ¢ Java™ menyembunyikan Semafor dibalik konsep monitor ¢ Reserved Word yang dipakai Java™ adalah synchronized - Classical Problems of Synchronization -¢ Bounded-Buffer Problem e Readers and Writers Problem e Dining-Philosophers Problem Bounded Buffer e Pengertian: tempat penampung data yang _ukurannya terbatas e Contoh: proses produsen dan konsumen e Masalah produsen-konsumen -— Produsen menaruh data pada buffer. \ ¢ Jika buffer tersebut sudah terisi penuh, maka , > produsen tidak melakukan apa-apa dan menunggu a sampai konsumen mengosongkan isi buffer. - Konsumen mengambil data dari buffer. ¢ Jika buffer tersebut kosong, maka konsumen tidak melakukan apa-apa dan menunggu sampai buffer tersebut diisi oleh produsen. The Readers-Writers Problem e Multiple readers or a single writer can use DB. Reader & Writers e Diketahui dua macam proses: i” Pembaca (reader) ~— Penulis (writer) e Kedua jenis proses berbagi sumber daya penyimpanan yang sama, Misal: Basis data e Tujuan: data tidak korup dan inkonsisten © Kondisi: | _ — Proses-proses pembaca dapat membaca sumber daya : secara simultan — Hanya boleh ada satu penulis menulis pada setiap saat - Bila ada yang menulis, tidak boleh ada yang membaca Kelemahan Semaphore ¢ Termasuk Low Level e Kesulitan dalam pemeliharaannya, karena tersebar dalam seluruh program. e Menghapus wait => dapat terjadi non- ~ mutual exclusion. : ¢ Menghapus signal => dapat terjadi deadlock e Error yang terjadi sulit untuk dideteksi Types of Storage Media Volatile storage - information stored ~ here does not survive system crashes — Example: main memory, cache ¢ Nonvolatile storage - information usually survives crashes \\- Example: disk and tape ¢ Stable storage - information never lost — Not actually possible, so approximated via replication or RAID to devices with independent failure modes Checkpoints e Log could become long, and recovery _ could take long e Checkpoints shorten log and recovery time. e Checkpoint scheme: 1. Output all log records currently in volatile ‘ storage to stable storage 2. Output all modified data from volatile to stable storage 3.Output a log record to the log on stable storage

Anda mungkin juga menyukai