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
Thông tin tài liệu:
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ìm kiếm theo từ khóa liên quan:
Hệ điều hành Nguyên lý hệ điều hành Bài giảng Nguyên lý hệ điều hành Đồng bộ hóa tiến trình Cài đặt semaphore Cơ chế monitorTài liệu cùng danh mục:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 434 0 0 -
Lecture Operating systems: Lesson 24 - Dr. Syed Mansoor Sarwar
29 trang 359 0 0 -
Bài giảng Xử lý sự cố phần mềm - Bài 4 Xử lý sự cố sử dụng Internet
14 trang 316 0 0 -
Lecture Operating systems: Lesson 21 - Dr. Syed Mansoor Sarwar
22 trang 310 0 0 -
3 trang 280 0 0
-
Làm việc với Read Only Domain Controllers
20 trang 268 0 0 -
80 trang 258 0 0
-
Lecture Operating systems: Lesson 13 - Dr. Syed Mansoor Sarwar
31 trang 255 0 0 -
Giáo trình Nguyên lý các hệ điều hành: Phần 2
88 trang 255 0 0 -
175 trang 252 0 0
Tài liệu mới:
-
Đề tài: Hoàn thiện hệ thống kênh phân phối
76 trang 0 0 0 -
26 trang 0 0 0
-
238 trang 0 0 0
-
77 trang 0 0 0
-
Sáng kiến kinh nghiệm Mầm non: Những biện pháp nâng cao chất lượng bữa ăn cho trẻ mầm non
22 trang 0 0 0 -
66 trang 0 0 0
-
Giáo án Sinh hoạt ngoại khóa THPT: Hoạt động Ngày hội văn hóa dân gian năm học 2020-20201
10 trang 0 0 0 -
Đề thi tuyển sinh vào lớp 10 môn Toán (Chuyên) năm 2024 có đáp án - Trường THCS Ninh Vân, Hoa Lư
13 trang 0 0 0 -
Sandbox và TrustRank của Google
4 trang 1 0 0 -
Cách kiểm tra website có bị Sandbox.
3 trang 1 0 0