Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

dokumen-dokumen yang mirip
Apa yang akan dipelajari?

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

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

SOLUSI QUIZ 2 SISOP CS3613

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

Komunikasi & Sinkronisasi Proses

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

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

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

Bab 6: Sinkronisasi Proses. Latar Belakang

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

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

Bab 3: Proses-Proses. Konsep Proses

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

Laporan Tugas Scheduling Pengantar Sistem Operasi

Rencana Perkuliahan Sistem Operasi CSG3E3 2015/2016

SISTEM OPERASI (MANAJEMEN PROSES)

Kongkurensi LPOHLVSFOTJ!

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

Sistem Operasi. Konkurensi

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

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

Sinkronisasi dan Deadlock

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

Bab 3: Proses-Proses. Konsep Proses

Process Synchronization (Background)

UJIAN TENGAH SEMESTER (UTS)

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

BAB 4. SINKRONISASI & DEADLOCK

Bab 22. Perangkat Sinkronisasi II

Sistem Operasi. Kongkurensi

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

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

Sistem Operasi PENGATURAN PROSES

Sistem Operasi Pertemuan 2 Sistem Operasi. (Pengenalan) H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

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

Sistem Operasi Pertemuan 1 Arsitektur Komputer. (Penyegaran) H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

BAB II MANAJEMEN PROSES

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Sistem Operasi Pertemuan 4 Thread, SMP & Microkernel. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

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

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

KONSEP INTERAKSI. Adrianus W. K X Aziz Yudi Prasetyo Gregorio Cybill

Sinkronisasi dan Deadlock

Process Synchronization

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

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

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

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

Sistem operasi menjalankan banyak dan beragam program :

REVIEW DAN REVISI BUKU

KONGRUENSI. Pengertian. Mutual Exclusion. Masalah yang harus diselesaikan dalam kongruensi. (lebih. dapat saling berinteraksi.

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

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Konkurensi. Faikul Umam

two/more processor operate in unison.

Sistem Operasi Pertemuan 3 Deskripsi & Kendali Proses. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

Sistem Operasi. Proses dan Thread

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

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

SISTEM OPERASI. Deskripsi Proses. Multiprogramming. Istilah dalam Proses. (multitasking) MANAJEMEN PROSES. Multiprogramming.

Paralel processing Benefits Job level Process level Thread level

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

SISTEM OPERASI TERDISTRIBUSI

Struktur Sistem Komputer

PROSES DAN THREADS DALAM SISTEM OPERASI

Bab 2: Struktur Sistem Operasi. Komponen Sistem Secara Umum

Sistem Operasi Komputer

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

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

Sistem Operasi 3. Process

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

Organisasi Komputer. Candra Ahmadi, MT

Sistem operasi menjalankan banyak dan beragam program :

STRUKTUR CPU. Arsitektur Komputer

TUGAS Mata Kuliah : Sistem Terdistribusi

TUGAS SISTEM OPERASI

Sinkronisasi dan Deadlock Sistem Operasi

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

Monitor. Makalah Sistem Operasi. Disusun oleh :

Text Berisi kode programnya

CRITICAL REGIONS DAN MONITORS

Bab 3.Proses dan Penjadualan

Sistem Operasi. Proses dan Penjadwalannya. Aditya Wikan Mahastama Antonius Rachmat C

Struktur Sistem Komputer

Struktur Sistem Operasi

SISTEM OPERASI ISG2B3 THREAD. Agus Setiawan Program Studi Sistem Informasi Fakultas Rekayasa Industri Telkom University

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

Bab 3. Proses Proses POKOK BAHASAN: TUJUAN BELAJAR: 3.1 KONSEP PROSES

Bab 26. Readers/Writers

The Critical Section Problem Algorithm III

Pertemuan #3: Sinkronisasi dan Deadlock

TUGAS SISTEM OPERASI

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

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Bab 3 - Manajemen Proses 3.1

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

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

Sus Pokok Bahasan dan Sasaran Belajar

Proses. - yaitu program yang sedang dieksekusi Proses merupakan satuan kerja terkecil yang secara individual dijadwalkan oleh sistem operasi

Transkripsi:

Sistem Operasi 2009 Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo

Ikhtisar Prinsip Mendasar dari Concurrency Mutual Exclusion: Dukungan Hardware Semaphore Monitor Message Passing Masalah Readers/Writers 2

Banyak Proses Sentral bagi perancangan SO modern adalah pengelolaan banyak proses Multiprogramming Multiprocessing Distributed Processing Isu besarnya adalah Concurrency Mengelola interaksi dari semua proses 3

Concurrency Concurrency hadir pada: Banyak aplikasi Waktu sharing Aplikasi terstruktur Ekstensi dari rancangan modular Struktur sistem operasi SO sendiri diimplementasikan sebagai sekumpulan proses atau thread 4

Istilah Penting 5

Proses Interleaving & Overlapping Telah diketahui bahwa proses dapat diinterleave pada uniprocessor 6

Proses Interleaving & Overlapping Pada multi-processor, juga dapat overlapping 7

Kesulitan Concurrency Sharing sumber daya global Penulisan suatu shared variable: urutan penulisan sangat penting Masalah besar adalah penulisan tidak lengkap Pengelolaan alokasi resource secara optimal Sulit menemukan error pemrograman karena hasilnya bersifat tidak deterministic and reproducible. 8

Contoh Sederhana void echo() { chin = getchar(); chout = chin; putchar(chout); } 9

Contoh pada Multiprocessor Proses P1 Proses P2.. chin = getchar();.. chin = getchar(); chout = chin; chout = chin; putchar(chout);.. putchar(chout);.. 10

Menerapkan Akses Tunggal Jika diterapkan suatu aturan yang hanya satu proses dapat memasuki fungsi tersebut pada suatu waktu, maka: P1 & P2 berjalan pada processor berbeda P1 memasukkan echo lebih dahulu, P2 mencoba masuk tetapi diblok P2 suspend P1 melengkapi eksekusi P2 me-resume & mengeksekusi echo 11

Kondisi Race Race condition terjadi ketika Banyak proses atau thread membaca & menulis item data Hasil akhir dari aktifitas baca & tulis tersebut tergantung pada urutan eksekusi dari prosesyang terlibat. Output tergantung pada siapa yang terakhir menyelesaikan race. 12

Fokus SO Isu desain dan manajemen yang muncul karena adanya concurrency? SO harus Menjaga track dari berbagai proses Meng-alokasi-kan dan men-dealokasi-kan sumber daya Melindungi data & resource dari gangguan proses lain Memastikan bahwa proses & output terbebas dari kecepatan pemrosesan 13

Interaksi Proses 14

Kompetisi Antar Proses (Resources) Ada tiga masalah kendali utama: Kebutuhan Mutual Exclusion Critical section (bagian kritis dari proses) Deadlock Starvation 15

Syarat Mutual Exclusion (2) Hanya satu proses pada satu waktu yang dibolehkan ada dalam critical section bagi suatu resource Proses yang berhenti pada noncritical section-nya harus melakukan demikian tanpa gangguan dengan proses lain Tidak ada deadlock atau starvation 16

Syarat Mutual Exclusion (2) Proses harus tidak didelay akses ke suatu critical section saat tidak ada proses lain yang menggunakannya Tidak ada asumsi mengenai kecepatan proses relatif atau jumlah proses Proses tetap di dalam critical section-nya hanya selama waktu terbatas tertentu (finite) 17

Mutual Exclusion (Disabling Interrupts) Uniprocessor hanya membolehkan interleaving Interrupt Disabling Proses berjalan sampai ia meng-invoke suatu layanan SO atau sampai ia diinterupsi Disabling interrupts menjamin terwujudnya mutual exclusion Tidak akan bekerja pada arsitektur multiprocessor 18

Pseudo-Code while (true) { /* disable interrupts */; /* critical section */; /* enable interrupts */; /* remainder */; } 19

Instruksi Mesin Khusus Instruksi Compare & Swap Juga disebut compare and exchange instruction Intruksi exchange 20

Instruksi Compare&Swap int compare_and_swap (int *word, int testval, int newval) { int oldval; oldval = *word; if (oldval == testval) *word = newval; return oldval; } 21

Mutual Exclusion (gambar 5.2) 22

Instruksi Exchange void exchange (int register, int memory) { int temp; temp = memory; memory = register; register = temp; } 23

Instruksi Exchange (gambar 5.2) 24

Keuntungan Mutual Exclusion Hardware Dapat diterapkan terhadap banyak proses pada processor tunggal atau multi processor yang berbagi (sharing) main memory Simple, karena itu mudah diwujudkan Dapat digunakan untuk mendukung banyak critical section 25

Kerugian Mutual Exclusion Hardware Busy-waiting mengkonsumsi waktu processor Starvation mungkin ketika suatu proses meninggalkan critical section dan lebih dari satu proses menunggu (waiting). Beberapa proses dapat ditolak aksenya dalam waktu tak terbatas. Deadlock juga mungkin 26

Semaphore Semaphore: Suatu nilai integer (bilangan bulat) yang digunakan untuk pensinyalan (signalling) antar proses. Hanya tiga operasi dapat dikerjakan pada suatu semaphore, semuanya bersifat atomik: initialize Decrement (semwait) increment (semsignal) 27

Primitif Semaphore 28

Primitif Semaphore Biner 29

Semaphore Kuat & Lemah Antrian (queue) digunakan untuk menangani proses yang menunggu (waiting) pada semaphore Dalam urutan bagaimana proses dihapus dari antrian? Semaphore Kuat menggunakan FIFO Semaphore Lemah tidak menentukan urutan penghapusan dari antrian 30

Contoh Mekanisme Semaphore Kuat 31

Contoh Mekanisme Semaphore 32

MutEx Menggunakan Semaphore 33

Proses Menggunakan Semaphore 34

Masalah Producer-Consumer Situasi Umum: Satu atau lebih producer membangkitkan data & menempatkannya dalam suatu buffer Consumer tunggal mengambil item keluar buffer satu pada satu waktu Hanya satu producer atau consumer yang boleh mengakses buffer pada satu waktu Masalahnya: Pastikan bahwa Producer tidak dapat menambahkan data ke dalam buffer yang penuh & comsumer tidak dapat menghapus data dari buffer kosong Producer/Consumer Animation 35

Fungsi Anggap suatu buffer tak terbatas b dengan suatu array linier elemen Producer while (true) { /* produce item v */ b[in] = v; in++; } Consumer while (true) { while (in <= out) /*do nothing */; w = b[out]; out++; /* consume item w */ } 36

Buffer 37

Solusi SALAH 38

Scenario yang Mungkin 39

Solusi BENAR 40

Semaphore 41

Buffer Terbatas 42

Semaphore 43

Fungsi dalam Bounded Buffer Producer while (true) { /* produce item v */ while ((in + 1) % n == out) /* do nothing */; b[in] = v; in = (in + 1) % n } Consumer while (true) { while (in == out) /* do nothing */; w = b[out]; out = (out + 1) % n; /* consume item w */ } 44

Demo Animasi Producer/Consumer Ilustrasi operasi buffer producer-consumer. Bounded-Buffer Problem Using Semaphores Demontrasi masalah consumer/producer buffer terbatas menggunakan semaphore. 45

Monitor Monitor merupakan suatu konsepsi bahasa pemrograman yang menyediakan fungsi sama dengan semaphore & lebih mudah dikontrol. Diimplementasikan dalam sejumlah bahasa pemrograman, termasuk Concurrent Pascal, Pascal-Plus, Modula-2, Modula-3, dan Java. 46

Karakteristik Utama Variabel data lokal hanya dapat diakses oleh monitor Proses memasuki monitor dengan menjalankan salah satu prosedurnya Hanya satu proses yang boleh berjalan (executing) dalam monitor pada satu waktu 47

Sinkronisasi Synchronisation dicapai dengan variabel kondisi dalam suatu monitor Hanya dapat diakses oleh monitor. Fungsi monitor: Cwait(c): Men-suspend eksekusi dari proses yang memanggil pada kondisi c Csignal(c) Me-resume eksekusi dari beberapa proses yang diblok setelah cwait pada kondisi yang sama 48

Struktur Monitor 49

Solusi Buffer Terbatas Menggunakan Monitor 50

Solusi Menggunakan Monitor 51

Monitor Buffer Terbatas 52

Interaksi Proses Ketika proses berinteraksi satu dengan lainnya, dua syarat fundamental harus terpenuhi: Sinkronisasi, dan komunikasi. Message Passing adalah (satu) solusi untuk syarat kedua Bonus: bekerja dengan shared memory & dengan sistem terdistribusi. 53

Message Passing Fungsi aktual dari message passing normalnya disediakan dalam bentuk pasangan primitif: send (destination, message) receive (source, message) 54

Synchronization Komunikasi memerlukan sinkronisasi Sender (pengirim) harus mengirim sebelum receiver (penerima) dapat menerima Apa yang terjadi terhadap proses setelah ia menjalankan primitif send atau receive? Sender & receiver mungkin (bisa pula tidak) menjadi blocking (waiting for message) 55

Blocking send, Blocking receive Sender & receiver diblok sampai message tersampaikan (delivered) Dikenal sebagai rendezvous Menmungkinkan sinkronisasi ketat (tight) antar proses. 56

Non-blocking Send Lebih alami bagi banyak tugas pemrograman concurrent. Nonblocking send, blocking receive Sender terus jalan Receiver diblok sampai message yang diminta tiba Nonblocking send, nonblocking receive Tidak ada pihak yang harus menunggu 57

Pengalamatan Proses pengiriman perlu mampu menentukan proses mana yang sebaiknya menerima message Direct addressing (langsung) Indirect Addressing (tidak langsung) 58

Pengalamatan Langsung Primitif send menyertakan suatu pengenal (identifier) khusus dari proses tujuan Primitif receive segera dapat mengetahui proses mana yang menjadi tujuan message Primitif receive dapat memanfaatkan parameter source untuk mengembalikan suatu nilai ketika operasi receive selesai dikerjakan. 59

Pengalamatan Tak Langsung Message dikirim ke suatu struktur shared data yang mengandung antrian (queues) Queues disebut pula mailboxes Satu proses mengirimkan suatu message ke mailbox & proses lain mengambil message dari mailbox tersebut 60

Komunikasi Proses Tak Langsung 61

Format Message Umum 62

MutEx Menggunakan Message 63

Message Producer-Consumer 64

Masalah Readers-Writers Suatu area data dishare antar banyak proses Beberapa proses hanya membaca area data, beberapa hanya menulis ke area tersebut. Kondisi untuk dicapai: 1.Banyak readers boleh membaca file at once. 2.Hanya satu writer pada satu waktu yang dapat menulis 3.Jika suatu writer sedang menulis ke file, maka tidak ada reader yang dapat membacanya interaction of readers and writers. 65

Readers Dengan Prioritas 66

Writers dengan Priority 67

Writers Dengan Prioritas 68

Message Passing 69

Message Passing 70

Tugas Pertemuan 5 Kerjakan problem 5.1 & 5.2! Jelaskan definisi dari Proses, Thread, Mutual Exclution, Race Condition, Sinkronisasi, Deadlock, Starvation, Monitor, dan Semaphore! Uraikan implementasi sinkronisasi & mutual exclusion di Windows & Linux! 71