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

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).

Xem thêm 
 Tính toán tương tranh (Concurrent computing)
 Điều khiển tương tranh (Concurrency control)
 Luồng (Thread)
 Tiến trình (Process)
 Nodes in a cluster
 Các nút trong một hệ thống phân tán
 Các nút trong một mạng client-server
 Ptolemy Project
 OpenMP
 Các ngôn ngữ lập trình tương tranh

Tham khảo

Liên kết ngoài 
 Concurrent Systems  at The WWW Virtual Library