Apa yang akan dipelajari?

dokumen-dokumen yang mirip
Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

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

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

Komunikasi & Sinkronisasi Proses

SOLUSI QUIZ 2 SISOP CS3613

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

Concurrency C oncurrency 2 : Deadlock dan Starvation (P ( ertemuan ke ert -15) November 2014

Bab 6: Sinkronisasi Proses. Latar Belakang

Kongkurensi LPOHLVSFOTJ!

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

Thread, SMP, dan Microkernel (P ( e P rtemuan ua ke-6) 6 Agustus 2014

Kelas: Nilai (Diisi Dosen):... IF

Laporan Tugas Scheduling Pengantar Sistem Operasi

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

BAB 4. SINKRONISASI & DEADLOCK

Sistem Operasi. Proses dan Thread

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Sistem Operasi. Konkurensi

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

Rencana Perkuliahan Sistem Operasi CSG3E3 2015/2016

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Interaksi Antar Proses

November Sistem operasi #0

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

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

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

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

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

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

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. Kongkurensi

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

Sistem Operasi PENGATURAN PROSES

Fairuz El Said Sekedar Berbagi Sistem Operasi (SO) Konkurensi KONGKURENSI

Sinkronisasi dan Deadlock Sistem Operasi

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

Perbedaan Proses dan Program

Struktur Sistem Operasi

Bab 22. Perangkat Sinkronisasi II

Bab 19. Solusi Critical Section

UJIAN TENGAH SEMESTER (UTS)

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

BAB II MANAJEMEN PROSES

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

The Critical Section Problem Algorithm III

Pertemuan 4 KONKURENSI

Thread. pada satu waktu. menjalankan banyak tugas/thread. yang sama

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

TUGAS SISTEM OPERASI

PROSES. Sistem Terdistribusi

Struktur Sistem Komputer

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

Bab 3 - Manajemen Proses 3.1

Untuk mengatasi kondisi pacu harus dijamin tidak boleh dua proses atau lebih memasuki critical section yang sama secara bersamaan.

Recap. Proses. Proses. Multiprogramming. Multiprocessing 9/16/2016. Ricky Maulana Fajri

Konsep Dasar Sistem Operasi

CRITICAL REGIONS DAN MONITORS

PROSES DAN THREADS DALAM SISTEM OPERASI

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

Process Synchronization

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

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

TUGAS Mata Kuliah : Sistem Terdistribusi

Perangkat Keras Masukan/Keluaran. Kelompok : Intan Sari H. H. Z Verra Mukty

Sinkronisasi dan Deadlock

Thread Proses merupakan sebuah program yang mengeksekusi THREAD tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu t

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

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

Pokok Bahasan: Overview Sistem Operasi Sub Pokok Bahasan: Lima Hal Utama Dalam Pengembangan Sistem Operasi Jenis sistem operasi modern TIU:

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

Struktur Sistem Komputer

Konkurensi. Faikul Umam

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

REVIEW DAN REVISI BUKU

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

Ciri2 OS yang baik : Tersusun secara modular Interface antara modul terdefinisi dengan baik dan sesederhana mungkin Terdokumentasi dengan baik'

Hanif Fakhrurroja, MT

Nama : Tsani Agustin Aghnia Toibin.S Nim : Prodi : Teknik Informatika Kelas : 21

Tipe Sistem Operasi. Stand alone Network Embedded

PRINSIP-PRONSIP KONGKURENSI meliputi halhal berikut : 1. alokasi waktu pemrosesan untuk prosesproses

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

Struktur Sistem Komputer

Sistem Operasi Komputer. Pembahasan Deadlock

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Pertemuan 2. Struktur Sistem Operasi

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

Process Synchronization (Background)

KONGKURENSI (KEBERSAMAAN) Haryono Setiadi, ST, M.Eng

Artikel Perbedaan Proses Dan Thread. Disusun Oleh : Nama : Rozy Putra Pratama NIM : Prodi : Sistem Informasi

RENCANA PEMBELAJARAN

4. SISTEM OPERASI TERDISTRIBUSI

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI 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 - C H A P T E R 2

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

4. Apa yang dimaksud dengan user mode?(nilai 3) Jawab: Adalah kondisi pada saat program user (job) sedang dieksekusi oleh prosesor.

BAB II TINJAUAN PUSTAKA

Pertemuan #3: Sinkronisasi dan Deadlock

MINGGU II DASAR SISTEM OPERASI

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma

Transkripsi:

Concurrency: Mutual Exclusion dan Sinkronisasi (Pertemuan ke-8)

Pendahuluan Apa yang akan dipelajari? Ruang lingkup concurrency Contoh kasus perlunya concurrency Jenis interaksi antar proses Mekanisme mutual exclusion Implementasi mutual exclusion Semaphore Monitor Message passing Beberapa contoh kasus Sistem Operasi/20100930 #2

Concurrency (1) Concurrency = kebersamaan Apa yang menjadi ruang lingkup concurrency? Komunikasi antar proses Sharing dan kompetisi penggunaan resource Sinkronisasi antar berbagai proses Pengalokasian waktu prosesor untuk setiap proses Sistem Operasi/20100930 #3

Concurrency (2) Di mana concurrency diperlukan? Multiprogramming Banyak proses - satu prosesor Multiprocessing Banyak proses - banyak prosesor (dalam satu komputer) Distributed processing Banyak proses banyak komputer Sistem Operasi/20100930 #4

Concurrency (3) Istilah-istilah berhubungan dg concurrency: Critical section: Resource yang dalam satu waktu hanya boleh diakses oleh satu proses saja Contoh resource: printer, baris-baris program, file, dll Deadlock: Keadaan dimana dua proses atau lebih tidak dapat meneruskan eksekusi akibat saling menunggu aksi/data Livelock: Keadaan dimana dua proses atau lebih saling mengubah status sebagai respon terhadap perubahan status proses yang lain tanpa mengerjakan pekerjaan yang berarti Sistem Operasi/20100930 #5

Concurrency (4) Istilah-istilah berhubungan dg concurrency: (lanjutan) Mutual exclusion: Syarat/kondisi i yang harus dipenuhi untuk mencegah terjadinya pengaksesan critical section oleh lebih dari satu proses dalam satu saat Race condition: Keadaan dimana terdapat banyak thread atau proses 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 untuk melakukan aksinya Sistem Operasi/20100930 #6

Concurrency (5) Interleaving dan overlapping Sistem Operasi/20100930 #7

Concurrency (6) Permasalahan pada multiprogramming dan multiprocessor: Pemanfaatan resource bersama-sama (global) 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 terinterrupt, maka device I/O harus tetap dapat digunakan oleh proses yang lain Sulit untuk melacak kesalahan program, karena kesalahan yang terjadi sukar diprediksi dan diulangi Sistem Operasi/20100930 #8

Contoh Kasus 1 Sebuah prosedur digunakan 2 buah proses dalam uniprosesor: void echo() { chin = getchar();// dari keyboard chout = chin; putchar(chout); // ke monitor } Masalah: Ada 2 proses (P1 dan P2) yang masing-masing dapat memanggil prosedur di atas Pada saat P1 sedang menjalankan prosedur tsb pada baris getchar tibatiba P1 terinterrupt oleh P2, misal chin = x P2 menjalankan prosedur dan mengubah nilai chin = y Saat P1 kembali nilai chin berbeda y ditampilkan 2 kali Solusi: Prosedur echo diproteksi i sehingga dalam satu saat hanya satu proses yang boleh menggunakannya proses lain diblok Sistem Operasi/20100930 #9

Contoh Kasus 2 Sebuah prosedur digunakan 2 buah proses dalam multiprosesor: Process P1 Process P2.. chin = getchar();.. chin = getchar(); chout = chin; chout = chin; putchar(chout);.. putchar(chout);.. Masalah: Ada 2 proses (P1 dan P2) yang masing-masing g dapat memanggil prosedur di atas Pada saat P1 sedang menjalankan prosedur tsb pada baris getchar tibatiba P2 juga menjalankan prosedur yang sama data P1 pada chin tertimpa Baik P1 dan P2 sama-sama menampilkan hasil dari P2 Solusi: Prosedur echo diproteksi sehingga dalam satu saat hanya satu proses yang boleh menggunakannya proses lain diblok Sistem Operasi/20100930 #10

Race Condition (1) Hasil proses bergantung pada urutan eksekusi setiap proses Contoh 1: Dua buah proses P1 dan P2 sama-sama menggunakan variabel global a P1 mengubah nilai a = 1, P2 mengubah nilai a = 2 Nilai a ditentukan oleh proses yang kalah (yang mengakses variabel a belakangan) Sistem Operasi/20100930 #11

Race Condition (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 de lebih dahulu, uu, maka a hasilnya: b=3 dan c=5 Jika P4 yang dieksekusi lebih dahulu, maka hasilnya: b=4 dan c=3 Hasil akhir sangat berbeda!!! Sistem Operasi/20100930 #12

Peranan OS dalam Concurrency Apa yang harus dilakukan OS untuk memperoleh concurrency? OS harus dapat menjaga track (info state, prioritas, resource, dll) setiap proses OS harus dapat memberi dan mengambil 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 tidak dipengaruhi oleh kecepatan pemrosesan Sistem Operasi/20100930 #13

Jenis Interaksi Antar Proses Misal: multiprogramming (Winamp, media player, dll) Misal: penggunaan variabel global, share memory, I/O buffer, dll Sistem Operasi/20100930 #14

Kompetisi Antar Proses (1) Dua proses atau lebih saling berkompetisi memperebutkan sebuah resource Masalah apa yang mungkin terjadi? Mutual Exclusion Sebuah resource diakses oleh dua buah proses atau lebih secara bersamaan Misal: dua buah proses ingin i mengakses sebuah printer Deadlock 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 dan P2 sama-sama tidak mau melepaskan resource yang sedang digunakan karena kebutuhannya belum terpenuhi deadlock Sistem Operasi/20100930 #15

Kompetisi Antar Proses (2) Starvation Terdapat satu proses atau lebih yang tidak pernah mendapat giliran dieksekusi (memperoleh resource) Misal: Ada 3 proses P1, P2, dan P3 Mula-mula P1 dieksekusi, P2 dan P3 menunggu giliran Setelah P1 selesai, P3 mendapat giliran Sebelum P3 selesai, P1 telah melakukan interrupt minta untuk dieksekusi k i P2 tertunda lagi Bila kodisi seperti di atas terjadi terus menerus P2 tidak pernah mendapatkan giliran starvation (kelaparan) Sistem Operasi/20100930 #16

Kerjasama Antar Proses melalui Sharing Beberapa proses berbagi data yang sama tanpa mengetahui identitas proses yang lain, tetapi t sama-sama sepakat menjaga integritas data Membutuhkan mekanisme untuk menjaga koherensi/konsistensi/integritas data Apa yang di-share? Variabel, file, atau database Model akses: Read (baca): semua proses boleh membaca secara bersama-sama Write (tulis): dalam satu saat hanya satu proses yang boleh menulis Sistem Operasi/20100930 #17

Kerjasama Antar Proses melalui Komunikasi Beberapa proses saling berkomunikasi untuk memperoleh sinkronisasi i i atau berkoordinasi i dalam melakukan aktifitas Komunikasi diwujudkan dalam bentuk kirim dan terima pesan primitif yang biasanya telah disediakan oleh bahasa pemrograman atau kernel OS Masalah yang mungkin terjadi: Deadlock: saling menunggu pesan Starvation: Misal: P1 terus menerus mencoba berkomunikasi dengan P2 dan P3 demikian pula sebaliknya Bila P1 berhasil komunikasi dengan P2 dalam waktu yang lama, maka P3 mengalami starvation Sistem Operasi/20100930 #18

Syarat Mutual Exclusion (1) Dalam satu waktu hanya satu proses saja yang boleh mengakses critical section Proses yang berada di luar critical section harus dapat melakukan aktifitas lain dengan tidak mengganggu proses yang lain Tidak boleh terjadi deadlock atau starvation Sistem Operasi/20100930 #19

Syarat Mutual Exclusion (2) Dalam pengaksesan critical section tidak boleh ada tunda waktu (delay) bila sedang tidak ada yang mengakses critical section tersebut Kecepatan relatif proses dan jumlah proses tidak boleh mempengaruhi mutual exclusion (race condition) Sebuah proses berada pada critical section dalam waktu terbatas Sistem Operasi/20100930 #20

Mekanisme Mutual Exclusion (Mutex) /* Process 1 */ /* Process 2 */ /* Process n */ void P1 { while (true) void P2 { while (true) void Pn { while (true) { { { /*preceding code*/; /*preceding code*/; /*preceding code*/; entercritical (Ra); entercritical (Ra); /*critical section*/; /*critical section*/; exitcritical (Ra); exitcritical (Ra); /*following code*/; /*following code*/; } } } } entercritical (Ra); /*critical section*/; exitcritical (Ra); /*following code*/; } } Sistem Operasi/20100930 #21

Implementasi Mutual Exclusion (1) Mutex dengan Enable-disable interrupt Perintah primitive iti yang disediakan oleh sistem it kernel Bertujuan untuk melindungi critical section agar proses yang sedang mengakses critical section tidak dapat diinterrupt Mekanisme: while (true) { /* disable interrupts */ /* critical i section */ /* enable interrupts */ /* remainder */ } Hanya dapat diterapkan pada sistem uniprocessor, why? Sistem Operasi/20100930 #22

Implementasi Mutual Exclusion (2) Mutex dengan Instruksi khusus yang atomik: Dua buah instruksi dibungkus menjadi sebuah instruksi yang atomik (tidak dapat disela/diinterrupt) Misal: Instruksi Test and Set Instruksi Exchange Sistem Operasi/20100930 #23

Instruksi Test and Set (1) Fungsi testset: Memeriksa nilai suatu variabel dan mengubah nilainya boolean testset (int i) { if (i == 0) { i = 1; return true; } else { return false; } } Cek apakah nilai i = 0 0 1, true 1 1, false Sistem Operasi/20100930 #24

Instruksi Test and Set (2) Pemanfaat- an fungsi testset dalam mutex bolt = 0 dapat akses critical section bolt = 1 looping Sistem Operasi/20100930 #25

Instruksi Test and Set (3) Apa arti parbegin: Tunda eksekusi main program Lakukan eksekusi concurren terhadap prosedur P1, P2,, Pn Hanya proses yang kebetulan mendapatkan nilai bolt=0 saja yang dapat mengakses critical section Proses yang lain masuk dalam mode busy waiting atau spin waiting (terus menerus looping melakukan pemeriksaan nilai bolt) Bila eksekusi concurrent semua prosedur telah selesai lanjutkan eksekusi main program Sistem Operasi/20100930 #26

Instruksi Exchange (1) Prosedur exchange: Untuk mempertukarkan data dari variabel memory ke variabel register atau sebaliknya void exchange (int register, int memory) } { int temp; temp = memory; memory = register; register = temp; Sistem Operasi/20100930 #27

Instruksi Exchange (2) Pemanfaatan prosedur exchange dalam mutex bolt = 0 dapat akses critical section bolt = 1 looping Sistem Operasi/20100930 #28

Instruksi Exchange Keterangan: Exchange (3) Hanya proses yang kebetulan mendapatkan bolt=0 saja yang dapat mengakses critical section Proses yang telah selesai mengakses critical section akan menjalankan instruksi exchange lagi untuk me-reset nilai bolt menjadi 0 lagi Pada saat bolt=0 tidak ada proses yang mengakses critical section, bolt=1 hanya ada satu proses yang sedang mengakses critical section Sistem Operasi/20100930 #29

Kelebihan Instruksi Atomik Dapat diterapkan pada sistem dengan jumlah proses berbeda-beda Dapat diterapkan pada prosesor tunggal maupun multiprosesor yang mengakses share memory Sederhana mudah ditelusuri Dapat menangani beberapa critical section berbeda-beda tiap critical section menggunakan variabel berbeda- beda Sistem Operasi/20100930 #30

Kekurangan Instruksi Atomik Dapat terjadi busy-waiting masih tetap menggunakan waktu prosesor Dapat terjadi starvation bila terdapat banyak proses yang mengantri ticritical section Dapat terjadi deadlock Jika proses dengan prioritas rendah sedang mengakses critical section tiba-tiba di- interrupt oleh proses dengan prioritas lebih tinggi waktu prosesor diberikan kepada proses dengan prioritas lebih tinggi, tetapi critical section masih dikuasai oleh proses dengan prioritas lebih rendah Sistem Operasi/20100930 #31

Semaphore Diperkenalkan oleh Dijkstra pada tahun 1965 Merupakan mekanisme concurrency yang disediakan oleh OS dan bahasa pemrograman Digunakan variabel khusus yang disebut semaphore yang digunakan sebagai tanda (i (signaling) Proses yang sedang menunggu signal akan berada pada status t suspend hingga signal diterima, apakah masih menggunakan waktu prosesor??? Sistem Operasi/20100930 #32

Semaphore Primitif (1) Prosedur yang digunakan: semsignal (s) Untuk mengirimkan signal semaphore s semsignal = V = verhogen = increment semwait (s) () Untuk menerima signal semaphore s semwait = P = proberen = test Semaphore primitif = general semaphore = counting semaphore Sistem Operasi/20100930 #33

Semaphore Primitif (2) Ketentuan: Inisialisasi variabel semaphore tidak boleh negatif Prosedur semwait: Akan mengurangi g nilai variabel semaphore Jika nilai variabel menjadi negatif proses yang mengeksekusi semwait akan di-blok Jika tidak proses tersebut akan dilayani i Prosedur semsignal: Akan menambah nilai variabel semaphore Jika nilai variabel menjadi 0 sebuah proses yang di-blok oleh semwait akan dibebaskan Sistem Operasi/20100930 #34

Semaphore Primitif (3) Definisi semaphore primitif Sistem Operasi/20100930 #35

Semaphore Primitif (4) Apa pengaruh variabel s.count tsb? Jika s.count 0: s.count merupakan jumlah proses yang dapat mengeksekusi semwait(s) tanpa penundaan Jika s.count < 0: s.countt merupakan jumlah proses yang di-blok dan berada di dalam antrian Sistem Operasi/20100930 #36

Referensi: [STA09] Stallings, g, William. 2009. Operating System: Internal and Design Principles. 6 th edition. Prentice Hall Sistem Operasi/20100930