Lập trình song song tường minh thường yêu cầu chỉ ra cụ thể các tác vụ
song song cùng với các tương tác giữa chúng. Những tương tác này cĩ thểở trong dạng đồng bộ giữa các tiến trình đồng thời hay là sự giao tiếp giữa các kết quả
http://etrithuc.vn
được chỉ ra là ngụ ý vì tất cả các bộ xử lý đều cĩ quyền truy cập vào một vài (hay tất cả) các bộ nhớ. Do đĩ, mơ hình lập trình cho các máy tính chia sẽ khơng gian
địa chỉ tập trung chủ yếu vào các cách thức để thực thi đồng thời, đồng bộ hĩa và những cách để làm giảm sự quá tải do tương tác.
Các mơ hình lập trình chia sẽ khơng gian địa cĩ thể khác nhau về cách thức chia sẽ dữ liệu, mơ hình đồng thời, và hỗ trợ đồng bộ hĩa. Các mơ hình giả sử
rằng tất cả các dữ liệu của tiến trình đều mặc định là khơng được truy cập, trừ khi nĩ cho phép làm điều đĩ (sử dụng các hàm gọi của hệ thống UNIX như shmat và shmget). Mặc dù đây là một yếu tố quan trọng nhằm bảo mật trong các hệ thống
đa người dùng, tuy nhiên khí chúng cùng nhau hợp tác để giải quyết cùng một vấn
đề thì điều này là khơng cịn cần thiết. Các chi phí do bảo vệ dữ liệu gia tăng chỉ
làm cho các tiến trình ít thích hợp hơn cho lập trình song song. Ngược lại, các tiến trình và tiểu trình giả sử tồn bộ bộ nhớ là tồn cục, và chúng sẽ thực hiện trao đổi thơng tin với nhau một cách tường minh thơng qua đọc và ghi lên biến chia sẽ.
Hình 2-6 : Mơ hình chía sẽ khơng gian bộ nhớ
Vì các tiến trình đều cĩ quyền đọc và ghi lên vùng nhớ chung vào cùng một thời điểm nên ta cần phải cĩ một cơ chế đồng bộ hĩa để bảo đảm tính đúng đắn khi thao tác trên dữ liệu.