Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

KONKURENSI DEADLOCK DAN STARVATION ALIVI NUR ROSIDA109533427367 ANGGRAINI YUSSI P109533423231 ERVIANDO MERANDI P.109533427366 GULPI QORIK O. P.109533423232.

Presentasi serupa


Presentasi berjudul: "KONKURENSI DEADLOCK DAN STARVATION ALIVI NUR ROSIDA109533427367 ANGGRAINI YUSSI P109533423231 ERVIANDO MERANDI P.109533427366 GULPI QORIK O. P.109533423232."— Transcript presentasi:

1 KONKURENSI DEADLOCK DAN STARVATION ALIVI NUR ROSIDA ANGGRAINI YUSSI P ERVIANDO MERANDI P GULPI QORIK O. P

2 Principles of DEADLOCK Definition of Deadlock Resource Categories Condition for Deadlock

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

4 Potential Deadlock I need quad A and B I need quad B and C I need quad C and B I need quad D and A

5 Actual Deadlock

6 Example

7 Example II

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

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

10 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

11 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

12 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.

13 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

14 Starvation kekurangan resource Karena deadlock Karena kesalahan design sistem

15 Bagaimana Mengatasinya? Deadlock Prevention Deadlock Avoidance Deadlock Detection

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

17 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

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

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

20 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.

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

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

23 Strategi Penanggulangan Deadlock Terpadu

24 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.

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

26 Filosofi Dining Problem

27

28 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.

29 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.

30 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.

31 Solusi Menggunakan Monitor

32 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.

33 UNIX Mekanisme Concurrency

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

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

36 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.

37 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.

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

39 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.

40

41 Linux Kernel Concurrency Mechanism

42 mekanisme yang ditemukan di UNIX plus : Atomic operations Spinlocks Semaphores (slightly different to SVR4) Barriers

43 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

44

45

46 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.

47

48 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.

49

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

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

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

53 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 1.Semaphore dapat diinisialisasi dengan nilai non-negatif. 2.Terdapat dua operasi yaitu Down (menurunkan nilai) dan Up (menaikkan nilai).

54 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);

55 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.

56 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.

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

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

59 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.

60 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

61 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.

62 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

63 Condition variables

64 SEKIAN TERIMAKASIH

65 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 !!)


Download ppt "KONKURENSI DEADLOCK DAN STARVATION ALIVI NUR ROSIDA109533427367 ANGGRAINI YUSSI P109533423231 ERVIANDO MERANDI P.109533427366 GULPI QORIK O. P.109533423232."

Presentasi serupa


Iklan oleh Google