• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Os06
 

Os06

on

  • 429 views

 

Statistics

Views

Total Views
429
Views on SlideShare
429
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Os06 Os06 Presentation Transcript

    • Sistem Operasi - Sinkronisasi Proses - S ISTEM O PERASI - S INKRONISASI P ROSES - Arya Adhyaksa Waskita Fakultas Ilmu Komputer Universitas Pembangunan Nasional Veteran Jakarta 14 April 2012
    • Sistem Operasi - Sinkronisasi Proses -AGENDA 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - ReviewO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - ReviewP ERTEMUAN KE -5 Meningkatkan kualitas sistem operasi. Kriteria: utilitas CPU & throughput (tinggi) turnaround time, waiting time, response time (rendah) Multiprogramming & multitasking memungkinkan banyak proses perlu penjadwal Algoritma: FCFS, SJF, RR, multilevel Penjadwalan pada thread & multiprosesor homogen heterogen: simetrik & asimetrik
    • Sistem Operasi - Sinkronisasi Proses - Overview & ObyektifO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - Overview & Obyektif Mempelajari konsep critical section dalam kaitannya dengan konsistensi data bersama (shared data) Mempelajari solusi critical section dari sisi hardware maupun software Mempelajari konsep transaksi atomic dan mekanisme menjamin atomicity
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionL ATAR BELAKANG Akses ke shared data, dari proses-proses yang saling kerja sama, ketergantungan, concurrent, memungkinkan inkonsistensi data Merawat konsistensi data membutuhkan mekanisme untuk menjamin eksekusi “terurut” dari proses-proses yang saling tergantung Ilustrasi: counter pada producer-consumer producer: menambah counter saat menghasilkan data consumer: mengurangi counter saat membaca data
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionI LUSTRASI : Producer while (count == BUFFER.SIZE) ; // do nothing while buffer full // add an item to the buffer buffer[in] = item; in = (in + 1) % BUFFER.SIZE; ++count;
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionI LUSTRASI : Consumer while (count == 0) ; // do nothing while buffer empty // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER.SIZE; - -count;
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionA SUMSI register R1: melakukan operasi biner untuk kondisi pengisian buffer register R2: melakukan operasi biner untuk kondisi pengambilan isi buffer Operasi count++ R1=count R1=R1 + 1 count=R1 Operasi counter- - R2=count R2=R2 - 1 count=R2
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionK ASUS ( KONDISI race) Dengan asumsi operasi count++ dan count- -, dimungkinkan terjadi kondisi berikut (counter=5) T0: producer execute R1 = count {R1 = 5} T1: producer execute R1 = R1 + 1 {R1 = 6} T2: consumer execute R2 = count {R2 = 5} T3: consumer execute R2 = R2 - 1 {R2 = 4} T4: producer execute count = R1 {count = 6 } T5: consumer execute count = R2 {count = 4}
    • Sistem Operasi - Sinkronisasi Proses - Konsep Critical SectionI LUSTRASI G AMBAR : Kondisi race
    • Sistem Operasi - Sinkronisasi Proses - Critical SectionO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - Critical SectionB EBERAPA TERMINOLOGI Mutual exclusion: jika proses Pi sedang berada dalam critical section, tidak ada proses lain yang boleh mengaksesnya Critical section: code segment yang harus dieksekusi dengan cara mutual exclusion Atomic operation: sebuah operasi yang ketika dijalankan harus diselesaikan tanpa terbagi (uninterrupted)
    • Sistem Operasi - Sinkronisasi Proses - Critical SectionI LUSTRASI G AMBAR : Struktur critical section
    • Sistem Operasi - Sinkronisasi Proses - Critical SectionS OLUSI P ETERSON Asumsi: Instruksi LOAD dan STORE bersifat atomik (tidak dapat diinterupsi) Menggunakan dua variabel sebagai indikator, jika keduanya sama, proses boleh masuk ke critical section: int turn: mengindikasikan proses mana yang akan masuk critical section boolean flag[2]: flag[i]==true, menunjukkan bahwa proses ke-i siap untuk masuk ke critical section
    • Sistem Operasi - Sinkronisasi Proses - Critical SectionA LGORITMA Pi while (true) { flag[i] = true; turn = j; while (flag[j] && turn == j) //critical section flag[i] = false //remainder section }
    • Sistem Operasi - Sinkronisasi Proses - Critical SectionS OLUSI critical section DENGAN lock shared boolean lock=FALSE; /*shared variable*/ shared double amount, balance; /*shared variable*/ Program for p1 Program for p2 ... ... /*acquire lock*/ /*acquire lock*/ while(lock) {NULL;} while(lock) {NULL;} lock=true; lock=true; /*execute critical section*/ /*execute critical section*/ balance=balance+amount; balance=balance+amount; /*release lock*/ /*release lock*/ lock=false; lock=false;
    • Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat kerasO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat keras Beberapa sistem menggunakan perangkat keras untuk mendukung eksekusi instruksi-instruksi pada critical section Prosesor tunggal: dapat mencegah interrupt instruksi-instruksi critical section yang sedang dieksekusi tidak dapat diinterupsi tidak efisien pada sistem multiprosesor Mesin-mesin terkini: menyediakan instruksi khusus yang bersifat atomic (non-interruptable) jika ada dua thread yang secara bersama mengeksekusi instruksi tersebut, perangkat keras akan mengeksekusinya bergiliran
    • Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat kerasI NSTRUKSI T ESTA ND S ET D EFINITION int TestAndSet(int* target) { int returnval; returnval=*target; *target=1; return returnval; }
    • Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat kerasP ENERAPAN T ESTA ND S ET do { while(TestAndSet(&lock)) { /*do nothing*/ } /*do critical section*/ lock=0; /*remainder section*/ }while(TRUE)
    • Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat kerasI NSTRUKSI SWAP D EFINITION void swap(boolean* a, boalean* b) { boolean temp=*a; *a=*b; *b=temp; }
    • Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat kerasP ENERAPAN SWAP do { key TRUE; while(key==TRUE) { swap(&lock,&key); /*do critical section*/ } lock=FALSE; /*remainder section*/ }while(TRUE)
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreKONSEP Variabel integer Diakses melalui operasi atomic: acquire dan release, masing disimbolkan dengan P dan V Tidak menimbulkan busy waiting (dari looping) Proses yang akan masuk ke critical section dan mendapati nilai semaphore negatif dapat memblokir dirinya sendiri dengan berpindah ke waiting queue (context switch). Setiap semaphore terhubung dengan sebuah waiting queue. Proses yang terblokir akan dikembalikan ke kondisi awal dengan instruksi wakeup, sehingga dapat dipindahkan ke ready queue. Varian: semaphore biner: nilai semaphore hanya bernilai 0 dan 1 mutex lock
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreKONSEP Diakses melalui dua operasi atomic: wait/signal, acquire/release Kedua operasi atomic tidak dapat dijalankan bersama di semaphore dan waktu yang sama wait(S) { signal(S) { S++; while(S<=0) { } /*no operation*/ } S--; }
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreI LUSTRASI : PSEUDOCODE acquire() { while(value<=0) { /*no operation*/ } value--; } release() { value++; }
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreP ENGGUNAAN Semaphore sem=new Semaphore(1); sem.acquire(); /*do critical section*/ sem.release(); /*remainder section*/
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreP ENGGUNAAN public class Worker implements Runnable { private Semaphore sem; public Worker(Semaphore sem) { this.sem=sem; } public void run() { while(true) { sem.acquire(); criticalSection(); sem.release(); remainderSection(); } } }
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreP ENGGUNAAN public class SemaphoreFactory { public static void main(String args[]) { Semaphore sem=new Semaphore(1); Thread[] bees=new Thread[5]; for(int i=0;i<5;i++) { bees[i]=new Thread(new Worker(sem)); } for(int i=0;i<5;i++) { bees[i].start(); } } }
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreP ENGGUNAAN
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreS EMAPHORE TANPA busy waiting Setiap Semaphore memiliki hubungan dengan waiting queue: Setiap entry dalam waiting queue memiliki dua data: value (int) & pointer ke list berikutnya Dua operasi terkait Smaphore: block: menempatkan proses ke waiting queue wakeup: mengembalikan proses dari waiting queue ke ready queue
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreP ENERAPAN wait(S) { signal(S) { value--; value++; if(value<=0) { if(value<0) { /*ke ready queue*/ /*ke waiting queue*/ wakeup(); block(); } } } }
    • Sistem Operasi - Sinkronisasi Proses - SemaphoreD EADLOCK DAN S TARVATION Deadlock: dua atau lebih proses menunggu tanpa batas waktu Starvation: sebuah proses terblokir dalam waiting queue tanpa batas waktu Contoh: proses P0 dan P1 dalam interaksi
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiM ASALAH KLASIK SINKRONISASI Bounded Buffer (Dijkstra) Readers Writers (Courtois, Heymans, Parnas) Dining Philosopher (Dijkstra)
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER Terdapat N buffer yang masing-masing menyimpan satu item Semaphore mutex: diinisialisasi menjadi 1 Semaphore full: diinisialisasi menjadi 0 Semaphore empty: diinisialisasi menjadi N
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER : P RODUCER
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER : C ONSUMER
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiB OUNDED B UFFER : FACTORY
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiR EADERS -W RITERS Data set di-shared ke semua proses concurent Readers: hanya membaca shared data Writers: membaca dan menulis Masalah: hanya ada satu proses Writers, tetapi semua proses bisa sebagai Readers Shared data: Data set Semaphore mutex: diinisiasi ke 1 Semaphore wrt: diinisiasi ke 1 Semaphore readcount: diinisiasi ke 0
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiP ROSES W RITERS do { wait(wrt); /*writing*/ signal(wrt); }while(TRUE)
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiP ROSES R EADERS do { wait(mutex); readcount++; if(readcount==1) wait(wrt); signal(mutex); /*reading*/ wait(mutex); readcount--; if(readcount==0) signal(wrt); signal(mutex); }while(TRUE)
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiD INING P HILOSOPERS G AMBAR : Ilustrasi
    • Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasiP ENERAPAN do { wait(chopstick[i]); wait(chopstick[i+1]%5); /*makan*/ signal(chopstick[i]); signal(chopstick[i+1]%5); /*berpikir*/ }while(TRUE)
    • Sistem Operasi - Sinkronisasi Proses - MonitorO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP C RITICAL S ECTION 4 C RITICAL S ECTION 5 S INKRONISASI PERANGKAT KERAS 6 S EMAPHORE 7 M ASALAH KLASIK SINKRONISASI 8 M ONITOR
    • Sistem Operasi - Sinkronisasi Proses - MonitorM ONITOR Mekanisme lain menjamin mutual exclusion Hanya ada satu proses yang berada dalam monitor
    • Sistem Operasi - Sinkronisasi Proses - MonitorI LUSTRASI G AMBAR : Ilustrasi Monitor
    • Sistem Operasi - Sinkronisasi Proses - MonitorK ASUS KHUSUS Ada antrian khusus untuk kondisi khusus dalam monitor (x,y) x.wait(): proses ditunda x.signal(): resume G AMBAR : Kondisi khusus