QUY TRÌNH HOẠT ĐỘNG CỦA GIẢI THUẬT BANKER...8 PHẦN 3.. CẤU TRÚC DỮ LIỆU CỦA GIẢI THUẬT BANKER...12 PHẦN 5... Khái niệm giải thuật Banker: - GiảithuậtBankerdùngđểxácđịnhtrạngthái
Trang 1TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
-BÀI TIỂU LUẬN MÔN HỆ ĐIỀU HÀNH
Đề tài 02: Tìm Hiểu Giải Thuật Banker Và Viết
Chương Trình Minh Họa
Giảng viên hướng dẫn: TRẦN THỊ BÍCH VÂN
2001225801_Đặng Thị Trúc Vân 2001225539_Lê Hữu Trí 2001220500_Ngô Huỳnh Trân Châu 2001190180_Bùi Thị Minh Ngọc 2001210856_Nguyễn Huỳnh Thanh Vân
Trang 2TP HỒ CHÍ MINH, tháng 10 năm 2023
BỘCÔNGTHƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
-TIỂU LUẬN MÔN HỌC
TÌM HIỂU GIẢI THUẬT BANKER VÀ VIẾT
CHƯƠNG TRÌNH MINH HỌA
GIÁO VIÊN GIẢNG DẠY: TRẦN THỊ BÍCH VÂN
2001225801_Đặng Thị Trúc Vân
2001225539_Lê Hữu Trí
2001220500_Ngô Huỳnh Trân Châu
2001190180_Bùi Thị Minh Ngọc
2001210856_Nguyễn Huỳnh Thanh Vân
LỚP: 13DHTH02
TP HỒ CHÍ MINH, tháng 10 năm 2023
Trang 3LỜI CẢM ƠN
NhómemxingửilờicảmơnchânthànhđếngiảngviênTrầnThịBíchVânvìsự hướngdẫnvàhỗtrợtậntìnhtrongquátrìnhthựchiệnđềtài“ThuậttoánBankercủa nhóm.Nhữngkiếnthứcvàkinhnghiệmquýbáucủacôđãgiúpchúngtôihiểurõhơnvề thuậttoánBanker
NhómcũngmuốngửilờicảmơnđếnTrườngĐạihọcCôngThươngTP.HồChíMinhđã cungcấpchochúngtôimộtmôitrườnghọctậpvànghiêncứuchuyênnghiệp.Đâylàmộtcơhội tuyệtvờiđểchúngtôihọchỏivàpháttriểnbảnthântrongmônHệĐiềuhành
Cuốicùng,nhómcũngmuốngửilờicảmơnđếntấtcảcácbạnđồngnghiệptronglớpđã hỗtrợvàđónggópýkiếnquýbáuchođềtàicủanhóm.Sựđoànkếtvàhợptáccủatấtcảcác bạnđãgiúpnhómhoànthànhđềtàimộtcáchhiệuquảhơn.Mộtlầnnữa,xinchânthànhcảmơn!
Trang 4LỜI CAM ĐOAN
Tôixincamđoanđâylàcôngtrìnhnghiêncứucủariêngtôi.Cácsốliệu,kếtquả nêutrongTiểuluận/Đồánlàtrungthựcvàchưatừngđượcaicôngbốtrongbấtkỳcông trìnhnàokhác.
TôixincamđoanrằngmọisựgiúpđỡchoviệcthựchiệnTiểuluận/Đồánnày đãđượccảmơnvàcácthôngtintríchdẫntrongTiểuluận/Đồánđãđượcchỉrõnguồn gốc
Sinh viên thực hiện tiểu luận
(Ký và ghi rõ họ tên)
Trang 5MỤC LỤC
LỜI CẢM ƠN 3
LỜI CAM ĐOAN 4
MỤC LỤC 5
PHẦN 1 ĐỊNH NGHĨA VÀ LỊCH SỬ RA ĐỜI 6
PHẦN 2 QUY TRÌNH HOẠT ĐỘNG CỦA GIẢI THUẬT BANKER 8
PHẦN 3 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA GIẢI THUẬT BANKER 10
PHẦN 4 CẤU TRÚC DỮ LIỆU CỦA GIẢI THUẬT BANKER 12
PHẦN 5 BÀI TẬP ỨNG DỤNG 14
PHẦN 6 KẾT LUÂiN 18
PHẦN 7 TÀI LIÊiU THAM KHẢO 19
Trang 6Phần 1 ĐỊNH NGHĨA VÀ LỊCH SỬ RA ĐỜI
I Khái niệm Tắc nghẽn:
- Deadlocklàmộttìnhhuốngxảyratronghệthốngmáytính,khihaihoặc nhiềutiếntrìnhcùngcốgắnggiànhquyềntruycậpvàotàinguyênchungmà mỗitiếntrìnhcầnđểhoànthànhcôngviệccủamình,nhưngkhôngthểhoàn thànhnếuthiếutàinguyênnày.Khiđó,cáctiếntrìnhsẽbịkẹtlại,khôngthể tiếptụcthựchiệncôngviệcvàchờđợitàinguyênđượcgiảiphóng +Vídụ:
P1,P2hoạtđộngđồngthờitronghệthống:
P1đanggiữtàinguyênR1,cầntàinguyêngăngR2đểtiếptụchoạtđộng; P2đanggiữtàinguyênR2vàcầnR1đểtiếptụchoạtđộng;
=>P1vàP2sẽkhôngtiếptụchoạtđộngđược(trạngtháitắcnghẽn)
LúcđótaphảidùngđếnmộtgiảithuậttránhdeadlockcótênlàgiảithuậtBanker.
II Khái niệm giải thuật Banker:
- GiảithuậtBankerdùngđểxácđịnhtrạngtháiantoànvàtránhtìnhtrạng deadlockxảyra.Đâylàmộtgiảithuậtquảnlýtàinguyêntrongmộthệthống điềuhànhđểđảmbảorằngkhôngcóquánhiềutàinguyênđượcyêucầubởi cáctiếntrìnhcùnglúcmàkhôngcóđủtàinguyênđểcungcấpchochúng.
- Giảithuậtđặttênnhưvậyvìthườngđượcsửdụngtronghệthốngngânhàng đểkiểmtraxemcóthểduyệtmộtkhoảnvaychomộtngườihaykhông.Giả sửcónngườigửitiềntrongmộtngânhàngvàtổngsốtiềncủahọlàS.Nếu mộtngườinàođóxinvaytiền,ngânhàngtrừsốtiềnvaykhỏitổngsốtiền
Trang 7màngânhàngcó,vàchỉkhisốtiềncònlạilớnhơnSthìkhoảnvaymới đượcduyệt.Việcnàyđượcthựchiệnvìnếutấtcảcácngườigửitiềnđếnrút tiềncủahọ,thìngânhàngvẫncóđủtiềnđểchitrả
- Giảithuậtbankersẽkiểmtravàxácđịnh,nếutrạngtháihệthốngsẽlàan toàn,tàinguyênsẽđượccấp;ngượclạiquátrìnhphảichờchotớikhimột vàiquátrìnhgiảiphóngđủtảinguyên
+Vídụ:
GiảsửtiếntrìnhPiyêucầukrthểhiệncủatàinguyênr:
Bước1:Nếukr<=Need[i,r]vớimọir,đếnbước2,ngượclại,xảyratình huốnglỗi
Bước2:Nếukr<=Available[r]vớimọir,đếnbước3,ngượclạiPiphảichờ
Bước3:GiảsửhệthốngđãcấpphátchoPicáctàinguyênmànóyêucầu vàcậpnhậttìnhtrạnghệthốngnhưsau:
Available[r]=Available[r]-kr;vớimọir
Allocation[i,r]=Allocation[i,r]+kr;vớimọir
Need[i,r]=Need[i,r]-kr;vớimọir
Bước4:Kiểmtratrạngtháiantoàncủahệthống.–Dùnggiảithuật“xác địnhtrạngtháiantoàn”đểxácđịnhtrạngtháicủahệthốngsaukhiđãthử cấptàinguyênchoPi.–Nếutrạngtháilàantoànthìcáctàinguyênsẽđược cấpphátthậtsựchoPi.–Ngượclại,Piphảichờ.
III Lịch sử ra đời giải thuật Banker:
- GiảithuậtBanker,đượcbiếtđếnvớitênchínhthức"Dijkstra'sBanker's Algorithm,"lấytêncủanhàkhoahọcmáytínhngườiHàLannổitiếng EdsgerW.Dijkstra-ngườiđãđóngmộtvaitròquantrọngtrongquátrìnhra đờicủagiảithuậtnày.DijkstrapháttriểngiảithuậtBankervàocuốinhững năm1960vớimụctiêugiảiquyếtvấnđềquảnlýtàinguyêntronghệthống máytínhđanhiệm.CôngviệccủaDijkstrađãgiúpnângcaotínhantoànvà hiệusuấtcủacáchệthốngmáytínhbằngcáchngănchặntìnhtrạngchếtcô
Trang 8lập(deadlock)vàđảmbảorằngviệccấppháttàinguyêndiễnramộtcáchan toàn
- VớisựđónggópcủaEdsgerW.Dijkstra,giảithuậtBankerđãtrởthànhmột trongnhữngcôngcụquantrọngtronglĩnhvựcquảnlýtàinguyêntronghệ thốngmáytínhvàhệthốngđanhiệm.Đólàmộtvídụđiểnhìnhvềcáchmà nhữngnhàkhoahọcmáytínhxuấtsắcnhưDijkstracóthểtạoracácgiải phápquantrọngvàcóảnhhưởnglớnđốivớilĩnhvựccôngnghệthôngtin
Phần 2 QUY TRÌNH HOẠT ĐỘNG CỦA GIẢI
THUẬT BANKER
- Giảithuậtbắtđầubằngviệcthốngkêxemmỗitiếntrìnhsẽcòncầnthêm baonhiêuđơnvịtàinguyênvàhiệntạivốnhệthốngcònbaonhiêu.Mọitiến trìnhđềuchưabiếtlàcókếtthúcđượchaykhông
- Dướiđâylàmộtphântíchchitiếthơnvềcáchgiảithuậtnàythựchiệncác bướccụthể:
a) Khởi tạo:Banđầu,giảithuậtngânhàngxácđịnhsốlượngtàinguyêncósẵn
tronghệthốngvàlưutrữthôngtinnàytrongmatrậntàinguyên
b) Yêu cầu tài nguyên:Khimộttiếntrìnhyêucầutàinguyên,hệthốngkiểmtra
xemviệccấppháttàinguyênnàycóantoànkhông.Điềunàyđòihỏihệthốngphải xemxétcácyêucầutàinguyêntiềmnăngcủatấtcảcáctiếntrình
c) Kiểm tra an toàn:Giảithuậtngânhàngkiểmtraxemviệccấppháttàinguyên
chotiếntrìnhnàycóthểdẫnđếntìnhtrạngdeadlockhaykhông.Nóxemxétxem tiếntrìnhcóyêucầutàinguyênđủđểhoànthànhcôngviệckhôngvànếucó,nósẽ cấppháttàinguyênchotiếntrìnhđótạmthời
d) Thử cấp phát tài nguyên tạm thời:Nếuviệccấppháttàinguyênchotiếntrình
khônglàmchohệthốngrơivàotìnhtrạngkhôngantoàn,thìtàinguyênsẽđược cấppháttạmthờichotiếntrình.Tiếntrìnhnàysauđócóthểtiếptụcthựchiện côngviệccủamình
Trang 9e) Hoàn thành và trả tài nguyên:Khitiếntrìnhhoànthànhcôngviệcvàkhông
còncầntàinguyênnữa,nósẽtrảlạitàinguyênđóchohệthống,vàtàinguyênnày sẽtrởlạiđượcsửdụngchocáctiếntrìnhkhác
f) Lặp lại quá trình:Quátrìnhtrênsẽđượclặplạichomỗiyêucầutàinguyên
mớitừcáctiếntrình
j) Kiểm tra deadlock:Giảithuậtngânhàngxácđịnhdeadlockkhikhôngthểcấp
pháttàinguyênchomộttiếntrìnhmàkhôngđảmbảotínhantoàncủahệthống. Trongtrườnghợpnày,giảithuậtsẽthựchiệncácbiệnphápnhưtạmdừnghoặc hủybỏtiếntrìnhđểgiảiquyếttìnhtrạngdeadlock
Trang 10Phần 3 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA GIẢI
THUẬT BANKER
- Giảithuậtngânhàng(Banker'salgorithm)cómộtsốưuđiểmquantrọngkhi đượcsửdụngtrongquảnlýtàinguyênhệthốngmáytính:
Đảm bảo tính an toàn: Mộttrongnhữngưuđiểmquantrọngnhấtcủa
giảithuậtnàylànóđảmbảotínhantoànchohệthống.Nóchỉcấpphát tàinguyênkhiviệccấpphátđókhônglàmchohệthốngrơivàotình trạngkhôngantoànhoặcdeadlock.Điềunàyđảmbảorằngcáctiếntrình cóthểhoànthànhcôngviệccủahọmàkhônggặpsựcốtàinguyên
Chấp nhận yêu cầu tài nguyên hạn chế: Giảithuậtngânhàngcóthể
chấpnhậnyêucầutàinguyênmàkhôngcầnphảicấppháttàinguyên ngaylậptứcnếunókhôngantoàn.Tiếntrìnhsẽphảiđợichođếnkhicó đủtàinguyênđểthựchiệncôngviệccủamình,nhưngđiềunàyđảmbảo rằnghệthốngkhôngrơivàotìnhtrạngkhôngantoàn
Kiểm soát tài nguyên: Giảithuậtnàygiúphệthốngkiểmsoáttài
nguyênmộtcáchhiệuquả.Nóchỉcấppháttàinguyênkhicóđủtài nguyênchoviệcđómàkhônggâyraxungđộthoặcdeadlock
Tích hợp dễ dàng: Giảithuậtngânhàngcóthểtíchhợpvàohệthống
mộtcáchđơngiản.Nósửdụngmộtmatrậnđểtheodõitìnhtrạngtài nguyênvàyêucầucủacáctiếntrình,vàđiềunàycóthểthựchiệnmột cáchhiệuquảtrongmãnguồncủahệthống
Không tạo ra giả tạo hoặc không cần thiết: Giảithuậtnàykhôngtạora
tàinguyêngiảtạohoặckhôngcầnthiết.Nóchỉcấppháttàinguyênkhi cóthểhoànthànhvàkhôngtạoralãngphítàinguyên
II NHƯỢC ĐIỂM:
- Mặcdùgiảithuậtngânhàng(Banker'salgorithm)cónhiềuưuđiểm,nhưng cũngtồntạimộtsốnhượcđiểm:
Trang 11 Yêu cầu thông tin tài nguyên trước: Giảithuậtnàyyêucầubiếttrước
sựphânbổtàinguyênvàyêucầucủacáctiếntrình.Trongmôitrường thờigianthựchoặckhicácyêucầutàinguyênxuấthiệnmộtcáchđộng, việcxácđịnhcácthôngtinnàycóthểtrởnênphứctạp
Không phản ánh thực tế trong một số trường hợp: Trongthựctế,các
tiếntrìnhcóthểthayđổiyêucầutàinguyêncủahọtrongquátrìnhthực thi,vàgiảithuậtnàykhôngxửlýtốtnhữngtìnhhuốngnày.Nókhông chophéptiếntrìnhđảongượcyêucầutàinguyênnếuchúngcầnthêmtài nguyênsaukhiđãđượccấpphát
Tiềm ẩn cho sự lãng phí tài nguyên: Giảithuậtngânhàngcóthểtạora
tìnhhuốngtrongđómộtsốtàinguyênkhôngđượcsửdụngmặcdù chúngcósẵn.Điềunàycóthểdẫnđếnsựlãngphítàinguyên
Khó cài đặt trong thời gian thực: Trongmôitrườngthờigianthực,giải
thuậtngânhàngcóthểgặpkhókhăntrongviệcđảmbảotínhantoànvà tránhdeadlockmàvẫnđảmbảothờigianđápứngđúngthờihạn
Phức tạp trong việc xử lý tình trạng deadlock: Khihệthốngrơivào
tìnhtrạngdeadlock,giảiquyếttìnhtrạngnàycóthểphứctạpvàtốnthời gian.Giảithuậtngânhàngchỉxácđịnhtìnhtrạngdeadlockmàkhông cungcấpcáchgiảiquyếtcụthể
Trang 12Phần 4 CẤU TRÚC DỮ LIỆU CỦA GIẢI THUẬT
BANKER
- GọimlàsốloạitàinguyênđangxéttronggiảithuậtBanker
- GọinlàsốtiếntrìnhđangxéttronggiảithuậtBanker
Mảng Available có m phần tử :TừngphầntửAvailable[j]chứamộtconsốtương
ứngvớisốthểhiệncủaloạitàinguyênjđó
MảngMax[i,j]=k:TiếntrìnhPiyêucầutốiđakthựcthểcủaloạitàinguyênRj. Allocation[i,j]=k:PiđãđượccấpphátkthựcthểcủaRj
Allocation[i,j]|=k:PiđãđượccấpphátkthựcthểcủaRj
Need[i,j]=k:PicanthêmkthựcthểcủaRj
Need[i,j]=Max[i,j]–Allocation[i,j]
Các bước thực hiện giải thuật:
(Lưu ý: Ký hiệu Y<= X có Y[i] <= X[i], ví dụ (0,3,2,1) <= (1,7,3,2))
1 GọiWorkvàFinishlà2Vectorđộdàilàmvàn.Khởitạo:
Work=Available
Finish[i]=false,i=0,1,…n-1
2 Tìm i thỏa:
a) Finish=false
b) Needi<=work,hàngthứicủaneed
Nếukhôngtồntại nhưvậyđếnbước4.i
3 Work=Work+Allocationi:
Finish[i]=true
Quayvềbước2
4 NếuFinish=True,i=1…nthìhệthốngđangởtrạngtháisafe:
5tiếntrìnhp0,…p4
3loạitàinguyên
Trang 13 Giải thuật Banker yêu cầu tài nguyên:
Request(i)làmộtvectorrequestcủaprocessP(i)
Request(i)[j]=kcóP(i)cầnkthựcthể(instance)củatàinguyênRj
1.NếuRequest(i)<=Need(i)thìđếnbước2.Nếukhông,báolỗivìtiếntrìnhđã vượtyêucầutốiđa
2.NếuRequest(i)<=Availablethìquabước3.Nếukhông,P(i)phảichờvìtài nguyênkhôngcònđủđểcấpphát
3.GiảđịnhcấppháttàinguyênđápứngyêucầucủaP(i)bằngcáchcậpnhậttrạng tháihệthốngnhưsau:
Available=Available-Request(i)
Allocation(i)=Allocation(i)+Request(i)
Need(i)=Need(i)–Request(i)
Áp dụng giải thuật Banker lên hệ thống mới.
Nếuhệthốnggiảđịnhtrênantoànthìtiếnhànhcấpphátthực
NếutrạngtháilàkhôngantoànthìPiphảiđợivàphụchồitrạngthái:
Available=Available+Request(i)
Allocation(i)=Allocation(i)–Request(i)
Need(i)=Need(i)+Request(i)
Trang 14Phần 5 BÀI TẬP ỨNG DỤNG
Một số thuật ngữ:
Max:Yêucầubanđầu(matrậnmxn,vớimlàsốdòng-ứngvớisốlượng tiếntrình,nlàcột-ứngvớisốlượngtàinguyên).Trongmộtsốtàiliệu, ngườitathườngdùngtừRequestthaychoMax
Allocation:Đãcấpphát(matrậnmxn)
Available:Tàinguyêncònlại(matrận1xn)
Need:Nhucầucònlại(matrậnmxn,xácđịnhnhưsau:Need[i,j]= Max[i,j]-Allocation[i,j])
Sốtàinguyêntừngloại:Allocation[j]+Available[j]
Need
I BÀI 1:
ALLocation MAX Avaiable
TiếnTrình
Work
Trang 15P3 7 4 3
NEED = MAX - ALLOCATION Nếu need <= work thì cộng dồn Thì work = WORK + ALLOCATION
II BÀI 2:
- Có4tiếntrìnhP1,P2,P3,P4và4tàinguyênR1,R2,R3,R4vớikhảnăng
phụcvụlà 10,9,9,5.Sốlượngđơnvịtàinguyêncầnthiếtvàđãcungcấpcho cáctiếntrìnhđượcchotheocácbảngsau:
Cần thiết
Đã cung cấp
Trang 16Sốtàinguyêncònlạimỗiloại(R1,R2,R3,R4)=(2,3,4,3)
Vòng 1:
+ChọnP2(2,2,4,2)dothoảmãnsốtàinguyêncònlại(2,3,4,3)
ThựchiệnP2rồigiảiphóngcáctàinguyên=>Sốtàinguyêncònlại(3,5,5,4) +ChọnP3(3,4,4,2)dothoảmãnsốtàinguyêncònlại(3,5,5,4)
ThựchiệnP3rồigiảiphóngcáctàinguyên=>Sốtàinguyêncònlại(7,5,8,5) +ChọnP4(2,2,3,3)dothoảmãnsốtàinguyêncònlại(7,5,8,5)
ThựchiệnP4rồigiảiphóngcáctàinguyên=>Sốtàinguyêncònlại(8,8,9,5)
Vòng 2:
+ChọnP1(4,1,4,2)dothoảmãntàinguyêncònlại(8,8,9,5)
ThựchiệnP1rồigiảiphóngcáctàinguyên=>Sốtàinguyêncònlại(10,9,9,5) Vậyhệthốngantoànvớigiảipháplà(P2,P3,P4,P1)
Trang 17Phần 6 KẾT LUÂiN
TrongnghiêncứuvềgiảithuậtBanker,chúngtađãkhámphámộtcôngcụ quantrọngtrongquảnlýtàinguyênhệthốngmáytính,đặcbiệtlàtrongmôi trườngđanhiệmvàđòihỏichiasẻtàinguyên.Banker'salgorithmkhôngchỉ đảmbảotínhantoàntrongviệccấppháttàinguyênmàcòngiúptránhtìnhtrạng deadlockmộtcáchhiệuquả.Chúngtađãthấyrằnggiảithuậtnàyyêucầubiết trướcthôngtinvềtàinguyênvàyêucầucủacáctiếntrình,điềunàycóthểlà mộtgiớihạntrongmộtsốtìnhhuốngthựctế.Tuynhiên,nóvẫnlàmộtcôngcụ mạnhmẽkhiápdụngtrongcácmôitrườngcóthểdựđoánvàquảnlýtàinguyên mộtcáchhiệuquả.Tínhhiệuquảvàantoàncủagiảithuậtngânhàngđãđược thấyrõquanhiềuứngdụngthựctế,từhệthốngmáytínhđếnmôitrườngsản xuấtvàcácứngdụngthờigianthực.Tuynhiên,đểápdụngnómộtcáchhiệu quả,chúngtacũngcầnxemxétcácgiớihạnvàđiềukiệncụthểcủamỗitình huống.Từđóchúngtađãbiết,Banker'salgorithmđónggópmộtcáchquantrọng vàolĩnhvựcquảnlýtàinguyênvàđảmbảotínhổnđịnhcủahệthốngmáytính trongcácmôitrườngđanhiệmvàchiasẻtàinguyên