two/more processor operate in unison.

dokumen-dokumen yang mirip
Paralel processing Benefits Job level Process level Thread level

Bab 6: Sinkronisasi Proses. Latar Belakang

Proses Sinkronisasi. Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

7 Sinkronisasi. Proses Sinkronisasi. Overview (1) Overview (2) Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

Sinkronisasi dan Deadlock

Bab 5. Sinkronisasi Proses POKOK BAHASAN: TUJUAN BELAJAR: 5.1 LATAR BELAKANG

Process Synchronization

Sinkronisasi dan Deadlock

BAB 4. SINKRONISASI & DEADLOCK

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

Bab 22. Perangkat Sinkronisasi II

Readers-Writers & The Dining Philosophers Problem

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

Apa yang akan dipelajari?

The Critical Section Problem Algorithm III

Pertemuan #3: Sinkronisasi dan Deadlock

Bab 3: Proses-Proses. Konsep Proses

Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka

CRITICAL REGIONS DAN MONITORS

B. Jawablah dengan ringkas dan lengkap. (Jawaban tidak lebih dari 10 kalimat) (Nilai 40) Solusi: kata kunci dalam huruf miring.

Bab 3: Proses-Proses. Konsep Proses

Analisis Penerapan Semaphore dalam Mengatasi Masalah Sinkronisasi Dining Philosophers.

The Critical Section Problem Algorithm III. Muhammad Fikry Hazmi (143) Kresna Ridwan (145) Guntur Kondang Prakoso (153)

SOLUSI QUIZ 2 SISOP CS3613

Nama : Putra Adi Nugraha dan Priska Kalista Kelas : B

PERANGKAT LUNAK SIMULASI DEADLOCK MENGGUNAKAN ILUSTRASI DINING PHILOSOPHERS PROBLEM

PROSES & THREADS 2 AGUS PAMUJI. SISTEM OPERASI - Proses & Threads

Komunikasi & Sinkronisasi Proses

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Deadlock. Pada kasus ini juga bisa terjadi kelaparan, yaitu ada proses yang tidak terlayani

SISTEM OPERASI (MANAJEMEN PROSES)

Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Caca E. Supriana, S.Si.,MT.

Sistem Operasi. Proses dan Thread

Rencana Perkuliahan Sistem Operasi CSG3E3 2015/2016

Process Synchronization (Background)

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

Critical Section Mutual Exclusion Semaphore Tugas. Sinkronisasi Thread. Praktikum Sistem Operasi. Ilmu Komputer IPB. Sinkronisasi Thread

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma

Sistem Operasi Komputer. Pembahasan Deadlock

Laporan Tugas Scheduling Pengantar Sistem Operasi

1/3/2013. Race Condition adalah situasi di mana beberapa proses mengakses

Sinkronisasi dan Deadlock Sistem Operasi

BAB II MANAJEMEN PROSES

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. Mutual Exclusion dan Sinkronisasi

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

Sistem Operasi Pertemuan 6 Concurrency: Deadlock & Starvation. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Sistem operasi menjalankan banyak dan beragam program :

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Sistem Operasi PENGATURAN PROSES

Sistem Operasi 9. Virtual Memory. Antonius Rachmat C, S.Kom, M.Cs

DEADLOCK. KELOMPOK : Aurora Marsye Mellawaty Vidyanita Kumalasari Y

Kuliah#7 TSK617 Pengolahan Paralel - TA 2011/2012. Eko Didik Widianto

Concurrency 1: y Mutual Exclusion dan Sinkronisasi (Perte rt muan ke muan -10) 10 Oktober 2014

Struktur Sistem Komputer

Bab 26. Readers/Writers

Sistem Operasi. Critical section, konkurensi, mutasi exclusion, starvation dan deadlock. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

BAB II TINJAUAN PUSTAKA

Processes. Processes. SISTIM OPERASI (Operating System) IKI-20230

STRUKTUR FUNGSI CPU. Menjelaskan tentang komponen utama CPU. Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register

Soal-jawab Quiz 2. Oleh: Endro Ariyanto (END) Oktober 2008

CRITICAL REGION - SEMAPHORE MUTEX DALAM CPU OS SIMULATOR V

Organisasi Komputer. Candra Ahmadi, MT

Bab 19. Solusi Critical Section

Sistem Operasi. Deadlock & Penanganannya. Aditya Wikan Mahastama

4 Proses. Proses. Konsep Proses. Proses. Prosesor mengeksekusi program-program komputer Prosesor adalah sebuah chip dalam sistem

Struktur Sistem Komputer

1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.

Sistem Operasi Komputer

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk satu unit (mis. disk pack atau tape reel) dari penyimpanan sekunder. Labelnya berisi

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM III Sinkronisasi Proses

GARIS GARIS BESAR PROGRAM PENGAJARAN/GBPP (Rencana Kegiatan Belajar Mengajar)

Sleep and Wake Up. Tugas Kuliah. Mata kuliah : CF 1310 Sistem Operasi. Disusun oleh : UZLINA RAHMAWATI FIA MAHANANI

Pertemuan #2: Proses dan Thread

PENYELARASAN PADA MASALAH DINING PHILOSOPHERS MENGGUNAKAN ALGORITMA LOCK & RELEASE

Concurrency 1 : Mutual Exclusion dan Sinkronisasi (P ( e P rtemuan ua ke-9) 9 September 2014

Aditya Wikan Mahastama

ARSITEKTUR SISTEM. Alif Finandhita, S.Kom, M.T. Alif Finandhita, S.Kom, M.T 1

PROSES DAN THREADS DALAM SISTEM OPERASI

ARSITEKTUR DAN ORGANISASI KOMPUTER

Bab 23. Deadlocks Pendahuluan. Gambar Contoh kasus deadlock pada lalu lintas di jembatan

Koordinasi Antar Proses

Arsitektur Sistem Komputer. Operasi Sistem Komputer. Struktur Sistem Komputer. Review:

MAKALAH SISTEM OPERASI Perbedaan Proses dan Thread. Disusun Oleh : NOVITA ANGGRAINI PUTRI

Operating System. Synchronization & Deadlock. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

TUGAS SISTEM OPERASI

TEKNIK RECOVERY (ref. Fundamentals of DB Systems, Elmasri, N)

Computer System Structures

STRUKTUR CPU. Arsitektur Komputer

SISTEM OPERASI. Sri Kusumadewi

Struktur Sistem Komputer

Jawaban Soal UTS Instalasi dan Penggunaan Sistem Operasi Semester Genap 2014/2015 D3 Teknik Informatika, Fakultas Ilmu Terapan, Universitas Telkom

Text Berisi kode programnya

Struktur Central Processing Unit Universitas Mercu Buana Yogyakarta

BAB 8 PENGENALAN KONTROL INPUT/OUTPUT

Apa yang dimaksud dengan program?

Transkripsi:

Sistem Operasi 6 Process Synchronization Antonius Rachmat C, S.Kom, M.Cs

Paralel l Processing Paralel alel processing is a situation in which two/more processor operate in unison. Executing instruction simultaneously Benefits: increase reliability & faster processing Evolution: Job level: each job 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

Mengapa Sinkronisasi i i Sinkronisasi i diperlukan untuk menghindari i terjadinya ketidak konsistenan data akibat adanya akses data secara konkuren Diperlukan adanya suatu mekanisme untuk memastikan urutan / giliran pengaksesan suatu data yang saling bekerjasama sehingga terjadi sinkronisasi If we don t make process synchronization: Race Condition

Review: Producer and Consumer #define BUFFER_SIZE 10 typedef struct {... } item; item buffer[buffer_size]; int in = 0; int out = 0; int counter = 0;

Producer while (true) { } /* produce an item and put in nextproduced */ while (count == BUFFER_ SIZE){ } // do nothing buffer [in] = nextproduced; in = (in + 1) % BUFFER_SIZE; count++;

Consumer while (true) { while (count == 0){ } // do nothing nextconsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; count--; } /* consume the item in nextconsumed

The statements t t counter++; counter--; Atomic Process must be performed atomically. Atomic operation means an operation that completes in its entirety without interruption.

Bounded-Buffer Buffer Perintah count++ diimplementasikan pada bahasa mesin: register1 = counter register1 = register1 + 1 counter = register1 Perintah count-- diimplementasikan pada bahasa mesin: register2 = counter register2 = register2 1 counter = register2 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 Kesalahan nilai akhir counter dapat terjadi, tergantung dari penjadwalan yang dilakukan terhadap proses yang dilakukan oleh produsen dan konsumen. Dengan kata lain, masalah tersebut belum tentu terjadi, tapi dapat terjadi

Misalnya Consider this execution interleaving with count = 5 initially: t0: producer execute register1 = 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} t4: producer execute count = register1 {count = 6 } t5: consumer execute count = register2 {count = 4}

Race Condition i 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 Untuk menghindari terjadinya situasi tersebut, semua proses yang dapat mengakses suatu data tertentu harus disinkronisasi

Cii Critical Section Lebih dari satu poe proses berlomba-lomba belomb pada saat yang sama untuk menggunakan data yang sama. Setiap proses memiliki segmen kode yang digunakan untuk mengakses data yang digunakan secara bersama-sama. Segmen kode tersebut disebut critical section. Masalahnya: menjamin bahwa jika suatu proses sedang menjalankan critical section, maka proses lain tidak boleh masuk ke dalam critical section tersebut.

Solusi masalah critical section Mutual Exclusion 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 mengenai kecepatan relatif setiap proses ataupun jumlah CPU.

Implementasi solusi 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 Solusi perangkat keras Tergantung pada beberapa b instruksi i mesin tertentu, misalnya dengan me-non-aktifkan interuppt atau dengan mengunci (lock) suatu variabel tertentu

Implementasi software dan asumsinya Misal hanya ada dua proses, yaitu P0 dan P1. Struktur umum dari proses Pi (proses yang lain: Pj) Proses-proses tersebut boleh berbagi beberapa variabel yang sama untuk mensinkronisasikan apa yang akan dilakukan oleh setiap proses tersebut. t

Algoritma 1 Variabel yang digunakan bersama: int turn; //pada awalnya turn = 0 turn = i; //Pi dapat masuk ke critical section Untuk proses Pi If P0 ingin akses critical section turn diset ke 0, if P1 juga akses, turn diset ke 1 Mutual exclusion but not progress nor bounded buffer If P0 selesai menggunakan critical section, turn diset ke 1, tapi P1 tidak ingin masuk ke critical section, jadi turn tidak akan diset ke 0.

Algoritma 2 Variabel yang digunakan bersama: boolean flag[2]; pada awalnya flag [0] = flag [1] = false flag [i] = true; //Pi dapat masuk ke critical section If P0 mengakses critical section P0 mengeset flag[0] ke True. Sementara P1 masih menggunakan critical section, P0 akan menunggu. If P0 finish, P0 akan set flag[0] ke false. Mutual exclusion but not progress nor bounded buffer Tapi jika P0 & P1 ingin akses ke critical section secara a konkuren, keduanya akan set flag[0] & flag[1] ke true, dan semua proses menunggu terus

Peterson s Algorithm The two processes share two variables: int turn; Boolean flag[2]; The variable turn indicates whose turn it is to enter the critical section. The flag array is used to indicate if a process is ready to enter the critical section. flag[i] = true implies that process P i is ready!

Algorithm for Process P i while (true) { flag[i] = TRUE; turn = j; while ( flag[j] && turn == j); } CRITICAL SECTION flag[i] = FALSE; REMAINDER SECTION Mutual exclusion progress and bounded buffer! Mutual exclusion, progress, and bounded buffer! If P0 want to access critical section, P0 will set flag[0] to true and turn to P1.

Bakery Algorithm Critical section for: n processes Sebelum memasuki critical section, setiap proses menerima sebuah nomor. Yang memegang ID terkecil yang dilayani dahulu. Skema penomoran selalu naik secara berurut, contoh: 1, 2, 2, 2, 3, 3, 4, 5 Diperkenalkan pertama kali oleh Leslie Lamport. Data yang digunakan bersama boolean choosing [n]; int number [n]; Struktur data diinisialisi awal ke false dan 0. (a,b) < (c,d) jika a < c atau jika a = c dan b < d

Bakery Algorithm

Sinkronisasi i i Metode dalam sinkronisasi hardware Processor Synchronous ( Disable Interrupt ) Memory Synchronous ( Instruksi Test-And-Set ) Interrupt used in Round Robin Algorithm, with quantum time Processor synchronous Dengan men-disable interupsi (interrupt) Dalam lingkungan multiprocessor: Hanya satu processor bisa didisable interruptnya Memory synchronous Instruksi Test-And-Set, Wait-Signal, 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 Kelemahan: bisa terjadi starvation & busy waiting

Mutual Exclusion: Swap HardwareData lock = new HardwareData(false); // a shared lock HardwareData key = new HardwareData(true); // my key while (true) { key.set(true); // my key is now true do { 1 st Process 2 nd Process key true false I got it! key true lock.swap(key); // my key got lock s content. 1 st swap 2 nd swap } while (key.get() == true); // this means lock was true locked! } criticalsection( ca ); // now in critical ca section code lock.set(false); noncriticalsection( ); // out of critical section Lock false true

Mutual Exclusion: Memory synchronous Kelebihan: Dapat diaplikasikan ke beberapa prosesor, dengan sharing memory Simpel dan mudah diverifikasi Dapat digunakan untuk banyak critical section Kekurangan: Busy-waiting memakan processor time yang besar Mungkin terjadi starvation Deadlock 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 Invented by Djikstra (1960) Semaphore digunakan untuk memberi sinyal Non negative integer Jika proses menunggu sinyal, maka dia akan ditunda sampai sinyal yg ditunggu tersebut terkirim Operasi: wait dan signal Wait dan signal operations tidak dapat diinterupt Queue digunakan untuk menahan proses proses yang sedang menunggu semaphore

Semaphore Two standard operations modify S: wait() and signal() Originally called P() and V() Can only be accessed via two indivisible (atomic) operations wait (S) { while S <= 0 ; // no-op S--; } jika s < 0 akan menunggu, lalu menjalankan proses lain signal (S) { S++; } memberikan kesempatan bagi para proses untuk berkompetisi mendapatkan semafore

Semaphore: Wait - Spinlock

Semaphore: Wait non spinlock

Semaphore: Signal

Contoh Semaphore Test(s) = if mutex > 0 then mutex = mutex 1 Inc(s) = mutex = mutex + 1

Implementasi Semaphore Windows Fungsi yg dipakai adalah CreateSemaphore Biasanya digunakan untuk membatasi jumlah thread yang memakai suatu resource secara bersamaan 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 Readers and Writers Problem Dining-Philosophers Problem

Bounded d Buffer Pengertian: n tempat t penampung ng data yang ukurannya terbatas Contoh: proses produsen dan konsumen Masalah produsen-konsumen Produsen menaruh data pada buffer. Jika buffer tersebut sudah terisi penuh, maka produsen tidak melakukan apa-apa dan menunggu sampai konsumen mengosongkan isi buffer. Konsumen mengambil data dari buffer. Jika buffer tersebut kosong, maka konsumen tidak melakukan apa-apa p dan menunggu sampai buffer tersebut diisi oleh produsen.

Penyelesaian dgn Semaphore Semafor mutex Menyediakan mutual exclusion untuk mengakses buffer Inisialisasi dengan nilai 1 Semafor full Menyatakan jumlah buffer yang sudah terisi Inisialisasi dengan nilai 0 Semafor empty Menyatakan jumlah buffer yang kosong Inisialisasi dengan nilai n (jumlah buffer)

Bounded d Buffer Producer Init => full = 0, empty = n, mutex = 1

Bounded d Buffer Consumer

Contoh Producer & Consumer

The Readers-Writers Problem Multiple readers or a single writer can use DB. writer X reader reader writer X X reader writer reader writer reader reader reader reader

Reader & Writers Diketahui i dua macam proses: Pembaca (reader) Penulis (writer) Kedua jenis proses berbagi sumber daya penyimpanan yang sama, Misal: Basis data 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

Data set Shared Data Semaphore mutex initialized to 1, tanda mutual exclusion Semaphore wrt initialized iti to 1, tanda untuk menulis Integer readcount initialized to 0, tanda untuk membaca

Readers-Writers The structure of a writer process while (true) { wait (wrt) ; // writing is performed } signal (wrt) ;

Readers-Writers Wi The structure of a reader process while (true) { wait (mutex) ; readcount ++ ; if (readcount == 1) wait (wrt) ; signal (mutex) // reading is performed } wait (mutex) ; readcount - - ; if (readcount == 0) signal (wrt) ; signal (mutex) ;

Dining i Philosopher h Diketahui: Mie (Data) Sebuah meja bundar N filsuf duduk melingkar di meja bundar Antara dua filsuf terdapat sebuah sumpit Didepan setiap filsuf terdapat semangkuk mie Setiap filsuf f hanya dapat berada pada salah satu kondisi berikut: Berpikir Lapar Makan

Dining i Philosopher h Shared data Bowl of rice (data set) Semaphore chopstick [5] initialized to 1 Dua hal yang harus diperhatikan: Deadlock: Semua filsuf ingin makan dan telah memegang sumpit Starvation: Ada filsuf yang kelaparan Starvation: Ada filsuf yang kelaparan dalam waktu yang lama

The Structure of Philosopher i Philosopher I While (true) { wait ( chopstick[i] ); //kanan wait ( chopstick[ (i + 1) % 5] ); //kiri // eat signal ( chopstick[i] ); //kanan signal (chopstick[ (i + 1) % 5] ); //kiri // think Waiting Picked up } Adeadlockoccurs! occurs!

Kelemahan Semaphore Termasuk Low Level Kesulitan dalam pemeliharaannya, karena tersebar dalam seluruh program. Menghapus wait => dapat terjadi non- mutual exclusion. Menghapus signal => dapat terjadi deadlock Error yang terjadi sulit untuk dideteksi

System Model Assures that operations happen as a single logical unit of work, in its entirety, or not at all Challenge is assuring atomicity despite computer system failures Transaction - collection of instructions or operations that performs single logical function Here we are concerned with changes to stable storage disk Transaction is series of read and write operations Terminated by commit (transaction successful) or abort (transaction failed) operation Aborted transaction must be rolled back to undo any changes it performed

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

Log-Based Recovery Record to stable storage information about all modifications by a transaction Most common is write-ahead logging Log on stable storage, each log record describes single transaction write operation, including Transaction name Data item name Old value New value <T i starts> written to log when transaction T i starts <T i commits> written when T i commits

Log-Based Recovery Algorithm Using the log, system can handle any volatile memory errors Undo(T i ) restores value of all data updated by T i Redo(T i ) sets values of all data in transaction T i to new values Undo(T i ) and redo(t i ) must be idempotent Multiple executions must have the same result as one execution If system fails, restore state of all updated data via log If log contains <T i starts> without <T i commits>, undo(t i ) If log contains <T i starts> and <T i commits>, redo(t i )

Checkpoints Log could become long, and recovery could take long Checkpoints shorten log and recovery time. 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 <checkpoint> to the log on stable storage

NEXT Deadlock