Chapter06 Deadlocks Lung

45
Khoa KTMT 1 Chöông 6 : Taéc ngheõn(Deadlock) Moâ hình heä thoáng Ñònh nghóa Ñieàu kieän caàn cuûa deadlock Resource Allocation Graph (RAG) Phöông phaùp giaûi quyeát deadlock Deadlock prevention Deadlock avoidance Deadlock detection Deadlock recovery Phöông phaùp keát hôïp ñeå giaûi quyeát Deadlock

description

Deadlocks

Transcript of Chapter06 Deadlocks Lung

  • Chng 6 : Tac nghen(Deadlock)Mo hnh he thongnh ngha ieu kien can cua deadlockResource Allocation Graph (RAG)Phng phap giai quyet deadlockDeadlock preventionDeadlock avoidanceDeadlock detectionDeadlock recoveryPhng phap ket hp e giai quyet Deadlock

  • Van e deadlock trong he thongTnh huong: mot tap cac process b blocked, moi process gi tai nguyen va ang ch tai nguyen ma process khac trong tap ang gi.

    V du 1Gia s he thong co 2 file tren a.P1 va P2 moi process ang m mot file va yeu cau m file kia.

    V du 2Semaphore A va B, khi tao bang 1 P0 P1wait(A);wait(B);wait(B);wait(A);

  • Mo hnh hoa he thongHe thong gom cac loai tai nguyen, k hieu R1, R2,, Rm , bao gom:CPU cycle, khong gian bo nh, thiet b I/O, file, semaphore,Moi loai tai nguyen Ri co Wi thc the (instance).

    Gia s tai nguyen tai s dung theo ky (Serially Reusable Resources) Yeu cau (request): process phai ch neu yeu cau khong c ap ng ngayS dung (use): process s dung tai nguyenHoan tra (release): process hoan tra tai nguyen

    Cac tac vu yeu cau (request) va hoan tra (release) eu la system call. V durequest/release deviceopen/close fileallocate/free memorywait/signal

  • nh nghaMot tien trnh goi la deadlocked neu no ang i mot s kien ma se khong bao gi say ra.Thong thng, co nhieu hn mot tien trnh b lien quan trong mot deadlock.Mot tien trnh goi la tr hoan vo han nh (indefinitely postponed) neu no b tr hoan mot khoang thi gian dai lap i lap lai trong khi he thong ap ng cho nhng tien trnh khac . i.e. Mot tien trnh san sang e x ly nhng no khong bao gi nhan c CPU.

  • ieu kien can e xay ra deadlockBon ieu kien can (necessary condition) e xay ra deadlock

    Loai tr ho tng (Mutual exclusion): t nhat mot tai nguyen c gi theo nonsharable mode (v du: printer; v du sharable resource: read-only files).

    Gi va ch cap them tai nguyen (Hold and wait): mot process ang gi t nhat mot tai nguyen va i them tai nguyen do qua trnh khac ang gi.

  • ieu kien can e xay ra deadlock (tt)Khong trng dung (No preemption): (= no resource preemption) tai nguyen khong the b lay lai, ma ch co the c tra lai t process ang gi tai nguyen o khi no muon.

    Chu trnh i (Circular wait): ton tai mot tap {P0,,Pn} cac qua trnh ang i sao cho P0 i mot tai nguyen ma P1 ang giP1 i mot tai nguyen ma P2 ang giPn i mot tai nguyen ma P0 ang gi

  • Resource Allocation Graph (tt)Ky hieuProcess:Loai tai nguyen vi 4 thc the:

    Pi yeu cau mot thc the cua Rj :

    Pi ang gi mot thc the cua Rj :PiPiPiRjRjRj

  • o th cap phat tai nguyenResource Allocation GraphResource allocation graph (RAG) la o th co hng, vi tap nh V va tap canh E

    Tap nh V gom 2 loai:P = {P1, P2,, Pn }(Tat ca process trong he thong)R = {R1, R2,, Rm }(Tat ca cac loai tai nguyen trong he thong)

    Tap canh E gom 2 loai:Canh yeu cau (Request edge): Pi RjCanh cap phat (Assignment edge): Rj Pi

  • V du ve RAG R1R3P1P2P3R2R4

  • V du ve RAG (tt) R1R3P1P2P3R2R4Deadlock xay ra!

  • RAG va deadlockV du mot RAG cha chu trnh nhng khong xay ra deadlock: P4 co the tra lai instance cua R2.R1P1P2P3R2P4

  • RAG va deadlock (tt)RAG khong cha chu trnh (cycle) khong co deadlockRAG cha mot (hay nhieu) chu trnh Neu moi loai tai nguyen ch co mot thc the deadlockNeu moi loai tai nguyen co nhieu thc the co the xay ra deadlock

  • Cac phng phap giai quyet deadlock (1)Ba phng phap1) Bao am rang he thong khong ri vao tnh trang deadlock bang cach ngan (preventing) hoac tranh (avoiding) deadlock.Khac bietNgan deadlock: khong cho phep (t nhat) mot trong 4 ieu kien can cho deadlockTranh deadlock: cac qua trnh can cung cap thong tin ve tai nguyen no can e he thong cap phat tai nguyen mot cach thch hp

  • Cac phng phap giai quyet deadlock (2)2) Cho phep he thong vao trang thai deadlock, nhng sau o phat hien deadlock va phuc hoi he thong.

    3) Bo qua moi van e, xem nh deadlock khong bao gi xay ra trong he thong. Kha nhieu he ieu hanh s dung phng phap nay.Deadlock khong c phat hien, dan en viec giam hieu suat cua he thong. Cuoi cung, he thong co the ngng hoat ong va phai c khi ong lai.

  • 1. Ngan deadlock (deadlock prevention)Ngan deadlock bang cach ngan mot trong 4 ieu kien can cua deadlock

    Ngan mutual exclusionoi vi nonsharable resource (vd: printer): khong lam coi vi sharable resource (vd: read-only file): khong can thiet

  • Ngan deadlock (tt)Ngan Hold and Wait

    Cach 1: moi process yeu cau toan bo tai nguyen can thiet mot lan. Neu co u tai nguyen th he thong se cap phat, neu khong u tai nguyen th process phai b blocked.

    Cach 2: khi yeu cau tai nguyen, process khong c gi bat ky tai nguyen nao. Neu ang co th phai tra lai trc khi yeu cau.

    V du e so sanh hai cach tren: mot qua trnh copy d lieu t tape drive sang disk file, sap xep disk file, roi in ket qua ra printer.

    Khuyet iem cua cac cach tren:Hieu suat s dung tai nguyen (resource utilization) thapQua trnh co the b starvation

  • Ngan deadlock (tt)Ngan No Preemption: neu process A co gi tai nguyen va ang yeu cau tai nguyen khac nhng tai nguyen nay cha cap phat ngay c th

    Cach 1: He thong lay lai moi tai nguyen ma A ang giA ch bat au lai c khi co c cac tai nguyen a b lay lai cung vi tai nguyen ang yeu cau

    Cach 2: He thong se xem tai nguyen ma A yeu cau Neu tai nguyen c gi bi mot process khac ang i them tai nguyen, tai nguyen nay c he thong lay lai va cap phat cho A.Neu tai nguyen c gi bi process khong i tai nguyen, A phai i va tai nguyen cua A b lay lai. Tuy nhien he thong ch lay lai cac tai nguyen ma process khac yeu cau

  • Ngan deadlock (tt)Ngan Circular Wait: gan mot th t cho tat ca cac tai nguyen trong he thong.Tap hp loai tai nguyen: R={R1, R2,,Rm }Ham anh xa: F: R->NV du: F(tape drive) = 1, F(disk drive) = 5, F(printer) = 12F la ham nh ngha th t tren tap cac loai tai nguyen.

  • Ngan deadlock (tt)Ngan Circular Wait (tt)Moi process ch co the yeu cau thc the cua mot loai tai nguyen theo th t tang dan (nh ngha bi ham F) cua loai tai nguyen. V duChuoi yeu cau thc the hp le: tape drive disk drive printerChuoi yeu cau thc the khong hp le: disk drive tape drive

    Khi mot process yeu cau mot thc the cua loai tai nguyen Rj th no phai tra lai cac tai nguyen Ri vi F(Ri) > F(Rj).

    Chng minh gia s ton tai mot chu trnh deadlockF(R4) < F(R1)F(R1) < F(R2)F(R2) < F(R3)F(R3) < F(R4)Vay F(R4) < F(R4), mau thuan!P1R1P2P4P3R3R2R4

  • 2. Tranh tac nghenDeadlock avoidanceDeadlock prevention s dung tai nguyen khong hieu qua.

    Deadlock avoidance van am bao hieu suat s dung tai nguyen toi a en mc co the.

    Yeu cau moi process khai bao so lng tai nguyen toi a can e thc hien cong viec

    Giai thuat deadlock-avoidance se kiem tra trang thai cap phat tai nguyen (resource-allocation state) e bao am he thong khong ri vao deadlock. Trang thai cap phat tai nguyen c nh ngha da tren so tai nguyen con lai, so tai nguyen a c cap phat va yeu cau toi a cua cac process.

  • Trang thai safe va unsafeMot trang thai cua he thong c goi la an toan (safe) neu ton tai mot chuoi (th t) an toan (safe sequence).Mot chuoi qua trnh la mot chuoi an toan neuVi moi i = 1,,n, yeu cau toi a ve tai nguyen cua Pi co the c thoa bitai nguyen ma he thong ang co san sang (available)cung vi tai nguyen ma tat ca Pj , j < i, ang gi.

    Mot trang thai cua he thong c goi la khong an toan (unsafe) neu khong ton tai mot chuoi an toan.

  • Chuoi an toan (tt)V du: He thong co 12 tape drives va 3 qua trnh P0, P1, P2Tai thi iem t0

    Con 3 tape drive san sang.Chuoi la chuoi an toan he thong la an toan

    Maximum needsCurrent needsP0105P142P292

  • Chuoi an toan (tt)Gia s tai thi iem t1, P2 yeu cau va c cap phat 1 tape drivecon 2 tape drive san sang

    He thong con an toan khong? can toi aang gi

    P0105P142P293

  • Trang thai safe/unsafe va deadlock Neu he thong ang trang thai safe khong deadlock.Neu he thong ang trang thai unsafe co the dan en deadlock.Tranh deadlock bang cach bao am he thong khong i en trang thai unsafe. safedeadlockunsafe

  • Giai thuat o th cap phat tai nguyenKhai niem canh thnh cauP1P2P1P2R1R2R1R2

  • Giai thuat bankerAp dung cho he thong cap phat tai nguyen trong o moi loai tai nguyen co the co nhieu instance.Bat chc nghiep vu ngan hang (banking)ieu kienMoi process phai khai bao so lng thc the (instance) toi a cua moi loai tai nguyen ma no canKhi process yeu cau tai nguyen th co the phai i mac du tai nguyen c yeu cau ang co sanKhi process a co c ay u tai nguyen th phai hoan tra trong mot khoang thi gian hu han nao o.

  • Giai thuat banker (tt)n: so process, m: so loai tai nguyenCac cau truc d lieuAvailable: vector o dai mAvailable[ j ] = k loai tai nguyen Rj co k instance san sangMax: ma tran n mMax[ i, j ] = k qua trnh Pi yeu cau toi a k instance cua loaitai nguyen RjAllocation: ma tran n mAllocation[i, j] = k Pi a c cap phat k instance cua RjNeed: ma tran n mNeed[i, j] = k Pi can them k instance cua RjNhan xet: Need[i, j] = Max[i, j] Allocation[i, j]Ky hieu Y X Y[i] X[i], v du (0, 3, 2, 1) (1, 7, 3, 2)

  • Giai thuat banker (tt) 1.Giai thuat an toan Tm mot chuoi an toan

    1. Goi Work va Finish la hai vector o dai la m va n. Khi taoWork := AvailableFinish[ i ] := false, i = 1,, n2. Tm i thoa (a) Finish[ i ] = false(b) Needi Work (hang th i cua Need)Neu khong ton tai i nh vay, en bc 4.3. Work := Work + Allocationi Finish[ i ] := true quay ve bc 2.4. Neu Finish[ i ] = true, i = 1,, n, th he thong ang trang thai safe

    Thi gian chay cua giai thuat la O(mn2)

  • Giai thuat banker (tt) 2. Giai thuat yeu cau (cap phat) tai nguyenGoi Requesti la request vector cua process Pi . Requesti [ j ] = k Pi can k instance cua tai nguyen Rj .1. Neu Requesti Needi th en bc 2. Neu khong, bao loi v process a vt yeu cau toi a.2. Neu Requesti Available th qua bc 3. Neu khong, Pi phai ch v tai nguyen khong con u e cap phat.3. Gia nh cap phat tai nguyen ap ng yeu cau cua Pi bang cach cap nhat trang thai he thong nh sau:Available := Available RequestiAllocationi := Allocationi + RequestiNeedi := Needi Requesti

  • Giai thuat banker (tt) 2.Giai thuat yeu cau tai nguyenAp dung giai thuat kiem tra trang thai an toan len trang thai trenNeu trang thai la safe th tai nguyen c cap thc s cho Pi .Neu trang thai la unsafe th Pi phai i, vaphuc hoi trang thai:Available := Available + RequestiAllocationi := Allocationi RequestiNeedi := Needi + Requesti

  • Giai thuat kiem tra trang thai an toan V duCo 5 process P0 ,, P4 Co 3 loai tai nguyen: A (co 10 instance), B (5 instance) va C (7 instance).S o cap phat trong he thong tai thi iem T0

    AllocationMaxAvailableNeedABCABCABCABCP0010753332743P1200322122P2302902600P3211222011P4002433431

  • GT (kiem tra trang thai)an toan Vd (tt)AllocationNeedWorkA B CA B C A B C P00 1 07 4 33 3 2 P12 0 0 1 2 2 P23 0 2 6 0 0 P32 1 1 0 1 1 P40 0 24 3 1Chuoi an toan 7 4 37 4 510 4 710 5 75 3 2

  • GT cap phat tai nguyen V du Yeu cau (1, 0, 2) cua P1 co thoa c khong?Kiem tra ieu kien Request1 Available:(1, 0, 2) (3, 3, 2) la ungGia nh thoa yeu cau, kiem tra trang thai mi co phai la safe hay khong.

    Trang thai mi la safe (chuoi an toan la ), vay co the cap phat tai nguyen cho P1.P4 (3, 3, 0) ?P0 (0, 2, 0) ?P3 (0, 2, 1)?

    AllocationNeedAvailableABCABCABCP0010743230P1302020P2302600P3211011P4002431

  • 3. Phat hien deadlock (Deadlock detection)Chap nhan xay ra deadlock trong he thong, kiem tra trang thai he thong bang giai thuat phat hien deadlock.

    Neu co deadlock th tien hanh phuc hoi he thong

    Cac giai thuat phat hien deadlock thng s dung mo hnh RAG.

    He thong cap phat tai nguyen c khao sat trong moi trng hp sauMoi loai tai nguyen ch co mot thc the (instance)Moi loai tai nguyen co the co nhieu thc the

  • Moi loai tai nguyen ch co mot thc the S dung wait-for graphWait-for graph c dan xuat t RAG bang cach bo cac node bieu dien tai nguyen va ghep cac canh tng ng. Co canh t Pi en Pj Pi ang ch tai nguyen t Pj

    Mot giai thuat kiem tra co ton tai chu trnh trong wait-for graph hay khong se c goi nh ky. Giai thuat phat hien chu trnh co thi gian chay la O(n 2), vi n la so nh cua graph.R1R3R4P2P1P3P5R2R5P4P2P1P3P5P4

  • Moi loai tai nguyen co nhieu thc the Phng phap dung wait-for graph khong ap dung c cho trng hp moi loai tai nguyen co nhieu instance.Cac cau truc d lieu dung trong giai thuat phat hien deadlock Available: vector o dai mso instance san sang cua moi loai tai nguyen Allocation: ma tran n mso instance cua moi loai tai nguyen a cap phat cho moi processRequest: ma tran n myeu cau hien tai cua moi process.Request [i, j ] = k Pi ang yeu cau them k instance cua Rj

  • Giai thuat phat hien deadlock1. Goi Work va Finish la vector kch thc m va n. Khi tao:Work := Availablei = 1, 2,, n, neu Allocationi 0 th Finish[ i ] := falsecon khong th Finish[ i ] := true2. Tm i thoa man:Finish[ i ] := false vaRequesti WorkNeu khong ton tai i nh the, en bc 4.

    3. Work := Work + Allocationi Finish[ i ] := true quay ve bc 2.

    4.Neu Finish[ i ] = false, vi mot i = 1,, n, th he thong ang trang thai deadlock. Hn the na, Finish[ i ] = false th Pi b deadlocked.thi gian chaycua giai thuatO(mn2)

  • Giai thuat phat hien deadlock V duHe thong co 5 qua trnh P0 ,, P43 loai tai nguyen: A (7 instance), B (2 instance), C (6 instance).Chay giai thuat, tm c chuoi vi Finish[ i ] = true, i = 1,, n, vay he thong khong b deadlocked.

    AllocationRequestAvailableABCABCABCP0010000000P1200202P2303000P3211100P4002002

  • Giai thuat phat hien deadlock V du (tt)P2 yeu cau them mot instance cua C. Ma tran Request nh sau:

    RequestA B CP00 0 0P12 0 2P20 0 1P31 0 0 P40 0 2

    Trang thai cua he thong la g?Co the thu hoi tai nguyen ang s hu bi process P0 nhng van khong u ap ng yeu cau cua cac process khac.Vay ton tai deadlock, bao gom cac process P1, P2, P3, va P4 .

  • Phuc hoi deadlock (Deadlock Recovery)Khi deadlock xay ra, e phuc hoibao ngi van hanh (operator)hoache thong t ong phuc hoi bang cach be gay chu trnh deadlock:cham dt mot hay nhieu qua trnhlay lai tai nguyen t mot hay nhieu qua trnh

  • Deadlock Recovery: Cham dt qua trnhPhuc hoi he thong b deadlock bang cach cham dt qua trnhCham dt tat ca process b deadlocked, hoacCham dt lan lt tng process cho en khi khong con deadlockS dung giai thuat phat hien deadlock e xac nh con deadlock hay khong

    Da tren yeu to nao e chon process can c cham dt?o u tien cua processThi gian a thc thi cua process va thi gian con laiLoai tai nguyen ma process a s dungTai nguyen ma process can them e hoan tat cong viecSo lng process can c cham dtProcess la interactive process hay batch process

  • Deadlock recovery: Lay lai tai nguyen Lay lai tai nguyen t mot process, cap phat cho process khac cho en khi khong con deadlock na.

    Cac van e trong chien lc thu hoi tai nguyen:Chon nan nhan e toi thieu chi ph (co the da tren so tai nguyen s hu, thi gian CPU a tieu ton,...)

    Tr lai trang thai trc deadlock (Rollback): rollback process b lay lai tai nguyen tr ve trang thai safe, tiep tuc process t trang thai o. He thong can lu gi mot so thong tin ve trang thai cac process ang thc thi.

    oi tai nguyen (Starvation): e tranh starvation, phai bao am khong co process se luon luon b lay lai tai nguyen moi khi deadlock xay ra.

  • Phng phap ket hp e giai quyet DeadlockKet hp 3 phng phap c banNgan chan (Prevention)Tranh (Avoidance)Phat hien (Detection)Cho phep s dung cach giai quyet toi u cho moi lp tai nguyen trong he thong.Phan chia tai nguyen thanh cac lp theo th bac.S dung ky thuat thch hp nhat cho viec quan ly deadlock trong moi lp nay.

  • Bai tapBai 01: Liet ke 3 trng hp xay ra deadlock trong i songBai 02:

    R1R3P1P2P3R2R4Deadlock ?

  • Bai tapBai 03:

    A) Tm NeedB) He thong co an toan khongC)Neu P1 yeu cau (0,4,2,0) th co the cap phat cho no ngay khong?