KONKURENSI DEADLOCK DAN STARVATION

Slides:



Advertisements
Presentasi serupa
LOGO Kelompok 5 Rifki Baidhowi Ida Fitriana Satya Bagus F Sistem Operasi Kelas E Teknik Informatika Sistem Operasi Kelas E Teknik.
Advertisements

Sinkronisasi dan Deadlock Universitas Airlangga
D EADLOCK Kelompok 6 Baskoro Arif Widodo( ) Fevi Henda Ayumitha( ) Khoirun Nisa’( )
Kelompok 5 “Sinkronisasi Proses” Sistem Operasi Kelas F
6 Deadlock.
DEADLOCK & STARVATION.
Pokok Bahasan Pokok Bahasan: Sinkronisasi dan Mutual Exclusion
Resource Allocation Denial
Arief Cahyo S Rachmad Wahyudi S Abdul Qodir Jailani M. Choirur Rozi Rahmat Aidil FR
MANAJEMEN PROSES.
Dahlan Abdullah PERTEMUAN – 6 KULIAH SISTEM OPERASI SINKRONISASI & DEADLOCK.
Prinsip-Prinsip Deadlock (1)
Concurrency M-03.
Penjadwalan Sistem Interaktif
Deadlock.
Pertemuan 4 Manajemen Proses 2.
Sistem Operasi (Operating Systems) Minggu 7
Slide 10 Concurrency, Mutual Exclusion, & Synchronization
Oleh : Wahyu Andhyka Kusuma
Masalah Klasik Komunikasi Antar Proses
SINKRONISASI.
Sistem Operasi Sinkronisasi Proses.
Deadlock.
SINKRONISASI DAN DEADLOCK
Sinkronisasi dan Deadlock Proses
Concurrency 1: Mutual Exclusion dan Sinkronisasi
Deadlock.
Sistem Operasi (Operating Systems) Minggu 4
Sistem Operasi 7 “Deadlock”.
Sistem Operasi DEADLOCK.
Deadlock.
KONSEP THREAD.
MUTUAL EXCLUSION.
Konkurensi: Mutual Exclusion dan Sikronisasi
DEADLOCK. Pokok Bahasan  Pengertian & Latar Belakang Deadlock  Penyebab Deadlock  Strategi untuk mengatasi Deadlock  Kesimpulan.
SINKRONISASI DAN DEADLOCK
Konkurensi 3 Deadlock dan Starvation
Sinkronisasi Proses.
Sistem Operasi Pertemuan 11.
Deadlock Edi Sugiarto, S.Kom.
DEADLOCK.
Menghindari Deadlock Sebuah keputusan yang dibuat secara dinamis apakah alokasi sumber daya sekarang akan ada permintaan, jika diberikan, berpotensi menjadi.
Wahyu nurjaya wk, st., m.kom.
Konkurensi.
SINKRONISASI.
Deadlock.
Proses dan Thread Oleh : Adhitya Nugraha.
Deadlock.
VII. Deadlock dan Starvation
Sinkronisasi Proses.
Jurusan Teknik Informatika UPN Surabaya
SINKRONISASI & DEADLOCK
Sinkronisasi dan Deadlock
“Sinkronisasi Proses”
SINKRONISASI PADA THREAD
Deadlock.
DEADLOCK Situasi Deadlock terjadi, jika:
Konkurensi 2 Sinkronisasi dan Semaphore
DEADLOCK KELOMPOK 8 Sistem Operasi Budi Nofianto
Sistem Operasi: Deadlock
Koordinasi Antar Proses DI DALAM SISTEM TERDISTRIBUSI
Konkurensi SISTEM OPERASI Slide perkuliahan
Konkurensi SISTEM OPERASI Slide perkuliahan
Deadlock.
SINKRONISASI DAN DEADLOCK
SINKRONISASI PROSES Kelompok 1 Achmad Syarifudin S Ade Putra Gustama
Sesi 5. Sinkronisasi Proses
SISTEM OPERASI MODUL Deadlock Maria Cleopatra, S.Kom
Proses dan Thread Oleh : Adhitya Nugraha.
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Transcript presentasi:

KONKURENSI DEADLOCK DAN STARVATION ALIVI NUR ROSIDA 109533427367 ANGGRAINI YUSSI P 109533423231 ERVIANDO MERANDI P. 109533427366 GULPI QORIK O. P. 109533423232

Principles of DEADLOCK Definition of Deadlock Resource Categories Condition for Deadlock

What is Deadlock? pemblok-an permanen proses memperebutkan resource sistem Tidak memiliki solusi yang efisien

Potential Deadlock I need quad C and B I need quad B and C I need quad A and B Animated Slide Click 1 Cars approach intersection Then Cars announce their resource needs All deadlocks involve conflicting needs for resources by two or more processes. A common example is the traffic deadlock. The typical rule of the road in the United States is that a car at a four-way stop should defer to a car immediately to its right. This rule works if there are only two or three cars at the intersection. If all four cars arrive at about the same time, each will refrain from entering the intersection, this causes a potential deadlock. The deadlock is only potential, not actual, because the necessary resources are available for any of the cars to proceed. If one car eventually does proceed, it can do so. I need quad D and A

Actual Deadlock

Example

Example II

Resource Categories Reusable Consumable dapat digunakan dengan aman oleh hanya satu proses dalam satu waktu. Consumable dapat diciptakan dan dapat di konsumsi.

Reusable seperti processors,I/O channels, memori utama, database, devices, files, dan semaphores Deadlock terjadi pada contoh di awal presentasi

Consumable seperti interrupt, signals, messages,dan infromasi di I/O buffers. Deadlock dapat terjadi jika ada Kesalahan dalam desain program Sangat langka, butuh waktu yang lama hingga terjadi deadlock

Condition for possible Deadlock Mutual exclusion use a resource at a time Hold-and-wait hold resources while awaiting others No pre-emption cant be forcibly removed resource

Actual Deadlock Requirement Tiga kondisi sebelumnya dan … Circular wait adalah rantai yang menghubungkan proses yang ada, dimana setiap proses menahan minimal satu resource yang dibutuhkan proses berikutnya dalam rantai.

Starvation Starvation occurs when one or more threads in your program are blocked from gaining access to a resource and, as a result, cannot make progress

Starvation kekurangan resource Karena deadlock Karena kesalahan design sistem

Bagaimana Mengatasinya? Deadlock Prevention Deadlock Avoidance Deadlock Detection

Deadlock Prevention Design system with no possible deadlock. Terdapat dua metode untuk mencegah deadlock. Indirect Direct

Indirect Method mencegah ketiga kondisi yang dibutuhkan deadlock, yaitu: mutual exclusion, tidak bisa sepenuhnya dicegah, dan harus didukung oleh OS dapatkan seluruh resource secara bersamaan proses gagal => semua resource yang telah didapat, harus dilepas

Direct Method mencegah terjadinya circular waits mendefinisikan pemesanan tipe resource yang linear.

Deadlock Avoidance Dalam menghindari deadlock, ketentuan dibuat secara dinamis, tergantung dari request resource dari program, berpotensi kepada deadlock atau tidak.

Dua Pendekatan menghindari Deadlock Process Initiation Denial tidak menjalankan proses jika memungkinkan terjadi deadlock Resource Allocation Denial tidak membolehkan penambahan request resource kepada proses jika memungkinkan terjadinya deadlock.

Keuntungan Tidak perlu melakukan preempt dan rollback proses seperti pada deadlock detection Lebih sedikit pembatas daripada deadlock prevention

Deadlock Detection mengecek system dari terjadinya deadlock secara regular semakin sering terjadi pengecekan, semakin memakan waktu prosesor Saat ditemukan deadlock, lakukan proses recovery

Strategi Penanggulangan Deadlock Terpadu

Strategi Penanggulangan Deadlock Terpadu Strategi penanggulangan deadlock mempunyai kelemahan dan kelebihan masing-masing, daripada berusaha merancang fasilitas sistem operasi dengan satu strategi penanggulangan deadlock maka lebih efisien menggunakan strategi yang berbeda untuk situasi yang berbeda.

Strategi Penanggulangan Deadlock Terpadu Silberschatz menyarankan satu pendekatan terpadu yaitu: Kelompokkan resource kedalam beberapa kelas resource yang berbeda Gunakan strategi pengurutan linear seperti yang didefinisikan pada pencegahan menunggu sirkulaar. Strategi ini digunakan untuk mencegah deadlock di antara kelas-kelas resource yang berbeda Dalam satu kelas resource, gunakan algoritma yang paling cocok untuk kelas resource tersebut.

Filosofi Dining Problem

Filosofi Dining Problem

Pengaturan makan Sebuah meja bundar yang terdapat semangkuk besar spaghetti, lima piring, satu untuk setiap filusuf, dan lima garpu. Seorang filosof hanya bisa memakan spaghetti dengan menggunakan dua garpu.

Masalah Merancang algoritma yang memungkinkan para filosof untuk makan Masalah Merancang algoritma yang memungkinkan para filosof untuk makan. Algoritma ini harus memenuhi mutual exclusion (tidak ada dua filosof yang bisa menggunakan garpu yang sama pada waktu yang sama) sambil menghindari deadlock dan starvation.

Solusi Menggunakan Semaphores Setiap filosof mengambil garpu di sebelah kiri dan kemudian garpu di sebelah kanan. Setelah filosof selesai makan, kedua garpu diletakkan di atas meja. Sayangnya, solusi ini, menyebabkan deadlock: Jika semua filosof lapar pada saat yang sama, mereka semua duduk, mereka semua mengambil garpu di sebelah kiri mereka, dan mereka semua menjangkau untuk garpu lain, yang tidak ada . Dalam posisi ini, semua filosof kelaparan. Untuk mengatasi risiko deadlock, kita bisa membeli lima garpu tambahan atau mengajarkan para filosof untuk makan spaghetti hanya dengan satu garpu. Sebagai pendekatan yang lain, kita bisa pertimbangkan untuk menambahkan seorang pembantu yang membatasi hanya empat filosof yang bisa makan pada waktu yang sama. Dengan paling banyak empat filosof duduk, setidaknya satu filosof akan memiliki akses ke dua garpu.

Solusi Menggunakan Monitor

Solusi Menggunakan Monitor Sebuah vektor dari lima variabel kondisi didefinisikan, satu variabel kondisi per garpu. Variabel-variabel kondisi yang digunakan untuk mengaktifkan filosof untuk menunggu ketersediaan garpu. Selain itu, ada vektor Boolean yang mencatat status ketersediaan setiap garpu (benar berarti garpu tersedia). Monitor terdiri dari dua prosedur. Prosedur get_forks digunakan oleh filosof untuk memanfaatkan garpu di sebelah kiri dan kanannya. Jika salah satu garpu tidak tersedia, filosof akan mengantri pada variabel kondisi yang sesuai. Ini memungkinkan filosof lain untuk masuk ke monitor. Prosedur release_forks digunakan untuk menyediakan dua garpu. Solusi ini mirip dengan solusi semaphore. Pada kedua kasus ini, seorang filosof pertama merebut garpu kiri dan kemudian garpu kanan. Berbeda dengan solusi semaphore, solusi menggunakan monitor ini tidak mengalami deadlock, karena hanya satu proses pada suatu waktu yang mungkin di monitor. Sebagai contoh, Filosof pertama yang memasuki monitor dijamin bahwa ia dapat mengambil garpu kanan tepat setelah mengambil garpu kiri sebelum filosof di sebelah kanannya memiliki kesempatan untuk merebut garpu kiri, yang merupakan garpu kanan filosof pertama.

UNIX Mekanisme Concurrency

UNIX Mekanisme Concurrency Mekanisme untuk komunikasi interprocessor dan sinkronasi: Pipes Message Shared memory Semaphores Signals

Pipes Menghubungkan standard output proses ke standard input proses lain. Metode komunikasi satu arah antara proses-proses. Tipe  Named,Unnamed

Messages UNIX menyediakan msgsnd dan sistem msgrc call untuk proses untuk terlibat dalam lewat pesan. Message dikirim melalui Queue secara berurutan dan diambil dari antrian dengan beragam cara.

Shared Memory Memungkinkan satu proses atau lebih berkomunikasi lewat memory. Blok umum dari virtual memory bersama oleh beberapa proses  Izin dibaca saja atau read-write untuk proses, - ditentukan pada basis per-proses.

Semaphore SVR4 menggunakan generalisasi dari semWait dan primitif semSignal  Terkait dengan antrian semaphore adalah proses diblokir pada semaphore itu.

Signals Mekanisme software yang menginformasikan proses terjadinya kejadian yang asinkronus. Sebuah sinyal disampaikan oleh memperbarui field dalam tabel proses untuk proses yang sinyal sedang dikirim.

Linux Kernel Concurrency Mechanism

Linux Kernel Concurrency Mechanism mekanisme yang ditemukan di UNIX plus : Atomic operations Spinlocks Semaphores (slightly different to SVR4) Barriers

Atomic Operations Atom melaksanakan operasi tanpa henti dan tanpa gangguan  Dua tipe:  - Integer Operasi - operasi pada variabel integer  - Bitmap Operasi - operasi pada satu bit dalam bitmap Dua jenis operasi atom didefinisikan di Linux:  • integer operasi, yang beroperasi pada variabel integer • bitmap operasi, yang beroperasi pada satu bit dalam bitmap

Spinlock Hanya satu thread pada suatu waktu dapat memperoleh sebuah spinlock.  - Setiap thread lainnya akan terus berusaha (spinning) sampai dapat memperoleh kunci.  Spinlock adalah integer  • Jika nilainya 0, benang set nilai ke 1 dan memasuki critical section-nya.  • Jika nilai bukan nol, benang terus menerus memeriksa nilai sampai nol.

Semaphores  Mirip dengan UNIX SVR4 tapi juga menyediakan sebuah implementasi dari semaphores untuk digunakan sendiri. Tiga jenis semaphores kernel: – Binary semaphores – counting semaphores, – reader-writer semaphores.

Barriers Untuk menegakkan urutan instruksi untuk dieksekusi, Linux menyediakan fasilitas penghalang memori.

Solaris Thread Synchronitation Primitives Mutual exclusion (mutex) locks Semaphores Multiple readers, single writer (readers/writer) locks Condition variables

Mutual exclusion (mutex) Tiga kondisi untuk menentukan mutual Exclusion Tidak ada dua proses yang pada saat bersamaan berada di critical region / section. Tidak ada proses yang berjalan diluar critical region / section yang bisa menghambat proses lain Tidak ada proses yang tidak bisa masuk ke critical region / section

Semaphores Solaris menyediakan layanan semaphores Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Semaphore S merupakan sebuah variabel integer yang diakses hanya melalui dua operasi standar atomik yaitu wait dan signal. Semaphore mempunyai dua sifat Semaphore dapat diinisialisasi dengan nilai non-negatif. Terdapat dua operasi yaitu Down (menurunkan nilai) dan Up (menaikkan nilai).

Semaphores void wait(int s){ while (s<=0){no-op;} s=s-1; } void signal(s){ s=s+1 Berikut ini merupakan implementasi semaphore untuk mengatasi masalah critical-section. int mutex=1; do{ wait(mutex); critical section signal(mutex); remainder section }while(TRUE);

Semaphores Dalam subrutin ini, proses akan memeriksa harga dari semaphor, apabila harganya 0 atau kurang maka proses akan menunggu, sebaliknya jika lebih dari 0, maka proses akan mengurangi nilai dari semaphore tersebut dan menjalankan operasi yang lain. Arti dari harga semaphore dalam kasus ini adalah hanya boleh satu proses yang dapat melewati subrutin wait pada suatu waktu tertentu, sampai ada salah satu atau proses itu sendiri yang akan memanggil signal.

Multiple readers, single writer (readers/writer) locks Kunci readers/writer memungkinkan beberapa thread untuk memiliki akses read-only simultan ke objek yang dilindungi oleh kunci. Hal ini juga memungkinkan thread tunggal untuk mengakses objek untuk menulis pada suatu waktu, sementara tidak termasuk semua reader.

Condition variables Sebuah variabel kondisi digunakan untuk menunggu sampai kondisi tertentu adalah benar. Kondisi variabel harus digunakan bersama dengan kunci mutex.

Windows Concurrency Mechanisms Executive dispatcher objects (menggunakan fungsi tunggu), Critical sections, slim reader-writer locks condition variables.

Executive dispatcher objects (fungsi tunggu) Fungsi tunggu memungkinkan thread untuk memblokir eksekusi sendiri. Fungsi tunggu tidak kembali sampai kriteria yang ditentukan telah dipenuhi. Fungsi tunggu menentukan set kriteria yang digunakan.

Critical sections / region Critical region adalah bagian dari program dan ditetapkan untuk selalu berada dalam keadaan mutual exclusion. Keuntungan menggunakan ini adalah programer tidak perlu lagi mengimplementasikan algoritma yang rumit untuk mendapatkan mutual exclusion

Critical sections / region Critical region memiliki sebuah komponen boolean yang menguji apakah bagian dari program boleh masuk ke dalam state critical region atau tidak. Jika nilai boolean ini true maka proses boleh masuk ke critical region. Jika boolean ini bernilai false bagian yang ini akan dimasukan kedalam sebuah antrian sampai nilai boolean ini bernilai true. Main queue  menampung proses yang akan memasuki critical region jika critical region masih digunakan oleh proses lain Event queue  menampung proses yang tidak dapat memasuki critical region karena nilai boolean-nya bernilai false.

Slim reader-writer locks 1. Windows Vista menambahkan user mode reader-writer. 2. Kunci reader-writer memasuki kernel untuk memblokir hanya setelah mencoba menggunakan kunci-spin. 3. Disebut 'Slim' karena biasanya hanya membutuhkan alokasi sepotong pointer tunggal di memori. kunci SRW menyediakan dua mode di mana benang dapat mengakses sumber daya bersama: Modus shared Modus eksklusif

Condition variables

SEKIAN TERIMAKASIH

Pertanyaan Jeck : jelaskan tentang spinlock? (SIP !!) HQ : penyelesaian dengan cara mengajarkan filsuf makan dengan satu garpu, gimana aplikasinya? (SIP !!) Andi : mutex, jelaskan lagi! Kapan qta tau di komputer itu akan terjadi deadlock? (SIP !!) Argho: perbedaan block sama lock? (SIP !!)