concurrency: mutual exclusion dandan sinkronisasi sinkronisasi operasi/20100930 #2. concurrency (1)

Download Concurrency: Mutual Exclusion dandan Sinkronisasi Sinkronisasi Operasi/20100930 #2. Concurrency (1)

Post on 25-Aug-2019

217 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • ConcurrencyConcurrency:: Mutual Exclusion Mutual Exclusion dandan

    Sinkronisasi Sinkronisasi (Pertemuan ke(Pertemuan ke--8)8)

  • PendahuluanPendahuluanPendahuluanPendahuluan • Apa yang akan dipelajari ?

    – Ruang lingkup concurrency – Contoh kasus perlunya concurrencyContoh kasus perlunya concurrency – Jenis interaksi antar proses – Mekanisme mutual exclusionMekanisme mutual exclusion – Implementasi mutual exclusion

    Semaphore– Semaphore – Monitor

    M i– Message passing – Beberapa contoh kasus

    Sistem Operasi/20100930 #2

  • ConcurrencyConcurrency (1)(1)yy

    • Concurrency = kebersamaany • Apa yang menjadi ruang lingkup

    concurrency ?concurrency ? – Komunikasi antar proses – Sharing dan kompetisi penggunaan

    resourceresource – Sinkronisasi antar berbagai proses

    Pengalokasian waktu prosesor untuk– Pengalokasian waktu prosesor untuk setiap proses

    #3Sistem Operasi/20100930

  • ConcurrencyConcurrency (2)(2)yy

    • Di mana concurrency diperlukan ?y p – Multiprogramming

    • Banyak proses satu prosesor• Banyak proses - satu prosesor – Multiprocessing

    • Banyak proses - banyak prosesor (dalam satu komputer)

    – Distributed processing • Banyak proses – banyak komputery p y p

    #4Sistem Operasi/20100930

  • ConcurrencyConcurrency (3)(3)yy ( )( ) • Istilah-istilah berhubungan dg concurrency:g g y

    – Critical section: • Resource yang dalam satu waktu hanya boleh

    tdiakses oleh satu proses saja • Contoh resource: printer, baris-baris program, file,

    dlldll – Deadlock:

    • Keadaan dimana dua proses atau lebih tidak dapat p p meneruskan eksekusi akibat saling menunggu aksi/data

    – Livelock:– Livelock: • Keadaan dimana dua proses atau lebih saling mengubah

    status sebagai respon terhadap perubahan status proses l i t j k k j b tiyang lain tanpa mengerjakan pekerjaan yang berarti

    #5Sistem Operasi/20100930

  • ConcurrencyConcurrency (4)(4)yy ( )( ) • Istilah-istilah berhubungan dg concurrency:

    (l j t )(lanjutan) – Mutual exclusion:

    S /k di i h di hi k h• Syarat/kondisi yang harus dipenuhi untuk mencegah terjadinya pengaksesan critical section oleh lebih dari satu proses dalam satu saatp

    – Race condition: • Keadaan dimana terdapat banyak thread atau proses

    k d t b ( h d d t )mengakses data bersama (shared data) yang menyebabkan hasil akhir sulit dipastikan (bergantung pada lama waktu eksekusi setiap proses)

    – Starvation: • Keadaan dimana suatu proses yang siap dieksekusi

    terus menerus tidak diberi kesempatan untukterus menerus tidak diberi kesempatan untuk melakukan aksinya

    #6Sistem Operasi/20100930

  • ConcurrencyConcurrency (5)(5)yy ( )( )

    • Interleaving dan overlappingg pp g

    #7Sistem Operasi/20100930

  • ConcurrencyConcurrency (6)(6)yy ( )( ) • Permasalahan pada multiprogramming dan

    multiprocessor: – Pemanfaatan resource bersama-sama (global) (g )

    penuh resiko • Misal: variabel global

    – Pengaturan alokasi resource sukar dilakukan • Misal: bila suatu device I/O sedang diakses oleh

    suatu proses dan tiba-tiba proses tersebut ter- interrupt, maka device I/O harus tetap dapat digunakan oleh proses yang laindigunakan oleh proses yang lain

    – Sulit untuk melacak kesalahan program, karena kesalahan yang terjadi sukar diprediksikarena kesalahan yang terjadi sukar diprediksi dan diulangi

    #8Sistem Operasi/20100930

  • Contoh Kasus 1 Contoh Kasus 1 • Sebuah prosedur digunakan 2 buah proses dalam

    uniprosesor:uniprosesor: void echo() {

    chin = getchar();// dari keyboardchin = getchar();// dari keyboard chout = chin; putchar(chout); // ke monitor

    }}

    • Masalah: – Ada 2 proses (P1 dan P2) yang masing-masing dapat memanggil prosedur

    di atasdi atas – Pada saat P1 sedang menjalankan prosedur tsb pada baris getchar tiba-

    tiba P1 terinterrupt oleh P2, misal chin = x – P2 menjalankan prosedur dan mengubah nilai chin = yP2 menjalankan prosedur dan mengubah nilai chin y – Saat P1 kembali  nilai chin berbeda  y ditampilkan 2 kali

    • Solusi: P d echo di t k i hi d l t t h t– Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses yang boleh menggunakannya  proses lain diblok

    #9Sistem Operasi/20100930

  • Contoh Kasus 2 Contoh Kasus 2 • Sebuah prosedur digunakan 2 buah proses dalam multiprosesor:

    Process P1 Process P2Process P1 Process P2 . . chin = getchar(); . . chin = getchar();g (); chout = chin; chout = chin; putchar(chout); . . putchar(chout); . .

    • Masalah: – Ada 2 proses (P1 dan P2) yang masing-masing dapat memanggil

    d d p ( ) y g g g p gg

    prosedur di atas – Pada saat P1 sedang menjalankan prosedur tsb pada baris getchar tiba-

    tiba P2 juga menjalankan prosedur yang sama  data P1 pada chin tertimpatertimpa

    – Baik P1 dan P2 sama-sama menampilkan hasil dari P2 • Solusi:

    Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses– Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses yang boleh menggunakannya  proses lain diblok

    #10Sistem Operasi/20100930

  • Race Condition Race Condition (1)(1)( )( ) • Hasil proses bergantung pada urutan

    eksekusi setiap proses • Contoh 1:Contoh 1:

    – Dua buah proses P1 dan P2 sama-sama menggunakan variabel global amenggunakan variabel global a

    – P1 mengubah nilai a = 1, P2 mengubah nilai a = 2 2

    – Nilai a ditentukan oleh proses yang “kalah” (yang mengakses variabel a belakangan)(yang mengakses variabel a belakangan)

    #11Sistem Operasi/20100930

  • Race Condition Race Condition (2)(2)( )( ) • Contoh 2:

    – Dua buah proses P3 dan P4 sama-sama menggunakan variabel global b dan c yang masing-masing bernilai b=1 dan c=2

    – P3 menjalankan baris program b=b+c – P4 menjalankan baris pogram c=b+c – Jika P3 yang dieksekusi lebih dahulu, maka J a 3 ya g d e se us eb da u u, a a

    hasilnya: b=3 dan c=5 – Jika P4 yang dieksekusi lebih dahulu, maka y g ,

    hasilnya: b=4 dan c=3  Hasil akhir sangat berbeda !!!g

    #12Sistem Operasi/20100930

  • Peranan OS dalam ConcurrencyPeranan OS dalam ConcurrencyPeranan OS dalam ConcurrencyPeranan OS dalam Concurrency

    • Apa yang harus dilakukan OS untuk memperoleh concurrency ? – OS harus dapat menjaga track (info state, p j g ( ,

    prioritas, resource, dll) setiap proses – OS harus dapat memberi dan mengambil p g

    resource (waktu prosesor, memory, file, I/O device) kepada setiap proses yang aktif

    – OS harus dapat memproteksi data dan resource yang sedang digunakan suatu proses

    – OS harus dapat menjamin hasil suatu proses id k di hi l h ktidak dipengaruhi oleh kecepatan pemrosesan

    #13Sistem Operasi/20100930

  • Jenis Interaksi Antar ProsesJenis Interaksi Antar Proses

    •Misal: multiprogramming (Winamp, media player, dll)player, dll)

    •Misal: penggunaan variabel global, share memory, I/O buffer, dll

    #14Sistem Operasi/20100930

  • Kompetisi Antar Proses Kompetisi Antar Proses (1)(1)pp ( )( ) • Dua proses atau lebih saling berkompetisi

    memperebutkan sebuah resourcememperebutkan sebuah resource • Masalah apa yang mungkin terjadi ?

    – Mutual Exclusion– Mutual Exclusion • Sebuah resource diakses oleh dua buah proses atau lebih secara

    bersamaan Mi l d b h i i k b h i• Misal: dua buah proses ingin mengakses sebuah printer

    – Deadlock D t l bih saling d t t• Dua proses atau lebih saling menunggu data atau resource lain yang sedang digunakan oleh proses yang lain

    • Misal: – Dua buah proses P1 dan P2 sama-sama membutuhkan resource R1

    dan R2 – OS telah memberikan R2 kepada P1 dan R1 kepada P2

    P1 d P2 tid k l k d

    #15

    – P1 dan P2 sama-sama tidak mau melepaskan resource yang sedang digunakan karena kebutuhannya belum terpenuhi  deadlock

    Sistem Operasi/20100930

  • Kompetisi Antar Proses Kompetisi Antar Proses (2)(2)pp ( )( ) – Starvation

    • Terdapat satu proses atau lebih yang tidak pernah mendapat giliran dieksekusi (memperoleh resource)

    • Misal: d d– Ada 3 proses P1, P2, dan P3

    – Mula-mula P1 dieksekusi, P2 dan P3 menunggu gilirangiliran

    – Setelah P1 selesai, P3 mendapat giliran – Sebelum P3 selesai, P1 telah melakukan interrupt

    i k di k k i  P2 d l iminta untuk dieksekusi  P2 tertunda lagi – Bila kodisi seperti di atas terjadi terus menerus 

    P2 tidak pernah mendapatkan giliran  starvationP2 tidak pernah mendapatkan giliran  starvation (kelaparan)

    #16Sistem Operasi/20100930

  • Kerjasama Antar Proses melalui Kerjasama Antar Proses melalui SharingSharingjj gg

    • Beberapa proses berbagi data yang sama tanpa t h i id tit l i t t imengetahui identitas proses yang lain, tetapi

    sama-sama sepakat menjaga integritas data M b t hk k i t k j• Membutuhkan mekanisme untuk menjaga koherensi/konsistensi/integritas data A di h ?• Apa yang di-share ? – Variabel, file, atau database

    M d l k• Model akses: – Read (baca): semua proses boleh membaca secara

    bersama samabersama-sama – Write (tulis): dalam satu saat hanya satu proses