Vùng tương tranh (Critical Section)

Một phần của tài liệu giáo trình nguyên lý hệ điều hành Chương 2: QUẢN LÝ TIẾN TRÌNH; CHƯƠNG 3. LẬP LỊCH CPU; CHƯƠNG 4. ĐỒNG BỘ HOÁ TIẾN TRÌNH; CHƯƠNG 5. BẾ TẮC (Trang 30 - 31)

CHƯƠNG 4 ĐỒNG BỘ HOÁ TIẾN TRÌNH 4.1 Các khái niệm cơ bản

4.1.2.Vùng tương tranh (Critical Section)

Xét một hệ thống gồm n tiến trình (P0, P1, … ,Pn-1 ). Mỗi tiến trình có một đoạn mã, được gọi là vùng tương tranh hay đoạn găng, chứa các lệnh có thể thay đổi những biến dùng chung, cập nhật một bảng, viết đến tập tin,… Đặc điểm quan trọng của hệ thống là khi một tiến trình đang thực thi trong vùng tương tranh, không có tiến trình nào khác được phép thực thi trong vùng tương tranh của nó. Do đó, việc thực thi của các vùng tương tranh bởi các tiến trình là sự loại trừ hỗ tương. Vấn đề vùng tương tranh là thiết kế một giao thức để đồng bộ hóa các tiến trình.

Ta có thể coi cấu trúc tổng quát của một tiến trình như sau: Vùng mã thực hiện yêu cầu đi vào vùng tương tranh là phần đi vào (entry section). Vùng tương tranh có thể được theo sau bởi một phần kết thúc (exit section). Mã còn lại là phần còn lại (remainder section).

51

Hình 4.1. Cấu trúc tổng quát của tiến trình.

Trong chương này khi xét các giải pháp đồng bộ ta có một số giả định sau:

- Có thể có nhiều CPU nhưng phần cứng không cho phép nhiều tác vụ truy cập một vị trí trong bộ nhớ cùng lúc.

- Không ràng buộc về thứ tự thực thi của các tiến trình.

- Các tiến trình có thể chia sẻ một số biến chung nhằm mục đích đồng bộ hoạt động của chúng.

- Giải pháp đồng bộ cần phải đặc tả được các phần entry section và exit section. Các giải pháp đồng bộ hóa phải thỏa mãn ba yêu cầu sau:

(1) Độc quyền truy xuất (Mutual exclusion): Khi một tiến trình P đang thực thi trong vùng tương tranh của nó thì không có tiến trình Q nào khác đang thực thi trong vùng tương tranh của Q.

(2) Tiến triển (Progress): nếu không có process nào đang thực thi trong vùng tương tranh và đang có một số tiến trình chờ đợi vào vùng tương tranh thì:

Chỉ những tiến trình không đang thực thi trong remainder section mới được là ứng cử viên cho việc được chọn vào vùng tương tranh.

Quá trình chọn lựa này không được trì hoãn vô hạn.

(3) Gới hạn đợi (Bounded waiting): Mỗi tiến trình chỉ phải chờ để được vào vùng tương tranh trong một khoảng thời gian có hạn định nào đó. Không xảy ra tình trạng đói tài nguyên.

Các giải pháp dược phân làm hai loại chính:

- Giải pháp phần mềm: dùng lệnh máy thông thường. - Giải pháp dùng lệnh cấm ngắt hay lệnh máy đặc biệt.

Một phần của tài liệu giáo trình nguyên lý hệ điều hành Chương 2: QUẢN LÝ TIẾN TRÌNH; CHƯƠNG 3. LẬP LỊCH CPU; CHƯƠNG 4. ĐỒNG BỘ HOÁ TIẾN TRÌNH; CHƯƠNG 5. BẾ TẮC (Trang 30 - 31)