Đồng bộ hóa là cần thiết để bảo vệ các biến dùng chung bằng cách đảm bảo rằng chúng chỉ được truy cập bởi một quá trình tại một thời điểm nhất định (loại trừ lẫn nhau). Chúng cũng có thể được sử dụng để phối hợp thực hiện các quá trình song song và đồng bộ hóa tại một số điểm nhất định trong quá trình thực hiện. Có hai cấu trúc đồng bộ hóa chính trong hệ thống bộ nhớ dùng chung: (1) các khóa và (2) các hàng rào. Hình 4.16a biểu diễn ba quá trình song song sử dụng các khoá để đảm bảo loại trừ lẫn nhau. Quá trình P2 phải chờ cho đến khi P1 mở khoá phần quan trọng, tương tự P3 phải chờ cho đến khi P2 phát ra một phát biểu mởi khoá. Trong hình 4.16b, P3 và P1 tới được phát biểu hàng rào của chúng trước P2, và chúng phải chờ cho đến khi P2 tới hàng rào của nó. Khi cả ba đều đạt tới phát biểu hàng rào, tất cả chúng được xử lý.
Hình 4.15 Hai quá trình song song giao tiếp bằng cách sử dụng đoạn dữ liệu chung (được chia sẻ).
Chương 5
LẬP TRÌNH SONG SONG TRÊN MÁY ẢO SONG SONG
Máy ảo song song (PVM: Parallel Virtual Machine ) ban đầu được phát triển tại Phòng thí nghiệm quốc gia Oak Ridge và Đại học Tennessee. Nó tạo ra khả năng có thể phát triển các ứng dụng trên một tập hợp các máy tính không đồng nhất được kết nối bởi một mạng mà theo logic của người dùng nó có thể là một máy tính song song duy nhất. PVM cung cấp một tập hợp các chức năng quản lý tài nguyên động và điều khiển quy trình mạnh mẽ. Nó cung cấp cho các lập trình viên một thư viện các thủ tục để khơi màu (khởi tạo) và kết thúc nhiệm vụ, đồng bộ hóa, và thay đổi cấu hình máy ảo. Nó cũng tạo điều kiện cho quá trình truyền tin nhắn thông qua một số cấu trúc đơn giản. Khả năng tương tác giữa các máy tính không đồng nhất khác nhau là một lợi thế lớn trong hệ PVM. Các chương trình được viết cho một số kiến trúc có thể được sao chép sang kiến trúc khác, biên dịch và thực thi mà không cần sửa đổi. Ngoài ra, các file thực thi PVM này vẫn có thể giao tiếp với nhau. Một ứng dụng PVM được tạo ra từ một số tác vụ hợp tác để cùng giải một bài toán duy nhất. Một tác vụ có thể thay đổi giữa những tính toán và truyền thông với các tác vụ khác. Mô hình lập trình là một mạng truyền thông các nhiệm vụ nối tiếp trong đó mỗi nhiệm vụ có vị trí điều khiển riêng của nó, và các nhiệm vụ nối tiếp giao tiếp bằng cách trao đổi tin nhắn.