Deadlocks pp. 309.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
นานารำพึงของชีวิต (ชีวิตเมื่อคิดไป)
Advertisements

จำนวน สถานะ NUMBER OF STATES. ประเด็นที่ สนใจ The number of distinct states the finite state machine needs in order to recognize a language is related.
ระบบการจัดเก็บในคลังสินค้า
Stack.
: Chapter 1: Introduction 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Color Standards A pixel color is represented as a point in 3-D space. Axis may be labeled as independent colors such as R, G, B or may use other independent.
REGULAR EXPRESSION การบรรยายแบบสม่ำเสมอ
นงลักษณ์ พรมทอง วิเชษฐ์ พลายมาศ
Mind map (From Wikipedia, the free encyclopedia)
Put “the Glass” Down วาง”แก้ว”ลง
Asst.Prof. Dr.Surasak Mungsing
8/3/2014The Realities of software Testing1 Software testing Realities What is the realities of software testing Why does the software testing not complete.
Merchant Marine Training Centre วิชาการเป็นเลิศ เชิดชู คุณธรรม ผู้นำ.
Processor Management (Thread and Deadlock)
โครงสร้างควบคุมการทำงาน
รูปแบบของปัญหา (System Model) กระบวนการหนึ่งๆ จะต้องร้องขอใช้ ทรัพยากรก่อนที่จะได้ใช้ทรัพยากรก่อน ได้ใช้ทรัพยากรนั้น และจะต้องคืน ทรัพยากรนั้นกลับสู่ระบบเมื่อใช้เสร็จ.
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Chapter 3 Simple Supervised learning
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
In-Class Exercises Discrete Mathematics
Mathematical Model of Physical Systems. Mechanical, electrical, thermal, hydraulic, economic, biological, etc, systems, may be characterized by differential.
 How do we improve the test?  Why do we have to improve the test?
ว เคมีพื้นฐาน พันธะเคมี
ว เคมีพื้นฐาน พันธะเคมี
ภาษาอังกฤษ อ่าน-เขียน 2
ปริมาณสัมพันธ์ ผู้สอน อ. ศราวุทธ แสงอุไร Composition Stoichiometry ว ปริมาณสัมพันธ์ สถานะของ สาร และเคมีไฟฟ้า นายศราวุทธ แสงอุไร ครูวิชาการสาขาเคมี
Database Management System
ครูรุจิรา ทับศรีนวล “Edinburgh” ตอนที่ 1 ครูรุจิรา ทับศรีนวล.
ภาษาอังกฤษ ชั้นมัธยมศึกษาปึที่ 4 Grammar & Reading ครูรุจิรา ทับศรีนวล.
Self-access materials By Self-access Learning Centre, KMUTT Copyright © 2011 Self-access Learning Centre, KMUTT Synonym.
 The nonconformities chart controls the count of nonconformities ( ข้อบกพร่อง หรือตำหนิ ) within the product or service.  An item is classified as a.
Silberschatz, Galvin and Gagne ©2010 Operating System Concepts – 8 th Edition, Chapter 7: Deadlocks Dr. Varin Chouvatut.
PHP FRAMEWORK – Web Programming and Web Database Asst. Prof. Dr. Choopan Rattanapoka.
1 1 Olympic 1 The ancient Olympic Games began in Greece in 776 B.C.E and were held every four years until 393 C.E. It wasn’t until about 1,500 years.
Allocatable Array. Modules A packaging method for data and subprograms. Syntax of the form: A packaging method for data and subprograms. Syntax of the.
1 exit() and break C++ provides a way to leave a program early (before its natural finish) with the exit() function. The format of exit() is as follows:
Practice File. Our Executive Coaching Program is proven effective. Our customer survey show ROI of coaching can be as high as 3 times the investment value.
Page : Stability and Statdy-State Error Chapter 3 Design of Discrete-Time control systems Stability and Steady-State Error.
D 2 E 1 S E M N G ม. I G I T Grammar A L 4.0.
คิดไว สรุปไว ด้วย MIND MAP ยินดีต้อนรับผู้เข้าร่วมสัมมนาหลักสูตร
INC 161 , CPE 100 Computer Programming
Control Charts for Count of Non-conformities
Generic View of Process
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 13: การคำนวณได้และการตัดสินใจของปัญหา ที่ยากต่อการแก้ไข.
DEADLOCKS Advanced Operating System Operating System Technology
การออกแบบระบบ System Design.
ระเบียบวิธีวิจัยพื้นฐานทางการเงิน
บทที่ 1 ความรู้เบื้องต้น เกี่ยวกับระบบสารสนเทศ
Principles of Accounting II
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 04: การวิเคราะห์หาความซับซ้อนด้านเวลา ในรูป.
Multimedia Production
คำเทศนาชุด: ท่านมีของประทาน
1 ยอห์น 1:5-7 5 นี่เป็นเรื่องราวซึ่งเราได้ยินจากพระองค์และประกาศแก่ท่าน คือพระเจ้าทรงเป็นความสว่าง ในพระองค์ไม่มีความมืดเลย 6 ถ้าเราอ้างว่ามีสามัคคีธรรมกับพระองค์แต่ยังดำเนินในความมืด.
1 E 1 S E M N G Reading & Writing
ระเบียบวิธีวิจัยพื้นฐานทาง การตลาด
ที่มาและหน่วยงานกาชาดต่างๆ
“สติปัญญาในการเลือกคู่ครอง” “Wisdom in Choosing a Spouse”
แล้วไงเกี่ยวกับความจริง What About Truth?
2 E 2 S E M N G Requests and Replies
Control Charts for Count of Non-conformities
การวิเคราะห์และออกแบบขั้นตอนวิธี
Inventory Control Models
AnalyticAL Writing ปิติ ตรีสุกล.
การจัดการศูนย์สารสนเทศ หน่วยที่ 5
โครงการสัมมนาเชิงปฏิบัติการบูรณาการภาครัฐและเอกชนในการจัดยุทธศาสตร์เศรษฐกิจภาคตะวันออก This template can be used as a starter file to give updates for.
กลยุทธ์การทดสอบซอฟต์แวร์ วิศวกรรมซอฟต์แวร์ (Software Engineering)
การวิเคราะห์และออกแบบขั้นตอนวิธี
Color Standards A pixel color is represented as a point in 3-D space. Axis may be labeled as independent colors such as R, G, B or may use other independent.
Memory Management Ex. C = A + B A typical instruction-execution cycle
Virtual Memory Why? The need of memory more than the available physical memory. Process 3 Physical Memory Process 2 Process 1 Process 4.
ใบสำเนางานนำเสนอ:

Deadlocks pp. 309

System Model Necessary Conditions Request Use Release A process may utilize a resource in only the following sequence: Request Use Release Necessary Conditions เปรียบเทียบกับไฟ ที่มี necessary condition คือ ความร้อน เชื้อเพลิง และอากาศ Mutual exclusion (non-sharable) Hold and wait (holding at least one resource, and wait) No preemption (resources cannot be preempted) Circular wait necessary condition ของ event A หมายถึง ถ้าพบ event A จะต้องพบ necessary cond ด้วย แต่พบ necessary cond อาจจะไม่เกิด event A ก็ได้ เช่น ถ้านกบินได้ นกต้องมีปีก แต่มีปีกอาจจะบินไม่ได้ (เพนกวิน)

Resource-Allocation Graph wait allocated

Necessary but not sufficient! Resource-Allocation Graph Necessary but not sufficient!

Methods for Handling Deadlocks Deadlock prevention Prevent at least one of the necessary conditions. Deadlock avoidance Information in advance (wait/no wait requests). Deadlock detection and recovery Deadlocks arise, detected, and recovered. Do nothing Performance deterioration, stop functioning, and need to be manually restarted. จะไม่พยายามไปแก้ necessary condition

Deadlock Prevention Mutual exclusion Hold and wait No preemption Intrinsically non-sharable. Hold and wait Request resources only when having none. No preemption If a request fails, all resources are preempted. Circular wait Request resources in increasing order. Read-only file (sharable) Memory (non-sharable) Whenever a process requests a resource, it does not hold any other resources. 2.1 Request all resources at the beginning (low utilization) 2.2 Release all resources before making a request (cannot always release) Example copy file from DVD to disk, sort, and print. A process that needs several popular resources may have to wait indefinitely (starvation). Often applied to resources whose state can be easily saved and restored later. CPU registers and memory.

F(tape drive) = 1 F(disk drive) = 5 F(printer) = 12 Each process can request resources only in an increasing order. 1. Process can request Rj that F(Rj) > F(Ri) 2. If requesting Rj, process must have released any Ri that F(Ri) ≥ F(Rj). It must also be noted that if several instances of the same resource type are needed, a single request for all of them must be issued. If these two protocols are used, then the circular-wait condition cannot hold (proof by contradiction).

How to correct the program to solve deadlock? pp. 294 void transaction(Account from, Account to, double amount) { Semaphore lock1, lock2; lock1 = getLock(from); lock2 = getLock(to); wait(lock1); wait(lock2); withdraw(from, amount); deposit(to, amount); signal(lock1); signal(lock2); } Keep in mind that developing an ordering, or hierarchy, does not in itself prevent deadlock. It is up to application developers to write programs that follow the ordering. It is also important to note that imposing a lock ordering does not guarantee deadlock prevention if locks can be acquired dynamically. AccX AccY Transaction(AccX, AccY, 25); Transaction(AccY, AccX, 50); How to correct the program to solve deadlock?

Deadlock Avoidance

pp. 295

4 tapes Total 12 tape drives. Safe sequence: <P1, P0, P2> 3 Total 12 tape drives. Safe sequence: <P1, P0, P2> Suppose that P2 requests 1 more tape drive and is allocated. System is no longer in safe state. Deadlock may occur, for instance, P1 is allocated and returns all tape drives (12 – 5 – 0 – 3) = 4 tapes are available). P0 requests 5 and P2 requests 6 tape drives. Deadlock! P0 P2 5 6 4 tapes

Resource-Allocation-Graph Algorithm Cycle-detection algorithm O(n2) where n is number of processes. Go ahead วิธีนี้ใช้กับ resource ที่มี multiple instance ไม่ได้ !!! Avoid it pp. 297

Banker’s Algorithm n number of processes m number of resource types Available vector of length m (number of available instances) Max n x m matrix (maximum demand) Allocation n x m matrix (number of allocated instances) Need n x m matrix (remaining resource need)

Safety? Algorithm 1. Work = Available // vector of length m Finish = (false, false, …, false) // vector of length n Find an index i such that both a. Finish[i] = false b. Needi ≤ Work 3. Work = Work + Allocationi Finish[i] = true; Goto step 2 If Finish[i] == true for all i, then the system is in safe state. Time complexity = O(mn2) true คือ process ทำงานเสร็จ, false คือยัง Main idea: ไล่หา safe sequence สูงกว่า cycle detection algorithm

Resource-Request Algorithm pp. 299 Main idea: เมื่อมี request ก็ลองสมมติว่าให้ดูก่อน แล้วรัน safety algo ว่า safe หรือไม่ 1 Safe (มี safe seq > 1) <P1,P3,P4,P2,P0> 2 P1 requests (1, 0, 2) and granted. 3 Safe, then granted <P1,P3,P4,P0,P2> 4 P4 requests (3, 3, 0) not enough available resources P0 requests (0, 2, 0) unsafe

Deadlock Detection Single instance Resource-allocation graph called wait-for graph. Several instance Deadlock-detection algorithm (similar to Safety algo). Cycle = Deadlock

Deadlock-Detection Algorithm 1. Work = Available // vector of length m Finish = (true, false, … true) // vector of length n false if Allocationi ≠ 0 Find an index i such that both a. Finish[i] = false b. Requesti ≤ Work 3. Work = Work + Allocationi Finish[i] = true; Goto step 2 If Finish[i] == false for some i, 0 ≤ i < n, then Pi is deadlocked. Time complexity = O(mn2) Main idea: สมมติกรณี best case ว่าทุก process จะไม่ request เพิ่ม พยายามไล่ให้ทุก process ทำงานเสร็จ ถ้าทำไม่ได้ ก็เกิด deadlock แล้ว

ไม่ต้องดู max หรือ need pp. 303 current request No deadlock Deadlock!

Detection-Algorithm Usage How often is a deadlock likely to occur? How many processes will be effected by deadlock when it happens? Recovery from Deadlock Process Termination Abort all deadlocked processes. Abort one process at a time until the deadlock cycle is eliminated. Resource Preemption Selecting a victim. Rollback (due to resource preempted, total rollback = restart). Starvation (re-preempt from the same process over and over).

ใน database แก้ deadlock ได้ เพราะ rollback หรือ undo ได้ ก็ restart process ที่ทำให้เกิด deadlock ออกไปก่อน แล้วใน database เกิด deadlock ได้ยังไง ? https://www.quora.com/Which-method-handles-deadlock-from-Linux-Unix-Windows-7-and-10