Bài giảng Hệ điều hành: Chương 3 - Đồng bộ quá trình

Bài giảng Hệ điều hành: Chương 3 - Đồng bộ quá trình bao gồm những nội dung về khái niệm cơ bản; Critical section, các giải pháp dùng lệnh máy thông thường; các giải pháp dùng lệnh cấm ngắt hoặc lệnh máy đặc biệt; Semaphore; Semaphore và các bài toán đồng bộ; Monitor. | Chương 3 Đồng Bộ Quá Trình Nội dung Khái niệm cơ bản Critical section Các giải pháp dùng lệnh máy thông thường Giải thuật Peterson, và giải thuật bakery Các giải pháp dùng lệnh cấm ngắt hoặc lệnh máy đặc biệt Semaphore Semaphore và các bài toán đồng bộ Monitor Bài toán đồng bộ (1/2) Khảo sát các process/thread thực thi đồng thời và chia sẻ dữ liệu (ghi shared memory) trong hệ thống uniprocessor, hoặc shared memory multiprocessor Nếu không có sự kiểm soát khi truy cập các dữ liệu chia sẻ thì chúng có thể trỡ nên không nhất quán. Để duy trì sự nhất quán dữ liệu, hệ thống cần có cơ chế bảo đảm sự thực thi có trật tự của các process đồng thời. Bài toán đồng bộ (2/2) Hai lớp bài toán đồng bộ: Hợp tác Bài toán producer-consumer: bounded buffer Cấp phát tài nguyên Bài toán loại trừ tương hỗ: đồâng bộ nhiều quá trình sử dụng một tài nguyên không chia sẻ đồâng thời được Bài toán Dining Philosophers Shared memory Biến chia sẻ quá trình 2 quá trình 1 Quá trinh 1 và 2 code và private data Đồng thời song song Trên uniprocessor hay trên shared memory multiprocessor, các quá trình chạy đồng thời Trên shared memory multiprocessor, các quá trình có thể chạy song song Bài toán Producer-consumer (1/3) Ví dụ Bounded buffer, thêm biến đếm count #define BUFFER_SIZE 8 /* 8 buffers */ typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0, out = 0, count = 0; Bài toán Producer-consumer (2/3) Quá trình Producer item nextProduced; while(1) { while (count == BUFFER_SIZE); buffer[in] = nextProduced; count++; in = (in + 1) % BUFFER_SIZE; } Quá trình Consumer item nextConsumed; while(1) { while (count == 0); nextConsumed = buffer[out]; count--; out = (out + 1) % BUFFER_SIZE;} biến count được chia sẻ giữa producer và consumer Bài toán Producer-consumer (3/3) Các lệnh tăng/giảm biến count tương đương trong ngôn ngữ máy là: Producer count++: register1 = count register1 = register1 + 1 count = register1 Consumer count--: . | Chương 3 Đồng Bộ Quá Trình Nội dung Khái niệm cơ bản Critical section Các giải pháp dùng lệnh máy thông thường Giải thuật Peterson, và giải thuật bakery Các giải pháp dùng lệnh cấm ngắt hoặc lệnh máy đặc biệt Semaphore Semaphore và các bài toán đồng bộ Monitor Bài toán đồng bộ (1/2) Khảo sát các process/thread thực thi đồng thời và chia sẻ dữ liệu (ghi shared memory) trong hệ thống uniprocessor, hoặc shared memory multiprocessor Nếu không có sự kiểm soát khi truy cập các dữ liệu chia sẻ thì chúng có thể trỡ nên không nhất quán. Để duy trì sự nhất quán dữ liệu, hệ thống cần có cơ chế bảo đảm sự thực thi có trật tự của các process đồng thời. Bài toán đồng bộ (2/2) Hai lớp bài toán đồng bộ: Hợp tác Bài toán producer-consumer: bounded buffer Cấp phát tài nguyên Bài toán loại trừ tương hỗ: đồâng bộ nhiều quá trình sử dụng một tài nguyên không chia sẻ đồâng thời được Bài toán Dining Philosophers Shared memory Biến chia sẻ quá trình 2 quá trình 1 Quá .

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.