(TIỂU LUẬN) bài tập môn học NGUYÊN lý hệ điều HÀNH VIẾT CHƯƠNG TRÌNH mô PHỎNG QUÁ TRÌNH ĐỒNG bộ TIẾN TRÌNH THEO THEO THUẬT TOÁN 5 TRIẾT GIA ăn tối BẰNG NGÔN NGỮ JAVA

13 10 0
(TIỂU LUẬN) bài tập môn học NGUYÊN lý hệ điều HÀNH VIẾT CHƯƠNG TRÌNH mô PHỎNG QUÁ TRÌNH ĐỒNG bộ TIẾN TRÌNH THEO THEO THUẬT TOÁN 5 TRIẾT GIA ăn tối BẰNG NGÔN NGỮ JAVA

Đ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

HỌC VIỆN KỸ THUẬT MẬT Mà KHOA CÔNG NGHỆ THÔNG TIN ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BÀI TẬP MÔN HỌC NGUYÊN LÝ HỆ ĐIỀU HÀNH VIẾT CHƯƠNG TRÌNH MƠ PHỎNG Q TRÌNH ĐỒNG BỘ TIẾN TRÌNH THEO THEO THUẬT TỐN TRIẾT GIA ĂN TỐI BẰNG NGƠN NGỮ JAVA Ngành: An tồn thơng tin Sinh viên thực hiện: Nguyễn Văn Hiệp Phạm Công Hưởng Nguyễn Anh Tuấn Lớp: AT16C0405 Người hướng dẫn: TS Nguyễn Đào Trường Khoa Công nghệ thông tin – Học viện Kỹ thuật mật mã Hà Nội, 2022 NHẬN XÉT VÀ CHO ĐIỂM CỦA GIÁO VIÊN LỜI NĨI ĐẦU Nếu khơng có phần mềm, máy tính thiết bị điện tử thông thường Với hỗ trợ phần mềm, máy tính lưu trữ, xử lý thơng tin người sử dụng gọi lại thông tin Phần mềm máy tính chia thành nhiều loại: chương trình hệ thống, quản lý hoạt động máy tính Chương trình ứng dụng, giải vấn đề liên quan đến việc sử dụng khai thác máy tính người sử dụng hệ điều hành thuộc nhóm chương trình hệ thống chương trình hệ thống quan trọng máy tính người sử dụng Hệ điều hành điều khiển tất tài nguyên máy tính cung cấp mơi trường thuận lợi để chương trình ứng dụng người sử dụng viết chạy máy tính Một máy tinh đại bao gồm: nhiều processor, nhớ, clocks, đĩa, giao diện mạng, thiết bị vào/ra khác Tất tạo thành hệ thống phức tạp Để viết chương trình để theo dõi tất thành phần máy tính sử dụng chúng cách hiệu quả, người lập trình phải biết processor thực chương trình nào, nhớ lưu trữ thông tin nào, thiết bị đĩa làm việc (đọc/ghi) nào, lỗi xảy đọc block đĩa,… công việc khó khăn quá khó người lập trình Nhưng may cho người lập trình ứng dụng người sử dụng cơng việc hệ điều hành hỗ trợ nên họ không cần quan tâm đến Chúng ta cần tìm hiểu hệ điều hành đề có nhìn tổng quát liên quan đến việc thiết kế cài đặt cũgn chức hệ điều hành để hệ điều hành đạt mục tiêu: Giúp người sử dụng khai thác máy tính cách dễ dàng chương trình người sử dụng chạy máy tính “Bài tốn bữa tối triết gia” (Dining Philosophers), toán kinh điển tương tranh chia sẻ tài nguyên Việc nghiên cứu toán cho hiểu rõ khia cạnh hệ thống CHƯƠNG 1: CƠ SỞ LÝ THUYẾT I, Tiến trình(processes) 1, Khái niệm: - Tiến trình phận chương trình thực thực hiện, đơn vị thực tiến trình processer Vì tiến trình phận chương trình nên tương tự chương trình tiến trình sở hữu trỏ lệnh, trỏ stack, tập ghi, khơng gian địa nhớ tất thơng tin cần thiết khác để tiến trình hoạt động 2, Các loại tiến trình: Các tiến trình hệ thống chia làm hai loại: tiến trình tiến trình song song + Tiến trình tiến trình mà điểm khởi tạo điểm kết thúc tiến trình trước + Tiến trình song song tiến trình mà điểm khởi tạo tiến trình nằm thân tiến trình khác, thức khởi tạo tiến trình tiến trình chưa kết thúc II, Luồng(Thread) Luồng thành phần tiến trình sở hữu ngăn xếp thực thi độc lập mã lệnh tiến trình Nếu hệ điều hành có nhiều tiến trình tiến trình bạn tạo nhiều tuyến hoạt động song song hệ điều hành Ưu điểm tuyến chúng hoạt động khơng gian địa tiến trình Tập hợp nhóm tuyến sử dụng chung biến tồn cục, vùng nhớ Heap, bảng mơ tả file… tiến trình, chế liên lạc tuyến đơn giản hiệu chế liên lạc tiến trình với Ưu điểm việc sử dụng luồng tiến trìnhh đơn giản lập trình Nhiều thao tác xuất nhập hiển thị liệu tách rời phân cho tuyến chạy độc lập thực thi III, Giải pháp Semaphore Semaphore dóng góp quan trọng nhà tốn học E W Dijktra Có thể xem Semaphore mở rộng Mutex locks Semaphore S biến tài nguyên, khởi gán giá trị không âm, khả phục vụ tài nguyên tương ứng với Ứng với S có hàng đợi F(s) để lưu tiến trình bị blocked S Chỉ có hai thao tác Down Up tác động đến Semaphore S Down giảm S xuống đơn vị, Up tăng S lên đơn vị Ở cần lưu ý rằng: Down Up thủ tục hệ điều hành, nên hệ điều hành cài đặt chế độc quyền cho nó, tức lệnh bên khơng thể tách rời IV, Deadlock - Deadlock trạng thái mà tập tiến trình bị chặn tiến trình chiếm giữ tài nguyên chờ đợi cấp phát tài nguyên khác giữ tiến trình khác Nói cách khác, tiến trình hệ thống chờ để cấp phát tài nguyên bị chiếm giữ tài nguyên khác Nếu tài ngun khơng giải phóng để tiến trình khác sử dụng, tiến trình chờ lấy tài nguyên chờ mãi, chờ dẫn đến khoá chết (Deadlock) - Các điều kiện phát sinh Deadlock: + Loại từ tương hỗ (Mutual Exclusion): thời điểm, tài nguyên chia sẻ cho hệ thống cấp phát cho tiến trình Tiến trình khác khơng thể sử dụng tài nguyên giải phóng + Giữ chờ (hold and wait): Mỗi tiến trình tập hợp tiến trình giữ tài nguyên chờ đợi để cấp phát tài ngun + Khơng có quyền ưu tiên (No Preemption): Một tiến trình khơng thể ciếm giữ tài nguyên tài nguyên giải phóng tiến trình sử dụng + Tồn chu kì chờ (Circular Wait): Các tiến trình giữ tài nguyên chờ nhận tài nguyên khác tiến trình kahsc Chúng nối tạo thành vịng trịn Chờ vơ tận CHƯƠNG 2: MƠ TẢ BÀI TỐN I, Đề bài: Viết chương trình mơ trình đồng tiến trình (điều độ) theo thuật tốn triết gia ăn tối ngơn ngữ Java II, Mơ tả tốn: Đây tốn cổ điển hệ điều hành Bài toán bữa tối triết gia đưuocj đưa bời nhà toán học E W.Dijkstra Bài tốn mơ tả sau: Có năm triết gia ngồi ăn quanh bàn trịn, trước mặt người có đĩa đồ ăn, người có đĩa, hai triết gia có đũa Bài tốn phát biểu sau: “ triết gia suy nghĩ, ông ta giao tiếp với triết gia khác Thỉnh thoảng, triết gia cảm thấy đói cố gắng chọn đũa gần nhất( đũa trái đũa phải) Một triết gia lấy đũa thời điểm Chú ý, ông ta khơng thể lấy đũa mà dùng người bên cạnh Khi triết gia đối có hai đũa lúc, ơng ta ăn mà không đặt đũa xuống Khi triết gia ăn xong, ông ta đặt đũa xuống bắt đầu suy nghĩ tiếp” III, u cầu: - Tìm cách để khơng chết đói Bài tốn đặt vấn đề “đồng tiến trình”, giải vấn đề tắc nghẽn xảy CHƯƠNG 3: CÁCH GIẢI QUYẾT BÀI TỐN I, Mơ tả hướng giải Để giải tốn, phần này, ta sử dụng thuật tốn Semaphore Và sử dụng tính chất hoạt động song song đa luồng (Thread) II, Giải thích code kết 1, Class Fork (đũa): - Với class này, áp dụng thuật toán Semaphore để đánh dấu trạng thái đũa tốn Những đũa ban đầu có giá trị Ở giá trị này, coi không sử dụng - Khi mà đũa sử dụng, với phương thức acquire(), gán cho đũa giá trị – trạng thái sử dụng - Khi mà sử dụng xong (Hết sleep time) phương thức release() trả lại cho đũa giá trị - Ở đây, ta cho thêm phương thức isFree(), phương thức giúp kiểm tra trạng thái đũa 2, Class Philosopher - Với class Philosopher, ta kế thừa class Thread để giúp cho class sử dụng chế đa luồng Thread - Đầu tiên, có thuộc tính, number: số thứ tự nhà triết gia, leftFork rightFork: đũa trái, đũa phải triết gia tương ứng - Tiếp theo, có hàm khởi tạo class - Các triết gia có hành động là: tham gia vào bữa ăn, lấy đũa trái, lấy đũa phải, suy nghĩ ăn 3, Main: - Phương thức Main, phương thức sử dụng hai class mà tạo class Fork class Philosopher để chạy chương trình - Dùng để tạo mảng chứa đối tượng đũa - Dùng để tạo mảng gán đối tượng nhà triết gia khởi động luồng - Với vòng lặp While, vòng lặp có tác dụng kiểm tra q trình Deadlock Tất luồng kiểm tra tài nguyên chiếm giữ Nếu tất luồng bị tải không đủ tài nguyên, dẫn đến giới hạn Deadlock, người dùng nhận cảnh báo tự động dừng chương trình KẾT LUẬN Qua tập này, hiểu rõ cách thức hoạt động luồng hệ điều hành, cách luồng nhận giả lại tài nguyên cho hợp lý hệ điều hành hoạt động tốt Và hiểu thêm thuật tốn Semaphore cách thức hoạt động nó, kết hợp với luồng, để sử dụng trường hợp tương lai Em cảm ơn thầy cho em hội nghiên cứu đề tài giúp em có thêm kiến thức Em xin cảm ơn! ... tạo thành vịng trịn Chờ vơ tận CHƯƠNG 2: MƠ TẢ BÀI TỐN I, Đề bài: Viết chương trình mơ q trình đồng tiến trình (điều độ) theo thuật tốn triết gia ăn tối ngôn ngữ Java II, Mô tả toán: Đây toán. .. tiến trình: Các tiến trình hệ thống chia làm hai loại: tiến trình tiến trình song song + Tiến trình tiến trình mà điểm khởi tạo điểm kết thúc tiến trình trước + Tiến trình song song tiến trình. .. hệ điều hành thuộc nhóm chương trình hệ thống chương trình hệ thống quan trọng máy tính người sử dụng Hệ điều hành điều khiển tất tài nguyên máy tính cung cấp mơi trường thuận lợi để chương trình

Ngày đăng: 30/11/2022, 14:12

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan