Seminal chương 5 Đồng bộ hóa và giao tiếp dựa trên biến chia sẻ

89 371 0
Seminal chương 5 Đồng bộ hóa và giao tiếp dựa trên biến chia sẻ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Seminal chương 5 Đồng bộ hóa và giao tiếp dựa trên biến chia sẻ

Trường Đại Học Công Nghệ Thông Tin Khoa Kỹ Thuật Máy Tính HỆ THỐNG THỜI GIAN THỰC Lớp: CE312.F11 GV : Phạm Văn Phước Seminal Chương ĐỒNG BỘ HÓA VÀ GIAO TIẾP DỰA TRÊN BIẾN CHIA SẺ Danh Sách Thành Viên Nhóm: Trần Đại Dương Nguyễn Viết Nam Nguyễn Văn An Nguyễn Văn Thể Mỹ Phan Trần Như Ngọc Võ Dương Quang 11520537 11520241 11520003 11520234 11520253 11520709 Mục tiêu • Hiểu yêu cầu cần thiết cho việc đồng hóa giao tiếp dựa biến chia sẻ – Busy waiting, semaphores, monitors, conditional critical regions, deadlock, livelock, … OS • Hiểu phương thức đồng hóa Java Nội Dung Chương 5.1 Độc quyền truy xuất đồng hóa điều kiện 5.2 Busy waiting 5.3 Suspend and Resume 5.4 Semaphore 5.5 Conditional Critical Region 5.6 Monitors 5.7 + 5.8 POSIX Mutex Condition Variables 5.9 Phương thức đồng Java 5.10 Chia sẻ nhớ đa xử lý 5.11 Hệ thống nhúng rà soát đơn giản *Tổng kết Phần 5.1 Độc quyền truy xuất đồng hóa điều kiện Đồng Bộ Hóa Và Giao Tiếp • Tính xác chương trình song song phụ thuộc vào việc đồng hóa giao tiếp tác vụ • Đồng hóa: việc thỏa mãn ràng buộc xen hành động tác vụ • Giao tiếp (truyền thông): việc truyền thông tin từ tác vụ tới tác vụ khác • Giao tiếp tác vụ thường dựa biến chia sẻ truyền thông điệp Biến chia sẻ • Biến chia sẻ: đối tượng mà nhiều tác vụ truy cập – “Bạn đường vùng nhớ chia sẻ” – Vấn đề tính tin cậy tính an toàn • Ví dụ: xem xét X := X + – LOAD R1, X – INC R1 – STORE R1, X ; Nạp giá trị X vào R1 ; Tăng giá trị R1 lên giá trị ; Lưu giá trị R1 vào X • Tính “atomic” phép toán cập nhật X? Miền găng (Critical region) • Miền găng: chuỗi câu lệnh phải thực thi để đảm bảo tính “atomic” • Độc quyền truy xuất (Mutual exclusion): giải pháp bảo vệ miền găng • Ví dụ: A thực X := X + B thực X := X đồng thời với A Đồng hóa điều kiện • Đồng hóa điều kiện: đòi hỏi quan trọng cần thiết tác vụ muốn thực hành động cách hợp lý tác vụ khác đạt số trạng thái định – Thực “Độc quyền truy xuất” • Ví dụ: toán Người sản xuất (A)/ Người tiêu dùng (B) – A không sản xuất kho đầy hàng – B không tiêu dùng kho hết hàng • Liệu có cần thực độc quyền truy xuất toán trên? Phần 5.2 Busy waiting 10 Simple embedded system revisited B) Thủ tục trao đổi liệu với môi trường: with Data_Types; use Data_Types; package I0 is // Thủ tục trao đổi liệu với môi trường procedures for data exchange with the environment procedure Read(TR: out Temp_Reading); ~— from DAC procedure Read(PR : out Pressure_Reading); ~— from DAC procedure Write(HS : Heater_Setting); —— to switch procedure Write(PS Pressure_Setting); to DAC procedure Write(TR : Temp_Reading); —— to console procedure Write(PR Pressure_Reading); *~ to console end IO; 75 Simple embedded system revisited C) Phần thân giao thức I/O hoàn chỉnh Các liệu gửi đến giao diện điều khiển lưu trữ hình (trong trường hợp cách sử dụng đối tượng Ada bảo vệ) Nhiệm vụ giao diện điều khiển gọi vào để có liệu 76 Simple embedded system revisited Lúc chương trình hoàn chỉnh biểu diễn sau: // Khai báo đặc tả package body I0 is task Console; protected Console_Data is procedure Write(R : Temp_Reading); procedure Write(R : Pressure_Reading); entry Read(TR : out Temp_Reading; PR : out Pressure_Reading); private Last_Temperature : Temp_Reading; Last_Pressure :Pressure_Reading; New_Reading : Boolean := False; end Console_Data; 77 Simple embedded system revisited // Phần thủ trao đổi với môi trường procedures for data exchange with the environment procedure Read(TR : out Temp_Reading) is separate; —— from DAC procedure Read(PR : out Pressure_Reading) is separate; —— from DAC procedure Write(HS : Heater_Setting) is separate; —— to switch, procedure Write(PS : Pressure_Setting) is separate; —v to DAC 78 Simple embedded system revisited //Phần thân làm nhiệm vụ đọc giá trị task body Console is TR : Temp_Reading; PR : Pressure_Reading; begin loop Console_Data.Read(TR, PR); // Hiển thị trình đọc —— Display new readings end loop; end Console; 79 Simple embedded system revisited //Phần xử lý protected body Console_Data is procedure Write(R : Temp_Reading) is begin Last_Temperature := R; New_Reading := True; end Write; procedure Write(R : Pressure_Reading) is begin Last_Pressure := R; New_Reading := True; end Write; entry Read(TR : out Temp_Reading; PR : out Pressure_Reading) when New_Reading is begin TR := Last_Temperature; PR := Last_Pressure; New_Reading := False; end Read; 80 end Console_Data; Simple embedded system revisited //Thủ tục xuất procedure Write(TR : Temp_Reading) is begin Console_Data.Write(TR); end Write; —— to screen procedure Write(PR : Pressure_Reading) is begin Console_Data.Write(PR); end Write; —— to screen end IO; 81 Simple embedded system revisited Link tìm hiểu Ada: http://www.hvaonline.net/hvaonline/readingRoom/item/1643.hva;jsessionid=72AC 4AB98D9CE5113200E78DAECE7FEB 82 Tổng Kết 83 Quá trình tương tác yêu cầu phải có đồng thời hệ điều hành ngôn ngữ lập trình để hỗ trợ đồng hóa truyền thông nội Truyền thông dựa hai: biến chia sẻ truyền thông điệp Chương quan tâm với biến chia sẻ, cho thấy nhiều khó khăn đồng thời đồng hóa loại trừ tương hỗ cần thiết để đối phó với khó khăn Trong thảo luận này, từ ngữ giới thiệu: 84 *Critical section : đoạn mã phải thực theo loại trừ tương hỗ *Producer - consumer system: hai nhiều tác vụ trao đổi liệu thông qua đệm hữu hạn *Busy waiting: tác vụ liên tục kiểm tra điều kiện để xem tiến trình tham gia vào trình xử lý hay không *Livelock : điều kiện lỗi nhiều tác vụ bị cấm hoạt động trình dung tăng lên chu kỳ xử lý 85 Việc cung cấp semaphore sơ khai có kết từ việc đưa trạng thái cho tác vụ; cụ thể là, bị đình (suspended.) Nó cung cấp hai điều kiện lỗi mới: *Deadlock: tập hợp tác vụ trì hoãn mà tham gia vào trình xử lý *Indefinite postponement: nhiệm vụ khả tiến hành nguồn tài nguyên không thực có sẵn dùng cho 86 Semaphores bị đánh giá hiệu suất thấp dễ bị lỗi sử dụng Sau thời gian phát triển, cấu trúc tốt giới thiệu: - Conditional critical regions - A monitors - Mutexes - Protected objects - Synchronized methods 87 Monitor tính giao thức quan trọng Chúng bao gồm mô-đun, nhập liệu đảm bảo thuộc loại trừ tương hỗ Trong cấu trúc monitor, tác vụ tự dừng không đủ điều kiện để tiếp tục xử lý Việc đình thực cách sử dụng biến điều kiện Khi công việc đình đánh thức (bởi hoạt động tín hiệu biến điều kiện), điều đảm bảo không dẫn đến trường hợp hai tác vụ hoạt động môđun lúc 88 Xin Chân Thành Cảm Ơn Thầy Và Các Bạn Đã Chú Ý Lắng Nghe! 89 [...]... 1 T 2 Dual Core 100% T 1 Done! T 2 Dual Core 21 Phần 5. 4 Semaphore 22 Semaphore Semaphore Mutual Exclusion Condition Synchronization 23 Semaphore • Nó được phát triển bởi Dijkstra (1968) và có 2 ưu điểm sau: – Đơn giản hóa cơ chế đồng bộ hóa – Xóa bỏ những thứ cần thiết cho vòng lặp busy-waiting 24 Semaphore Semaphore Wait Signal • Semaphore là biến số nguyên không âm, nó được điều khiển bởi 2 thủ... chế: - Phân tán suốt chương trình 33 Phần 5. 6 Monitors 34 Monitors • Vấn đề chính của miền găng điều kiện là chúng có thể phân tán trong suốt chương trình • Với monitor, các miền găng được viết như thủ tục & được đóng gói lại thành 1 module duy nhất gọi là monitor • Monitor gồm 1 khai báo các biến cục bộ của nó, 1 tập các thủ tục monitor & 1 thủ tục khởi tạo trạng thái monitor 35 Monitors Monitor ... Trần Như Ngọc Võ Dương Quang 1 152 053 7 1 152 0241 1 152 0003 1 152 0234 1 152 0 253 1 152 0709 Mục tiêu • Hiểu yêu cầu cần thiết cho việc đồng hóa giao tiếp dựa biến chia sẻ – Busy waiting, semaphores, monitors,... Variables 5. 9 Phương thức đồng Java 5. 10 Chia sẻ nhớ đa xử lý 5. 11 Hệ thống nhúng rà soát đơn giản *Tổng kết Phần 5. 1 Độc quyền truy xuất đồng hóa điều kiện Đồng Bộ Hóa Và Giao Tiếp • Tính xác chương. .. phương thức đồng hóa Java Nội Dung Chương 5. 1 Độc quyền truy xuất đồng hóa điều kiện 5. 2 Busy waiting 5. 3 Suspend and Resume 5. 4 Semaphore 5. 5 Conditional Critical Region 5. 6 Monitors 5. 7 + 5. 8 POSIX

Ngày đăng: 30/03/2016, 18:09

Tài liệu cùng người dùng

Tài liệu liên quan