SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
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 -
    Review




O 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 -
    Review




P 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 & Obyektif




O 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 Section




O 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 Section




L 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 Section




I 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 Section




I 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 Section




A 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 Section




K 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 Section




I LUSTRASI




                                         G AMBAR : Kondisi race
Sistem Operasi - Sinkronisasi Proses -
    Critical Section




O 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 Section




B 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 Section




I LUSTRASI




                                         G AMBAR : Struktur critical section
Sistem Operasi - Sinkronisasi Proses -
    Critical Section




S 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 Section




A 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 Section




S 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 keras




O 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 keras




I 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 keras




P 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 keras




I NSTRUKSI SWAP



         D EFINITION

                   void swap(boolean* a, boalean* b) {
                             boolean temp=*a;
                             *a=*b;
                             *b=temp;
                   }
Sistem Operasi - Sinkronisasi Proses -
    Sinkronisasi perangkat keras




P ENERAPAN SWAP



                   do {
                             key TRUE;
                             while(key==TRUE) {
                                         swap(&lock,&key);
                                         /*do critical section*/
                             }
                             lock=FALSE;
                             /*remainder section*/
                   }while(TRUE)
Sistem Operasi - Sinkronisasi Proses -
    Semaphore




O 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 -
    Semaphore




KONSEP


                   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 -
    Semaphore




KONSEP


                   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 -
    Semaphore




I LUSTRASI : PSEUDOCODE


                   acquire() {
                             while(value<=0) {
                                         /*no operation*/
                             }
                             value--;
                   }
                   release() {
                             value++;
                   }
Sistem Operasi - Sinkronisasi Proses -
    Semaphore




P ENGGUNAAN




                   Semaphore sem=new Semaphore(1);
                   sem.acquire();
                   /*do critical section*/
                   sem.release();
                   /*remainder section*/
Sistem Operasi - Sinkronisasi Proses -
    Semaphore




P 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 -
    Semaphore




P 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 -
    Semaphore




P ENGGUNAAN
Sistem Operasi - Sinkronisasi Proses -
    Semaphore




S 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 -
    Semaphore




P 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 -
    Semaphore




D 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 sinkronisasi




O 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 sinkronisasi




M ASALAH KLASIK SINKRONISASI




                   Bounded Buffer (Dijkstra)
                   Readers Writers (Courtois, Heymans, Parnas)
                   Dining Philosopher (Dijkstra)
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




B 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 sinkronisasi




B OUNDED B UFFER
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




B OUNDED B UFFER
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




B OUNDED B UFFER
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




B OUNDED B UFFER : P RODUCER
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




B OUNDED B UFFER : C ONSUMER
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




B OUNDED B UFFER : FACTORY
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




R 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 sinkronisasi




P ROSES W RITERS




                   do {
                             wait(wrt);
                             /*writing*/
                             signal(wrt);
                   }while(TRUE)
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




P 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 sinkronisasi




D INING P HILOSOPERS




                                         G AMBAR : Ilustrasi
Sistem Operasi - Sinkronisasi Proses -
    Masalah klasik sinkronisasi




P 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 -
    Monitor




O 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 -
    Monitor




M ONITOR

                   Mekanisme lain menjamin mutual exclusion
                   Hanya ada satu proses yang berada dalam monitor
Sistem Operasi - Sinkronisasi Proses -
    Monitor




I LUSTRASI




                                         G AMBAR : Ilustrasi Monitor
Sistem Operasi - Sinkronisasi Proses -
    Monitor




K ASUS KHUSUS
         Ada antrian khusus untuk kondisi khusus dalam monitor (x,y)
             x.wait(): proses ditunda
             x.signal(): resume




                                         G AMBAR : Kondisi khusus

Weitere ähnliche Inhalte

Was ist angesagt?

Bab 12 teknik pengaturan otomts
Bab 12   teknik pengaturan otomtsBab 12   teknik pengaturan otomts
Bab 12 teknik pengaturan otomts
Eko Supriyadi
 
Pengertian plc dan jenis
Pengertian plc dan jenisPengertian plc dan jenis
Pengertian plc dan jenis
Dedew Wijayanti
 
4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis
galaksiumat
 
160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses
Dicky Syahputra
 
Pengertian plc
Pengertian plcPengertian plc
Pengertian plc
Huda Messy
 
Praktikum 05 Sistem Basis Data
Praktikum 05 Sistem Basis DataPraktikum 05 Sistem Basis Data
Praktikum 05 Sistem Basis Data
Aditya Nugroho
 
Simulink PID
Simulink PIDSimulink PID
Simulink PID
denaadi
 

Was ist angesagt? (19)

Sistem kendali
Sistem kendaliSistem kendali
Sistem kendali
 
Bab 12 teknik pengaturan otomts
Bab 12   teknik pengaturan otomtsBab 12   teknik pengaturan otomts
Bab 12 teknik pengaturan otomts
 
Pengertian plc dan jenis
Pengertian plc dan jenisPengertian plc dan jenis
Pengertian plc dan jenis
 
4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis4 klsisfikasi sistem kontrol otomatis
4 klsisfikasi sistem kontrol otomatis
 
Pengontrolan PID pada Mesin Listrik
Pengontrolan PID pada Mesin ListrikPengontrolan PID pada Mesin Listrik
Pengontrolan PID pada Mesin Listrik
 
5 peralatan otomasi industri
5 peralatan otomasi industri5 peralatan otomasi industri
5 peralatan otomasi industri
 
Laprak sbd
Laprak sbd Laprak sbd
Laprak sbd
 
5.sinkronisasi proses
5.sinkronisasi proses5.sinkronisasi proses
5.sinkronisasi proses
 
alat pemindah barang microcontroler berbasis PLC
alat pemindah barang microcontroler berbasis PLCalat pemindah barang microcontroler berbasis PLC
alat pemindah barang microcontroler berbasis PLC
 
Alat penyortir botol minum berbasis plc
Alat penyortir botol minum berbasis plcAlat penyortir botol minum berbasis plc
Alat penyortir botol minum berbasis plc
 
Pi dxmm
Pi dxmmPi dxmm
Pi dxmm
 
160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses160124864 bab-i-konsep-dasar-pengendalian-proses
160124864 bab-i-konsep-dasar-pengendalian-proses
 
Modul praktikum instruksi dasar
Modul praktikum instruksi dasarModul praktikum instruksi dasar
Modul praktikum instruksi dasar
 
Mengenal PLC
Mengenal PLCMengenal PLC
Mengenal PLC
 
Pengertian plc
Pengertian plcPengertian plc
Pengertian plc
 
Sistem kendali di industri
Sistem kendali di industriSistem kendali di industri
Sistem kendali di industri
 
Perancangan Sistem Kontrol Otomatis Mesin Perontok Bulu Ayam Berbasis PLC
Perancangan Sistem Kontrol Otomatis Mesin Perontok Bulu Ayam Berbasis PLCPerancangan Sistem Kontrol Otomatis Mesin Perontok Bulu Ayam Berbasis PLC
Perancangan Sistem Kontrol Otomatis Mesin Perontok Bulu Ayam Berbasis PLC
 
Praktikum 05 Sistem Basis Data
Praktikum 05 Sistem Basis DataPraktikum 05 Sistem Basis Data
Praktikum 05 Sistem Basis Data
 
Simulink PID
Simulink PIDSimulink PID
Simulink PID
 

Ähnlich wie Os06

Bab012006 pengantarpengendalianproses
Bab012006 pengantarpengendalianprosesBab012006 pengantarpengendalianproses
Bab012006 pengantarpengendalianproses
Aman Dias
 
Henki projo wicaksono metode section technique
Henki projo wicaksono metode section techniqueHenki projo wicaksono metode section technique
Henki projo wicaksono metode section technique
Arie Subandi
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen proses
Hz Tena
 
Rpl 03 - proses proses perangkat lunak
Rpl   03 - proses proses perangkat lunakRpl   03 - proses proses perangkat lunak
Rpl 03 - proses proses perangkat lunak
Febriyani Syafri
 

Ähnlich wie Os06 (20)

Os03
Os03Os03
Os03
 
Sinkronisasi Proses
Sinkronisasi ProsesSinkronisasi Proses
Sinkronisasi Proses
 
Os02
Os02Os02
Os02
 
Sinkronisasi
SinkronisasiSinkronisasi
Sinkronisasi
 
Os07
Os07Os07
Os07
 
Bab012006 pengantarpengendalianproses
Bab012006 pengantarpengendalianprosesBab012006 pengantarpengendalianproses
Bab012006 pengantarpengendalianproses
 
15.04.146 jurnal eproc
15.04.146 jurnal eproc15.04.146 jurnal eproc
15.04.146 jurnal eproc
 
205
205205
205
 
Reni Seftiani - Sinkronisasi Proses Sistem Operasi
Reni Seftiani -  Sinkronisasi Proses Sistem OperasiReni Seftiani -  Sinkronisasi Proses Sistem Operasi
Reni Seftiani - Sinkronisasi Proses Sistem Operasi
 
Ferli Apriadi - Sinkronisasi
Ferli Apriadi - SinkronisasiFerli Apriadi - Sinkronisasi
Ferli Apriadi - Sinkronisasi
 
Sistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlock
 
Os05
Os05Os05
Os05
 
Oktaviani Tri Andini - Sinkronisasi Proses
Oktaviani Tri Andini - Sinkronisasi ProsesOktaviani Tri Andini - Sinkronisasi Proses
Oktaviani Tri Andini - Sinkronisasi Proses
 
Nurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi ProsesNurrohmah - Sinkronisasi Proses
Nurrohmah - Sinkronisasi Proses
 
8 sistem-kontrol-dfa
8 sistem-kontrol-dfa8 sistem-kontrol-dfa
8 sistem-kontrol-dfa
 
Henki projo wicaksono metode section technique
Henki projo wicaksono metode section techniqueHenki projo wicaksono metode section technique
Henki projo wicaksono metode section technique
 
Kendali level air
Kendali level airKendali level air
Kendali level air
 
1.plc dasar1
1.plc dasar11.plc dasar1
1.plc dasar1
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen proses
 
Rpl 03 - proses proses perangkat lunak
Rpl   03 - proses proses perangkat lunakRpl   03 - proses proses perangkat lunak
Rpl 03 - proses proses perangkat lunak
 

Os06

  • 1. 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
  • 2. 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
  • 3. Sistem Operasi - Sinkronisasi Proses - Review O 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
  • 4. Sistem Operasi - Sinkronisasi Proses - Review P 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
  • 5. Sistem Operasi - Sinkronisasi Proses - Overview & Obyektif O 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
  • 6. 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
  • 7. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section O 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
  • 8. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section L 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
  • 9. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section I 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;
  • 10. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section I 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;
  • 11. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section A 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
  • 12. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section K 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}
  • 13. Sistem Operasi - Sinkronisasi Proses - Konsep Critical Section I LUSTRASI G AMBAR : Kondisi race
  • 14. Sistem Operasi - Sinkronisasi Proses - Critical Section O 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
  • 15. Sistem Operasi - Sinkronisasi Proses - Critical Section B 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)
  • 16. Sistem Operasi - Sinkronisasi Proses - Critical Section I LUSTRASI G AMBAR : Struktur critical section
  • 17. Sistem Operasi - Sinkronisasi Proses - Critical Section S 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
  • 18. Sistem Operasi - Sinkronisasi Proses - Critical Section A LGORITMA Pi while (true) { flag[i] = true; turn = j; while (flag[j] && turn == j) //critical section flag[i] = false //remainder section }
  • 19. Sistem Operasi - Sinkronisasi Proses - Critical Section S 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;
  • 20. Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat keras O 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
  • 21. 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
  • 22. Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat keras I NSTRUKSI T ESTA ND S ET D EFINITION int TestAndSet(int* target) { int returnval; returnval=*target; *target=1; return returnval; }
  • 23. Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat keras P ENERAPAN T ESTA ND S ET do { while(TestAndSet(&lock)) { /*do nothing*/ } /*do critical section*/ lock=0; /*remainder section*/ }while(TRUE)
  • 24. Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat keras I NSTRUKSI SWAP D EFINITION void swap(boolean* a, boalean* b) { boolean temp=*a; *a=*b; *b=temp; }
  • 25. Sistem Operasi - Sinkronisasi Proses - Sinkronisasi perangkat keras P ENERAPAN SWAP do { key TRUE; while(key==TRUE) { swap(&lock,&key); /*do critical section*/ } lock=FALSE; /*remainder section*/ }while(TRUE)
  • 26. Sistem Operasi - Sinkronisasi Proses - Semaphore O 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
  • 27. Sistem Operasi - Sinkronisasi Proses - Semaphore KONSEP 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
  • 28. Sistem Operasi - Sinkronisasi Proses - Semaphore KONSEP 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--; }
  • 29. Sistem Operasi - Sinkronisasi Proses - Semaphore I LUSTRASI : PSEUDOCODE acquire() { while(value<=0) { /*no operation*/ } value--; } release() { value++; }
  • 30. Sistem Operasi - Sinkronisasi Proses - Semaphore P ENGGUNAAN Semaphore sem=new Semaphore(1); sem.acquire(); /*do critical section*/ sem.release(); /*remainder section*/
  • 31. Sistem Operasi - Sinkronisasi Proses - Semaphore P 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(); } } }
  • 32. Sistem Operasi - Sinkronisasi Proses - Semaphore P 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(); } } }
  • 33. Sistem Operasi - Sinkronisasi Proses - Semaphore P ENGGUNAAN
  • 34. Sistem Operasi - Sinkronisasi Proses - Semaphore S 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
  • 35. Sistem Operasi - Sinkronisasi Proses - Semaphore P ENERAPAN wait(S) { signal(S) { value--; value++; if(value<=0) { if(value<0) { /*ke ready queue*/ /*ke waiting queue*/ wakeup(); block(); } } } }
  • 36. Sistem Operasi - Sinkronisasi Proses - Semaphore D 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
  • 37. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi O 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
  • 38. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi M ASALAH KLASIK SINKRONISASI Bounded Buffer (Dijkstra) Readers Writers (Courtois, Heymans, Parnas) Dining Philosopher (Dijkstra)
  • 39. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B 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
  • 40. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B OUNDED B UFFER
  • 41. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B OUNDED B UFFER
  • 42. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B OUNDED B UFFER
  • 43. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B OUNDED B UFFER : P RODUCER
  • 44. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B OUNDED B UFFER : C ONSUMER
  • 45. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi B OUNDED B UFFER : FACTORY
  • 46. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi R 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
  • 47. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi P ROSES W RITERS do { wait(wrt); /*writing*/ signal(wrt); }while(TRUE)
  • 48. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi P 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)
  • 49. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi D INING P HILOSOPERS G AMBAR : Ilustrasi
  • 50. Sistem Operasi - Sinkronisasi Proses - Masalah klasik sinkronisasi P ENERAPAN do { wait(chopstick[i]); wait(chopstick[i+1]%5); /*makan*/ signal(chopstick[i]); signal(chopstick[i+1]%5); /*berpikir*/ }while(TRUE)
  • 51. Sistem Operasi - Sinkronisasi Proses - Monitor O 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
  • 52. Sistem Operasi - Sinkronisasi Proses - Monitor M ONITOR Mekanisme lain menjamin mutual exclusion Hanya ada satu proses yang berada dalam monitor
  • 53. Sistem Operasi - Sinkronisasi Proses - Monitor I LUSTRASI G AMBAR : Ilustrasi Monitor
  • 54. Sistem Operasi - Sinkronisasi Proses - Monitor K ASUS KHUSUS Ada antrian khusus untuk kondisi khusus dalam monitor (x,y) x.wait(): proses ditunda x.signal(): resume G AMBAR : Kondisi khusus