Readers-Writers & The Dining Philosophers Problem

dokumen-dokumen yang mirip
Bab 26. Readers/Writers

Sinkronisasi dan Deadlock

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 1 PENDAHULUAN. Sistem operasi merupakan suatu program yang bertindak sebagai interface antara user

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

Paralel processing Benefits Job level Process level Thread level

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

Bab 6: Sinkronisasi Proses. Latar Belakang

Sinkronisasi dan Deadlock

CRITICAL REGIONS DAN MONITORS

Analisis Penerapan Semaphore dalam Mengatasi Masalah Sinkronisasi Dining Philosophers.

PENYELARASAN PADA MASALAH DINING PHILOSOPHERS MENGGUNAKAN ALGORITMA LOCK & RELEASE

two/more processor operate in unison.

Apa yang akan dipelajari?

November Sistem operasi #0

1. SINKRONISASI PROSES

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

BAB 4. SINKRONISASI & DEADLOCK

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

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

Bab 22. Perangkat Sinkronisasi II

BAB III ANALISA DAN PERANCANGAN

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

BAB II TINJAUAN PUSTAKA

SOLUSI QUIZ 2 SISOP CS3613

PERANGKAT LUNAK SIMULASI DEADLOCK MENGGUNAKAN ILUSTRASI DINING PHILOSOPHERS PROBLEM

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

Laporan Tugas Scheduling Pengantar Sistem Operasi

Pertemuan #3: Sinkronisasi dan Deadlock

Bab 6. Deadlock POKOK BAHASAN: TUJUAN BELAJAR:

Komunikasi & Sinkronisasi Proses

ILUSTRASI KLASIK: BOUNDED BUFFER

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

Sistem Operasi Komputer. Pembahasan Deadlock

Masalah-Masalah Klasik Sinkronisasi

Penguncian pada Concurrency Control

Konstruksi Dasar Algoritma

Rencana Perkuliahan Sistem Operasi CSG3E3 2015/2016

Konsep Dasar Sistem Operasi

BAB 2. Class Thread. Setelah mempelajari modul ini peserta diharapkan dapat: Mengenal Kelas Thread Menggunakan Kelas Thread dalam aplikasi

Tipe Sistem Operasi. Stand alone Network Embedded

Monitor. Makalah Sistem Operasi. Disusun oleh :

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

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

BAB I PENDAHULUAN. Permasalahan yang sering terjadi dalam basis data adalah persoalan deadlock

BAB 2 COLLECTION & THREAD

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

Bab 7: Deadlock. Permasalahan Deadlock

BAB Argument Command-Line dan System Properties

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

PEMROGRAMAN VISUAL BASIC.NET ( PERULANGAN / LOOPING )

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

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

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

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

A. TUJUAN PEMBELAJARAN

PERTEMUAN VII Multithreaded Programming. Praktikan mampu membuat program sederhana mengenai threading

IOSTREAM bagian 2. Kholid Fathoni

LISTING PROGRAM. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ShowInputForm End Sub

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang

PENGUJIAN PERANGKAT LUNAK

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

LOGIKA ALGORITMA. Pertemuan 6. By: Augury

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

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

Politeknik Elektronika Negeri Surabaya

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

Kumpulan Soal Ujian Sistem Operasi

Sistem Operasi Penjadwalan Proses

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

ALGORITMA TUGAS 2 RESUME ALGORITMA PERCABANGAN DAN ALGORITMA PERULANGAN. Disusun Oleh : Sakina Mawardah Teknik Informatika. Dosen : Asep M. Yusuf, S.

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

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

DEADLOCK & ALGORITMA OSTRICH

TUGAS 1 Membuat Program Untuk Menghitung Magnetic Tape

Algoritma Pemrograman

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

Process Synchronization (Background)

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

Daftar kelompok Kelas Mahasiswa Angkatan 52 Program Pendidikan Kompetensi Umum Institut Pertanian Bogor

UJIAN TENGAH SEMESTER (UTS)

Thread. 16 th week Estu Sinduningrum ST,MT

SEKOLAH TINGGI INFORMATIKA & KOMPUTER INDONESIA (STIKI)

ALGORITMA PERULANGAN

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

DASAR PEMOGRAMAN JAVA

Pengenalan Pascal. Sejarah Singkat Pascal

IKG2I4 / Software Project I

PERANGKAT LUNAK SIMULASI DINNING PHILOSOPHERS UNTUK MENGATASI DEADLOCK TUGAS AKHIR MUHAMMAD ZULHAM

1.Tujuan. 2. Latar Belakang

SIMULASI PENCEGAHAN DEADLOCK MENGGUNAKAN DINING PHILOSOPHERS PROBLEMS TUGAS AKHIR THOIF CHUSAINI

Silakan menggandakan dan mengedarkan berkas ini, tanpa mengubah nota hak cipta ini

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else

Percabangan & Perulangan

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak,

BAB II MANAJEMEN PROSES

Transkripsi:

Readers-Writers & The Dining Philosophers Problem Maharmon Arnaldo Api Perdana Contact: apiperdana@gmail.com

Pembahasan Masalah Readers-Writers Program Readers-Writers Solusi Readers-Writers Masalah The Dining Philosopher Semafor Sebagai Solusi Solusi Masalah The Dining Philosoper

Readers - Writers Terdiri dari dua proses: Readers, yang berfungsi sebagai pembaca Writers, yang berfungsi sebagai pembaca dan penulis Kedua proses berbagi sumber daya penyimpanan yang sama Masalah: Adanya beberapa pembaca dan penulis yang ingin mengakses suatu berkas secara bersamaan Tujuan: data tidak menjadi korupsi

Kondisi Readers - Writers Pembaca dapat membaca secara simultan Hanya boleh ada satu penulis pada suatu saat Bila ada yang menulis, tidak boleh ada yang membaca

public class Reader extends Thread { public Reader(int r, Database db) { readernum = r; server = db; public void run() { int c; Readers while (true) { //System.out.println("reader " + readernum + " is sleeping."); Database.napping(); System.out.println("reader " + readernum + " wants to read."); c = server.startread();

Readers (2) // you have access to read from the database System.out.println("reader " + readernum + " is reading. Reader Count = " + c); Database.napping(); System.out.print("reader " + readernum + " is done reading. "); c = server.endread(); //System.out.println("reader " + readernum + " is done reading. Count = " +c); private Database private int readernum; server;

Writers public class Writer extends Thread { public Writer(int w, Database db) { writernum = w; server = db; public void run() { while (true) { //System.out.println("writer " + writernum + " is sleeping."); Database.napping(); System.out.println("writer " + writernum + " wants to write."); server.startwrite();

Writers (2) // you have access to write to the database System.out.println("writer " + writernum + " is writing."); Database.napping(); System.out.println("writer " + writernum + " is done writing."); server.endwrite(); //System.out.println("writer " + writernum + " is done writing."); private Database server; private int writernum;

Solusi Readers - Writers Pembaca Diprioritaskan Penulis Diprioritaskan Pembaca Dan Penulis Mendapat Prioritas yang sama

Solusi Dengan Pembaca Diprioritaskan Bisa terjadi Starvation untuk proses Writer public void mulaimembaca(){ mutex.tunggu(); npembaca++; if (npembaca == 1) brks.tunggu(); mutex.sinyal(); public void selesaimembaca(){ mutex.tunggu(); --npembaca; if (npembaca == 0) brks.sinyal(); mutex.sinyal(); public void mulaimenulis(){ brks.tunggu(); public void selesaimenulis(){ brks.sinyal();

Solusi Dengan Penulis Diprioritaskan Dapat menyebabkan starvation untuk proses Reader. public void mulaimembaca(){ mutex1.tunggu(); baca.tunggu(); mutex2.tunggu(); npembaca++; if (npembaca == 1) tulis.tunggu(); mutex2.sinyal(); baca.sinyal(); mutex1.sinyal(); public void selesaimembaca(){ mutex2.tunggu(); npembaca--; if (npembaca == 0) tulis.sinyal(); mutex2.sinyal();

Solusi Dengan Penulis Diprioritaskan (2) public void mulaimenulis(){ mutex3.tunggu(); npenulis++; if (npenulis == 1) baca.tunggu(); mutex3.sinyal(); tulis.tunggu(); public void selesaimenulis(){ tulis.sinyal(); mutex3.tunggu(); npenulis--; if (npenulis == 0) baca.sinyal(); mutex3.sinyal();

Solusi Dengan Pembaca Dan Penulis Mendapat Prioritas Sama Ada kemungkinan terjadi antrian yang panjang

Dining Philosophers

Dining Philosophers Merupakan masalah klasik sinkronisasi karena menjadi contoh bagi masalah concurrencycontrol pada tingkat yang lebih tinggi Representasi sederhana atas kebutuhan untuk mengalokasikan sumber daya kepada beberapa proses tanpa terjadi deadlock maupun starvation Diketahui sejumlah (N) filsuf yang hanya memiliki tiga kondisi; berpikir, lapar, dan makan duduk pada meja bundar Di antara para filsuf terdapat satu buah sumpit dan di tengah meja terdapat semangkuk mie

Dining Philosophers (2) Yang harus diperhatikan: Deadlock: Semua filsuf ingin makan dan telah memegang sumpit Starvation: Ada filsuf yang kelaparan dalam waktu yang lama

Semafor Solusi yang mungkin langsung terlihat adalah dengan menggunakan semafor. Setiap sumpit mewakili sebuah semafor. Jika filsuf ingin mengambil sumpit, ia jalankan perintah wait Jika filsuf ingin meletakkan kembali sumpit, ia jalankan perintah signal

Semafor (2) var chopstick: array [0..4] of semaphore; repeat wait (chopstick [i]); wait (chopstick [i + 1 mod 5 ]); eat signal (chopstick [i]); signal (chopstick [i + 1 mod 5 ]); think until false

Kelemahan Semaphor Low Level Karena tersebar di seluruh program, maka sulit dalam pemeliharaannya Error yang terjadi sulit untuk dideteksi Lebih baik menggunakan high-level construct Dapat terjadi deadlock!

Solusi Dining Philosophers Filsuf hanya bisa mengambil sumpit jika kedua sumpit di sampingnya ada Menggunakan solusi asimetris Jumlah filsuf pada suatu meja maksimal adalah empat Menggunakan Monitor