Masalah-Masalah Klasik Sinkronisasi

dokumen-dokumen yang mirip
Case Study Pengalokasian Memory

Metode Akses File. Akses File Berurutan

Proses Menagemen Memori

Alokasi Ruang Swap Pada Disk

Menghindari Deadlock Pada Sistem Operasi

Deadlock Kasus Pada Sistem Operasi

Konsep Dasar Sistem Komputer

MANAJEMEN MEMORI VIRTUAL

KONSEP DASAR IMPLEMENTASI SISTEM FILE

Macam-Macam Fungsi Hash

PENJADWALAN PROSES. Tiga Level Penjadwalan

ALGORITMA PAGE REPLACEMENT

Macam-Macam Skturtur Tertiary-Strorage

MANAGEMENT DISK. Memformat Disk

ARSITEKTUR SISTEM OPERASI

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

Bab 6: Sinkronisasi Proses. Latar Belakang

Sinkronisasi dan Deadlock Sistem Operasi

Pertemuan #3: Sinkronisasi dan Deadlock

PENYELARASAN PADA MASALAH DINING PHILOSOPHERS MENGGUNAKAN ALGORITMA LOCK & RELEASE

Monitor. Makalah Sistem Operasi. Disusun oleh :

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

Analisis Penerapan Semaphore dalam Mengatasi Masalah Sinkronisasi Dining Philosophers.

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

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

Bab 19. Solusi Critical Section

RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN SEMESTER

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Kontrak Kuliah. Sistem Operasi

Bab 24. Diagram Graf Pendahuluan

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

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

PERANGKAT LUNAK SIMULASI DEADLOCK MENGGUNAKAN ILUSTRASI DINING PHILOSOPHERS PROBLEM

A. Deskripsi Singkat. B. Tujuan Instruksional Umum (TIU) C. Bahasan. SILABUS MATA KULIAH Kode MK: Semester: Bobot SKS: 3. Matakuliah : SISTEM OPERASI

DEADLOCK & ALGORITMA OSTRICH

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

November Sistem operasi #0

Makalah PENJADWALAN PROSES. Dosen : Azwar, M. Kom DI SUSUN OLEH ELAN K.LUWITI NIM :T KELAS 2/KC FAKULTAS ILMU KOMPUTER (FIKOM)

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

Bab 13. Konsep Penjadwalan

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

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

Bab 26. Readers/Writers

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

CRITICAL REGIONS DAN MONITORS

KONTRAK PERKULIAHAN MATA KULIAH KOM311 SISTEM OPERASI

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

Nama : Putra Adi Nugraha dan Priska Kalista Kelas : B

Apa yang akan dipelajari?

ANALISIS DAN PERANCANGAN SISTEM BASIS DATA UNTUK PEMESANAN HOTEL PEONY BERBASIS WEB

OLEH : HASANUDDIN SIRAIT

SOLUSI QUIZ 2 SISOP CS3613

PENGENALAN KOMPUTER DAN SOFTWARE II. Semester: 2 Pengenalan Komputer dan Software II. Introduction to Computer and Software II

Pertemuan #1: Pengenalan Sistem Operasi

Laporan Tugas Scheduling Pengantar Sistem Operasi

Process Synchronization

BAB 6 KESIMPULAN DAN SARAN

Penjadualan Process Bagian 2

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

BAB II TINJAUAN PUSTAKA

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

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi Manajemen Disk dan Algoritma Penjadualan Disk

SILABUS JURUSAN MANAJEMEN - PROGRAM STUDI D3 MANAJEMEN INFORMATIKA DIREKTORAT DIPLOMA TEKNOLOGI INFORMASI UNIVERSITAS GUNADARMA

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

Bab 22. Perangkat Sinkronisasi II

SEKOLAH TINGGI INFORMATIKA & KOMPUTER INDONESIA (STIKI)

Readers-Writers & The Dining Philosophers Problem

Aplikasi Graf dalam Pendeteksian Deadlock

1. Memori manajer 2. Manajemen memori dengan swapping dan paging

Sistem Terdistribusi. Silabus

Bab 23. Deadlocks Pendahuluan. Gambar Contoh kasus deadlock pada lalu lintas di jembatan

1. Istilah-istilah dalam penjadwalan proses

Penjadualan Process Bagian 1

FAKTOR-FAKTOR PENDEWASAAN HCI

SISTEM APLIKASI PEMINJAMAN FASILITAS UNIVERSITAS WIDYATAMA

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Operating System: An Overview. Ch. 6: Process Scheduling. Ch. 6: Process Scheduling. Agenda. Basic Concept Scheduling Criteria Scheduling Algorithms

RENCANA PEMBELAJARAN

IKI Sistem Operasi Konsep Page Replacement (Pemindahan Halaman)

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

BAB IV PENJADWALAN MEMORI MATERI

Sinkronisasi dan Deadlock

BABS SIMPULAN DAN SARAN

Aplikasi Komputer PERANGKAT LUNAK (SOFTWARE) Sulis Sandiwarno, S.Kom.,M.Kom. Sistem Informasi. Modul ke: Fakultas FASILKOM.

MATA KULIAH SISTEM OPERASI (CSD60021)

Muhammad Adri Abstrak

BAB 1 PENDAHULUAN. Sistem operasi merupakan suatu program yang bertindak sebagai interface antara user

Paralel processing Benefits Job level Process level Thread level

Bab 10. Konsep Proses

IMPLEMENTASI MODEL SISTEM ANTRIAN PELAYANAN BERBASIS PC

Kelompok 12. Thread Java

Process Synchronization (Background)

ANALISIS DAN PERANCANGAN APLIKASI MONITORING AREA DENGAN WEBCAM PADA SMARTPHONE BERBASIS ANDROID

ANALISIS DAN PERANCANGAN SISTEM INFORMASI AKUNTANSI SIKLUS PENJUALAN, PENAGIHAN PIUTANG, DAN PENERIMAAN KAS PADA PT RACKINDO SETARA PERKASA

SISTEM BILANGAN DIGITAL

BAB I MANAJEMEN PROSES

Sinkronisasi dan Deadlock

Arsitektur Komputer. Pertemuan - 1. Oleh : Riyanto Sigit, S.T, M.Kom Nur Rosyid Mubtada i S.Kom Setiawardhana, S.T Hero Yudo Martono, S.

Copyright Sistem Operasi - silakan merevisi dan menyebarluaskan materi ini

Konkurensi. Faikul Umam

Transkripsi:

Masalah-Masalah Klasik Sinkronisasi Abas Ali Pangera, Dony Ariyus, Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta - Indonesia Untuk mengimplementasikan permasalahan sinkronisasi dapat menggunakan model yang digunakan untuk permasalahan Bounded Buffer, Reader Writer dan Dining Philosopher yang akan dijelaskan di bawah ini. Bounded-Buffer (Producer-Consumer) Problem Produsen menghasilkan barang dan konsumen yang akan menggunakannya. Ada beberapa batasan yang harus dipenuhi, antara lain : Barang yang dihasilkan oleh produsen terbatas Barang yang dipakai konsumen terbatas Konsumen hanya boleh menggunakan barang yang dimaksud setelah produsen menghasilkan barang dalam jumlah tertentu Produsen hanya boleh memproduksi barang jika konsumen sudah kehabisan barang Untuk penyelesaian permasalahan bounded buffer menggunakan semaphore menggunakan variabel umum berikut : semaphore full, empty, mutex; Inisialisasi untuk variable di atas, full = 0, empty = n, mutex = 1. Struktur program untuk produsen adalah do { menghasilkan item pada nextp wait(empty); menambah nextp ke buffer signal(mutex); signal(full); } while (1); Sedangkan struktur program untuk konsumen adalah do { wait(full) mengambil item dari buffer ke nextc signal(mutex); signal(empty); menggunakan item pada nextc

} while (1); Reader and Writer Problem Terdapat dua variasi pada masalah ini, yaitu : 1. seorang reader tidak perlu menuggu reader lain untuk selesai hanya karena ada writer menunggu (reader memiliki prioritas lebih tinggi disbanding dengan writer) 2. Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang bekerja (writer memiliki prioritas yang lebih tinggi) Jika terdapat writer dalam critical section dan terdapat n reader yang menunggu, maka satu reader akan antri di wrt dan n-1 reader akan antri di mutex. Jika writer mengeksekusi signal(wrt), maka dapat disimpulkan bahwa eksekusi adalah menunggu reader atau menunggu satu writer. Variabel umum yang digunakan adalah semaphore mutex, wrt; Inisialisasi variable di atas adalah mutex = 1, wrt = 1, readcount = 0. Struktur proses writer adalah wait(wrt); menulis signal(wrt); Sedangkan struktur proses reader adalah readcount++; if (readcount == 1) wait(rt); signal(mutex); membaca readcount--; if (readcount == 0) signal(wrt); signal(mutex): Dining-Philosophers Problem Pada tahun 1965, Djikstra menyelesaikan sebuah masalah sinkronisasi yang beliau sebut dengan dining philisophers problem. Dining philosophers dapat diuraikan sebagai berikut: Lima orang

filosuf duduk mengelilingi sebuah meja bundar. Masing-masing filosof mempunyai sepiring spageti. Spageti-spageti tersebut sangat licin dan membutuhkan dua garpu untuk memakannya. Diantara sepiring spageti terdapat satu garpu. Kehidupan para filosof terdiri dari dua periode, yaitu makan atau berpikir. Ketika seorang filosof lapar, dia berusaha untuk mendapatkan garpu kiri dan garpu kanan sekaligus. Jika sukses dalam mengambil dua garpu, filosof tersebut makan untuk sementara waktu, kemudian meletakkan kedua garpu dan melanjutkan berpikir. Pertanyaan kuncinya adalah, dapatkah anda menulis program untuk masing-masing filosof yang melakukan apa yang harus mereka lakukan dan tidak pernah mengalami kebuntuan. Prosedur take-fork menunggu sampai garpu-garpu yang sesuaididapatkan dan kemudian menggunakannya. Sayangnya dari solusi ini ternyata salah. Seharusnya lima orang filosof mengambil garpu kirinya secara bersamaan. Tidak akan mungkin mereka mengambil garpu kanan mereka, dan akan terjadi deadlock. Kita dapat memodifikasi program sehingga setelah mengambil garpu kiri, program memeriksa apakah garpu kanan memungkinkan untuk diambil. Jika garpu kanan tidak mungkin diambil, filosof tersebut meletakkan kembali garpu kirinya, menunggu untuk beberapa waktu, kemudia mengulangi proses yang sama. Usulan tersebut juga salah, walau pun dengan alasan yang berbeda. Dengan sedikit nasib buruk, semua filosof dapat memulai algoritma secara bersamaan, mengambil garpu kiri mereka, melihat garpu kanan mereka yang tidak mungkin untuk diambil, meletakkan kembali garpu kiri mereka, menunggu, mengambil garpu kiri mereka lagi secara bersamaan, dan begitu seterusnya. Situasi seperti ini dimana semua program terus berjalan secara tidak terbatas tetapi tidak ada perubahan/kemajuan yang dihasilkan disebut starvation. Sekarang kita dapat berpikir "jika filosof dapat saja menunggu sebuah waktu acak sebagai pengganti waktu yang sama setelah tidak dapat mengambil garpu kiri dan kanan, kesempatan bahwa segala sesuatau akan berlanjut dalam kemandegan untuk beberapa jam adalah sangat kecil." Pemikiran seperti itu adalah benar,tapi beberapa aplikasi mengirimkan sebuah solusi yang selalu bekerja dan tidak ada kesalahan tidak seperti hsk nomor acak yang selalu berubah. Sebelum mulai mengambil garpu, seorang filosof melakukan DOWN di mutex. Setelah menggantikan garpu dia harus melakukan UP di mutex. Dari segi teori, solusi ini cukup memadai. Dari segi praktek, solusi ini tetap memiliki masalah. Hanya ada satu filosof yang dapat makan spageti dalam berbagai kesempatan. Dengan lima buah garpu, seharusnya kita bisa menyaksikan dua orang filosof makan spageti pada saat bersamaan. Solusi yang diberikan di atas benar dan juga mengizinkan jumlah maksimum kegiatan paralel untuk sebuah jumlah filosf yang berubah-ubah ini menggunakan sebuah array, state, untuk merekam status seorang filosof apakah sedang makan (eating), berpikir (think), atau sedang lapar (hungry) karena sedang berusaha mengambil garpu. Seorang filosof hanya dapat berstatus makan (eating) jika tidak ada tetangganya yang sedang makan juga. Tetangga seorang filosof didefinisikan ole LEFT dan RIGHT.

Dengan kata lain, jika i = 2, maka tetangga kirinya (LEFT) = 1 dan tetangga kanannya (RIGHT) = 3. Program ini menggunakan sebuah array dari semaphore yang lapar (hungry) dapat ditahan jika garpu kiri atau kanannya sedang dipakai tetangganya. Catatan bahwa masing-masing proses menjalankan prosedur filosof sebagai kode utama, tetapi prosedur yang lain seperti take-forks, dan test adalah prosedur biasa dan bukan proses-proses yang terpisah Lima Filosof Dalam Satu Meja Makan Struktur data yang digunakan untuk penyelesaian permasalahan ini dengan semaphore Adalah semaphore chopstick[5]; Dimana semua nilai array dinisialisasi 1. Struktur program untuk filosof ke i adalah do { wait(chopstick[i]) wait(chopstick[(i+1) % 5]) makan signal(chopstick[i]); signal(chopstick[(i+1) % 5]); berfikir } while (1); Meskipun solusi ini menjamin bahwa tidak ada 2 tetangga yang makan bersama sama, namun masih mungkin terjadi deadlock, yaitu jika tiap-tiap filosof lapar dan mengambil supit kiri, maka semua nilai supit = 0, dan juka kemudian tiap-tiap filosof akan mengambil supit kanan, maka akan terjadi deadlock. Ada beberapa cara untuk menghindari deadlock, antara lain :

1. mengijinkan paling banyak 4 orang filosof yang duduk bersama-sama pada satu meja. 2. Mengijinkan seorang filosof mangambil supit hanya jika kedua supit itu ada (dengan catatan, bahwa ia harus mengambil pada critical section) 3. Menggunakan suatu solusi asimetrik, yaitu filosof pada nomor ganjil mengambil supit kanan dulu baru supit kiri. Sedangkan filosof yang duduk di kursi genap mengambil supit kanan dulu baru supit kiri. Monitors Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal. Properti-properti monitor adalah sebagai berikut: Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dala monitor dan tidak oleh prosedur di luar monitor. Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini(mutual exclusion). Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal. wait: Ketika prosedur monitor tidak dapat berlanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya. Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda proses lain. vii. Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor. Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu. Daftar Pustaka Ariyus,Dony,2006, Computer Security, Andi Offset, Yogyakarta Ariyus, Dony,2005, kamus hacker, Andi offset, Yogyakarta Bob DuCharme, 2001, The Operating System Handbook or, Fake Your Way Through Minis and Mainframes Singapore: McGraw-Hill Book Co Bill Venners.1998. Inside the Java Virtual Machin e. McGraw-Hill.

Deitel, Harvey M, 2004 operating systems 3 th Edition, Massachusetts: Addison-Wesley Publshing Company Gary B. Shelly, 2007, Discovering Computers: Fundamentals Thomson Gollmann, Dieter,1999 Computer Security Jhon Willey & Son Inc, Canada Grosshans,D. 1986, File system: design and implementation, Englewwod Cliffs, New Jersey : Prentice-Hall Inc. Harvey M Deitel dan Paul J Deitel. 2005. Java How To Program. Sixth Edition. Prentice Hall. Hoare, C.A.R. 1985 Communication sequential processes Englewood Cliffs, New Jersey, Prentice Hall Inc Jean Bacon, Tim Harris, 2003 Operating Systems: Concurrent and Distributed Software Design Massachhussets. Addison Wesley Kenneth H Rosen. 1999. Discrete Mathematics and Its Application. McGraw Hill. Madnick,Stuart E dan John J. Donovan, 1974 operating system, Singapore: McGraw-Hill Book Co Michael Kifer and Scott A. Smolka, 2007 Introduction to Operating System Design and Implementation The OSP 2 Approach, Springer-Verlag London Microsoft 1999. Microsoft Windows User Experience. Microsoft Press. Milenkovie, Milan. 1992. Operationg system: Concepts and Design, Singapore: McGraw-Hill Book Co Randall Hyde. 2003. The Art of Assembly Language. First Edition. No Strach Press Robert betz, 2001 Intoduction to Real-time operation system, Department of Electrical and Computer Engineering University of Newcastle, Australia Robert Love. 2005. Linux Kernel Development. Second Edition. Novell Press Ron White,1998, How Computers Work, Fourth Edition, Que corporation, A Division of Macmillan Computer Publishing, USA Shay, William A. 1993, Introduction to Operationg System New York: HarperCollins College Publishers Silberschatz, Peter Galvin, dan Grag Gagne. 2000. Applied Operating System, 1 s t John Wile & Hiil Book Co

Silberschatz, A., dan Galvin, P.2003, Operating Sistem Concept. Sixth Edition. Massachhussets. Addisson- Wasley Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley & Sons. Stalling, William, 1995, Operating Sistems. New Jersey. Prentice Hall Stalling, William, 1996 Computer Organization and Architecture. New Jersey. Prentice Hall Stalling William, 1995, Network and Internetwork Security Prentice-Hall, USA Tanenbaum, Andrew S, 1992 Modern Operating Sistems. New Jersey. Prentice Hall Taenbaum, Andrew S, 2006, Operating Systems Design and Implementation, Third Edition Massachusetts