Danh mục

Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 4) - Nguyễn Hải Châu

Số trang: 10      Loại file: pdf      Dung lượng: 364.18 KB      Lượt xem: 19      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng tuần 4 của bài giảng Nguyên lý hệ điều hành trình bày một số nội dung như: Đồng bộ hóa tiến trình, Semaphore, một số bài toán đồng bộ hóa cơ bản, cơ chế monitor,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 4) - Nguyễn Hải Châu Nguyên lý hệ điều hành Đồng bộ hóa tiến trình Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ 1 2 Ví dụ đồng bộ hóa (1) Ví dụ đồng bộ hóa (2) Tiến trình ghi P: Tiến trình đọc Q: z Các toán tử ++ và -- có thể được cài đặt như sau: while (true) { while (true) { while (counter==SIZE) ; while (counter==0) ; z counter++ z counter-- buf[in] = nextItem; nextItem = buf[out]; register1 = counter; register2 = counter; in = (in+1) % SIZE; out = (out+1) % SIZE; register1 = register1 + 1; register2 = register2 - 1; counter++; counter--; counter = register1; counter = register2; } } buf: Buffer P và Q có thể nhận được các giá trị khác nhau của SIZE: cỡ của buffer z Đây là bài toán vùng counter tại cùng 1 thời điểm nếu như đoạn mã xanh counter: Biến chung đệm có giới hạn và đỏ thực hiện xen kẽ nhau. 3 4 Ví dụ đồng bộ hóa (3) Ví dụ đồng bộ hóa (4) z Giả sử P và Q thực hiện song song với nhau z Lỗi: Cho phép P và Q đồng thời thao tác trên và giá trị của counter là 5: biến chung counter. Sửa lỗi: register1 = counter; // register1=5 register1 = counter; // register1=5 register1 = register1 + 1; // register1=6 register1 = register1 + 1; // register1=6 register2 = counter; // register2=5 counter = register1; // counter=6 register2 = register2 - 1; // register2=4 register2 = counter; // register2=6 counter = register1; // counter=6 !! register2 = register2 - 1; // register2=5 counter = register2; // counter=4 !! counter = register2; // counter=5 5 6 1 Tương tranh và đồng bộ Khái niệm về đoạn mã găng (1) z Tình huống xuất hiện khi nhiều tiến trình cùng z Thuật ngữ: Critical section thao tác trên dữ liệu chung và kết quả các z Thuật ngữ tiếng Việt: Đoạn mã găng, đoạn thao tác đó phụ thuộc vào thứ tự thực hiện mã tới hạn. của các tiến trình trên dữ liệu chung gọi là tình z Xét một hệ có n tiến trình P0, P1, ..., Pn, mỗi huống tương tranh (race condition) tiến trình có một đoạn mã lệnh gọi là đoạn z Để tránh các tình huống tương tranh, các tiến mã găng, ký hiệu là CSi, nếu như trong đoạn trình cần được đồng bộ theo một phương mã này, các tiến trình thao tác trên các biến thức nào đó ⇒ Vấn đề nghiên cứu: Đồng bộ chung, đọc ghi file... (tổng quát: thao tác trên hóa các tiến trình dữ liệu chung) 7 8 Khái niệm về đoạn mã găng (2) Khái niệm về đoạn mã găng (3) z Đặc điểm quan trọng mà hệ n tiến trình này z Cấu trúc chung của Pi để thực hiện đoạn mã cần có là: Khi một tiến trình Pi thực hiện đoạn găng CSi. mã CSi thì không có tiến trình Pj nào khác do { được phép thực hiện CSj Xin phép (ENTRYi) thực hiện CSi; // Entry section z Mỗi tiến trình Pi phải “xin phép” (entry Thực hiện CSi; section) trước khi thực hiện CSi và thông báo Thông báo (EXITi) đã thực hiện xong CSi; // Exit section (exit section) cho các tiến trình khác sau khi Phần mã lệnh khác (REMAINi); // Remainder section thực hiện xong CSi. } while (TRUE); 9 10 Khái niệm về đoạn mã găng (4) Giải pháp cho đoạn mã găng z Viết lại cấu trúc chung của đoạn mã găng: z Giải pháp cho đoạn mã găng cần thỏa mãn 3 điều kiện: do { z Loại trừ lẫn nhau (mutual exclusion): Nếu Pi đang ENTRYi; // Entry section thực hiện CSi thì Pj không thể thực hiện CSj ∀j≠i. Thực hiện CSi; // Critical section z Tiến triển (progress): Nếu không có tiến trình Pi nào EXITi; // Exit section thực hiện CSi và có m tiến trình Pj1, Pj2, ..., Pjm muốn thực hiện CSj1, CSj2, ..., CSjm thì chỉ có các tiến trình REMAINi; // Remainder section không thực hiện REMAINjk (k=1,...,m) mới được xem } while (TRUE); xét thực hiện CSjk. z Chờ có giới hạn (bounded waiting): sau khi một tiến trình Pi có ...

Tài liệu được xem nhiều:

Tài liệu cùng danh mục:

Tài liệu mới: