Tương tranh (khoa học máy tính)

(Đổi hướng từ Concurrency (computer science))

Trong ngành khoa học máy tính, tương tranh là một tính chất của các hệ thống bao gồm các tính toán được thực thi trùng nhau về mặt thời gian, trong đó các tính toán chạy đồng thời có thể chia sẻ các tài nguyên dùng chung. Hoặc theo lời của Edsger Dijkstra: "Tương tranh xảy ra khi nhiều hơn một luồng thực thi có thể chạy đồng thời." Việc cùng sử dụng các tài nguyên dùng chung, chẳng hạn bộ nhớ hay file dữ liệu trên đĩa cứng, là nguồn gốc của nhiều khó khăn. Các tranh đoạt điều khiển (race condition) liên quan đến các tài nguyên dùng chung có thể dẫn đến ứng xử không đoán trước được của hệ thống. Việc sử dụng cơ chế loại trừ lẫn nhau (mutual exclusion) có thể ngăn chặn các tình huống chạy đua, nhưng có thể dẫn đến các vấn đề như tình trạng bế tắc (deadlock) và đói tài nguyên (resource starvation). Thiết kế của các hệ thống tương tranh thường là kết quả của việc tìm kiếm các kĩ thuật đáng tin cậy cho việc phối hợp hoạt động của thực thi, trao đổi dữ liệu, cấp phát bộ nhớ và lập lịch thực thi để giảm tối thiểu thời gian phản ứng (response time) và tăng tối đa thông lượng (throughput).

"Bài toán bữa tối của các triết gia" (Dining Philosophers), một bài toán kinh điển về tương tranh và chia sẻ tài nguyên

Xem thêm sửa

Tham khảo sửa

Liên kết ngoài sửa