Mutual exclusion là gì?

Noun OS
Loại trừ lẫn nhau

Loại trừ lẫn nhau (mutual exclusion) là một thuộc tính của đồng bộ hóa tiến trình (process synchronization) nói rằng "không có hai tiến trình nào có thể tồn tại trong critical section tại bất kỳ thời điểm nhất định nào". Thuật ngữ này lần đầu tiên được đặt ra bởi Dijkstra. Bất kỳ kỹ thuật đồng bộ hóa tiến trình nào đang được sử dụng phải thỏa mãn thuộc tính loại trừ lẫn nhau (mutual exclusion), nếu không có đặc tính này thì không thể loại bỏ race condition.

Để hiểu về loại trừ lẫn nhau (mutual exclusion), hãy lấy một ví dụ.

Trong khu quần áo của một siêu thị, hai người đang mua sắm quần áo.

Chàng trai A quyết định mua một số quần áo và đi vào phòng thay đồ để thử chúng. Bây giờ, khi chàng trai A đang ở trong phòng thay đồ, có một tấm biển hiển thị "đã có người" - cho biết rằng không ai khác được vào. Cô gái B cũng phải sử dụng phòng thay đồ, vì vậy cô ấy phải đợi cho đến khi chàng trai A sử dụng xong phòng thay đồ.

Khi chàng trai A bước ra khỏi phòng thay đồ, tấm biển sẽ chuyển từ "đã có người" thành "trống" - cho biết người khác có thể sử dụng nó. Do đó, cô gái B sử dụng phòng thay đồ, trong khi tấm biến hiển thị "đã có người".

Phòng thay đồ là critical section, chàng trai A và cô gái B là hai tiến trình khác nhau, trong khi tấm biển bên ngoài phòng thay đồ cho biết cơ chế đồng bộ hóa tiến trình đang được sử dụng.

Learning English Everyday