SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
DEADLOCKS
Bahasan Deadlocks
 Permasalahan Deadlocks
 Model sistem Deadlocks
 Karakterisasi Deadlocks
 Metode untuk Penanganan Deadlocks
 Pencegahan Deadlocks
 Penghindaran Deadlocks
 Deteksi Deadlocks
 Pemulihan dari Deadlocks
Tujuan
 Mahasiswa mampu
 Mengembangkan suatu diskripsi dari deadlocks, yaitu
mencegah kelompok dari proses-proses konkuren pada
penyelesaian tugas-tugasnya.
 Menyajikan sejumlah metode-metode yang berbeda
untuk pencegahan atau penghindaran deadlocks
dalam suatu sistem komputer.
Pendahuluan
 Penyebab utama terjadinya deadlocks adalah terbatasnya
sumber daya yang akan digunakan oleh banyak proses.
 Tiap proses berkompetisi untuk memperebutkan sumber
daya yang ada.
 Jadi deadlocks berhubungan erat dengan tersedianya
sumber daya dari komputer
 Deadlokcs adalah kebuntuan, artinya bahwa di dalam
sistem operasi terjadi suatu kondisi di mana sekumpulan
proses tidak dapat berjalan kembali atau tidak adanya
komunikasi antar proses.
 Keadaan dimana 2 proses atau lebih saling menunggu meminta
resources untuk waktu yang tidak terbatas.
 Analoginya seperti pada kondisi jalan raya dimana terjadi
kemacetan parah
 Deadlock adalah efek samping dari sinkronisasi, dimana satu
variabel digunakan oleh 2 proses atau lebih
 Definisi:
 Deadlocks adalah sekumpulan proses yang terblok dimana tiap
proses tersebut memegang sumber daya dan menunggu untuk
mendapatkan sumber daya yang sama yang juga dipegang oleh
sekumpulan proses lain
Ilustrasi Deadlocks
 Misalkan proses A memerlukan sumber daya X dan
mendapakannya. Proses B meminta sumber daya Y dan
mendapatkannya. Selang beberapa saat, proses A
memerlukan sumber daya Y, dan proses B meminta
sumber daya X.
 Pada situasi tersebut, kedua proses itu terblok dan
menunggu secara terus menerus. Keadaan itu terjadi
deadlocks.
Model Deadlock
Permasalahan Deadlocks
 Misalkan
 Sistem memiliki 2 disk drives
 P1 dan P2 masing-masing menggunakan satu disk drive A dan disk
drive B
 Pada saat tertentu P1 membutuhkan B, P2 membutuhkan A, pada hal A
sdg digunakan oleh P1, B sedang digunakan oleh P2, maka P1
menunggu B dan P2 menunggu A
 Example lainnya
 semaphores A and B, initialized to 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
Contoh Jembatan Penyeberangan
 Lalu lintas hanya satu arah
 Masing-masing bagian dari jembatan itu dapat dipandang sebagai sebuah
sumberdaya
 Jika deadlokcs terjadi, deadlocks dapat diselesaikan jika sebuah mobil
mundur (preempt resources and rollback)
 Beberapa mobil harus diundurkan jika deadlock terjadi
 Starvation mungkin terjadi
 Perhatikan: banyak sistem operasi tidak mencegah atau mengaitkan
deadlocks
Resources
 Resource
 commodity required by a process to execute
 Resources can be of several types
 Serially Reusable Resources
 CPU cycles, memory space, I/O devices, files
 acquire -> use -> release
 Consumable Resources
 Produced by a process, needed by a process - e.g. Messages, buffers
of information, interrupts
 create ->acquire ->use
 Resource ceases to exist after it has been used
Model Sistem
 Sebuah sistem terdiri dari beberapa sumber daya yang
akan didistribusikan kepada berbagai proses.
 Sumber daya tersebut dibagi-bagi menjadi beberapa tipe
dan tiap tipe terdiri dari beberapa instance yang identik
 Instance (komoditas/commodity) adalah bagian dari sumber
daya yang dialokasikan untuk memenuhi kebutuhan proses.
 Sumber daya dapat berupa fisik maupun non-fisik.
 Contoh:
 Fisik: printer, CD drive, memory, dan CPU cycle
 Non fisik: file, semaphore, dan monitor.
Model Sistem (lanjutan..)
Model sistem juga dapat dijelaskan sebagai berikut:
 Jenis sumberdaya: R1, R2, R3, …, Rn
 Misalkan: R1=CPU cycle, R2=ruang memori, dan R3=piranti I/O
 Masing-masing sumber daya jenis Ri memiliki instans Wi
 Masing-masing proses memanfaatkan sebuah sumber daya (resource)
sebagai berikut: (acquire  use  release)
 Request (meminta), jika sumberdaya tidak tersedia, maka proses
terganggu.
 use (menggunakan)
 release (melepaskan)
 Sekumpulan proses berada dalam kondisi deadlocks apabila semua proses
berada dalam keadaan menunggu ( di dalam waiting queue) peristiwa
(event) hanya bisa dilakukan oleh proses yang berada di dalam waiting
queue tersebut.
Karakteristik deadlocks (kondisi deadlocks)
 Mutual exclusion: hanya satu proses pada suatu saat dapat menggunakan
sebuah sumberdaya
 Hold and wait: sebuah proses memegang (menggunakan) paling sediikit sebuah
sumberdaya yang sedang menunggu untuk meminta penambahan sumberdaya
yang dilakukan oleh proses-proses lainnya
 No preemption: Resources dirilis oleh proses-proses yang sedang
menggunakannya hanya setelah proses itu telah menyelesaikan tugasnya.
 Circular wait: sebuah rantai sirkular dari proses-proses yang mana masing-
masing proses menunggu satu resource atau lebih yang digunakan oleh proses
berikutnya dalam rantai tsb.
 Misalnya:
 there exists a set {P0, P1, …, Pn} of waiting processes such that P0 is waiting for
a resource that is held by P1, P1 is waiting for a resource that is held by P2, …,
Pn–1 is waiting for a resource that is held by Pn, and Pn is waiting for a resource
that is held by P0.
Conditions for Deadlock
 The following 4 conditions are necessary and sufficient for deadlock
(must hold simultaneously)
 Mutual Exclusion:
 Only one process at a time can use the resource.
 Hold and Wait:
 Processes hold resources already allocated to them while waiting for other
resources.
 No preemption:
 Resources are released by processes holding them only after that process has
completed its task.
 Circular wait:
 A circular chain of processes exists in which each process waits for one or
more resources held by the next process in the chain.
Resource-Allocation Graph (Graf Alokasi-
Sumberdaya)
 A set of vertices V and a set of edges E.
V is partitioned into two types:
 P = {P1, P2, …, Pn}, - the set of processes in the
system
 R = {R1, R2, …, Rm}, the set of resource types in
the system
 Two kinds of edges
 Request edge – directed edge Pi  Rj
 assignment edge – directed edge Rj Pi
Resource-Allocation Graph (Cont.)
 Process
Resource Type with 4 instances
 Pi requests instance of Rj
 Pi is holding an instance of Rj
Pi
Rj
Pi
Rj
Example of a Resource Allocation Graph
Circular Wait
 Contoh Circular Wait
Resource Allocation Graph With A Deadlock
• Terlihat ada perputaran yang memungkinan
terjadinya deadlocks dan semua sumberdaya
memiliki satu instans kecuali sumber daya R2
• Gambar disamping menunjukkan beberapa hal
sebagai berikut:
• P1 meminta sumber daya R1
• R1 mengalokasikan sumberdayanya pada
P2
• P2 meminta sumber daya R2
• R2 mengalokasikan sumberdayanya pada
P2
• P3 meminta sumber daya R2
• R3 mengalokasikan sumber dayanya pada
P3
• Terjadi deadlocks sebab P1 meminta R1 untuk
menyelesaikan prosesnya.
• Sedangkan R1 dialokasikan ke P2.
• Di lain pihak P2 memerlukan R3, sedangkan R3
dialokasikan untuk P3.
• P3 memerlukan sumber daya R2, akan tetapi R2
mengalokasikan sumber dayanya ke P2
1. R2  P1  R1  P2  R3  P3  R2
2. R2  P2  R3  P3  R2
Graph With A Cycle But No Deadlock
Fakta-fakta Dasar
 If graph contains no cycles  no deadlock
 If graph contains a cycle 
if only one instance per resource type, then
deadlock
if several instances per resource type, possibility
of deadlock
10. deadlock
Methods for Handling Deadlocks
 Ensure that the system will never enter a
deadlock state
 Allow the system to enter a deadlock state and
then recover
 Ignore the problem and pretend that deadlocks
never occur in the system; used by most
operating systems, including UNIX
Strategi mengatasi Deadlock (Manajemen
deadlock)
 Prevention : memastikan paling sedikit satu penyebab
Deadlock tidak berlaku
 Avoidance : sistem menolak request terhadap resource
yang berpotensi deadlock, Algoritma Banker
 Detection and Recovery : membiarkan Deadlock terjadi,
lalu mendeteksinya, kemudian melakukan recovery,
Algoritma Ostrich
Deadlock Prevention
 Mutual Exclusion – not required for sharable resources; must
hold for nonsharable resources (membuat file spool untuk
resource yang digunakan bersama-sama)
 Hold and Wait – must guarantee that whenever a process
requests a resource, it does not hold any other resources
 Require process to request and be allocated all its
resources before it begins execution, or allow process to
request resources only when the process has none
 Low resource utilization; starvation possible
( memaksa sebuah proses untuk melepaskan resource yang
dimilikinya ketika meminta resource baru)
Restrain the ways request can be made
Deadlock Prevention (Cont.)
 No Preemption – (membolehkan adanya preemption)
 If a process that is holding some resources requests another
resource that cannot be immediately allocated to it, then all
resources currently being held are released
 Preempted resources are added to the list of resources for
which the process is waiting
 Process will be restarted only when it can regain its old
resources, as well as the new ones that it is request in
 Circular Wait – impose a total ordering of all resource types,
and require that each process requests resources in an
increasing order of enumeration (memberikan penamaan
resource berdasarkan urutan atau level)
Deadlock Avoidance
 Simplest and most useful model requires that each
process declare the maximum number of resources of
each type that it may need
 The deadlock-avoidance algorithm dynamically
examines the resource-allocation state to ensure that
there can never be a circular-wait condition
 Resource-allocation state is defined by the number of
available and allocated resources, and the maximum
demands of the processes
Requires that the system has some additional a priori information
available
Avoidance
 Resource manager menolak proses yang meminta
resource yang berpotensi deadlock
 Jika ada permintaan resource yang maksimum
digunakan, maka proses tersebut akan dipaksa
untuk melepaskan resource yang sudah dimiliknya
 Perlu adanya informasi tambahan
Safe State
 When a process requests an available resource, system must decide if
immediate allocation leaves the system in a safe state
 System is in safe state if there exists a sequence <P1, P2, …, Pn> of
ALL the processes is the systems such that for each Pi, the resources
that Pi can still request can be satisfied by currently available
resources + resources held by all the Pj, with j < i
 That is:
 If Pi resource needs are not immediately available, then Pi can wait
until all Pj have finished
 When Pj is finished, Pi can obtain needed resources, execute, return
allocated resources, and terminate
 When Pi terminates, Pi +1 can obtain its needed resources, and so on
Basic Facts
 If a system is in safe state  no deadlocks
 If a system is in unsafe state  possibility
of deadlock
 Avoidance  ensure that a system will
never enter an unsafe state.
Safe, Unsafe , Deadlock State
Avoidance algorithms
 Single instance of a resource type
Use a resource-allocation graph
 Multiple instances of a resource type
 Use the banker’s algorithm
Resource-Allocation Graph Scheme
 Claim edge Pi  Rj indicated that process Pj may
request resource Rj; represented by a dashed line
 Claim edge converts to request edge when a process
requests a resource
 Request edge converted to an assignment edge when
the resource is allocated to the process
 When a resource is released by a process, assignment
edge reconverts to a claim edge
 Resources must be claimed a priori in the system
Resource-Allocation Graph
Unsafe State In Resource-Allocation Graph
Claim Graph
1 2
3
45
Possible Deadlock!!
6
Resource-Allocation Graph Algorithm
 Suppose that process Pi requests a resource Rj
 The request can be granted only if converting the
request edge to an assignment edge does not
result in the formation of a cycle in the resource
allocation graph
Banker’s Algorithm
 Multiple instances of each resource type
 Each process must a priori claim maximum
use
 When a process requests a resource it may
have to wait
 When a process gets all its resources it
must return them in a finite amount of time
Algoritma Banker
 Didasarkan pada kondisi bank, dimana konsumen
meminjam sejumlah uang, lalu meminta pinjaman uang
lagi
 Proses dan resource dimodelkan dalam satu tabel
Resources assigned Remaining resources
A 3 0 1 1
B 0 1 0 0
C 1 1 1 0
D 1 1 0 1
E 0 0 0 0
A 1 1 0 0
B 0 1 1 2
C 3 1 0 0
D 0 0 1 0
E 2 1 1 0
Data Structures for the Banker’s Algorithm
 Available: Vector of length m. If available [j] = k, there are
k instances of resource type Rj available
 Max: n x m matrix. If Max [i,j] = k, then process Pi may
request at most k instances of resource type Rj
 Allocation: n x m matrix. If Allocation[i,j] = k then Pi is
currently allocated k instances of Rj
 Need: n x m matrix. If Need[i,j] = k, then Pi may need k
more instances of Rj to complete its task
Need [i,j] = Max[i,j] – Allocation [i,j]
Let n = number of processes, and m = number of resources types.
Safety Algorithm
1. Let Work and Finish be vectors of length m and n,
respectively. Initialize:
Work = Available
Finish [i] = false for i = 0, 1, …, n- 1
2. Find and i such that both:
(a) Finish [i] = false
(b) Needi  Work
If no such i exists, go to step 4
3. Work = Work + Allocationi
Finish[i] = true
go to step 2
4. If Finish [i] == true for all i, then the system is in a safe state
Resource-Request Algorithm for Process Pi
Request = request vector for process Pi. If Requesti [j] = k then process
Pi wants k instances of resource type Rj
1. If Requesti  Needi go to step 2. Otherwise, raise error condition,
since process has exceeded its maximum claim
2. If Requesti  Available, go to step 3. Otherwise Pi must wait, since
resources are not available
3. Pretend to allocate requested resources to Pi by modifying the
state as follows:
Available = Available – Request;
Allocationi = Allocationi + Requesti;
Needi = Needi – Requesti;
 If safe  the resources are allocated to Pi
 If unsafe  Pi must wait, and the old resource-allocation state is
restored
Example of Banker’s Algorithm
 5 processes P0 through P4
3 resource types:
A (10 instances), B (5 instances), and C (7 instances)
Snapshot at time T0:
Allocation Max Available
A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2
P1 2 0 0 3 2 2
P2 3 0 2 9 0 2
P3 2 1 1 2 2 2
P4 0 0 2 4 3 3
Example (Cont.)
 The content of the matrix Need is defined to be Max – Allocation
Need
A B C
P0 7 4 3
P1 1 2 2
P2 6 0 0
P3 0 1 1
P4 4 3 1
The system is in a safe state since the sequence < P1, P3, P4, P2, P0>
satisfies safety criteria
Example: P1 Request (1,0,2)
 Check that Request  Available (that is, (1,0,2)  (3,3,2)  true
Allocation Need Available
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 1 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1
 Executing safety algorithm shows that sequence < P1, P3, P4, P0, P2> satisfies
safety requirement
 Can request for (3,3,0) by P4 be granted?
 Can request for (0,2,0) by P0 be granted?
Deadlock Detection
 Allow system to enter deadlock state
 Detection algorithm
 Recovery scheme
Single Instance of Each Resource Type
 Maintain wait-for graph
 Nodes are processes
 Pi  Pj if Pi is waiting for Pj
 Periodically invoke an algorithm that searches for a
cycle in the graph. If there is a cycle, there exists a
deadlock
 An algorithm to detect a cycle in a graph requires an
order of n2 operations, where n is the number of
vertices in the graph
Resource-Allocation Graph and Wait-for Graph
Resource-Allocation Graph Corresponding wait-for graph
Several Instances of a Resource Type
 Available: A vector of length m indicates the number of
available resources of each type.
 Allocation: An n x m matrix defines the number of resources
of each type currently allocated to each process.
 Request: An n x m matrix indicates the current request of
each process. If Request [ij] = k, then process Pi is requesting k
more instances of resource type. Rj.
Detection Algorithm
1. Let Work and Finish be vectors of length m and n, respectively
Initialize:
(a) Work = Available
(b) For i = 1,2, …, n, if Allocationi  0, then
Finish[i] = false;otherwise, Finish[i] = true
2. Find an index i such that both:
(a) Finish[i] == false
(b) Requesti  Work
If no such i exists, go to step 4
Detection Algorithm (Cont.)
3. Work = Work + Allocationi
Finish[i] = true
go to step 2
4. If Finish[i] == false, for some i, 1  i  n, then the system is in
deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked
Algorithm requires an order of O(m x n2) operations to detect
whether the system is in deadlocked state
Example of Detection Algorithm
 Five processes P0 through P4; three resource types
A (7 instances), B (2 instances), and C (6 instances)
 Snapshot at time T0:
Allocation Request Available
A B C A B C A B C
P0 0 1 0 0 0 0 0 0 0
P1 2 0 0 2 0 2
P2 3 0 3 0 0 0
P3 2 1 1 1 0 0
P4 0 0 2 0 0 2
 Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i
Example (Cont.)
 P2 requests an additional instance of type C
Request
A B C
P0 0 0 0
P1 2 0 1
P2 0 0 1
P3 1 0 0
P4 0 0 2
 State of system?
 Can reclaim resources held by process P0, but insufficient resources to fulfill other
processes; requests
 Deadlock exists, consisting of processes P1, P2, P3, and P4
Detection-Algorithm Usage
 When, and how often, to invoke depends on:
 How often a deadlock is likely to occur?
 How many processes will need to be rolled back?
one for each disjoint cycle
 If detection algorithm is invoked arbitrarily, there may be
many cycles in the resource graph and so we would not be
able to tell which of the many deadlocked processes
“caused” the deadlock
Recovery from Deadlock: Process Termination
 Abort all deadlocked processes
 Abort one process at a time until the deadlock cycle is eliminated
 In which order should we choose to abort?
 Priority of the process
 How long process has computed, and how much longer to completion
 Resources the process has used
 Resources process needs to complete
 How many processes will need to be terminated
 Is process interactive or batch?
Recovery from Deadlock: Resource Preemption
 Selecting a victim – minimize cost
 Rollback – return to some safe state, restart process
for that state
 Starvation – same process may always be picked
as victim, include number of rollback in cost factor
Kesimpulan
 Deadlock adalah situasi dimana 1 atau lebih
proses tidak akan pernah selesai tanpa adanya
recovery
 Empat kondisi penting untuk deadlock : mutual
exclusion, hold and wait, circular wait, and no
preemption
 Deadlock bisa diatasi oleh berbagai strategi :
prevention, avoidance, detection and recovery
SELESAI DEADLOCKS

Mais conteúdo relacionado

Mais procurados

Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
 
Ppt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem OperasiPpt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem Operasijahrataqim
 
implementasi sistem file
implementasi sistem fileimplementasi sistem file
implementasi sistem fileHabibi Habibi
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerAuliaa Oktarianii
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasiHidayatullah Aldy
 
Sistem Operasi - Perangkat keras Input Output
Sistem Operasi - Perangkat keras Input OutputSistem Operasi - Perangkat keras Input Output
Sistem Operasi - Perangkat keras Input OutputAdi Ginanjar Kusuma
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Tri Sugihartono
 
Tipe manajemen memori pada sistem operasi
Tipe manajemen memori pada sistem operasi Tipe manajemen memori pada sistem operasi
Tipe manajemen memori pada sistem operasi Shary Armonitha
 
3. metodologi data science dts ta v.1
3. metodologi data science dts ta v.13. metodologi data science dts ta v.1
3. metodologi data science dts ta v.1ArdianDwiPraba
 
8. modul input & output
8. modul input & output8. modul input & output
8. modul input & outputWandi Parlente
 
Komunikasi Antar Proses
Komunikasi Antar ProsesKomunikasi Antar Proses
Komunikasi Antar ProsesSonny Grimaldi
 
Pertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
Pertemuan 2 - Organisasi dan Arsitektur Komputer.pptPertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
Pertemuan 2 - Organisasi dan Arsitektur Komputer.pptagro6
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)Kelinci Coklat
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasibelajarkomputer
 

Mais procurados (20)

Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
 
Ppt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem OperasiPpt sinkronisasi dalam Sistem Operasi
Ppt sinkronisasi dalam Sistem Operasi
 
implementasi sistem file
implementasi sistem fileimplementasi sistem file
implementasi sistem file
 
4. pengamanan sistem operasi
4. pengamanan sistem operasi4. pengamanan sistem operasi
4. pengamanan sistem operasi
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 
Proses database oracle
Proses database oracleProses database oracle
Proses database oracle
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
 
Memory
MemoryMemory
Memory
 
Sistem Operasi - Perangkat keras Input Output
Sistem Operasi - Perangkat keras Input OutputSistem Operasi - Perangkat keras Input Output
Sistem Operasi - Perangkat keras Input Output
 
Keamanan Sistem
Keamanan SistemKeamanan Sistem
Keamanan Sistem
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)
 
Tipe manajemen memori pada sistem operasi
Tipe manajemen memori pada sistem operasi Tipe manajemen memori pada sistem operasi
Tipe manajemen memori pada sistem operasi
 
3. metodologi data science dts ta v.1
3. metodologi data science dts ta v.13. metodologi data science dts ta v.1
3. metodologi data science dts ta v.1
 
8. modul input & output
8. modul input & output8. modul input & output
8. modul input & output
 
Komunikasi Antar Proses
Komunikasi Antar ProsesKomunikasi Antar Proses
Komunikasi Antar Proses
 
Pertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
Pertemuan 2 - Organisasi dan Arsitektur Komputer.pptPertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
Pertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Pertemuan9
Pertemuan9Pertemuan9
Pertemuan9
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasi
 

Semelhante a 10. deadlock (20)

Os module 2 d
Os module 2 dOs module 2 d
Os module 2 d
 
Mch7 deadlock
Mch7 deadlockMch7 deadlock
Mch7 deadlock
 
Deadlocks 160928121516-160928183232
Deadlocks 160928121516-160928183232Deadlocks 160928121516-160928183232
Deadlocks 160928121516-160928183232
 
deadlock in OS.pptx
deadlock in OS.pptxdeadlock in OS.pptx
deadlock in OS.pptx
 
Deadlock.ppt
Deadlock.pptDeadlock.ppt
Deadlock.ppt
 
Deadlocksprefinal 161014115456
Deadlocksprefinal 161014115456Deadlocksprefinal 161014115456
Deadlocksprefinal 161014115456
 
Deadlocks prefinal
Deadlocks prefinalDeadlocks prefinal
Deadlocks prefinal
 
Sucet os module_3_notes
Sucet os module_3_notesSucet os module_3_notes
Sucet os module_3_notes
 
Gp1242 007 oer ppt
Gp1242 007 oer pptGp1242 007 oer ppt
Gp1242 007 oer ppt
 
Module3
Module3Module3
Module3
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Ch 4 deadlock
Ch 4 deadlockCh 4 deadlock
Ch 4 deadlock
 
Mca ii os u-3 dead lock & io systems
Mca  ii  os u-3 dead lock & io systemsMca  ii  os u-3 dead lock & io systems
Mca ii os u-3 dead lock & io systems
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Deadlock
DeadlockDeadlock
Deadlock
 
Deadlocks Part- I.pdf
Deadlocks Part- I.pdfDeadlocks Part- I.pdf
Deadlocks Part- I.pdf
 
CH07.pdf
CH07.pdfCH07.pdf
CH07.pdf
 
Os unit 4
Os unit 4Os unit 4
Os unit 4
 
ikh311-05
ikh311-05ikh311-05
ikh311-05
 

Mais de Robbie AkaChopa

[Www.akachopa.com]sbmptn 2013 tpa
[Www.akachopa.com]sbmptn 2013 tpa[Www.akachopa.com]sbmptn 2013 tpa
[Www.akachopa.com]sbmptn 2013 tpaRobbie AkaChopa
 
[Www.akachopa.com]sbmptn 2013 tkdu
[Www.akachopa.com]sbmptn 2013 tkdu[Www.akachopa.com]sbmptn 2013 tkdu
[Www.akachopa.com]sbmptn 2013 tkduRobbie AkaChopa
 
[Www.akachopa.com]sbmptn 2013 soshum
[Www.akachopa.com]sbmptn 2013 soshum[Www.akachopa.com]sbmptn 2013 soshum
[Www.akachopa.com]sbmptn 2013 soshumRobbie AkaChopa
 
[Www.akachopa.com]sbmptn 2013 saintek
[Www.akachopa.com]sbmptn 2013 saintek[Www.akachopa.com]sbmptn 2013 saintek
[Www.akachopa.com]sbmptn 2013 saintekRobbie AkaChopa
 
Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...
Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...
Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...Robbie AkaChopa
 
Snmptn 2012 tbs [akachopa.com]
Snmptn 2012 tbs [akachopa.com]Snmptn 2012 tbs [akachopa.com]
Snmptn 2012 tbs [akachopa.com]Robbie AkaChopa
 
Snmptn 2012 ipa [akachopa.com]
Snmptn 2012 ipa [akachopa.com]Snmptn 2012 ipa [akachopa.com]
Snmptn 2012 ipa [akachopa.com]Robbie AkaChopa
 
Snmptn 2012 tpa [akachopa.com]
Snmptn 2012 tpa [akachopa.com]Snmptn 2012 tpa [akachopa.com]
Snmptn 2012 tpa [akachopa.com]Robbie AkaChopa
 
Snmptn 2012 ips [akachopa.com]
Snmptn 2012 ips [akachopa.com]Snmptn 2012 ips [akachopa.com]
Snmptn 2012 ips [akachopa.com]Robbie AkaChopa
 
Inferensi statistik satu populasi
Inferensi statistik satu populasiInferensi statistik satu populasi
Inferensi statistik satu populasiRobbie AkaChopa
 

Mais de Robbie AkaChopa (20)

Monetisasi blog 1
Monetisasi blog 1Monetisasi blog 1
Monetisasi blog 1
 
[Www.akachopa.com]sbmptn 2013 tpa
[Www.akachopa.com]sbmptn 2013 tpa[Www.akachopa.com]sbmptn 2013 tpa
[Www.akachopa.com]sbmptn 2013 tpa
 
[Www.akachopa.com]sbmptn 2013 tkdu
[Www.akachopa.com]sbmptn 2013 tkdu[Www.akachopa.com]sbmptn 2013 tkdu
[Www.akachopa.com]sbmptn 2013 tkdu
 
[Www.akachopa.com]sbmptn 2013 soshum
[Www.akachopa.com]sbmptn 2013 soshum[Www.akachopa.com]sbmptn 2013 soshum
[Www.akachopa.com]sbmptn 2013 soshum
 
[Www.akachopa.com]sbmptn 2013 saintek
[Www.akachopa.com]sbmptn 2013 saintek[Www.akachopa.com]sbmptn 2013 saintek
[Www.akachopa.com]sbmptn 2013 saintek
 
Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...
Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...
Jadwal pembekalan kkn 73 kelompok iv fak. pertanian, fak. teknik 12 13 juni 2...
 
Hasil seleksisnmptn2014
Hasil seleksisnmptn2014Hasil seleksisnmptn2014
Hasil seleksisnmptn2014
 
Snmptn 2012 tbs [akachopa.com]
Snmptn 2012 tbs [akachopa.com]Snmptn 2012 tbs [akachopa.com]
Snmptn 2012 tbs [akachopa.com]
 
Snmptn 2012 ipa [akachopa.com]
Snmptn 2012 ipa [akachopa.com]Snmptn 2012 ipa [akachopa.com]
Snmptn 2012 ipa [akachopa.com]
 
Snmptn 2012 tpa [akachopa.com]
Snmptn 2012 tpa [akachopa.com]Snmptn 2012 tpa [akachopa.com]
Snmptn 2012 tpa [akachopa.com]
 
Snmptn 2012 ips [akachopa.com]
Snmptn 2012 ips [akachopa.com]Snmptn 2012 ips [akachopa.com]
Snmptn 2012 ips [akachopa.com]
 
Soal stat
Soal statSoal stat
Soal stat
 
09 sinkronisasi proses
09 sinkronisasi proses09 sinkronisasi proses
09 sinkronisasi proses
 
Inferensi statistik satu populasi
Inferensi statistik satu populasiInferensi statistik satu populasi
Inferensi statistik satu populasi
 
Chapter08
Chapter08Chapter08
Chapter08
 
Inferensi statistik
Inferensi statistikInferensi statistik
Inferensi statistik
 
Tabel distribusi
Tabel distribusiTabel distribusi
Tabel distribusi
 
Indonesian quran-wb
Indonesian quran-wbIndonesian quran-wb
Indonesian quran-wb
 
Al quran-pdf
Al quran-pdfAl quran-pdf
Al quran-pdf
 
Presentation
PresentationPresentation
Presentation
 

10. deadlock

  • 2. Bahasan Deadlocks  Permasalahan Deadlocks  Model sistem Deadlocks  Karakterisasi Deadlocks  Metode untuk Penanganan Deadlocks  Pencegahan Deadlocks  Penghindaran Deadlocks  Deteksi Deadlocks  Pemulihan dari Deadlocks
  • 3. Tujuan  Mahasiswa mampu  Mengembangkan suatu diskripsi dari deadlocks, yaitu mencegah kelompok dari proses-proses konkuren pada penyelesaian tugas-tugasnya.  Menyajikan sejumlah metode-metode yang berbeda untuk pencegahan atau penghindaran deadlocks dalam suatu sistem komputer.
  • 4. Pendahuluan  Penyebab utama terjadinya deadlocks adalah terbatasnya sumber daya yang akan digunakan oleh banyak proses.  Tiap proses berkompetisi untuk memperebutkan sumber daya yang ada.  Jadi deadlocks berhubungan erat dengan tersedianya sumber daya dari komputer  Deadlokcs adalah kebuntuan, artinya bahwa di dalam sistem operasi terjadi suatu kondisi di mana sekumpulan proses tidak dapat berjalan kembali atau tidak adanya komunikasi antar proses.
  • 5.  Keadaan dimana 2 proses atau lebih saling menunggu meminta resources untuk waktu yang tidak terbatas.  Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah  Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses atau lebih  Definisi:  Deadlocks adalah sekumpulan proses yang terblok dimana tiap proses tersebut memegang sumber daya dan menunggu untuk mendapatkan sumber daya yang sama yang juga dipegang oleh sekumpulan proses lain
  • 6. Ilustrasi Deadlocks  Misalkan proses A memerlukan sumber daya X dan mendapakannya. Proses B meminta sumber daya Y dan mendapatkannya. Selang beberapa saat, proses A memerlukan sumber daya Y, dan proses B meminta sumber daya X.  Pada situasi tersebut, kedua proses itu terblok dan menunggu secara terus menerus. Keadaan itu terjadi deadlocks.
  • 8. Permasalahan Deadlocks  Misalkan  Sistem memiliki 2 disk drives  P1 dan P2 masing-masing menggunakan satu disk drive A dan disk drive B  Pada saat tertentu P1 membutuhkan B, P2 membutuhkan A, pada hal A sdg digunakan oleh P1, B sedang digunakan oleh P2, maka P1 menunggu B dan P2 menunggu A  Example lainnya  semaphores A and B, initialized to 1 P0 P1 wait (A); wait(B) wait (B); wait(A)
  • 9. Contoh Jembatan Penyeberangan  Lalu lintas hanya satu arah  Masing-masing bagian dari jembatan itu dapat dipandang sebagai sebuah sumberdaya  Jika deadlokcs terjadi, deadlocks dapat diselesaikan jika sebuah mobil mundur (preempt resources and rollback)  Beberapa mobil harus diundurkan jika deadlock terjadi  Starvation mungkin terjadi  Perhatikan: banyak sistem operasi tidak mencegah atau mengaitkan deadlocks
  • 10. Resources  Resource  commodity required by a process to execute  Resources can be of several types  Serially Reusable Resources  CPU cycles, memory space, I/O devices, files  acquire -> use -> release  Consumable Resources  Produced by a process, needed by a process - e.g. Messages, buffers of information, interrupts  create ->acquire ->use  Resource ceases to exist after it has been used
  • 11. Model Sistem  Sebuah sistem terdiri dari beberapa sumber daya yang akan didistribusikan kepada berbagai proses.  Sumber daya tersebut dibagi-bagi menjadi beberapa tipe dan tiap tipe terdiri dari beberapa instance yang identik  Instance (komoditas/commodity) adalah bagian dari sumber daya yang dialokasikan untuk memenuhi kebutuhan proses.  Sumber daya dapat berupa fisik maupun non-fisik.  Contoh:  Fisik: printer, CD drive, memory, dan CPU cycle  Non fisik: file, semaphore, dan monitor.
  • 12. Model Sistem (lanjutan..) Model sistem juga dapat dijelaskan sebagai berikut:  Jenis sumberdaya: R1, R2, R3, …, Rn  Misalkan: R1=CPU cycle, R2=ruang memori, dan R3=piranti I/O  Masing-masing sumber daya jenis Ri memiliki instans Wi  Masing-masing proses memanfaatkan sebuah sumber daya (resource) sebagai berikut: (acquire  use  release)  Request (meminta), jika sumberdaya tidak tersedia, maka proses terganggu.  use (menggunakan)  release (melepaskan)  Sekumpulan proses berada dalam kondisi deadlocks apabila semua proses berada dalam keadaan menunggu ( di dalam waiting queue) peristiwa (event) hanya bisa dilakukan oleh proses yang berada di dalam waiting queue tersebut.
  • 13. Karakteristik deadlocks (kondisi deadlocks)  Mutual exclusion: hanya satu proses pada suatu saat dapat menggunakan sebuah sumberdaya  Hold and wait: sebuah proses memegang (menggunakan) paling sediikit sebuah sumberdaya yang sedang menunggu untuk meminta penambahan sumberdaya yang dilakukan oleh proses-proses lainnya  No preemption: Resources dirilis oleh proses-proses yang sedang menggunakannya hanya setelah proses itu telah menyelesaikan tugasnya.  Circular wait: sebuah rantai sirkular dari proses-proses yang mana masing- masing proses menunggu satu resource atau lebih yang digunakan oleh proses berikutnya dalam rantai tsb.  Misalnya:  there exists a set {P0, P1, …, Pn} of waiting processes such that P0 is waiting for a resource that is held by P1, P1 is waiting for a resource that is held by P2, …, Pn–1 is waiting for a resource that is held by Pn, and Pn is waiting for a resource that is held by P0.
  • 14. Conditions for Deadlock  The following 4 conditions are necessary and sufficient for deadlock (must hold simultaneously)  Mutual Exclusion:  Only one process at a time can use the resource.  Hold and Wait:  Processes hold resources already allocated to them while waiting for other resources.  No preemption:  Resources are released by processes holding them only after that process has completed its task.  Circular wait:  A circular chain of processes exists in which each process waits for one or more resources held by the next process in the chain.
  • 15. Resource-Allocation Graph (Graf Alokasi- Sumberdaya)  A set of vertices V and a set of edges E. V is partitioned into two types:  P = {P1, P2, …, Pn}, - the set of processes in the system  R = {R1, R2, …, Rm}, the set of resource types in the system  Two kinds of edges  Request edge – directed edge Pi  Rj  assignment edge – directed edge Rj Pi
  • 16. Resource-Allocation Graph (Cont.)  Process Resource Type with 4 instances  Pi requests instance of Rj  Pi is holding an instance of Rj Pi Rj Pi Rj
  • 17. Example of a Resource Allocation Graph
  • 18. Circular Wait  Contoh Circular Wait
  • 19. Resource Allocation Graph With A Deadlock • Terlihat ada perputaran yang memungkinan terjadinya deadlocks dan semua sumberdaya memiliki satu instans kecuali sumber daya R2 • Gambar disamping menunjukkan beberapa hal sebagai berikut: • P1 meminta sumber daya R1 • R1 mengalokasikan sumberdayanya pada P2 • P2 meminta sumber daya R2 • R2 mengalokasikan sumberdayanya pada P2 • P3 meminta sumber daya R2 • R3 mengalokasikan sumber dayanya pada P3 • Terjadi deadlocks sebab P1 meminta R1 untuk menyelesaikan prosesnya. • Sedangkan R1 dialokasikan ke P2. • Di lain pihak P2 memerlukan R3, sedangkan R3 dialokasikan untuk P3. • P3 memerlukan sumber daya R2, akan tetapi R2 mengalokasikan sumber dayanya ke P2 1. R2  P1  R1  P2  R3  P3  R2 2. R2  P2  R3  P3  R2
  • 20. Graph With A Cycle But No Deadlock
  • 21. Fakta-fakta Dasar  If graph contains no cycles  no deadlock  If graph contains a cycle  if only one instance per resource type, then deadlock if several instances per resource type, possibility of deadlock
  • 23. Methods for Handling Deadlocks  Ensure that the system will never enter a deadlock state  Allow the system to enter a deadlock state and then recover  Ignore the problem and pretend that deadlocks never occur in the system; used by most operating systems, including UNIX
  • 24. Strategi mengatasi Deadlock (Manajemen deadlock)  Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku  Avoidance : sistem menolak request terhadap resource yang berpotensi deadlock, Algoritma Banker  Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya, kemudian melakukan recovery, Algoritma Ostrich
  • 25. Deadlock Prevention  Mutual Exclusion – not required for sharable resources; must hold for nonsharable resources (membuat file spool untuk resource yang digunakan bersama-sama)  Hold and Wait – must guarantee that whenever a process requests a resource, it does not hold any other resources  Require process to request and be allocated all its resources before it begins execution, or allow process to request resources only when the process has none  Low resource utilization; starvation possible ( memaksa sebuah proses untuk melepaskan resource yang dimilikinya ketika meminta resource baru) Restrain the ways request can be made
  • 26. Deadlock Prevention (Cont.)  No Preemption – (membolehkan adanya preemption)  If a process that is holding some resources requests another resource that cannot be immediately allocated to it, then all resources currently being held are released  Preempted resources are added to the list of resources for which the process is waiting  Process will be restarted only when it can regain its old resources, as well as the new ones that it is request in  Circular Wait – impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration (memberikan penamaan resource berdasarkan urutan atau level)
  • 27. Deadlock Avoidance  Simplest and most useful model requires that each process declare the maximum number of resources of each type that it may need  The deadlock-avoidance algorithm dynamically examines the resource-allocation state to ensure that there can never be a circular-wait condition  Resource-allocation state is defined by the number of available and allocated resources, and the maximum demands of the processes Requires that the system has some additional a priori information available
  • 28. Avoidance  Resource manager menolak proses yang meminta resource yang berpotensi deadlock  Jika ada permintaan resource yang maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya  Perlu adanya informasi tambahan
  • 29. Safe State  When a process requests an available resource, system must decide if immediate allocation leaves the system in a safe state  System is in safe state if there exists a sequence <P1, P2, …, Pn> of ALL the processes is the systems such that for each Pi, the resources that Pi can still request can be satisfied by currently available resources + resources held by all the Pj, with j < i  That is:  If Pi resource needs are not immediately available, then Pi can wait until all Pj have finished  When Pj is finished, Pi can obtain needed resources, execute, return allocated resources, and terminate  When Pi terminates, Pi +1 can obtain its needed resources, and so on
  • 30. Basic Facts  If a system is in safe state  no deadlocks  If a system is in unsafe state  possibility of deadlock  Avoidance  ensure that a system will never enter an unsafe state.
  • 31. Safe, Unsafe , Deadlock State
  • 32. Avoidance algorithms  Single instance of a resource type Use a resource-allocation graph  Multiple instances of a resource type  Use the banker’s algorithm
  • 33. Resource-Allocation Graph Scheme  Claim edge Pi  Rj indicated that process Pj may request resource Rj; represented by a dashed line  Claim edge converts to request edge when a process requests a resource  Request edge converted to an assignment edge when the resource is allocated to the process  When a resource is released by a process, assignment edge reconverts to a claim edge  Resources must be claimed a priori in the system
  • 35. Unsafe State In Resource-Allocation Graph
  • 37. Resource-Allocation Graph Algorithm  Suppose that process Pi requests a resource Rj  The request can be granted only if converting the request edge to an assignment edge does not result in the formation of a cycle in the resource allocation graph
  • 38. Banker’s Algorithm  Multiple instances of each resource type  Each process must a priori claim maximum use  When a process requests a resource it may have to wait  When a process gets all its resources it must return them in a finite amount of time
  • 39. Algoritma Banker  Didasarkan pada kondisi bank, dimana konsumen meminjam sejumlah uang, lalu meminta pinjaman uang lagi  Proses dan resource dimodelkan dalam satu tabel Resources assigned Remaining resources A 3 0 1 1 B 0 1 0 0 C 1 1 1 0 D 1 1 0 1 E 0 0 0 0 A 1 1 0 0 B 0 1 1 2 C 3 1 0 0 D 0 0 1 0 E 2 1 1 0
  • 40. Data Structures for the Banker’s Algorithm  Available: Vector of length m. If available [j] = k, there are k instances of resource type Rj available  Max: n x m matrix. If Max [i,j] = k, then process Pi may request at most k instances of resource type Rj  Allocation: n x m matrix. If Allocation[i,j] = k then Pi is currently allocated k instances of Rj  Need: n x m matrix. If Need[i,j] = k, then Pi may need k more instances of Rj to complete its task Need [i,j] = Max[i,j] – Allocation [i,j] Let n = number of processes, and m = number of resources types.
  • 41. Safety Algorithm 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i = 0, 1, …, n- 1 2. Find and i such that both: (a) Finish [i] = false (b) Needi  Work If no such i exists, go to step 4 3. Work = Work + Allocationi Finish[i] = true go to step 2 4. If Finish [i] == true for all i, then the system is in a safe state
  • 42. Resource-Request Algorithm for Process Pi Request = request vector for process Pi. If Requesti [j] = k then process Pi wants k instances of resource type Rj 1. If Requesti  Needi go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim 2. If Requesti  Available, go to step 3. Otherwise Pi must wait, since resources are not available 3. Pretend to allocate requested resources to Pi by modifying the state as follows: Available = Available – Request; Allocationi = Allocationi + Requesti; Needi = Needi – Requesti;  If safe  the resources are allocated to Pi  If unsafe  Pi must wait, and the old resource-allocation state is restored
  • 43. Example of Banker’s Algorithm  5 processes P0 through P4 3 resource types: A (10 instances), B (5 instances), and C (7 instances) Snapshot at time T0: Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3
  • 44. Example (Cont.)  The content of the matrix Need is defined to be Max – Allocation Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 The system is in a safe state since the sequence < P1, P3, P4, P2, P0> satisfies safety criteria
  • 45. Example: P1 Request (1,0,2)  Check that Request  Available (that is, (1,0,2)  (3,3,2)  true Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1  Executing safety algorithm shows that sequence < P1, P3, P4, P0, P2> satisfies safety requirement  Can request for (3,3,0) by P4 be granted?  Can request for (0,2,0) by P0 be granted?
  • 46. Deadlock Detection  Allow system to enter deadlock state  Detection algorithm  Recovery scheme
  • 47. Single Instance of Each Resource Type  Maintain wait-for graph  Nodes are processes  Pi  Pj if Pi is waiting for Pj  Periodically invoke an algorithm that searches for a cycle in the graph. If there is a cycle, there exists a deadlock  An algorithm to detect a cycle in a graph requires an order of n2 operations, where n is the number of vertices in the graph
  • 48. Resource-Allocation Graph and Wait-for Graph Resource-Allocation Graph Corresponding wait-for graph
  • 49. Several Instances of a Resource Type  Available: A vector of length m indicates the number of available resources of each type.  Allocation: An n x m matrix defines the number of resources of each type currently allocated to each process.  Request: An n x m matrix indicates the current request of each process. If Request [ij] = k, then process Pi is requesting k more instances of resource type. Rj.
  • 50. Detection Algorithm 1. Let Work and Finish be vectors of length m and n, respectively Initialize: (a) Work = Available (b) For i = 1,2, …, n, if Allocationi  0, then Finish[i] = false;otherwise, Finish[i] = true 2. Find an index i such that both: (a) Finish[i] == false (b) Requesti  Work If no such i exists, go to step 4
  • 51. Detection Algorithm (Cont.) 3. Work = Work + Allocationi Finish[i] = true go to step 2 4. If Finish[i] == false, for some i, 1  i  n, then the system is in deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked Algorithm requires an order of O(m x n2) operations to detect whether the system is in deadlocked state
  • 52. Example of Detection Algorithm  Five processes P0 through P4; three resource types A (7 instances), B (2 instances), and C (6 instances)  Snapshot at time T0: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2  Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i
  • 53. Example (Cont.)  P2 requests an additional instance of type C Request A B C P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2  State of system?  Can reclaim resources held by process P0, but insufficient resources to fulfill other processes; requests  Deadlock exists, consisting of processes P1, P2, P3, and P4
  • 54. Detection-Algorithm Usage  When, and how often, to invoke depends on:  How often a deadlock is likely to occur?  How many processes will need to be rolled back? one for each disjoint cycle  If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would not be able to tell which of the many deadlocked processes “caused” the deadlock
  • 55. Recovery from Deadlock: Process Termination  Abort all deadlocked processes  Abort one process at a time until the deadlock cycle is eliminated  In which order should we choose to abort?  Priority of the process  How long process has computed, and how much longer to completion  Resources the process has used  Resources process needs to complete  How many processes will need to be terminated  Is process interactive or batch?
  • 56. Recovery from Deadlock: Resource Preemption  Selecting a victim – minimize cost  Rollback – return to some safe state, restart process for that state  Starvation – same process may always be picked as victim, include number of rollback in cost factor
  • 57. Kesimpulan  Deadlock adalah situasi dimana 1 atau lebih proses tidak akan pernah selesai tanpa adanya recovery  Empat kondisi penting untuk deadlock : mutual exclusion, hold and wait, circular wait, and no preemption  Deadlock bisa diatasi oleh berbagai strategi : prevention, avoidance, detection and recovery