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==TRUE); critical-section (); interesse = FALSE; Noncritical-section ();//Cấu trúc tiến trình Pi trong phương án PetersonNguyên lý hệ quản lý 14 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa tiến trình thảo luận về chiến thuật của Peterson s phương án này ngăn chặn được tình trạng mâu thuẫn truy xuất. S Vẫn vi phạm điều kiện một quy trình ngoài miền “găng” chống cản quy trình trong “găng”Nguyên lý hệ quản lý 15 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình 3.1.2. Các phương án phần cứng a) Cấm ngắt s Tiếp cân: cho phép tiến trình cấm tất cả các ngắt trước khi vào miền găng, và phục hồi ngắt khi ra khỏi miền găng. S khi đó, ngắt đồng hồ thời trang cũng ko xảy ra, do vậy hệ thống không thể trợ thời dừng hoạt động vui chơi của tiến trình đang cách xử trí để cấp phát CPU cho tiến trình khác.Nguyên lý hệ điều hành và quản lý 16 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình luận bàn về phương thức cấm ngắt s giải pháp này không rất được quan tâm vì khôn cùng thiếu an toàn khi có thể chấp nhận được tiến trình người tiêu dùng được phép triển khai lệnh cấm ngắt. S giả dụ hệ thống có không ít bộ xử lý, lệnh cấm ngắt chỉ có tính năng trên chip xử lý đang cách xử lý tiến trình, còn các tiến trình chuyển động trên những bộ cách xử lý khác vẫn rất có thể truy xuất đến miền găng ! s có thể một quá trình sẽ bắt buộc chờ vô hạn.Nguyên lý hệ điều hành quản lý 17 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa quy trình 3.1.2. Các chiến thuật phần cứng b) chỉ thị TSL (Test-and-Set) s Tiếp cận: những máy tính cung cấp một thông tư đặc biệt được cho phép kiểm tra và update nội dung một vùng ghi nhớ trong một làm việc không thể phân chia, call là thông tư Test-and-Set Lock (TSL) cùng được tư tưởng như sau: Test-and-Setlock(boolean target) Test-and-Setlock = target; target = TRUE;Nguyên lý hệ điều hành quản lý 18 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng bộ hóa tiến trình 3.1.2. Các phương án phần cứng b) chỉ thị TSL (Test-and-Set) while (TRUE) { while (Test-and-Setlock(lock)); critical-section (); lock = FALSE; Noncritical-section ();// cấu tạo một công tác trong chiến thuật TSLNguyên lý hệ điều hành 19 Nguyễn Văn Huy – KTMT - 2008 Chương 7: Đồng cỗ hóa tiến trình thảo luận về TSL (Test-and-Set) s TSL sút nhẹ công việc lập trình, mà lại lại không dễ ợt để thiết lập chỉ thị TSL làm sao cho được cách xử trí một cách không thể phân chia, độc nhất vô nhị là trên vật dụng với thông số kỹ thuật nhiều cỗ xử lý. S Vi phạm một trong những điều kiện…Nguyên lý hệ quản lý điều hành 20 Nguyễn Văn Huy – KTMT - 2008