• Save
Ch08th
Upcoming SlideShare
Loading in...5
×
 

Ch08th

on

  • 7,371 views

Operating System ...

Operating System
ระบบปฏิบัติการคอมพิวเตอร์
by Nuttha Otanasap (ณัฏฐ์ โอธนาทรัพย์)
Computer Science Dept.,
South-east Asia University
Bangkok 10160 Thailand
email: auisuke@gmail.com
website:auisuke
auisuke.blogspot.com
Hi5:auisuke.hi5.com
Copyrights 2009 SE Asia University All Rights Reserved

Statistics

Views

Total Views
7,371
Views on SlideShare
7,317
Embed Views
54

Actions

Likes
8
Downloads
0
Comments
1

2 Embeds 54

http://learning.sau.ac.th 48
http://www.slideshare.net 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • ขอบคุณค่ะ
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ch08th Ch08th Presentation Transcript

  • บทที่ 7 วงจรอับ : Deadlocks
    • System Model
    • Deadlock Characterization
    • Methods for Handling Deadlocks
    • Deadlock Prevention
    • Deadlock Avoidance
    • Deadlock Detection
    • Recovery from Deadlock
    • Combined Approach to Deadlock Handling
    • ตัวแบบระบบ
    • ลักษณะของวงจรอับ
    • ระเบียบวิธีในการจัดการการเกิดวงจรอับ
    • การป้องกันการเกิดปัญหาวงจรอับ
    • การหลีกเลี่ยงการเกิดปัญหาวงจรอับ
    • การตรวจจับการเกิดปัญหาวงจรอับ
    • การแก้ไขปัญหาอันเนื่องมาจากการเกิดปัญหาวงจรอับ
    • การนำกรรมวิธีต่างๆ มาใช้ร่วมกันเพื่อจัดการกับการเกิดวงจรอับ
  • ปัญหาการเกิดวงจรอับ The Deadlock Problem
    • หมายถึงเซ็ตของโปรเวสที่ถูกขัดขวางการทำงานโดยมีการครอบครองทรัพยากรใดๆ ไว้ และรอคอยเพื่อเข้าใช้งานทรัพยากรใดๆ ที่โปรเซสอื่นครอบครองอยู่
    • ตัวอย่าง
      • ระบบมีตัวอ่านเทป สองตัว
      • โปรเซส P1 และ P2 ต่างครอบครองตัวอ่านเทปไว้โปรเซสละตัว และแต่ละโปรเซสก็ต้องการเข้าใช้งานตัวอ่านเทป ที่อีกโปรเซสหนึ่งครอบครองอยู่
    • Example
      • semaphores A and B , initialized to 1
            • P 0 P 1
            • wait (A); wait(B)
            • wait (B); wait(A)
  • ตัวอย่าง สะพานแบบที่รถสามารถวิ่งได้คันเดียว Bridge Crossing Example
    • มุมมองจากสะพานแต่ละฝั่งเปรียบเสมือนทรัพยากร
    • หากเกิดวงจรอับขึ้น จะสามารถแก้ปัญหาได้โดยให้รถคันใดคันหนึ่งถอยหลัง (preempt resources and rollback)
    • รถแต่ละคันอาจต้องทำการถอยหากเกิดปัญหาวงจรอับขึ้น
    • อาจเกิดปัญหาการถูกสตาร์ฟ Starvation
  • ตัวแบบระบบ System Model
    • ประเภทของทรัพยากร R 1 , R 2 , . . ., R m
      • รอบการทำงานของหน่วยประมวลผลม พื้นที่ของหน่วยความจำ , อุปกรณ์อินพุทเอ้าท์พุท
        • CPU cycles, memory space, I/O devices
    • ทรัพยากรแต่ละชนิด มี เป็นตัวแปร R i has W i instances.
    • แต่ละโปรเซสใช้ประโยชน์ทรัพยากรด้วยขั้นตอนดังต่อไปนี้ :
      • ร้องขอ request
      • ใช้ use
      • ปลดปล่อย release
  • ลักษณะต่างๆ ของวงจรอับ Deadlock Characterization
    • Mutual exclusion: เกิดการทำงานร่วมพร้อมกันตั้งแต่สองโปรเซส มีเฉพาะโปรเซสเดียวในเวลาหนึ่งๆ ที่สามารถเข้าใช้ทรัพยากรใดๆ
    • Hold and wait: ครอบครองและรอคอย กล่าวคือ โปรเซสหนึ่งครอบครองทรัพยากรไว้อย่างน้อยหนึ่งอย่าง และรอคอยเพื่อเข้าครอบครองทรัพยากรอื่นๆ เพิ่มเติมอีก โดยทรัพยากรนั้นถูกโปรเซสอื่นครอบครองอยู่
    • No preemption: ไม่มีการคำนึงถึงการหยุดหรือสลับออกเพื่อให้โปรเซสที่สำคัญกว่าทำงานก่อน
    • ทรัพยากรจะถูกปลดปล่อยหรือคืนให้แก่ระบบก็ต่อเมื่อโปรเซสที่ถือครองอยู่ยินยอม หลังจาดเสร็จสิ้นการทำงานแล้ว
    • Circular wait: there exists a set { P 0 , P 1 , …, P 0 } การรอคอยแบบวนรอบ เกิดกลุ่มของโปรเซสที่รอคอยเพื่อเข้าใช้งานทรัพยากรที่ถือครองโดยโปรเซสอื่นๆ
    • P 1 , P 1 is waiting for a resource that is held by
    • P 2 , …, P n –1 is waiting for a resource that is held by P n , and P 0 is waiting for a resource that is held by P 0 .
    อาจเกิดวงจรอับขึ้นได้หากเกิดเหตุการณ์สี่แบบต่อไปนี้อย่างต่อเนื่อง
  • กราฟแสดงการจัดการทรัพยากร Resource-Allocation Graph
    • V is partitioned into two types:
      • P = { P 1 , P 2 , …, P n }, the set consisting of all the processes in the system.
      • R = { R 1 , R 2 , …, R m }, the set consisting of all resource types in the system.
    • request edge – directed edge P 1  R j
    • assignment edge – directed edge R j  P i
    A set of vertices V and a set of edges E .
  • Resource-Allocation Graph (Cont.)
    • Process
    • Resource Type with 4 instances
    • P i requests instance of R j
    • P i is holding an instance of R j
    P i P i R j R j
  • ตัวอย่าง กราฟแสดงการจัดการกับทรัพยากร Example of a Resource Allocation Graph
  • กราฟแสดงการจัดการกับทรัพยากร ที่เกิดปัญหาวงจรอับ Resource Allocation Graph With A Deadlock
  • กราฟแสดงการจัดการกับทรัพยากรแบบวนรอบ แต่ไม่เกิดปัญหาวงจรอับ Resource Allocation Graph With A Cycle But No Deadlock
  • ปัจจัยพื้นฐาน Basic Facts
    • หากกราฟไม่แสดงถึงการวนรอบ ย่อมไม่เกิดวงจรอับ
    • หากกราฟแสดงถึงการวนรอบ
      • หากกำหนดให้ตัวแปรหนึ่งต่อทรัพยากรชนิดหนึ่ง จะเกิดปัญหาวงจรอับ
      • หากกำหนดให้ตัวแปรหลายตัวต่อทรัพยากรหนึ่งชนิด อาจจะเกิดหรือไม่เกิดปัญหาวงจรอับก็ได้
  • ระเบียบวิธีในการจัดการกับการเกิดวงจรอับ Methods for Handling Deadlocks
    • เพื่อให้เกิดความมั่นใจได้ว่าระบบจะไม่ประสบสภาวะวงจรอับ
    • ยอมให้ระบบประสบสภาวะวงจรอับได้แต่สามารถกู้คืนให้กลับสู่สภาวะปกติได้
    • เพื่อการหลีกเลี่ยงปัญหาดังกล่าวและแน่ใจได้ว่าปัญหาวงจรอับจะไม่เกิดขึ้น กับระบบ
    • ใช้ในระบบปฏิบัติการโดยทั่วไปรวมทั้งยูนิกส์
  • การป้องกันการเกิดวงจรอับ Deadlock Prevention
    • Mutual Exclusion – การเกิดการทำงานร่วม
    • ต้องไม่เกิดการใช้ทรัพยากรร่วมกัน แต่ละโปรเซสมีสิทธิครอบครองเฉพาะ ทรัพยากรที่ไม่สามารถแบ่งปันหรือไม่สามารถใช้ร่วมกับโปรเซสอื่นได้เท่านั้น
    • Hold and Wait – การถือครองทรัพยากรใดๆ และรอคอย
    • ต้องรับรองได้ว่า เมื่อโปรเซสใดก็ตามร้องขอเพื่อเข้าครอบครองทรัพยากรใดๆ โปรเซสนั้นต้องไม่มีการถือครองทรัพยากรอื่นๆ อยู่
      • อนุญาตให้โปรเซสใดๆ ร้องขอเพื่อเข้าครอบครองทรัพยากรหนึ่งได้ก็ต่อเมื่อไม่มีโปรเซสใดถือครองทรัพยากรนั้นๆ อยู่
      • การใช้ทรัพยากรอย่างไม่มีประสิทธิภาพ อาจส่งผลให้เกิด การขาดแคลสนทรัพยากร
    Restrain the ways request can be made.
  • การป้องกันการเกิดวงจรอับ Deadlock Prevention (Cont.)
    • No Preemption – โดยไม่คำนึงถึงระดับความสำคัญ
    • หากโปรเซสใดๆ ที่ถือครองทรัพยากรหนึ่งๆ อยู่ทำการร้องขอเพื่อเข้าครอบครองทรัพยากรอื่นอีก จะไม่ได้รับอนุญาตให้เข้าครอบครองทรัพยากรที่ร้องขอภายหลังนั้นโดยทันที แต่จะได้รับอนุญาตให้เข้าครอบครองได้ก็ต่อเมื่อโปรเซสนั้นทำการปลดปล่อยทรัพยากรใดๆ ที่ถือครองอยู่ก่อนหน้าทั้งหมดก่อน
    • ทรัพยากรที่ถูกจัดลำดับจะถูกเพิ่มเข้าไปไว้ในรายการทรัพยากรเพื่อให้โปรเซสรอคอยในการเข้าครอบครอง
    • โปรเซสจะเริ่มกลับมาทำงานอีกครั้งก็ต่อเมื่อโปรเซสนั้นสามารถใช้งานทรัพยากรที่ตนเองถือครองเสร็จสิ้นแล้ว
    • Circular Wait – การรอคอยแบบวนรอบ
    • การรวบรวมการร้องขอเพื่อเข้าครอบครองโปรเซสทุกประเภทไว้ทั้งหมด และทำให้คำร้องขอของแต่ละโปรเซสมีระดับความสำคัญเพิ่มมากขึ้นเรื่อยๆ เพื่อสามารถที่จะเข้าครอบครองทรัพยากรที่ต้องการและทำงานของตนเองจนเสร็จสิ้นได้ในที่สุด
  • การหลีกเลี่ยงการเกิดวงจรอับ Deadlock Avoidance
    • รูปแบบที่ง่ายและเป็นที่นิยมใช้คือ โปรเซสจะต้องแสดงให้ทราบถึงความต้องการทรัพยากรแต่ละประเภทมีจำนวนสูงสุดเท่าไร
    • อัลกอริธึมในการหลีกเลี่ยงการเกิดวงจรอับ จะเป็นแบบไดนามิกหรือแปรผัน กล่าวคือ สถานภาพของแต่ละโปรเซส จะต้องไม่เป็นการรอคอยแบบวนรอบ
    • สถานภาพของทรัพยากร ถูกกำหนดโดยจำนวนของทรัพยากรที่พร้อมและสามารถถูกเข้าใช้งาน และความต้องการสูงสุดของโปรเซส
    ระบบจำเป็นต้องทราบถึงข้อมูลเกี่ยวกับระดับความสำคัญ
  • สถานะปลอดภัย Safe State
    • เมื่อโปรเซสร้องขอทรัพยากรที่พร้อมถูกใช้งาน ระบบต้องตัดสินใจได้ว่า หากดำเนินการให้ตามที่ร้องขอในทันที ระบบจะยังคงอยู่ในสถานะที่ปลอดภัย
    • ระบบจะยังคงอยู่ในสถานะที่ปลอดภัย หากสถานะปัจจุบันของทุกโปรเซสอยู่ในลำดับการทำงานที่ปลอดภัย
    • Sequence <P1, P2, …, Pn> is safe if 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.
      • If P i resource needs are not immediately available, then P i can wait until all P j have finished.
      • When P j is finished, P i can obtain needed resources, execute, return allocated resources, and terminate.
      • When P i terminates, P i +1 can obtain its needed resources, and so on.
  • ความจริงพื้นฐาน Basic Facts
    • หากระบบอยู่ในสถานะที่ปลอดภัย หมายถึงไม่เกิดวงจรอับ
    • หากระบบไม่อยู่ในสถานะที่ปลอดภัย หมายถึงอาจเกิดวงจรอับขึ้นได้
    • การหลีกเลี่ยง หมายถึง เพื่อความมั่นใจได้ว่าระบบจะไม่เข้าสู่สถานะที่ไม่ปลอดภัย
  • สถานะที่ปลอดภัยและไม่ปลอดภัยในการเกิดปัญหาวงจรอับ Safe, Unsafe , Deadlock State
  • Resource-Allocation Graph Algorithm
    • Claim edge P i  R j indicated that process P j may request resource R j ; represented by a dashed line.
    • Claim edge converts to request edge when a process requests a resource.
    • 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 For Deadlock Avoidance
  • กราฟแสดงการจัดสรรทรัพยากรในสถานะที่ไม่ปลอดภัย Unsafe State In Resource-Allocation Graph
  • อัลกอริธึมของนายธนาคาร Banker’s Algorithm
    • มีอินแสตนส์หลายตัว
    • แต่ละโปรเซสต้องได้รับการจัดลำดับจากความต้องการใช้งานสูงสุด
    • เมื่อโปรเซสร้องขอทรัพยากร โปรเซสอาจต้องรอคอย
    • เมื่อโปรเซสได้ทรัพยากรที่ตนเองต้องการทั้งหมดแล้ว โปรเซสจะต้องคืนทรัพยากรเหล่านั้นในเวลาที่กำหนด
  • โครงสร้างข้อมูลของ อัลกอริธึมของนายธนาคาร Data Structures for the Banker’s Algorithm
    • Available: Vector of length m . If available [ j ] = k , there are k instances of resource type R j available.
    • Max: n x m matrix. If Max [ i,j ] = k , then process P i may request at most k instances of resource type R j .
    • Allocation: n x m matrix. If Allocation[ i,j ] = k then P i is currently allocated k instances of R j.
    • Need: n x m matrix. If Need [ i,j ] = k , then P i may need k more instances of R j 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 - 1,3, …, n.
    • 2. Find and i such that both:
      • (a) Finish [ i ] = false
      • (b) Need i  Work
      • If no such i exists, go to step 4.
    • 3. Work = Work + Allocation i 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 P i
    • Request = request vector for process P i . If Request i [ j ] = k then process P i wants k instances of resource type R j .
      • 1. If Request i  Need i go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim.
      • 2. If Request i  Available , go to step 3. Otherwise P i must wait, since resources are not available.
      • 3. Pretend to allocate requested resources to P i by modifying the state as follows:
          • Available = Available = Request i ;
          • Allocation i = Allocation i + Request i ;
          • Need i = Need i – Request i;;
        • If safe  the resources are allocated to P i .
        • If unsafe  P i must wait, and the old resource-allocation state is restored
  • Example of Banker’s Algorithm
    • 5 processes P 0 through P 4 ; 3 resource types A (10 instances), B (5instances, and C (7 instances).
    • Snapshot at time T 0 :
    • Allocation Max Available
    • A B C A B C A B C
    • P 0 0 1 0 7 5 3 3 3 2
    • P 1 2 0 0 3 2 2
    • P 2 3 0 2 9 0 2
    • P 3 2 1 1 2 2 2
    • P 4 0 0 2 4 3 3
  • Example (Cont.)
    • The content of the matrix. Need is defined to be Max – Allocation.
    • Need
    • A B C
    • P 0 7 4 3
    • P 1 1 2 2
    • P 2 6 0 0
    • P 3 0 1 1
    • P 4 4 3 1
    • The system is in a safe state since the sequence < P 1 , P 3 , P 4 , P 2 , P 0 > satisfies safety criteria.
  • Example P 1 Request (1,0,2) (Cont.)
    • 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
    • P 0 0 1 0 7 4 3 2 3 0
    • P 1 3 0 2 0 2 0
    • P 2 3 0 1 6 0 0
    • P 3 2 1 1 0 1 1
    • P 4 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.
      • P i  P j if P i is waiting for P j .
    • Periodically invoke an algorithm that searches for a cycle in the graph.
    • An algorithm to detect a cycle in a graph requires an order of n 2 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 [ i j ] = k , then process P i is requesting k more instances of resource type. R j .
  • อัลกอริธึมในการตรวจจับ 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 Allocation i  0, then Finish [i] = false;otherwise, Finish [i] = true .
    • 2. Find an index i such that both:
      • (a) Finish [ i ] == false
      • (b) Request i  Work
      • If no such i exists, go to step 4.
  • Detection Algorithm (Cont.)
    • 3. Work = Work + Allocation i 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 P i is deadlocked.
    Algorithm requires an order of O( m x n 2) operations to detect whether the system is in deadlocked state.
  • Example of Detection Algorithm
    • Five processes P 0 through P 4 ; three resource types A (7 instances), B (2 instances), and C (6 instances).
    • Snapshot at time T 0 :
    • Allocation Request Available
    • A B C A B C A B C
    • P 0 0 1 0 0 0 0 0 0 0
    • P 1 2 0 0 2 0 2
    • P 2 3 0 3 0 0 0
    • P 3 2 1 1 1 0 0
    • P 4 0 0 2 0 0 2
    • Sequence < P 0 , P 2 , P 3 , P 1 , P 4 > will result in Finish [ i ] = true for all i .
  • Example (Cont.)
    • P 2 requests an additional instance of type C .
    • Request
    • A B C
    • P 0 0 0 0
    • P 1 2 0 1
    • P 2 0 0 1
    • P 3 1 0 0
    • P 4 0 0 2
    • State of system?
      • Can reclaim resources held by process P 0 , but insufficient resources to fulfill other processes; requests.
      • Deadlock exists, consisting of processes P 1 , P 2 , P 3 , and P 4 .
  • 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
    • เพื่อหลีกเลี่ยงการเกิดปัญหาวงจรอับของโปรเซส
    • ละเลยโปรเซสหนึ่ง ณ เวลาใดๆ จนกระทั่งวนรอบของการเกิดปัญหาวงจรอับสิ้นสุดลง
    • จากการสั่งงานต่างๆ ดังต่อไปนี้ควาหลีกเลี่ยงข้อใด
    • ระดับความสำคัญของโปรเซส
    • โปรเซสใช้ระยะเวลาเท่าใดในการคำนวณ และใช้เวลายาวนานเท่าใดกว่าจะทำงานเสร็จสิ้น
    • ทรัพยากรใดบ้างที่โปรเซสใช้งาน
    • ทรัพยากรใดบ้างที่โปรเซสต้องการเพื่อให้การทำงานเสร็จสิ้น
    • มีโปรเซสจำนวนเท่าใดที่จำเป็นต้องสิ้นสุดการทำงาน
    • โปรเซสทำงานแบบอินเตอร์แอ็กทีฟ หรือแบทช์
  • การกู้คืนสถานะจากปัญหาวงจรอับ การจัดสรรทรัพยากรเชิงลำดับความสำคัญ Recovery from Deadlock: Resource Preemption
    • Selecting a victim – เลือกทรัพยากรที่ต้องการ เพื่อลดต้นทุน
    • Rollback – โรลแบ็ก ย้อนกลับสู่สถานะที่ปลอดภัย ให้โปรเซสเริ่มทำงานใหม่ในสถานะล่าสุด
    • Starvation – การถูกสตาฟ ความขาดแคลนทรัพยากรในการใช้งาน โปรเซสเดียวกันอาจถูกกำหนดให้เป็นโปรเซสที่ต้องถูกเลือกให้ต้องหยุดทำงานก่อนอยู่ตลอด รวมทั้งจำนวนของการโรลแบ็กในปัจัยค่าใช้จ่าย
  • การใช้หลายกลยุทธ์ในการจัดการการเกิดวงจรอับ Combined Approach to Deadlock Handling
    • การนำกลยุทธ์พื้นฐานสามวิธีมาใช้ร่วมกัน
      • Prevention การป้องกันการเกิดวงจรอับ
      • Avoidance การหลีกเลี่ยงการเกิดวงจรอับ
      • Detection การตรวจจับการเกิดวงจรอับ
    • เพื่อให้การใช้งานทรัพยากรของระบบเป็นประสิทธิภาพสูงสุด
    • การแบ่งส่วนทรัพยากรเป็นแบบคลาสเชิงลำดับชั้น
    • ใช้เทคนิคหลากหลายที่สัมพันธ์กันในการจัดการปัญหาการเกิดวงจรอับ ในแต่ละคลาส
  • การเกิดวงจรอับ Traffic Deadlock for Exercise 8.4