Tìm hiểu về Semaphore, Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore Tìm hiểu về Semaphore
1 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN / ĐỒ ÁN CUỐI KÌ MƠN NHẬP MƠN HỆ ĐIỀU HÀNH SEMAPHORE Người hướng dẫn: TS MAI NGỌC THẮNG Người thực hiện: THÁI TRUNG TÍN - 51503315 NGUYỄN THỊ DIỆP- 51503312 Lớp : 15050301-15050302 Khóa : 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2016 TỔNG LIÊN ĐỒN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN / ĐỒ ÁN CUỐI KÌ MƠN NHẬP MƠN HỆ ĐIỀU HÀNH SEMAPHORE Người hướng dẫn: TS MAI NGỌC THẮNG Người thực hiện: THÁI TRUNG TÍN - 51503315 NGUYỄN THỊ DIỆP - 51503312 Lớp : 15050301-15050302 Khóa : 19 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2016 LỜI CẢM ƠN Trong suốt trình nghiên cứu đề tài Ảo hóa - CLoud, em gặp nhiều khó khăn từ cách tiếp cận trình bày ý tưởng nhờ có TS Mai Ngọc Thắng - Khoa Công nghệ thông tin - Trường đại học Tơn Đức Thắng - tận tình hướng dẫn giúp em nhìn nhận vấn đề cụ thể, tiếp cận đề tài dễ dàng Em xin chân thành cảm ơn thầy lời bảo vơ quý báu thầy giúp em có thu hoạch q giá để hồn thành q trình nghiên cứu Bài thu hoạch thực khoảng thời gian gần tuần Bước đầu vào thực tế, tìm hiểu lĩnh vực sáng tạo nghiên cứu khoa học, kiến thức em hạn chế nhiều bỡ ngỡ Do vậy, khơng tránh khỏi thiếu sót điều chắn, em mong nhận ý kiến đóng góp quý báu quý Thầy Cô bạn học lớp để kiến thức em lĩnh vực hoàn thiện Một lần em xin chân thành cảm ơn TP.Hồ Chí Minh,ngày 22 tháng 11 năm 2016 Thái Trung Tín Nguyễn Thị Diệp ĐỒ ÁN ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan sản phẩm đồ án riêng hướng dẫn TS Mai Ngọc Thắng Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung đồ án Trường đại học Tơn Đức Thắng không liên quan đến vi phạm tác quyền, quyền tơi gây q trình thực (nếu có) TP.Hồ Chí Minh,ngày 22 tháng 11 năm 2016 Tác giả Thái Trung Tín Nguyễn Thị Diệp PHẦN XÁC NHẬN, ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận giáo viên hướng dẫn TP.Hồ Chí Minh,ngày 22 tháng 11 năm 2016 Thái Trung Tín Nguyễn Thị Diệp Phần đánh giá giáo viên chấm TP.Hồ Chí Minh,ngày 22 tháng 11 năm 2016 Thái Trung Tín Nguyễn Thị Diệp TÓM TẮT Semaphore giải pháp để giải xung đột đa tiến trình Bài tiểu luận tìm hiểu đặc điểm semaphore cách hoạt động semaphore hệ thống đa tiến trình Mục lục Giải thuật Semaphore 1.1 Semaphore 1.1.1 Định nghĩa 1.2 Đồng hóa tiến trình 1.2.1 Semaphore 1.2.2 Sử dụng Semaphore 1.2.3 Hiện thực Semaphore Tài liệu tham khảo 11 11 11 12 12 13 14 17 MỤC LỤC DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT MỤC LỤC DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ 10 MỤC LỤC Chương Giải thuật Semaphore 1.1 Semaphore 1.1.1 Định nghĩa Semaphore biến bảo vệ (hay kiểu liệu trừu tượng), tạo thành phương pháp để hạn chế truy nhập tới tài nguyên dùng chung mơi trường đa lập trình (multiprogramming) Đây phát minh Edsger Dijkstra sử dụng lần đâu tiên hệ điều hành Linux Semaphore lời giải kinh điển cho toán bữa tối triết gia (dining philosophers), khơng ngăn hết deadlock Semaphores sử dụng phổ biến ngơn ngữ lập trình - ngơn ngữ mà chất không hỗ trợ dạng khác đồng hóa Chúng sử dụng kĩ thuật đồng ban đầu hệ điều hành Xu hướng phát triển ngơn ngữ lập trình, dường hướng vào dạng cấu trúc đồng hóa, giống đồng hóa kênh Cộng thêm khơng đầy đủ cách phân chia với deadlock, semaphore không bảo vệ người lập trình khỏi lỗi đơn giản việc 11 12 CHƯƠNG GIẢI THUẬT SEMAPHORE Hình 1.1: Bữa ăn triết gia lấy semaphore - mà ln ln thay đổi tiến trình đồng thời, quên giải phóng semaphore sau lấy Bên cạnh semaphore đến, ta có "semaphore chặn" (blocking semaphore) Đó loại semaphore khởi tạo giá trị Điều có hiệu luồng gọi P(S) bị chặn luồng khác chạy V(S) Loại cấu trúc hữu dụng cần điều khiển thứ tự thực thi luồng Loại semaphore đơn giản "semaphore nhị phân", dùng để điều khiển truy nhập tới tài nguyên nhất, loại chất không khác mutex Semaphore nhị phân thường khởi tạo giá trị Khi tài nguyên sử dụng, luồng truy nhập gọi P(S) để giảm giá trị 0, khơi phục giá trị toán tử V tài nguyên sẵn sàng được thả 1.2 ĐỒNG BỘ HĨA TIẾN TRÌNH 1.2 1.2.1 13 Đồng hóa tiến trình Semaphore Giải pháp giải vấn đề cho vùng tranh chấp bắng phần cứng thường khó tổng quát hóa cho trường hợp phức tạp Sau tìm hiểu công cụ mạnh để giải vấn đề vùng tranh chấp semaphore Semaphore cơng cụ đồng cung cấp hệ điều hành mà khơng đòi hỏi trạng thái đợi Semaphore S biến nguyên truy nhập qua hai thao tác đơn wait signal Mã giả cho wait signal địng nghĩa sau: Wait(s) While (s