CRITICAL REGIONS DAN MONITORS

dokumen-dokumen yang mirip
Bab 22. Perangkat Sinkronisasi II

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

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

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

Laporan Tugas Scheduling Pengantar Sistem Operasi

Process Synchronization

BAB 4. SINKRONISASI & DEADLOCK

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

Bab 6: Sinkronisasi Proses. Latar Belakang

Monitor. Makalah Sistem Operasi. Disusun oleh :

ILUSTRASI KLASIK: BOUNDED BUFFER

Sinkronisasi dan Deadlock

Sinkronisasi dan Deadlock

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

Analisis Penerapan Semaphore dalam Mengatasi Masalah Sinkronisasi Dining Philosophers.

Apa yang akan dipelajari?

TUGAS MATA KULIAH TEKNIK KOMPILASI

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

T UGAS STUDI KASUS SISTEM OPERASI. Mutual Exclusion. Mata Kuliah : Sistem Operasi [ CF 1322] Disusun Oleh :

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

TEKNIK OPTIMASI. Dependensi Optimasi. Optimasi Lokal. Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya.

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

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

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

Bab 26. Readers/Writers

Understanding Class Definition. Viska Mutiawani, M.Sc

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

Readers-Writers & The Dining Philosophers Problem

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Understanding Class Definition

Obyektif : KONTROL ALUR PROGRAM

24/09/2017 PERCABANGAN

1/3/2013. Race Condition adalah situasi di mana beberapa proses mengakses

Pertemuan #3: Sinkronisasi dan Deadlock

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Perjalanan sebuah intruksi

Percabangan & Perulangan

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

DASAR PEMOGRAMAN JAVA

Kuliah#7 TSK617 Pengolahan Paralel - TA 2011/2012. Eko Didik Widianto

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

2 TIPE DATA DAN VARIABEL

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

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

two/more processor operate in unison.

The Critical Section Problem Algorithm III

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

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

Sistem Operasi. Kongkurensi

TABEL INFORMASI / SIMBOL

PEMAHAMAN DASAR DASAR JAVA

Konstruksi Dasar Algoritma

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

6 Maret Structure of Java [Penyeleksian Kondisi]

PEMROGRAMAN WEB 08 JavaScript Dasar

Aplikasi Rekursif dalam Analisis Sintaks Program

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

Paralel processing Benefits Job level Process level Thread level

Bab 27. Sinkronisasi Dengan Semafor

BAB II VARIABEL DAN TIPE DATA

Teknik Optimasi. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Java Script (Bagian 1)

DEADLOCK. Haryono Setiadi, ST, M.Eng

Mengunci sebuah object: Untuk memastikan bahwa hanya satu thread yang mendapatkan hak akses kedalam method tertentu

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

Modul Praktikum 3 Pemograman Berorientasi Objek

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

SOLUSI QUIZ 2 SISOP CS3613

BAB II MANAJEMEN PROSES

Sinkronisasi dan Deadlock Sistem Operasi

Structure dasar dari bahasa pemrograman arduino adalah sederhana yang

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

BAB 7. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

SUMBER BELAJAR PENUNJANG PLPG

MODUL 2 Review Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017

MAKALAH DEADLOCK. DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH Sistem Operasi Dosen Penampu Bapak Adi Sucipto, Ir., M.Kom. oleh :

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

PROCEDURE DAN FUNCTION. Mardhiya Hayaty, ST, M.Kom

Logika pemrograman sederhana

Masalah Deadlock. Contoh Persimpangan Jalan. Resource-Allocation Graph. Deadlock

Operator, Statement kondisional, dan Iterasi pada Java

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Membuat dan Menggunakan Class

Thread. 16 th week Estu Sinduningrum ST,MT

BAB V. STATEMEN KONTROL

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM III Sinkronisasi Proses

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

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

Algoritma dan Pemrograman PROSEDUR. Oleh: Eddy Prasetyo N

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

Pengenalan JavaScript

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator

BAB V PENYELEKSIAN KONDISI DAN PERULANGAN

MODUL. Variabel. Workshop Programming

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

Sistem Operasi Komputer. Pembahasan Deadlock

Transkripsi:

CRITICAL REGIONS DAN MONITORS Oleh Sergio (1203001052) - <srg_wong@fastmail.fm> Tedi Kurniadi (1203001109) - <tedy_cs@yahoo.com> Copyright 2004 Sergio - Tedi Kurniadi silahkan menggunakan, memodifikasi, ataupun menyebarluaskan isi dokumen ini, selama tidak untuk tujuan komersil dan tidak menghilangkan nama penulis. 1

Kelemahan Semafor 1. Konsep low level 2. Menghilangkan wait tidak memenuhi mutex (mutual exclusion) 3. Menghilangkan signal deadlock 4. Kode Semafor tersebar pada program problem maintenance Butuh konsep high level! 2

3 Critical Regions 1. Bagian kode yang selalu dieksekusi dengan syarat mutex 2. Melepas tanggung jawab mutex dari sisi programmer kepada compiler 3. Terdiri dari dua bagian: a. Variabel yang harus diakses secara mutex b. Statement yang mengidentifikasi sebuah critical region yang dimana variabel-variabel di dalamnya dapat diakses Var v : shared T; region v do { begin end

Conditional Critical Regions Critical Regions!= Semafor CR tidak hanya menggunakan mutex, tetapi juga boolean expression dalam implementasi sinkronisasinya (conditional). region v when B do{ begin... end 4

Cara Kerja CCR m = 0 main queue m = 1 m-- cek kondisi (boolean B) B = true Eksekusi statement join event queue B = false m++ m = mutex selesai 5

Implementasi CCR Bounded Buffer buffer: record { buf: array[1..size] of data next_full, next_empty: integer := 1,1 full_slots: integer := 0 procedure insert(d: bdata) region buffer when full_slots < SIZE { buf[next_empty] := d next_empty := next_empty mod SIZE + 1 full_slots +:= 1 6

Implementasi CCR (cont.) function remove: bdata region buffer when full_slots > 0 { d: bdata := buf[next_full] next_full := next_full mod SIZE + 1 full_slots -:= 1 return d Implementasi pada Java? synchronized (object) { 7

Monitors Bagan Ilustrasi Monitors 8

9 Monitors terdiri dari private data dan operasi-operasi terhadap data tersebut dpt berisi type, konstanta, variabel, dan prosedur monitor body melakukan inisialisasi pada private data compiler mengawasi syarat mutex pada monitor setiap monitor memiliki boundary queue, tempat dimana proses-proses yg ingin memanggil routine dalam monitor menunggu, apabila monitor sedang digunakan monitor adalah pengembangan CCR - semua code yang mengakses shared data dilokalisasi

10 Variable Condition memungkinkan proses untuk melakukan block sampai kondisi true condition x,y; Contoh variabel condition: Delay danresume * x.delay() : melakukan block pada proses yang memanggil operasi ini dan melepas lock monitor (menunggu) * x.resume() : meneruskan satu buah proses yang blocked. Apabila tidak ada proses yg blocked, operasi resume tidak menimbulkan efek. (berbeda dengan signal pada semafor yang selalu mengubah status dari semafor)

11 Variable Condition (Problem) x.resume() pada monitor dengan sebuah proses lainnya sedang menunggu (x.delay()) Solusi: -Resume-and-Continue proses Q harus menunggu sampai P melepas monitor -Resume-and-Wait proses P harus menunggu sampai Q melepas monitor -Immediate Resumption P langsung melepas monitor (Pascal-FC)

Implementasi Monitors Dining Philosopher monitor diningphilosophers{ int[] state = new int[5]; static final int THINKING = 0; static final int HUNGRY = 1; static final int EATING = 2; condition[] self = new condition[5]; public diningphilosophers { for (int i = 0; i < 5; i++) state[i] = THINKING; 12

Implementasi Monitors (cont.) public entry pickup(int i) { state[i] = HUNGRY; test(i); if (state[i]!= EATING) self[i].wait; public entry putdown(int i) { state[i] = THINKING; // test left and right neighbors test(i + 4 % 5); test(i + 1 % 5); 13

14 Implementasi Monitors (cont.) private test(int i) { if ( (state[i + 4 % 5)!= EATING) && (state[i] == HUNGRY) && (state[i + 1 % 5!= EATING) ) { state[i] = EATING; self[i].signal; Applet Dining Philosopher: http://www.hta-be.bfh.ch/~fischli/kurse/threads/phil/

Resource Allocation Monitor Resource Allocation { boolean busy; condition x; void acquire (int time) { if (busy) x.wait(time); busy = true; 15

Resource Allocation (cont.) void release() { busy = false; x.signal(); void init() { busy = false; 16