Các hàng rào

Một phần của tài liệu Các hệ vi xử lý tiên tiến (Trang 86)

Các tác vụ song song có thể được đồng bộ hóa thông qua việc sử dụng các điểm đồng bộ hóa được gọi là các hàng rào. Không có tác vụ nào có thể vượt qua hàng rào cho đến khi tất cả các tác vụ tham gia đã đạt tới hàng rào đó. Các thành viên của một nhóm có thể chọn để chờ tại một hàng rào cho đến khi một con số cụ thể của thành viên trong nhóm được kiểm tra tại hàng rào đó.PVM cung cấp đồng bộ hóa hàng rào thông qua việc sử dụng hàm

hàm này trước khi bất kỳ thành viên nào trong số đó có thể tiến hành vượt qua hàng rào như sau.

Info = pvm_barrier(group_name, ntasks)

Một lần nữa mã trạng thái info sẽ trả về một giá trị kiểu số nguyên âm trong trường hợp có lỗi. Số thành viên chỉ định có thể được chọn là bất kỳ số nào nhỏ hơn hoặc bằng tổng số các thành viên. Tuy nhiên, thường đó là tổng số các thành viên trong nhóm. Trong mọi trường hợp, giá trị của đối số số này phải phù hợp với lời gọi hàng rào nhất định. Nếu đối số này được đặt là - 1, PVM sẽ sử dụng giá trị của pvm_gsize (), trả về tổng số thành viên. Vì các tác vụ có thể tham gia vào nhóm sau khi các tác vụ khác đã gọi pvm_barrier () chúng ta cần phải xác định số tác vụ cần phải kiểm tra tại hàng rào. Một tác vụ không được phép gọi pvm_barrier () với một nhóm mà nó không thuộc (về nhóm đó).

Hình 8.6 Đồng bộ hóa ưu tiên sử dụng truyền tin nhắn. Hàm f () trong T0 đảm bảo được thực hiện trước hàm g () trong T1.

Ví dụ 5 Hình 8.7 cho thấy ba thành viên của nhóm lệ thuộc (T0, T1, T2) sử dụng một

hàng rào để đồng bộ hóa tại một điểm nhất định trong quá trình thực thi chúng. Một trong ba tác vụ sẽ gọi các hàm sau:

info=pvm_barrier("slave", 3)

Việc thực hiện sẽ khóa cho đến khi ba thành viên của nhóm lệ thuộc (slave) phát ra lời gọi hàm pvm_barrier () như biểu diễn trong hình. Tác vụ T1 gọi là hàm đầu tiên, tiếp theo là T0, và cuối cùng T2. Tác vụ T0 và T1 chờ tại hàng rào cho đến khi T2 tới được hàng rào trước khi tất cả các tác vụ tiếp tục được thực hiện.

Một phần của tài liệu Các hệ vi xử lý tiên tiến (Trang 86)