1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình môn học Hệ điều hành: Phần 2

125 63 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 125
Dung lượng 2,59 MB

Nội dung

Nối tiếp nội dung phần 1 giáo trình môn học Hệ điều hành, phần 2 giới thiệu tới người học các kiến thức: Deadlock, quản lý bộ nhớ, bộ nhớ ảo, quản lý tập tin, cài đặt hệ thống tập tin, quản lý hệ thống nhập xuất. Mời các bạn cùng tham khảo nội dung chi tiết.

Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 DEADLOCK I Mөc ÿích Sau hӑc xong chѭѫng này, ngѭӡi hӑc nҳm ÿѭӧc nhӳng kiӃn thӭc sau: x x x x x x x HiӇu mơ hình hӋ thӕng vӅ deadlock HiӇu ÿһc ÿiӇm cӫa deadlock HiӇu phѭѫng pháp quҧn lý deadlock HiӇu cách ngăn chһn deadlock HiӇu cách tránh deadlock HiӇu cách phát hiӋn deadlock HiӇu cách phөc hӗi tӯ deadlock II Giӟi thiӋu Trong môi truӡng ÿa chѭѫng, nhiӅu q trình có thӇ cҥnh tranh mӝt sӕ giӟi hҥn tài nguyên Mӝt trình yêu cҫu tài nguyên, nӃu tài nguyên không sҷn dùng tҥi thӡi ÿiӇm ÿó, q trình ÿi vào trҥng thái chӡ Q trình chӡ có thӇ khơng bao giӡ chuyӇn trҥng thái trӣ lҥi tài nguyên chúng yêu cҫu bӏ giӳ bӣi nhӳng trình ÿang chӡ khác Trѭӡng hӧp ÿѭӧc gӑi deadlock (khoá chӃt) Trong chѭѫng sӁ mô tҧ phѭѫng pháp mà hӋ ÿiӅu hành có thӇ dùng ÿӇ ngăn chһn hay giҧi quyӃt deadlock Hҫu hӃt hӋ ÿiӅu hành không cung cҩp phѭѫng tiӋn ngăn chһn deadlock nhѭng nhӳng ÿһc ÿiӇm sӁ ÿѭӧc thêm vào sau ÿó Vҩn ÿӅ deadlock chӍ có thӇ trӣ thành vҩn ÿӅ phә biӃn, xu hѭӟng hiӋn hành gӗm sӕ lѭӧng lӟn trình, chѭѫng trình ÿa luӗng, nhiӅu tài nguyên hӋ thӕng ÿһc biӋt tұp tin có ÿӡi sӕng dài nhӳng máy phөc vө cѫ sӣ dӳ liӋu hѫn hӋ thӕng bó III Mơ hình hӋ thӕng Mӝt hӋ thӕng chӭa sӕ tài nguyên hӳu hҥn ÿѭӧc phân bә giӳa nhiӅu trình cҥnh tranh Các tài nguyên ÿѭӧc phân chia thành nhiӅu loҥi, mӛi loҥi chӭa mӝt sӕ thӇ hiӋn xác ÿӏnh Không gian bӝ nhӟ, chu kǤ CPU thiӃt bӏ nhұp/xuҩt (nhѭ máy in, ÿƭa tӯ) nhӳng thí dө vӅ loҥi tài nguyên NӃu hӋ thӕng có hai CPUs, loҥi tài ngun CPU có hai thӇ hiӋn Tѭѫng tӵ, loҥi tài nguyên máy in có thӇ có năm thӇ hiӋn NӃu mӝt trình yêu cҫu mӝt thӇ hiӋn cӫa loҥi tài nguyên viӋc cҩp phát bҩt cӭ thӇ hiӋn cӫa loҥi tài nguyên sӁ thoҧ mãn yêu cҫu NӃu khơng có thӇ hiӋn khơng xác ÿӏnh lӟp loҥi tài nguyên sӁ không ÿѭӧc ÿӏnh nghƭa hӧp lý Thí dө, mӝt hӋ thӕng có thӇ có hai máy in Hai loҥi máy in có thӇ ÿѭӧc ÿӏnh nghƭa lӟp loҥi tài ngun nӃu khơng có q trình quan tâm máy in dӳ liӋu Tuy nhiên, nӃu mӝt máy in ӣ tҫng máy in khác ӣ tҫng trӋt ngѭӡi dùng ӣ tҫng khơng thӇ xem hai máy in tѭѫng tӵ lӟp tài nguyên riêng rҿ cҫn ÿѭӧc ÿӏnh nghƭa cho mӛi máy in Mӝt trình phҧi yêu cҫu mӝt tài nguyên trѭӟc sӱ dөng nó, phҧi giҧi phóng sau sӱ dөng Mӝt q trình có thӇ yêu cҫu nhiӅu tài nguyên nhѭ ÿѭӧc Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 113 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 yêu cҫu ÿӇ thӵc hiӋn tác vө ÿѭӧc gán cӫa Chú ý, sӕ tài nguyên ÿѭӧc yêu cҫu không vѭӧt sӕ lѭӧng tәng cӝng tài nguyên sҷn có hӋ thӕng Nói cách khác, mӝt q trình khơng thӇ u cҫu ba máy in nӃu hӋ thӕng chӍ có hai Dѭӟi chӃ ÿӝ ÿiӅu hành thơng thѭӡng, mӝt q trình có thӇ sӱ dөng mӝt tài nguyên chӍ thӭ tӵ sau: 1) Yêu cҫu: nӃu yêu cҫu không thӇ ÿѭӧc gán tӭc (thí dө, tài ngun ÿang ÿѭӧc dùng bӣi trình khác) trình ÿang yêu cҫu phҧi chӡ cho tӟi có thӇ nhұn ÿѭӧc tài ngun 2) Sӱ dөng: q trình có thӇ ÿiӅu hành tài nguyên (thí dө, nӃu tài nguyên máy in, q trình có thӇ in máy in) 3) Giҧi phóng: q trình giҧi phóng tài ngun u cҫu giҧi phóng tài ngun lӡi gӑi hӋ thӕng Thí dө nhѭ yêu cҫu giҧi phóng thiӃt bӏ, mӣ ÿóng tұp tin, cҩp phát giҧi phóng bӝ nhӟ Yêu cҫu giҧi phóng tài nguyên khác có thӇ ÿҥt ÿѭӧc thơng qua thao tác chӡ wait báo hiӋu signal Do ÿó, cho mӛi trѭӡng hӧp sӱ dөng, hӋ ÿiӅu hành kiӇm tra ÿӇ ÿҧm bҧo rҵng trình sӱ dөng yêu cҫu ÿѭӧc cҩp phát tài nguyên Mӝt bҧng hӋ thӕng ghi nhұn mӛi q trình giҧi phóng hay ÿѭӧc cҩp phát tài ngun NӃu mӝt trình yêu cҫu tài nguyên mà tài ngun ÿó hiӋn ÿѭӧc cҩp phát cho mӝt q trình khác, có thӇ ÿѭӧc thêm vào hàng ÿӧi ÿӇ chӡ tài nguyên Mӝt tұp hӧp trình trҥng thái deadlock mӛi trình tұp hӧp chӡ sӵ kiӋn mà có thӇ ÿѭӧc tҥo chӍ bӣi trình khác tұp hӧp Nhӳng sӵ kiӋn mà quan tâm chӫ yӃu ӣ ÿây nhұn giҧi phóng tài nguyên Các tài nguyên có thӇ tài ngun vұt lý (thí dө, máy in, ÿƭa tӯ, không gian bӝ nhӟ chu kǤ CPU) hay tài nguyên luұn lý (thí dө, tұp tin, semaphores, monitors) Tuy nhiên, loҥi khác cӫa sӵ kiӋn có thӇ dүn ÿӃn deadlock ĈӇ minh hoҥ trҥng thái deadlock, xét hӋ thӕng vӟi ba ә ÿƭa tӯ Giҧ sӱ mӛi trình giӳ mӝt ә ÿƭa tӯ Bây giӡ, nӃu mӛi trình yêu cҫu mӝt ә ÿƭa tӯ khác ba trình sӁ ӣ trҥng thái deadlock Mӛi trình ÿang chӡ mӝt sӵ kiӋn “ә ÿƭa tӯ ÿѭӧc giҧi phóng” mà có thӇ ÿѭӧc gây chӍ bӣi mӝt nhӳng q trình ÿang chӡ Thí dө minh hoҥ deadlock liên quan ÿӃn loҥi tài nguyên Deadlock cNJng liên quan nhiӅu loҥi tài nguyên khác Thí dө, xét mӝt hӋ thӕng vӟi mӝt máy in mӝt ә ÿƭa tӯ Giҧ sӱ, trình Pi ÿang giӳ ә ÿƭa tӯ trình Pj ÿang giӳ máy in NӃu Pi yêu cҫu máy in Pj yêu cҫu ә ÿƭa tӯ deadlock xҧy Mӝt ngѭӡi lұp trình ÿang phát triӇn nhӳng ӭng dөng ÿa luӗng phҧi quan tâm ÿһc biӋt tӟi vҩn ÿӅ này: Các chѭѫng trình ÿa luӗng ӭng cӱ viên cho vҩn ÿӅ deadlock nhiӅu luӗng có thӇ cҥnh tranh tài nguyên ÿѭӧc chia sҿ IV Ĉһc ÿiӇm deadlock Trong mӝt deadlock, q trình khơng bao giӡ hồn thành viӋc thӵc thi tài nguyên hӋ thӕng bӏ buӝc chһt, ngăn chһn trình khác bҳt ÿҫu Trѭӟc thҧo luұn phѭѫng pháp khác giҧi quyӃt vҩn ÿӅ deadlock, sӁ mô tҧ ÿһc ÿiӇm mà deadlock mô tҧ Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 114 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 IV.1 Nhӳng ÿiӅu kiӋn cҫn thiӃt gây deadlock Trѭӡng hӧp deadlock có thӇ phát sinh nӃu bӕn ÿiӅu kiӋn sau xҧy mӝt lúc hӋ thӕng: 1) Loҥi trӯ hӛ tѭѫng: nhҩt mӝt tài nguyên phҧi ÿѭӧc giӳ chӃ ÿӝ khơng chia sҿ; nghƭa là, chӍ mӝt q trình tҥi mӝt thӡi ÿiӇm có thӇ sӱ dөng tài nguyên NӃu mӝt trình khác yêu cҫu tài nguyên ÿó, q trình u cҫu phҧi tҥm dӯng cho ÿӃn tài nguyên ÿѭӧc giҧi phóng 2) Giӳ chӡ cҩp thêm tài ngun: q trình phҧi ÿang giӳ nhҩt mӝt tài nguyên ÿang chӡ ÿӇ nhұn tài nguyên thêm mà hiӋn ÿang ÿѭӧc giӳ bӣi trình khác 3) Khơng ÿịi lҥi tài ngun tӯ q trình ÿang giӳ chúng: Các tài ngun khơng thӇ bӏ ÿịi lҥi; nghƭa là, tài nguyên có thӇ ÿѭӧc giҧi phóng chӍ tӵ ý bӣi q trình ÿang giӳ nó, sau q trình ÿó hồn thành tác vө 4) Tӗn tҥi chu trình ÿӗ thӏ cҩp phát tài nguyên: mӝt tұp hӧp trình {P0, P1,…,Pn} ÿang chӡ mà ÿó P0 ÿang chӡ mӝt tài nguyên ÿѭӧc giӳ bӣi P1, P1 ÿang chӡ tài nguyên ÿang giӳ bӣi P2,…,Pn-1 ÿang chӡ tài nguyên ÿang ÿѭӧc giӳ bӣi trình P0 Chúng ta nhҩn mҥnh rҵng tҩt cҧ bӕn ÿiӅu kiӋn phҧi phát sinh ÿӇ deadlock xҧy ĈiӅu kiӋn chӡ ÿӧi ch trình ÿѭa ÿӃn ÿiӅu kiӋn giӳ-và-chӡ thӃ bӕn ÿiӅu kiӋn khơng hồn tồn ÿӝc lұp IV.2 Ĉӗ thӏ cҩp phát tài nguyên Deadlock có thӇ mơ tҧ xác hѫn bҵng cách hiӇn thӏ ÿӗ thӏ có hѭӟng gӑi ÿӗ thӏ cҩp phát tài nguyên hӋ thӕng Ĉӗ thӏ chӭa mӝt tұp ÿӍnh V tұp hӧp cҥnh E Mӝt tұp ÿӍnh V ÿѭӧc chia làm hai loҥi nút P = {P1, P2,…,Pn} tұp hӧp trình hoҥt ÿӝng hӋ thӕng, R = {R1, R2, , Rm} tұp hӧp chӭa tҩt cҧ loҥi tài nguyên hӋ thӕng Mӝt cҥnh có hѭӟng tӯ trình Pi tӟi loҥi tài nguyên Rj ÿѭӧc ký hiӋu Pi oRj; biӇu thӏ rҵng q trình Pi ÿã yêu cҫu loҥi tài nguyên Rj hiӋn ÿang chӡ loҥi tài nguyên ÿó Mӝt cҥnh có hѭӟng tӯ loҥi tài nguyên Rj tӟi trình Pi ÿѭӧc hiӇn thӏ bӣi Rj o Pi; hiӇn thӏ rҵng thӇ hiӋn cӫa loҥi tài nguyên Rj ÿã ÿѭӧc cҩp phát tӟi q trình Pi Mӝt cҥnh có hѭӟng Pi o Rj ÿѭӧc gӑi cҥnh yêu cҫu; mӝt cҥnh có hѭӟng Rj o Pi ÿѭӧc gӑi cҥnh gán Bҵng hình tѭӧng, hiӇn thӏ mӛi trình Pi mӝt hình trịn, mӛi loҥi tài ngun Rj hình chӳ nhұt Vì loҥi tài nguyên Rj có thӇ có nhiӅu hѫn mӝt thӇ hiӋn, hiӇn thӏ mӛi thӇ hiӋn mӝt chҩm nҵm hình vng Chú ý rҵng mӝt cҥnh u cҫu trӓ tӟi chӍ mӝt hình vng Rj, trái lҥi mӝt cҥnh gán cNJng phҧi gán tӟi mӝt dҩu chҩm hình vng Khi q trình Pi u cҫu mӝt thӇ hiӋn cӫa loҥi tài nguyên Rj, mӝt cҥnh yêu cҫu ÿѭӧc chèn vào ÿӗ thӏ cҩp phát tài nguyên Khi yêu cҫu có thӇ ÿѭӧc ÿáp ӭng, cҥnh yêu cҫu lұp tӭc ÿѭӧc truyӅn tӟi cҥnh gán Khi q trình khơng cịn cҫn truy xuҩt tӟi tài ngun, giҧi phóng tài nguyên, ÿó dүn ÿӃn cҥnh gán bӏ xoá Ĉӗ thӏ cҩp phát tài nguyên ÿѭӧc hiӇn thӏ hình VI-1 dѭӟi ÿây mơ tҧ trѭӡng hӧp sau: Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 115 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thơng Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 Hình 0-1 Ĉӗ thӏ cҩp phát tài nguyên x Các tұp P, R, E: o P = {P1, P2, P3} o R = {R1, R2, R3, R4} o E = {P1oR1, P2 oR3, R1 oP2, R2oP2, R3oP3} x Các thӇ hiӋn tài nguyên o Mӝt thӇ hiӋn cӫa tài nguyên loҥi R1 o Hai thӇ hiӋn cӫa tài nguyên loҥi R2 o Mӝt thӇ hiӋn cӫa tài nguyên loҥi R3 o Mӝt thӇ hiӋn cӫa tài nguyên loҥi R4 x Trҥng thái trình o Quá trình P1 ÿang giӳ mӝt thӇ hiӋn cӫa loҥi tài nguyên R2 ÿang chӡ mӝt thӇ hiӋn cӫa loҥi tài nguyên R1 o Quá trình P2 ÿang giӳ mӝt thӇ hiӋn cӫa loҥi tài nguyên R1 R2 ÿang chӡ mӝt thӇ hiӋn cӫa loҥi tài nguyên R3 o Quá trình P3 ÿang giӳ mӝt thӇ hiӋn cӫa R3 Ĉӗ thӏ cҩp phát tài nguyên hiӇn thӏ rҵng, nӃu ÿӗ thӏ khơng chӭa chu trình, khơng có q trình hӋ thӕng bӏ deadlock NӃu ÿӗ thӏ có chӭa chu trình, deadlock có thӇ tӗn tҥi NӃu mӛi loҥi tài ngun có xác mӝt thӇ hiӋn, mӝt chu trình ngө ý rҵng mӝt deadlock xҧy NӃu mӝt chu trình bao gӗm chӍ mӝt tұp hӧp loҥi tài nguyên, mӛi loҥi tài nguyên chӍ có mӝt thӇ hiӋn deadlock xҧy Mӛi q trình chӭa chu trình bӏ deadlock Trong trѭӡng hӧp này, mӝt chu trình ÿӗ thӏ ÿiӅu kiӋn cҫn ÿӫ ÿӇ tӗn tҥi deadlock NӃu mӛi loҥi tài ngun có nhiӅu thӇ hiӋn chu trình khơng ngө ý deadlock xҧy Trong trѭӡng hӧp này, mӝt chu trình ÿӗ thӏ ÿiӅu kiӋn cҫn nhѭng chѭa ÿӫ ÿӇ tӗn tҥi deadlock ĈӇ hiӇn thӏ khái niӋm này, xem lҥi ÿӗ thӏ ӣ hình VII-1 ӣ Giҧ sӱ trình P3 yêu cҫu mӝt thӇ hiӋn cӫa loҥi tài ngun R2 Vì khơng có thӇ hiӋn tài nguyên hiӋn có, mӝt cҥnh yêu cҫu P3 o R2 ÿѭӧc thêm vào ÿӗ thӏ (hình VI-2) Tҥi thӡi ÿiӇm này, hai chu trình nhӓ tӗn tҥi hӋ thӕng: Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 116 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thơng Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 P1 o R1 o P2 o R3 o P3 o R2 o P1 P2 o R3 o P3 o R2 o P2 Hình 0-2 Ĉӗ thӏ cҩp phát tài nguyên vӟi deadlock Quá trình P1, P2, P3 bӏ deadlock Quá trình P3 ÿang chӡ tài nguyên R3, hiӋn ÿѭӧc giӳ bӣi q trình P2 Hay nói cách khác, trình P3 ÿang chӡ trình P1 hay P2 giҧi phóng tài ngun R2 Ngồi ra, q trình P1 ÿang chӡ q trình P2 giҧi phóng tài ngun R1 Bây giӡ xem xét ÿӗ thӏ cҩp phát tài nguyên hình VI-3 dѭӟi ÿây Trong thí dө này, cNJng có mӝt chu kǤ P1 o R1 o P3 o R2 o P1 Hình 0-3 Ĉӗ thӏ cҩp phát tài ngun có chu trình nhѭng khơng bӏ deadlock Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 117 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 Tuy nhiên, khơng có deadlock Chú ý rҵng q trình P4 có thӇ giҧi phóng thӇ hiӋn cӫa loҥi tài nguyên R2 Tài nguyên ÿó có thӇ ÿѭӧc cҩp phát tӟi P3 sau ÿó, chu trình sӁ khơng cịn Tóm lҥi, nӃu ÿӗ thӏ cҩp phát tài ngun khơng có chu trình hӋ thӕng khơng có trҥng thái deadlock Ngồi ra, nӃu có chu trình có thӇ có hoһc khơng trҥng thái deadlock Nhұn xét quan trӑng giҧi quyӃt vҩn ÿӅ deadlock V Các phѭѫng pháp xӱ lý deadlock Phҫn lӟn, có thӇ giҧi quyӃt vҩn ÿӅ deadlock theo mӝt ba cách: x Chúng ta có thӇ sӱ dөng mӝt giao thӭc ÿӇ ngăn chһn hay tránh deadlocks, ÿҧm bҧo rҵng hӋ thӕng sӁ không bao giӡ ÿi vào trҥng thái deadlock x Chúng ta có thӇ cho phép hӋ thӕng ÿi vào trҥng thái deadlock, phát hiӋn phөc hӗi x Chúng ta có thӇ bӓ qua hồn tồn vҩn ÿӅ giҧ vӡ deadlock không bao giӡ xҧy hӋ thӕng Giҧi pháp ÿѭӧc dùng nhiӅu hӋ ÿiӅu hành, kӇ cҧ UNIX x Chúng ta sӁ tìm hiӇu vҳn tҳt mӛi phѭѫng pháp Sau ÿó, sӁ trình bày giҧi thuұt mӝt cách chi tiӃt phҫn sau ÿây ĈӇ ÿҧm bҧo deadlock khơng bao giӡ xҧy ra, hӋ thӕng có thӇ dùng kӃ hoҥch ngăn chһn hay tránh deadlock Ngăn chһn deadlock mӝt tұp hӧp phѭѫng pháp ÿӇ ÿҧm bҧo rҵng nhҩt mӝt ÿiӅu kiӋn cҫn (trong phҫn VI.4.1) không thӇ xҧy Các phѭѫng pháp ngăn chһn deadlocks bҵng cách ràng buӝc yêu cҫu vӅ tài nguyên ÿѭӧc thӵc hiӋn nhѭ thӃ Chúng ta thҧo luұn phѭѫng pháp phҫn sau Ngѭӧc lҥi, tránh deadlock yêu cҫu hӋ ÿiӅu hành cung cҩp nhӳng thông tin bә sung tұp trung vào loҥi tài nguyên mӝt trình sӁ yêu cҫu sӱ dөng thӡi gian sӕng cӫa Vӟi nhӳng kiӃn thӭc bә sung này, có thӇ quyӃt ÿӏnh ÿӕi vӟi mӛi u cҫu q trình nên chӡ hay khơng ĈӇ quyӃt ÿӏnh yêu cҫu hiӋn tҥi có thӇ ÿѭӧc thoҧ mãn hay phҧi bӏ trì hỗn, hӋ thӕng phҧi xem xét tài nguyên hiӋn có, tài nguyên hiӋn cҩp phát cho mӛi trình, yêu cҫu giҧi phóng tѭѫng lai cӫa mӛi q trình NӃu mӝt hӋ thӕng không dùng giҧi thuұt ngăn chһn hay tránh deadlock trѭӡng hӧp deadlock có thӇ xҧy Trong mơi trѭӡng này, hӋ thӕng có thӇ cung cҩp mӝt giҧi thuұt ÿӇ xem xét trҥng thái cӫa hӋ thӕng ÿӇ xác ÿӏnh deadlock có xҧy hay khơng giҧi thuұt phөc hӗi tӯ deadlock NӃu hӋ thӕng không ÿҧm bҧo rҵng deadlock sӁ không bao giӡ xҧy cNJng không cung cҩp mӝt cѫ chӃ ÿӇ phát hiӋn phөc hӗi deadlock có thӇ dүn ÿӃn trѭӡng hӧp hӋ thӕng ӣ trҥng thái deadlock Trong trѭӡng hӧp này, deadlock không ÿѭӧc phát hiӋn sӁ làm giҧm lӵc hӋ thӕng tài nguyên ÿang ÿѭӧc giӳ bӣi nhӳng q trình mà chúng khơng thӇ thӵc thi, ÿi vào trҥng thái deadlock Cuӕi cùng, hӋ thӕng sӁ dӯng chӭc cҫn ÿѭӧc khӣi ÿӝng lҥi bҵng thӫ công Mһc dù phѭѫng pháp dѭӡng nhѭ không tiӃp cұn khҧ thi ÿӕi vӟi vҩn ÿӅ deadlock nhѭng ÿѭӧc dùng mӝt sӕ hӋ ÿiӅu hành Trong nhiӅu hӋ thӕng, deadlock xҧy không thѭӡng xuyên; ÿó phѭѫng pháp rҿ hѫn chi phí cho phѭѫng pháp ngăn chһn deadlock, tránh deadlock, hay phát hiӋn phөc hӗi deadlock mà chúng phҧi ÿѭӧc sӱ dөng liên tөc Trong mӝt sӕ trѭӡng hӧp, hӋ thӕng ӣ trҥng thái cô ÿһc nhѭng không ӣ trҥng thái deadlock Nhѭ thí dө, xem xét mӝt trình thӡi thӵc chҥy tҥi ÿӝ ѭu tiên cao nhҩt (hay bҩt cӭ trình ÿang chҥy bӝ Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 118 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 ÿӏnh thӡi biӇu không trѭng dөng) không bao giӡ trҧ vӅ ÿiӅu khiӇn ÿӕi vӟi hӋ ÿiӅu hành Do ÿó, hӋ thӕng phҧi có phѭѫng pháp phөc hӗi bҵng thӫ cơng cho ÿiӅu kiӋn khơng deadlock có thӇ ÿѫn giҧn sӱ dөng kӻ thuұt ÿó cho viӋc phөc hӗi deadlock VI Ngăn chһn deadlock ĈӇ deadlock xҧy ra, mӝt bӕn ÿiӅu kiӋn cҫn phҧi xҧy Bҵng cách ÿҧm bҧo nhҩt mӝt bӕn ÿiӅu kiӋn khơng thӇ xҧy ra, có thӇ ngăn chһn viӋc xҧy cӫa deadlock Chúng ta tìm hiӇu tӹ mӻ tiӃp cұn bҵng cách xem xét mӛi ÿiӅu kiӋn cҫn riêng rҿ VI.1 Loҥi trӯ hӛ tѭѫng ĈiӅu kiӋn loҥi trӯ hӛ tѭѫng phҧi giӳ cho tài ngun khơng chia sҿ Thí dө, mӝt máy in khơng thӇ ÿѭӧc chia sҿ lúc bӣi nhiӅu trình Ngѭӧc lҥi, tài ngun có thӇ chia sҿ khơng ÿòi hӓi truy xuҩt loҥi trӯ hӛ tѭѫng ÿó khơng thӇ liên quan ÿӃn deadlock Nhӳng tұp tin chӍ ÿӑc mӝt thí dө tӕt cho tài nguyên có thӇ chia sҿ NӃu nhiӅu q trình cӕ gҳng mӣ mӝt tұp tin chӍ ÿӑc tҥi mӝt thӡi ÿiӇm chúng có thӇ ÿѭӧc gán truy xuҩt lúc tұp tin Mӝt q trình khơng bao giӡ u cҫu chӡ tài nguyên có thӇ chia sҿ Tuy nhiên, thѭӡng không thӇ ngăn chһn deadlock bҵng cách tӯ chӕi ÿiӅu kiӋn loҥi trӯ hӛ tѭѫng: mӝt sӕ tài nguyên vӅ thӵc chҩt không thӇ chia sҿ VI.2 Giӳ chӡ cҩp thêm tài nguyên ĈӇ ÿҧm bҧo ÿiӅu kiӋn giӳ-và-chӡ cҩp thêm tài nguyên không bao giӡ xҧy hӋ thӕng, phҧi ÿҧm bҧo rҵng bҩt cӭ mӝt trình yêu cҫu tài ngun, khơng giӳ bҩt cӭ tài ngun khác Mӝt giao thӭc có thӇ ÿѭӧc dùng ÿịi hӓi mӛi trình yêu cҫu ÿѭӧc cҩp phát tҩt cҧ tài nguyên trѭӟc bҳt ÿҫu thӵc thi Chúng ta có thӇ cài ÿһt sӵ cung cҩp bҵng cách yêu cҫu lӡi gӑi hӋ thӕng yêu cҫu tài nguyên cho mӝt trình trѭӟc tҩt cҧ lӡi gӑi hӋ thӕng khác Mӝt giao thӭc khác cho phép mӝt trình yêu cҫu tài nguyên chӍ q trình khơng có tài ngun Mӝt q trình có thӇ u cҫu mӝt sӕ tài nguyên dùng chúng Tuy nhiên, trѭӟc có thӇ yêu cҫu bҩt kǤ tài nguyên bә sung nào, phҧi giҧi phóng tҩt cҧ tài nguyên mà hiӋn ÿang ÿѭӧc cҩp phát ĈӇ hiӇn thӏ sӵ khác giӳa hai giao thӭc, xét mӝt trình chép dӳ liӋu tӯ băng tӯ tӟi tұp tin ÿƭa, sҳp xӃp tұp tin ÿƭa sau ÿó in kӃt quҧ máy in NӃu tҩt cҧ tài nguyên phҧi ÿѭӧc yêu cҫu mӝt lúc khӣi ÿҫu trình phҧi yêu cҫu băng tӯ, tұp tin ÿƭa máy in Nó sӁ giӳ máy in tồn thӡi gian thӵc thi cӫa mһc dù cҫn máy in chӍ ӣ giai ÿoҥn cuӕi Phѭѫng pháp thӭ hai cho phép trình yêu cҫu ban ÿҫu chӍ băng tӯ tұp tin ÿƭa Nó chép dӳ liӋu tӯ băng tӯ tӟi ÿƭa, rӗi giҧi phóng cҧ hai băng tӯ ÿƭa Sau ÿó, q trình phҧi u cҫu lҥi tұp tin ÿƭa máy in Sau ÿó, chép tұp tin ÿƭa tӟi máy in, giҧi phóng hai tài nguyên kӃt thúc Hai giao thӭc có hai nhѭӧc ÿiӇm chӫ yӃu Thӭ nhҩt, viӋc sӱ dөng tài ngun có thӇ chұm nhiӅu tài ngun có thӇ ÿѭӧc cҩp nhѭng khơng ÿѭӧc sӱ dөng thӡi gian dài Trong thí dө ÿѭӧc cho, có thӇ giҧi phóng băng tӯ tұp tin ÿƭa, sau ÿó yêu cҫu lҥi tұp tin ÿƭa máy in chӍ nӃu ÿҧm bҧo rҵng dӳ liӋu cӫa sӁ vүn tұp tin ÿƭa NӃu không thӇ ÿҧm bҧo rҵng dӳ liӋu Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 119 Ĉҥi Hӑc Cҫn Thѫ - Khoa Công NghӋ Thông Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 vүn cịn tұp tin ÿƭa phҧi u cҫu tҩt cҧ tài nguyên tҥi thӡi ÿiӇm bҳt ÿҫu cho cҧ hai giao thӭc Thӭ hai, ÿói tài nguyên có thӇ Mӝt q trình cҫn nhiӅu tài ngun phә biӃn có thӇ phҧi ÿӧi vơ hҥn ÿӏnh mӝt tài ngun mà cҫn ln ÿѭӧc cҩp phát cho q trình khác VI.3 Khơng ÿịi lҥi tài ngun tӯ trình ÿang giӳ chúng ĈiӅu kiӋn cҫn thӭ ba khơng ÿịi lҥi nhӳng tài ngun ÿã ÿѭӧc cҩp phát rӗi ĈӇ ÿҧm bҧo ÿiӅu kiӋn không xҧy ra, có thӇ dùng giao thӭc sau NӃu mӝt trình ÿang giӳ mӝt sӕ tài nguyên yêu cҫu tài nguyên khác mà không ÿѭӧc cҩp phát tӭc tӟi (nghƭa là, q trình phҧi chӡ) tҩt cҧ tài ngun hiӋn ÿang giӳ ÿѭӧc ÿịi lҥi Nói cách khác, nhӳng tài nguyên ÿѭӧc giҧi phóng hồn tồn Nhӳng tài ngun bӏ ÿịi lҥi ÿѭӧc thêm tӟi danh sách tài nguyên mà trình ÿang chӡ Quá trình sӁ ÿѭӧc khӣi ÿӝng lҥi chӍ có thӇ nhұn lҥi tài nguyên cNJ cӫa cNJng nhѭ tài nguyên mӟi mà ÿang yêu cҫu Có mӝt sӵ chӑn lӵa khác, nӃu mӝt trình yêu cҫu mӝt sӕ tài nguyên, ÿҫu tiên kiӇm tra chúng có sҷn khơng NӃu tài nguyên có sҷn, cҩp phát chúng NӃu tài ngun khơng có sҷn, kiӇm tra chúng có ÿѭӧc cҩp phát tӟi mӝt sӕ trình khác ÿang chӡ tài nguyên bә sung NӃu ÿúng nhѭ thӃ, lҩy lҥi tài nguyên mong muӕn ÿó tӯ trình ÿang ÿӧi cҩp chúng cho trình ÿang u cҫu NӃu tài ngun khơng sҷn có hay ÿѭӧc giӳ bӣi mӝt trình ÿang ÿӧi, trình ÿang yêu cҫu phҧi chӡ Trong ÿang chӡ, mӝt sӕ tài ngun cӫa có thӇ ÿѭӧc ÿịi lҥi chӍ nӃu trình khác yêu cҫu chúng Mӝt trình có thӇ ÿѭӧc khӣi ÿӝng lҥi chӍ ÿѭӧc cҩp tài nguyên mӟi mà ÿang yêu cҫu phөc hӗi bҩt cӭ tài nguyên ÿã bӏ lҩy lҥi ÿang chӡ Giao thӭc thѭӡng ÿѭӧc áp dөng tӟi tài nguyên mà trҥng thái cӫa có thӇ ÿѭӧc lѭu lҥi dӉ dàng phөc hӗi lҥi sau ÿó, nhѭ ghi CPU khơng gian bӝ nhӟ Nó thѭӡng khơng thӇ ÿѭӧc áp dөng cho tài nguyên nhѭ máy in băng tӯ VI.4 Tӗn tҥi chu trình ÿӗ thӏ cҩp phát tài nguyên ĈiӅu kiӋn thӭ tѭ cNJng ÿiӅu kiӋn cuӕi cho deadlock ÿiӅu kiӋn tӗn tҥi chu trình ÿӗ thӏ cҩp phát tài nguyên Mӝt cách ÿӇ ÿҧm bҧo rҵng ÿiӅu kiӋn khơng bao giӡ xҧy áp ÿһt tồn bӝ thӭ tӵ cӫa tҩt cҧ loҥi tài nguyên ÿịi hӓi mӛi q trình thӭ tӵ tăng cӫa sӕ lѭӧng Gӑi R = {R1, R2, …, Rm} tұp hӧp loҥi tài nguyên Chúng ta gán mӛi loҥi tài nguyên mӝt sӕ nguyên nhҩt, cho phép so sánh hai tài nguyên xác ÿӏnh tài ngun có ÿӭng trѭӟc tài ngun khác hay khơng thӭ tӵ cӫa Thông thѭӡng, ÿӏnh nghƭa hàm ánh xҥ mӝt-mӝt F: R o N, ӣ ÿây N tұp hӧp sӕ tӵ nhiên Thí dө, nӃu tұp hӧp loҥi tài nguyên R gӗm ә băng tӯ, ә ÿƭa máy in hàm F có thӇ ÿѭӧc ÿӏnh nghƭa nhѭ sau: F(ә băng tӯ) = 1, F(ÿƭa tӯ) = 5, F(máy in) = 12 Bây giӡ xem giao thӭc sau ÿӇ ngăn chһn deadlock: mӛi q trình có thӇ yêu cҫu tài nguyên chӍ thӭ tӵ tăng cӫa sӕ lѭӧng Nghƭa là, mӝt q trình ban ÿҫu có thӇ yêu cҫu bҩt cӭ sӕ lѭӧng thӇ hiӋn cӫa mӝt loҥi tài ngun Ri Sau ÿó, mӝt q trình có thӇ yêu cҫu thӇ hiӋn cӫa loҥi tài nguyên Rj nӃu chӍ nӃu F(Rj) > F(Ri) NӃu mӝt sӕ thӇ hiӋn cӫa loҥi tài nguyên ÿѭӧc yêu cҫu, mӝt yêu cҫu cho tҩt cҧ thӇ hiӋn phҧi ÿѭӧc cҩp phát Thí dө, sӱ dөng hàm ÿѭӧc ÿӏnh nghƭa trѭӟc ÿó, Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 120 Ĉҥi Hӑc Cҫn Thѫ - Khoa Cơng NghӋ Thơng Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 mӝt trình muӕn dùng ә băng tӯ máy in tҥi mӝt lúc trѭӟc tiên phҧi yêu cҫu ә băng tӯ sau ÿó yêu cҫu máy in Nói mӝt cách khác, yêu cҫu rҵng, bҩt cӭ mӝt trình yêu cҫu mӝt thӇ hiӋn cӫa loҥi tài nguyên Rj, giҧi phóng bҩt cӭ tài nguyên Ri cho F(Ri) t F(Rj) NӃu có hai giao thӭc ÿѭӧc dùng ÿiӅu kiӋn tӗn tҥi chu trình khơng thӇ xҧy Chúng ta có thӇ giҧi thích ÿiӅu bҵng cách cho rҵng tӗn tҥi chu trình ÿӗ thӏ cҩp phát tài nguyên tӗn tҥi Gӑi tұp hӧp trình chӭa tӗn tҥi chu trình ÿӗ thӏ cҩp phát tài nguyên {P0, P1, … , Pn}, ӣ ÿây Pi ÿang chӡ mӝt tài nguyên Ri, mà Ri ÿѭӧc giӳ bӣi q trình Pi+1 Vì sau ÿó q trình Pi+1 ÿang giӳ tài nguyên Ri yêu cҫu tài nguyên Ri+1, nên có F(Ri) < F(Ri+1) cho tҩt cҧ i Nhѭng ÿiӅu kiӋn có nghƭa F(R0) < F(R1) < …< F(Rn) < F(R0) Bҵng qui tҳc bҳt cҫu F(R0) < F(R0), ÿiӅu khơng thӇ Do ÿó, khơng thӇ có chӡ chu trình Chú ý rҵng hàm F nên ÿѭӧc ÿӏnh nghƭa dӵa theo thӭ tӵ tӵ nhiên cӫa viӋc sӱ dөng tài ngun hӋ thӕng Thí dө, ә băng tӯ thѭӡng ÿѭӧc yêu cҫu trѭӟc máy in nên có thӇ hӧp lý ÿӇ ÿӏnh nghƭa F( ә băng tӯ) < F(máy in) VIITránh deadlock Các giҧi thuұt ngăn chһn deadlock, ÿѭӧc thҧo luұn ӣ VII-6, ngăn chһn deadlock bҵng cách hҥn chӃ cách yêu cҫu có thӇ ÿѭӧc thӵc hiӋn Các ngăn chһn ÿҧm bҧo rҵng nhҩt mӝt nhӳng ÿiӅu kiӋn cҫn cho deadlock không thӇ xҧy Do ÿó, deadlock khơng thӇ xҧy Tuy nhiên, tác dөng phө có thӇ ngăn chһn deadlock bӣi phѭѫng pháp viӋc sӱ dөng thiӃt bӏ chұm thông lѭӧng hӋ thӕng bӏ giҧm Mӝt phѭѫng pháp khác ÿӇ tránh deadlock yêu cҫu thông tin bә sung vӅ cách tài nguyên ÿѭӧc yêu cҫu Thí dө, mӝt hӋ thӕng vӟi mӝt ә băng tӯ mӝt máy in, có thӇ bҧo rҵng trình P sӁ yêu cҫu ә băng tӯ trѭӟc sau ÿó máy in trѭӟc giҧi phóng cҧ hai tài nguyên Trái lҥi, trình Q sӁ yêu cҫu máy in trѭӟc sau ÿó ә băng tӯ Vӟi kiӃn thӭc vӅ thӭ tӵ hoàn thành cӫa yêu cҫu giҧi phóng cho mӛi q trình, có thӇ quyӃt ÿӏnh cho mӛi yêu cҫu cӫa trình sӁ chӡ hay khơng Mӛi u cҫu ÿịi hӓi hӋ thӕng xem tài nguyên hiӋn có, tài nguyên hiӋn ÿѭӧc cҩp tӟi mӛi trình, yêu cҫu giҧi phóng tѭѫng lai cӫa mӛi q trình, ÿӇ u cҫu cӫa q trình hiӋn tҥi có thӇ ÿѭӧc thoҧ mãn hay phҧi chӡ ÿӇ tránh khҧ xҧy deadlock Các giҧi thuұt khác có sӵ khác vӅ lѭӧng loҥi thông tin ÿѭӧc yêu cҫu Mơ hình ÿѫn giҧn hӳu ích nhҩt u cҫu mӛi trình khai báo sӕ lӟn nhҩt tài nguyên cӫa mӛi loҥi mà cҫn Thơng tin trѭӟc vӅ sӕ lѭӧng tӕi ÿa tài nguyên cӫa mӛi loҥi ÿѭӧc u cҫu cho mӛi q trình, có thӇ xây dӵng mӝt giҧi thuұt ÿҧm bҧo hӋ thӕng sӁ không bao giӡ ÿi vào trҥng thái deadlock Ĉây giҧi thuұt ÿӏnh nghƭa tiӃp cұn tránh deadlock Giҧi thuұt tránh deadlock tӵ xem xét trҥng thái cҩp phát tài nguyên ÿӇ ÿҧm bҧo ÿiӅu kiӋn tӗn tҥi chu trình ÿӗ thӏ cҩp phát tài ngun có thӇ khơng bao giӡ xҧy Trҥng thái cҩp phát tài nguyên ÿѭӧc ÿӏnh nghƭa bӣi sӕ tài nguyên sҷn dùng tài nguyên ÿѭӧc cҩp phát sӕ yêu cҫu tӕi ÿa cӫa q trình VII.1 Trҥng thái an tồn Mӝt trҥng thái an tồn nӃu hӋ thӕng có thӇ cҩp phát tài nguyên tӟi mӛi trình mӝt vài thӭ tӵ vүn tránh deadlock Hay nói cách khác, mӝt hӋ thӕng ӣ trҥng thái an toàn chӍ nӃu ӣ ÿó tӗn tҥi mӝt thӭ tӵ an tồn Thӭ tӵ cӫa q trình mӝt thӭ tӵ an toàn cho trҥng thái cҩp phát hiӋn hành nӃu ÿӕi Biên soҥn: Th.s NguyӉn Phú Trѭӡng - 09/2005 Trang 121 Ĉҥi Hӑc Cҫn Thѫ - Khoa Cơng NghӋ Thơng Tin - Giáo Trình HӋ ĈiӅu Hành – V1.0 vӟi mӛi thӭ tӵ Pi, tài nguyên mà Pi yêu cҫu vүn có thӇ ÿѭӧc thoҧ mãn bӣi tài nguyên hiӋn có cӝng vӟi tài nguyên ÿѭӧc giӳ bӣi tҩt cҧ Pj, vӟi j

Ngày đăng: 30/01/2020, 01:24

TỪ KHÓA LIÊN QUAN

w