BÀI TẬP ĐỒNG BỘ HÓA TIẾN TRÌNH
51
Mục tiêu của chương:Giới thiệu các chiến thuật cụ thể để xử lý bài xích toánđồng cỗ hoá.lGiải pháp « busy waiting ».lGiải pháp « sleep & wakeup ».
Bạn đang xem: Bài tập đồng bộ hóa tiến trình
Kiến thức và kỹ năng sinh viên bắt buộc nắm dược sauchương này:Nhiệm vụ của việc nhất quán hóa tiến trình.Hiểu và áp dụng được các phương án đồng bộ,đặc biệt với các chiến thuật “sleep and wakeup”.
Chương 7: Đồng cỗ hóa quá trình s 3.1. Phương án « busy waiting » q 3.1.1. Các chiến thuật phần mềm q 3.1.2. Các chiến thuật phần cứng s 3.2. Các phương án « SLEEP and WAKEUP » q 3.2.1. Semaphore q 3.2.2. Monitors q 3.2.3. điều đình thông điệp s 3.3. Các vấn đề đồng nhất hóa q 3.3.1. Sự việc Người cung cấp – tín đồ tiêu thụ (Producer-Consumer) q 3.3.2. Phần từ lực - quy mô Readers-WritersNguyên lý hệ quản lý và điều hành 1 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình mục tiêu của chương s giới thiệu các giải pháp cụ thể để xử lý bài bác toán đồng bộ hoá. Q phương án « busy waiting » q chiến thuật « sleep và wakeup »Nguyên lý hệ quản lý 2 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình kiến thức và kỹ năng sinh viên nên nắm dược sau chương này s trọng trách của việc đồng hóa hóa tiến trình. S phát âm và áp dụng được các phương án đồng bộ, đặc trưng với các chiến thuật “sleep & wakeup”.Nguyên lý hệ điều hành 3 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa quy trình Đưa ra câu hỏi s vì sao cần đồng bộ hóa tiến trình? s Đối tượng tác động? s Thuật ngữ miền găng?Nguyên lý hệ điều hành 4 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa quá trình Bốn đk phải thỏa mãn: s không có hai tiến trình cùng sống trong miền găng. S không tồn tại giả thiết nào đưa ra cho sự liên hệ về vận tốc của những tiến trình, cũng như về số lượng bộ cách xử lý trong hệ thống. S Một các bước tạm dừng bên phía ngoài miền stress không được phòng cản các tiến trình khác vào miền găng. S không tồn tại tiến trình nào đề nghị chờ vô hạn để được vào miền găngNguyên lý hệ quản lý điều hành 5 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa các bước 3.1. Phương án « busy waiting » s Các phương án phần mềm s Các giải pháp phần cứngNguyên lý hệ điều hành 6 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa các bước 3.1.1. Các chiến thuật phần mềm a) Sử dụng những biến cờ hiệu: s Tiếp cân: những tiến trình share một biến chuyển chung đóng vai trò lock , được khởi động=0. S Một quy trình muốn vào miền căng thẳng trước tiên phải kiểm tra giá trị của biến hóa lock. Ví như lock = 0, quy trình đặt lock = 1 và đi vào miền găng.
Xem thêm: Tin Học 12 Bài Tập Và Thực Hành 1: Tìm Hiểu Hệ Cơ Sở Dữ Liệu
S ví như lock vẫn nhận cực hiếm 1, tiến trình phải chờ phía bên ngoài miền găng cho tới khi lock có giá trị 0.Nguyên lý hệ điều hành 7 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình 3.1.1. Các phương án phần mềm a) Sử dụng các biến cờ hiệu: s kết cấu của 1 các bước while (TRUE) while (lock == 1); // wait lock = 1; critical-section (); lock = 0; Noncritical-section ();Nguyên lý hệ quản lý điều hành 8 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa quy trình 3.1.1. Các chiến thuật phần mềm trao đổi về biện pháp sử dụng trở thành “Lock” s rất có thể vi phạm điều kiện hai quá trình cùng ngơi nghỉ trong miền stress tại một thời điểm. S P1 s P2 while (TRUE) while (TRUE) while (lock == 1); // wait while (lock == 1); // wait lock = 1; lock = 1; critical-section (); critical-section (); lock = 0; lock = 0; Noncritical-section (); Noncritical-section ();Nguyên lý hệ quản lý và điều hành 9 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa các bước 3.1.1. Các chiến thuật phần mềm b) sử dụng việc chất vấn luân phiên s Tiếp cận : Đây là một giải pháp đề nghị cho hai tiến trình. S Hai quá trình này áp dụng chung đổi mới turn (phản ánh phiên các bước nào được vào miền găng), được khởi động với giá trị 0. Trường hợp turn = 0, chỉ có các bước A được vào miền găng. Nếu như turn = 1, chỉ có quá trình B được lấn sân vào miền găng.Nguyên lý hệ điều hành 10 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa tiến trình 3.1.1. Các phương án phần mềm b) áp dụng việc bình chọn luân phiênNguyên lý hệ quản lý điều hành 11 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình bàn thảo về giải pháp kiểm tra luân phiên s ngăn chặn được triệu chứng hai quy trình cùng vào miền găng. (?) s hoàn toàn có thể vi phạm đk một tiến trình hoàn toàn có thể bị ngăn ngừa vào miền áp lực bởi một quá trình khác không ở vào miền găng. (?)Nguyên lý hệ điều hành 12 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa tiến trình 3.1.1. Các phương án phần mượt c) giải pháp của Peterson s Tiếp cận : Petson đưa ra một phương án kết hợp ý tưởng phát minh của cả hai phương án kể trên. Các tiến trình share hai biến chung : s int turn; // đến phiên ai s int interesse<2>; // khởi rượu cồn là FALSENguyên lý hệ điều hành 13 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa quy trình 3.1.1. Các giải pháp phần mượt c) giải pháp của Peterson while (TRUE) int j = 1-i; // j là tiến trình còn lại interesse= TRUE; turn = j; while (turn == j && interesse