1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án môn lập trình hệ thống Đề tài deadlock c program demonstrates bankers algorithms for deadlock avoidance

16 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Deadlock - C Program Demonstrates Bankers Algorithms For Deadlock Avoidance
Tác giả Trần Hưng Bình, Trần Đức Công, Phạm Duy Chánh, Nguyễn Trường Chí
Người hướng dẫn TS. Hoàng Hữu Đức
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt - Hàn
Chuyên ngành Khoa Khoa Học Máy Tính
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 16
Dung lượng 557,13 KB

Nội dung

Giới thiệu chung về bài toán Deadlock Trong môi trường tin học và các hệ thống phức tạp, deadlock là một vấn đề bất ôn định có thê xảy ra khi một tập hợp các tiến trình hoặc luồng chờ đợ

Trang 1

TRUONG DAI HOC CONG NGHE THONG TIN VA

TRUYEN THONG VIET - HAN KHOA KHOA HQC MAY TINH

VU

ĐỎ ÁN MÔN LẬP TRÌNH HỆ THÓNG

DE TAI: Deadlock - C program demonstrates Bankers

algorithms for deadlock avoidance

Sinh viên thụchiện : TRẢN HƯNG BÌNH - 21IT265

TRẢN ĐỨC CÔNG - 211T535 PHAM DUY CHANH - 211T532 NGUYEN TRUONG CHI - 21IT062

Giảng viên học phần : TS HOÀNG HỮU ĐỨC

Da nang, thang 10 nim 2023

Trang 2

TRUONG DAI HOC CONG NGHE THONG TIN VA

TRUYEN THONG VIET - HAN KHOA KHOA HOC MAY TINH

VU

ĐỎ ÁN MÔN LẬP TRÌNH HỆ THÓNG

DE TAI: Deadlock - C program demonstrates Bankers

algorithms for deadlock avoidance

Sinh viên thụchiện : TRAN HUNG BINH -2I1IT265

TRAN DUC CONG - 211T535 PHẠM DUYCHÁNH -21IT532 NGUYÊN TRƯỜNG CHÍ - 21IT062

Giảng viên học phần: TS HOÀNG HỮU ĐỨC

Đà nẵng, thúng 10 năm 2023

Trang 3

NHAN XET

(Giảng viên hướng dẫn)

Giảng viên hướng dẫn (Kí và ghi rõ họ tên)

Trang 4

LOI CAM ON

Chúng em xin gửi lời cảm ơn chân thành tới nhà trường đã tận tình chỉ bảo, góp ý và tạo điều

kiện cho em hoàn thành đề tài nghiên cứu Đồ án môn học “Lập trình hệ thống” một cách tốt

nhất Em xin cảm ơn TS Hoàng Hữu Đức đã nhiệt tình hướng dẫn em trong quá trình thực hiện báo cáo đề tài nghiên cứu Trong quá trình thực hiện đề tài nghiên cứu, bán thân chúng

em đã cô găng nỗ lực, tuy nhiên không tránh khỏi sai sót Chúng em mong nhận được sự góp

ý của thầy cô giáo, và từ phía hội đồng đề dé tài nghiên cứu của chúng em được hoàn thiện hơn

Chung em xin chan thành cảm ơn!

Da Nang, thang 10 nim 2023

Trang 5

MUC LUC

Contents

Trang 6

DANH MUC HINH VE

Trang 7

PHAN I: GIOI THIEU TONG QUAN

I TONG QUAN CHON DE TAI

1 Giới thiệu

1.1 Giới thiệu chung về bài toán Deadlock

Trong môi trường tin học và các hệ thống phức tạp, deadlock là một vấn đề bất ôn định có thê xảy ra khi một tập hợp các tiến trình hoặc luồng chờ đợi tài nguyên mà chúng cần đề tiến hành công việc của mình, nhưng không thê hoàn thành công việc do tài nguyên bị khóa bởi các tiến trình khác trong tình trạng tương tự

Deadlock là một tình huống tiềm ân đe dọa tính an toàn và hiệu suất của hệ thống Nếu không được quản lý cân thận, nó có thê dẫn đến sự chậm trễ và ngừng hoạt động của hệ thống, ảnh hưởng đến trải nghiệm của người dùng và có thê gây ra sự cô nghiêm trọng Sự hiểu biết về cách xử lý deadlock và ngăn chặn nó trở thành một phân quan trọng của quản lý hệ thông và phát triển ứng dụng

1.2 Lý do nghiên cứu đề tài Deadlock

Sự nghiên cứu về deadlock là quan trọng vì nó liên quan trực tiếp đến sự ôn định và hiệu suất của hệ thông Khi deadlock xảy ra, nó có thê gây ra những tác động tiêu cực nghiêm trọng như tăng tải máy chủ, làm giảm hiệu suất ứng dụng, và làm giảm trải nghiệm của người dùng Thậm chí trong môi trường quan trọng như hệ thống y tế hoặc tài chính, đeadlock có thể dẫn đến tình huống nguy cơ và thiệt hại đáng kẻ

Do đó, việc nghiên cứu về deadlock không chỉ là sự quan tâm của lập trình viên và quản trị hệ thông mà còn của cả các công ty và tô chức sử dụng hệ thông điện toán

Trang 8

1.3 Muc tiéu va pham vi dé tai

1.3.1 Mục tiêu đề tài

Mục tiêu chính của đề tài này là tìm hiểu về bai toan deadlock va tập trung vào việc nghiên cứu và thực hiện Bankers Algorithm - một trong các giải pháp phô biến để ngăn chặn deadlock trong hệ thống Đồng thời, chúng ta sẽ xác định và phân tích các tỉnh huống deadlock cụ thé, cung cap ví dụ minh họa và thảo luận về hiệu quả của thuật toán Banker's Algorithm

1.3.2 Phạm vi đề tài

Phạm vi của đề tài bao gồm:

- Định nghĩa và giải thích bài toán deadlock, bao gồm các yêu tố dẫn đến deadlock

- Trình bày Bankers Algorithm, một giải pháp phổ biến để ngăn chặn deadlock

- Cai dat va minh hoa Banker's Algorithm trên một ví dụ cụ thé

- Phan tich hiéu qua cua Banker's Algorithm va cach no giúp ngan chan deadlock trong môi trường thực tế

Trang 9

IL CO SO LY THUYET

2 Khái niệm và Tình huống của Deadlock

2.1 Định nghĩa về Deadlock

Deadlock (hoặc khóa cứng) là tình huống trong hệ thống máy tính hoặc môi trường đa nhiém (multi-tasking) khi hai hoặc nhiều tiến trình (process) hoặc luỗng (thread) không thê tiến hành hoặc kết thúc vì chúng đang chờ nhau để giải quyết một tài nguyên hoặc

sự kiện Trong một tỉnh huong deadlock, các tiến trình hoặc luỗng đều cần một tài nguyên mà một tiên trình hoặc luồng khác đang giữ, và đồng thời cả hai cũng không thê thả tài nguyên của mình để cho tiến trình khác sử dụng Do đó, các tiến trình hoặc luồng nay bi mắc kẹt và không thé tiép tục hoạt động, dẫn đến sự chậm trễ hoặc tỉnh trạng đóng băng của hệ thông

2.2 Yếu tô dẫn dén Deadlock

Deadlock xảy ra khi một số yêu tô cơ bản tồn tại trong hệ thống Các yêu tô chính dẫn đến sự xuất hiện của deadlock bao gồm:

® Các tiến trình cần tài nguyên chia sẻ: Deadlock thường xảy ra khi các tiến trình hoặc luỗng cần sử dụng các tài nguyên chia sẻ, chăng hạn như bộ nhớ, tệp, hoặc thiết bị LO Nếu các tài nguyên này không được quản lý cân than, co thé xảy ra deadlock

e Khóa va khéng tha (Hold and Wait): Cac tién trình đã nắm giữ một tài nguyên

và đang chờ tài nguyên khác mà họ cần Điều này có nghĩa rằng một tiền trình

có thể năm giữ một tài nguyên trong khi đồng thời cô gắng yêu cầu tài nguyên khác, và đây là một trong những yếu tô dẫn đến deadlock

e Không chia sẻ (No Preemption): Một khi một tiến trình đã nắm giữ một tài nguyên, nó không thê bị loại bỏ hoặc chuyên nhượng tài nguyên đó cho tiến trình khác Điều này tao ra một tình huống trong đó các tiến trình có thể cô gắng năm giữ nhiều tài nguyên và không thể bị đánh cắp tài nguyên của họ để giải quyét deadlock

Trang 10

e Xây dựng chu trình (Circular Wait): Các tiến trình hoặc luồng tạo ra một chu

trình khóa khi mỗi tiến trình cần tài nguyên mà tiền trình khác đang nắm giữ Ví

dụ, tiền trình A cần tài nguyên mà tiến trình B đang nắm giữ, tiến trình B cần tài nguyên của tiến trình C và tiến trình C cần tài nguyên của tiền trình A

e Thiếu xác định (Lack of Information): Hệ thống không có thông tin đầy đủ về tai nguyên mà các tiến trình đang sử dụng hoặc chờ đợi, làm cho việc quản lý tài nguyên và dự đoán sự xuất hiện của deadlock trở nên khó khăn

2.3 Cac vi du vé tinh huéng Deadlock

Trang 11

III BANKER’ S ALGORITHM: GIAI PHAP CHO DEADLOCK

3.1 Gidi thigu vé Banker's Algorithm

Khái niệm: Giải thuật của ngân hàng (Bankers Algorithm) là một thuật toán được sử dụng trong hệ thống máy tính đề quản lý tài nguyên hệ thống, như bộ nhớ và các tài nguyên khác,

đề đảm bảo rằng không có tình trạng xung đột (deadlock) xảy ra trong quá trình thực thi các tiến trình

Bankers Algorithm sử dụng một số ma trận, bao gồm ma trận tài nguyên còn lại và ma trận yêu cầu của các tiến trình đề thực hiện tính toán Điều quan trọng là nó đảm bảo rằng chỉ có thê cấp phát tài nguyên khi tài nguyên đó có sẵn và việc cấp phát không gây ra tình trạng xung đội

3.2 Cách hoạt động của Banker's Algorithm

Gom có 6 bước:

Giải thuật của ngân hàng (Bankers Algorithm) hoạt động theo cách sau:

1, Ban đầu, thuật toán thu thập thông tin về tài nguyên có sẵn trong hệ thông Cụ thẻ, nó cần biết số lượng tài nguyên của mỗi loại và số lượng tài nguyên đã được cấp phát cho mỗi loại

2, Khi một tiến trình yêu cầu tài nguyên, hệ thống kiêm tra xem có đủ tài nguyên đề đáp ứng yêu cầu hay không Nếu có, tiên trình được cho phép sử dụng tài nguyên và số lượng tài nguyên được cấp phát giảm đi

3,Nếu tài nguyên không đủ đề đáp ứng yêu cầu của tiền trình, tiến trình phải chờ đợi cho đến khi có đủ tài nguyên Trong khi đó, hệ thống không cấp phát tài nguyên cho các tiến trình

khác đề đảm bảo tính an toàn.

Trang 12

4, Khi một tiến trình hoàn thành và trả lại tài nguyên, số lượng tài nguyên được cấp phát tăng lên và có thê được cấp phát cho các tiến trình khác

5, Thuật toán kiểm tra tình trạng an toàn bằng cách sử dụng một thuật toán kiểm tra tỉnh trạng an toàn, như thuật toán Safety Algorithm Thuật toán này đảm bảo rằng một tình trạng

an toàn tồn tại trước khi cấp phát tài nguyên cho một tiền trình

6, Nếu một tình trạng an toàn không thê đạt được, nghĩa là không có cách đề cấp phát tài nguyên sao cho không có deadlock xảy ra, thì việc cấp phát tài nguyên mới bị từ chối cho đến khi có tỉnh trạng an toàn

3.3 Công thức và thuật toán

Giải thuật của ngân hàng (Bankers Algorithm) không phụ thuộc vào các công thức phức tạp Thay vào đó, nó dựa trên quy tắc và kiểm tra đề quản lý và phân bô tài nguyên một cách an toàn trong hệ thống đa nhiệm Dưới đây là một mô tá thuật toán sử đụng các phép kiểm tra

đề quản lý tài nguyên:

1, Khởi tạo:

Số lượng tài nguyên của mỗi loại và số lượng tài nguyên đã cấp phát ban đầu cho mỗi loại tài nguyên

Ma trận yêu cầu: Một ma trận m x n (n là số loại tài nguyên và m là số tiến trình) cho biết số lượng tài nguyên mỗi tiền trình yêu cầu đề hoàn thành công việc của nó

2, Kiêm tra yêu câu:

Khi một tiền trình yêu cầu tài nguyên, hệ thống kiểm tra xem yêu cầu này có thể được đáp ứng ngay lập tức mà không gây ra tình trạng an toàn không đủ tài nguyên hay không Điều

Trang 13

này được thực hiện bằng cách so sánh yêu cầu với số lượng tài nguyên còn lại và số lượng tài nguyên đã được cấp phát

3, Cấp phát tài nguyên:

Nếu yêu cầu có thể được đáp ứng mà không gây ra deadlock, tiễn trình được cấp phat tai nguyên, và số lượng tài nguyên còn lại giảm đi

Nếu yêu cầu không thê được đáp ứng ngay lập tức, tiến trình phải chờ đợi cho đến khi có đủ tài nguyên hoặc tình trạng an toàn

4, Trả tài nguyên:

Khi tiến trình hoàn thành công việc va trả lại tài nguyên, số lượng tài nguyên còn lại tăng lên

5, Kiểm tra tình trạng an toàn:

Khi có yêu câu cấp phát tài nguyên mới hoặc khi tiến trình trả lại tài nguyên, hệ thông kiểm tra xem tình trạng an toàn có bị suy yếu hay không Điều này được thực hiện bằng cách sử dụng một thuật toán kiểm tra tình trạng an toàn như thuật toán Safety Algorithm

6, Nếu tình trạng an toàn không thê đạt được sau việc cấp phát tài nguyên, thì yêu cầu cấp phát tài nguyên mới bị từ chối đề đám bảo tính an toàn của hệ thông

Trang 14

IV Vi DU MINH HQA VE BANKER’S ALGORITHM

4.1, Tinh huéng cu thé:

Giả sử có một hệ thông máy tính với 3 loại tài nguyên: A, B và C Có 5 tiến trình cần sử dụng tài nguyên này Ban đầu, trạng thái tài nguyên và yêu cầu của từng tiến trình như sau: Trạng thái tài nguyên ban đầu:

Tài nguyên A B C

Số lượng còn lại 10 5 7

Mối tiên trình có yêu câu về tài nguyên như sau:

Tiến trình

P0

Pl

P2

4.2 Quy trình giải quyết deadlock bằng thuat toan Banker's Algorithm:

Bước | : Tính toán tài nguyên còn lại sau mỗi tiến trình đã thực thi

Trước tiên, tính toán tài nguyên còn lại trong trạng thái ban đầu sau khi P0 đã thực hiện xong:

+ A:10-7=3

+ B:5-5=0

Trang 15

Bước 2: Xem xét các tiên trình có yêu câu dưới giới hạn tài nguyên còn lại và có thê thực hiện Dựa trên trạng thái tài nguyên sau khi thực hiện P0, chỉ P1 và P3 có thể thực hiện +_PI có thê thực hiện bằng cách sử dụng 3 đơn vị A, 2 đơn vị B và 2 đơn vị C

Bước 3: Thực hiện lựa chọn tiền trình để chạy Trong trường hợp này, có thể chọn lần lượt

P1 và P3 để thực hiện

Bước 4: Cập nhật trạng thái tài nguyên sau khi PI và P3 đã thực hiện

Sau khi PI và P3 thực hiện xong:

A:3+3+2=8

B:0+2+2=4

C:4+2+2=8

Bước 5: Lặp lại các bước trước cho đến khi tất cả các tiền trình đã được thực hiện

4.3 Kết quả và giải thích:

Sử dụng Bankers Algorithm, sau khi tất cả các tiên trình đã được thực hiện, không còn deadlock nào và hệ thống đảm bảo an toàn về tài nguyên Khi tất cả tiễn trình đã hoàn thành, trạng thái tài nguyên là:

Trang 16

Không có tién trình nào còn chờ đợi tài nguyên, và deadlock đã được giải quyết thành công bằng cách ưu tiên thực hiện các tiền trình mà có thể thực hiện được dựa trên trang thai tai nguyên va yêu câu của từng tiên trình

Ngày đăng: 19/12/2024, 21:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN