(TIỂU LUẬN) báo cáo môn học hệ điều HÀNH xây dựng chương trình minh họa giải pháp cho bài toán người thợ cắt tóc

12 2 0
(TIỂU LUẬN) báo cáo môn học hệ điều HÀNH xây dựng chương trình minh họa giải pháp cho bài toán người thợ cắt tóc

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI **************** BÁO CÁO MÔN HỌC HỆ ĐIỀU HÀNH (Mã học phần) ĐỀ TÀI: Xây dựng chương trình minh họa giải pháp cho tốn Người thợ cắt tóc ĐIỂM Sinh viên thực hiện: Lê Duy Anh Dũng - 20198170 Trần Trung Dũng - 20198171 Lê Đức Mạnh - 20198189 Lớp: IT-GINP- K64 Giảng viên hướng dẫn: Đỗ Quốc Huy Hà Nội, tháng 12 năm 2021 Lời nói đầu Nguyên lý hệ điều hành mơn có kiến thức tảng mà lập trình viên phải hiểu rõ để phục vụ cho kiến thức cao Hệ điều hành tập hợp chương trình phần mềm chạy máy tính dùng để điều hành, quản lý thiết bị phần cứng tài nguyên phần mềm máy tính Hệ điều hành đóng vai trị trung gian việc giao tiếp người sử dụng phần cứng máy tính, cung cấp mơi trường cho phép người sử dụng phát triển thực ứng dụng cách dễ dàng Cùng với phát triển mạng Internet việc nghiên cứu nắm vững kiến thức mạng quan trọng Dựa hiểu biết tìm hiểu tài liệu, nhóm em chọn nghiên cứu thực đề tài: Bài tốn Sleeping Barber Problem Nhóm em xin chân thành cảm ơn thầy cô khoa Công Nghệ Thông Tin tạo điều kiện để em nghiên cứu kĩ kiến thức đặc biệt thầy giáo Đỗ Quốc Huy nhiệt tình giảng dạy, hướng dẫn nhóm em q trình thực đề tài Do kiến thức hạn hẹp, nên khơng thể tránh khỏi sai sót q trình làm đề tài, chúng em mong nhận góp ý thầy để sản phẩm hồn thiện Chúng em xin chân thành cảm ơn Nhóm sinh viên thực hiện: Lê Duy Anh Dũng - 20198170 Trần Trung Dũng - 20198171 Lê Đức Mạnh – 20198189 Mục Lục Phần 1: Giới thiệu đề tài 1.1Mô tả toán 1.2 Mô tả vấn đề Phần 2: Giải toán 2.1 Giải pháp 2.2.1 Sơ đồ 2.2.2 Thuật toán Phần 1: Giới thiệu đề tài 1.1 Mơ tả tốn Trong cửa hàng cắt tóc gồm người thợ cắt tóc, ghế ngồi phịng cắt tóc, n ghế ngồi phịng chờ + Nếu khơng có đến cắt tóc, người thợ nằm ngủ + Mỗi có khách hàng đến, họ kiểm tra xem người thợ làm Nếu người thợ ngủ, khách hàng đánh thức dậy ngồi vào ghế cắt tóc + Nếu người thợ làm việc, khách hàng tới phòng chờ, ngồi vào n ghế, đợi đến lượt + Khi người thợ cắt xong cho vị khách, để vị khách tới phòng chờ để kiểm tra xem có khách hàng chờ đợi khơng, có, đưa vị khách vào phịng cắt tóc, khơng, anh quay phịng nằm ngủ + Nếu khách hàng đến vào lúc toàn n ghế chiếm dụng, vị khách Hình ảnh minh họa tốn 1.2 Mơ tả vấn đề + Dựa phân tích sơ sài, định cần đảm bảo cửa hàng hoạt động xác, thợ cắt tóc cắt tóc đến khơng cịn khách hàng, sau ngủ khách hàng đến Trong thực tế, có số vấn đề xảy minh họa cho vấn đề lập lịch biểu chung + Tất vấn đề liên quan đến thực tế hành động thợ cắt tóc khách hàng (kiểm tra phòng chờ, vào cửa hàng, lấy ghế phòng chờ,….) khoảng thời gian không xác định + Ví dụ, khách hàng đến quan sát thấy thợ cắt tóc cắt tóc, vào phòng chờ Trong họ đường đến, người thợ cắt tóc hồn thành kiểu tóc họ kiểm tra phịng chờ Vì khơng có (có thể phịng chờ xa người thợ cắt tóc nhanh lướt qua khách hàng, khách hàng vào nhà vệ sinh phía ghế người thợ cắt tóc nghĩ rời đi), người thợ cắt tóc trở lại ghế họ ngủ Người thợ cắt tóc đợi khách hàng, khách hàng đợi thợ cắt tóc Hồn cảnh dẫn đến tượng deadlock - xảy khách hàng thợ cắt tóc chờ đợi lẫn + Trong tình khác, hai khách hàng đến lúc xảy tình trạng cịn chỗ ngồi phịng chờ Họ quan sát thấy người thợ cắt tóc cắt tóc, vào phịng chờ hai định chiếm ghế đơn + Starvation xảy khách hàng phải chờ đợi thời gian dài, khách hàng khác không tuân theo trật tự, thợ cắt tóc gọi khách cách ngẫu nhiên Phần 2: Giải toán 2.1 Giải pháp Để giải toán vấn đề deadlock starvation, ta sử dụng ba biến semaphore + Customers: Đếm số khách hàng phòng chờ + Barber (mang giá trị 1): Kiểm tra tình trạng thợ cắt tóc xem có hay khơng làm việc + AccessSeat: Cho phép khách hàng truy cập vào số lượng ghế cịn trống tăng giảm số lượng Biến dùng để thực thao tác loại trừ lẫn + Cần thêm biến FreeSeat để đếm số lượng ghế trống tại, khách hàng ngồi vào cịn ghế trống, khơng, khách hàng rời + Khi thợ cắt tóc bắt đầu tiến hành tiến trình barber vào buổi sáng, biến semaphore customers nên bị chặn, bước vào trạng thái ngủ, chờ khách hàng xuất + Khi vị khách đến, người thực tiến trình customer, đồng thời yêu cầu biến AccessSeat để bước vào vùng khẩn cấp (crictical region) - tức phịng cắt tóc Nếu sau có vị khách đến, người vào vùng khẩn cấp vị khách giải phóng biến AccessSeat + Vị khách kiểm tra số lượng ghế phịng chờ, số lượng khách chờ số lượng ghế, vị khách ngồi xuống Ngược lại, vị khách rời đi, giải phóng AccessSeat có + Khi vị khách ngồi xuống ghế phịng chờ, người đồng thời giảm biến FreeSeat tăng biến semaphore customers - đánh thức thợ cắt tóc ngủ + Lúc đó, thợ cắt tóc khách hàng sẵn sàng Khách hàng giải phóng AccessSeat, người thợ nhận lấy bắt đầu làm việc + Khi cắt tóc xong, khách hàng khỏi tiến trình rời Các bước Nếu semaphore customers 0, người thợ lại trạng thái ngủ hết làm 2.2.1 Sơ đồ Start Sleeping Closing time Waiting Customer Cutting Hair Waiting customer Closing time Going Home 2.2.2 Thuật toán Semaphore Customers = 0; Semaphore Barber = 0; Mutex AccessSeat = 1; int FreeSeats = N; Barber { while(true) { /*Trạng thái ngủ - chờ đợi khách hàng */ down(Customers); /*Giảm biến mutex, bảo vệ số lượng ghế khả dụng.*/ down(AccessSeat); /*Ghế trống tăng lên.*/ FreeSeats++; /* Đưa khách hàng cắt tóc*/ up(Barber); /*Giải phóng biến mutex ghế.*/ up(AccessSeat); /*Người thợ cắt tóc*/ } } Customer { while(true) { /*Chỉ cho phép khách hàng bước vào vùng khẩn cấp thời điểm.*/ down(AccessSeat); /*Nếu số lượng ghế trống lớn 0*/ if(FreeSeats > 0) { /*Khách hàng ngồi xuống, biến FreeSeats giảm 1*/ FreeSeats ; /*Thơng báo tới thợ cắt tóc*/ up(Customers); /*Giải phóng khóa mutex*/ up(AccesSeat); /*Nếu thợ cắt tóc bận, đợi phòng chờ*/ down(Barber); / Khách hàng cắt tóc } else { /*Giải phóng khóa mutex*/ up(AccessSeat); //Khách hàng rời } } } ... hàng cắt tóc gồm người thợ cắt tóc, ghế ngồi phịng cắt tóc, n ghế ngồi phịng chờ + Nếu khơng có đến cắt tóc, người thợ nằm ngủ + Mỗi có khách hàng đến, họ kiểm tra xem người thợ làm Nếu người thợ. .. đến, người thợ cắt tóc hồn thành kiểu tóc họ kiểm tra phòng chờ Vì khơng có (có thể phịng chờ xa người thợ cắt tóc nhanh lướt qua khách hàng, khách hàng vào nhà vệ sinh phía ghế người thợ cắt tóc. .. tóc nghĩ rời đi), người thợ cắt tóc trở lại ghế họ ngủ Người thợ cắt tóc đợi khách hàng, khách hàng đợi thợ cắt tóc Hồn cảnh dẫn đến tượng deadlock - xảy khách hàng thợ cắt tóc chờ đợi lẫn +

Ngày đăng: 02/12/2022, 08:40

Hình ảnh liên quan

Hình ảnh minh họa bài toán - (TIỂU LUẬN) báo cáo môn học hệ điều HÀNH xây dựng chương trình minh họa giải pháp cho bài toán người thợ cắt tóc

nh.

ảnh minh họa bài toán Xem tại trang 4 của tài liệu.

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

Tài liệu liên quan