Đại Số Tiến Trình cho Xử Lý Song Song và Phân Tán: Tổng Quan

Tìm hiểu về đại số tiến trình, công cụ mạnh mẽ mô hình hóa hệ thống song song và phân tán. Khám phá ứng dụng trong thiết kế, xác minh và phân tích hiệu năng.

Chuyên ngành

Khoa học Máy tính

Người đăng

Ẩn danh

Thể loại

Sách chuyên khảo

2009

440
0
0

Phí lưu trữ

75 Point

Mục lục chi tiết

Foreword

Acknowledgments

Introduction

Editors

Contributors

1. Part I Parallel Programming

1.1. Synthesizing and Verifying Multicore Parallelism in Categories of Nested Code Graphs

1.2. Semi-Explicit Parallel Programming in a Purely Functional Style: GpH

1.3. Refinement of Parallel Algorithms

2. Part II Distributed Systems

2.1. Analysis of Distributed Systems with mCRL2

2.2. Business Process Specification and Analysis

2.3. Behavioral Specification of Middleware Systems

2.4. Abstract Machine for Service-Oriented Mobility

2.5. Specifying and Implementing Secure Mobile Applications

3. Part III Embedded Systems

3.1. Calculating Concurrency Using Circus

3.2. PARS: A Process Algebraic Approach to Resources and Schedulers

3.3. Formal Approach to Derivation of Concurrent Implementations in Software Product Lines

Index

Tóm tắt

I. Đại số tiến trình là gì Nền tảng cho xử lý song song

Đại số tiến trình (Process Algebra) là một tập hợp các phương pháp hình thức dùng để mô hình hóa và phân tích các hệ thống tương tranh. Đây là một lĩnh vực thành công của khoa học máy tính, tồn tại khoảng 30 năm và cung cấp một nền tảng lý thuyết vững chắc. Sức mạnh của nó đến từ việc cung cấp một cơ sở lý thuyết chặt chẽ cho tính tương tranh, cùng với một ký hiệu hình thức không mơ hồ. Trong bối cảnh các hệ thống đa lõi và phân tán ngày càng phức tạp, đại số tiến trình cho xử lý song song & phân tán nổi lên như một công cụ mạnh mẽ. Nó cho phép các nhà phát triển mô tả hành vi của hệ thống một cách chính xác ở nhiều mức độ chi tiết khác nhau. Như đã nêu trong lời tựa của cuốn PROCESS ALGEBRA FOR PARALLEL AND DISTRIBUTED PROCESSING, mục đích của đại số tiến trình là "cung cấp một tập hợp các toán tử, các luật phương trình cho các toán tử này, và một mô hình toán học của các luật đó". Điều này cho phép mô tả hành vi của một hệ thống như là sự kết hợp của các thành phần tương tác, và phân tích hành vi đó chỉ bằng các phép tính đại số. Nền tảng này giúp giải quyết các thách thức cố hữu trong lập trình đồng thời và đảm bảo tính đúng đắn của các hệ thống phức tạp, từ đó nâng cao độ tin cậy và hiệu suất. Sự ra đời của đại số tiến trình được đánh dấu bằng các công trình kinh điển như CCS (A Calculus of Communicating Systems) của Milner và CSP (Communicating Sequential Processes) của Hoare, tạo tiền đề cho vô số ứng dụng sau này.

1.1. Lịch sử và vai trò trong lý thuyết tương tranh

Lịch sử của đại số tiến trình gắn liền với sự phát triển của lý thuyết tương tranh (concurrency theory). Vào cuối những năm 1970 và đầu những năm 1980, các nhà khoa học máy tính cần những công cụ toán học để lý giải về các hệ thống có nhiều thành phần hoạt động đồng thời. Lời tựa của tài liệu gốc đã chỉ ra ba cột mốc quan trọng: phép tính hệ thống giao tiếp (CCS) của Milner (1980), lý thuyết về hệ thống giao tiếp tuần tự (CSP) của Brookes, Hoare, và Roscoe (1984), và ACP của Bergstra và Klop (1984). Các hệ thống này cung cấp ngôn ngữ và quy tắc để mô tả cách các tiến trình độc lập giao tiếp và đồng bộ hóa với nhau. Vai trò của chúng không chỉ dừng lại ở mặt lý thuyết. Chúng trở thành nền tảng cho việc thiết kế và xác minh hình thức các giao thức truyền thông, hệ điều hành và các thuật toán phân tán. Bằng cách cung cấp một mô hình tính toán trừu tượng nhưng chính xác, đại số tiến trình giúp các nhà nghiên cứu và kỹ sư chứng minh được các đặc tính quan trọng của hệ thống như tính an toàn và sống còn (safety and liveness).

1.2. Các khái niệm cốt lõi Tiến trình Sự kiện và Giao tiếp

Để hiểu về đại số tiến trình, cần nắm vững một số khái niệm cốt lõi. Một 'tiến trình' (process) là một thực thể hành vi, có thể thực hiện các 'hành động' (actions) hoặc tham gia vào các 'sự kiện' (events). Các hành động này có thể là tính toán nội bộ hoặc giao tiếp giữa các tiến trình (IPC). Tương tác là trọng tâm của đại số tiến trình. Các toán tử được định nghĩa để kết hợp các tiến trình đơn giản thành các hệ thống phức tạp hơn. Ví dụ, toán tử tuần tự xác định thứ tự thực hiện hành động. Toán tử lựa chọn (choice) cho phép một tiến trình hành xử theo một trong nhiều cách khác nhau. Quan trọng nhất là toán tử song song (parallel composition), cho phép hai hay nhiều tiến trình chạy đồng thời và tương tác thông qua các kênh giao tiếp được chia sẻ. Mô hình này giúp đặc tả rõ ràng cách các thành phần trong một hệ thống phân tán hay một kiến trúc song song phối hợp với nhau. Ngữ nghĩa của các hệ thống này thường được định nghĩa bằng ngữ nghĩa hoạt động (operational semantics), mô tả từng bước chuyển đổi trạng thái của hệ thống.

II. Thách thức lớn khi lập trình song song và phân tán

Việc chuyển đổi từ mô hình lập trình tuần tự sang song song mang lại nhiều thách thức nghiêm trọng. Các lập trình viên phải đối mặt với một loạt các chế độ lỗi khó chịu. Tài liệu PROCESS ALGEBRA FOR PARALLEL AND DISTRIBUTED PROCESSING đã chỉ rõ các vấn đề này: "bế tắc (deadlocks), lỗi không thể lặp lại từ các điều kiện tranh chấp (race conditions), cùng với sự hỏng hóc của dữ liệu chia sẻ". Nguyên nhân sâu xa là các công cụ truyền thống như mutexes, semaphores, hay các giao thức truyền tin rất khó sử dụng một cách chính xác. Việc thiết kế ad-hoc là phổ biến, và thành công thường giống như một sự may mắn. Sự phức tạp nảy sinh từ vô số cách mà các thành phần có thể tương tác với nhau. Khi số lượng lõi xử lý hoặc các nút trong một hệ thống phân tán tăng lên, không gian trạng thái của hệ thống bùng nổ theo cấp số nhân. Việc kiểm thử thủ công không thể bao quát hết mọi kịch bản tương tác có thể xảy ra. Do đó, việc phát hiện các lỗi tinh vi liên quan đến đồng bộ hóa tiến trình trở nên cực kỳ khó khăn. Đây chính là lúc các phương pháp hình thức, đặc biệt là đại số tiến trình cho xử lý song song & phân tán, chứng tỏ giá trị của mình bằng cách cung cấp một phương pháp có hệ thống để phân tích và đảm bảo tính đúng đắn.

2.1. Phân tích bế tắc deadlock và điều kiện tranh chấp

Bế tắc (deadlock) là một trong những vấn đề nan giải nhất trong lập trình đồng thời. Nó xảy ra khi hai hoặc nhiều tiến trình chờ đợi lẫn nhau để giải phóng tài nguyên, tạo ra một vòng lặp chờ đợi vô tận khiến toàn bộ hệ thống bị ngưng trệ. Điều kiện tranh chấp (race condition) xảy ra khi hành vi của hệ thống phụ thuộc vào thứ tự thực thi không thể đoán trước của các hoạt động song song. Kết quả của một phép tính có thể sai lệch nếu một tiến trình đọc một giá trị đang được một tiến trình khác cập nhật. Các lỗi này rất khó tái tạo và gỡ lỗi vì chúng phụ thuộc vào thời gian. Đại số tiến trình cung cấp một khuôn khổ toán học để mô hình hóa hệ thống và phân tích các kịch bản này một cách hình thức. Bằng cách biểu diễn hệ thống dưới dạng các phương trình đại số, có thể sử dụng các công cụ tự động để khám phá không gian trạng thái và chứng minh rằng các trạng thái bế tắc là không thể đạt được.

2.2. Hạn chế của các mô hình phổ biến và sự cần thiết của đặc tả hình thức

Nhiều công cụ mô hình hóa phổ biến, chẳng hạn như sơ đồ UML, không cung cấp đủ sự chặt chẽ cho việc lập trình trong môi trường tương tranh. Các mô tả bằng văn xuôi hoặc sơ đồ thường mơ hồ và có thể bị diễn giải sai. Điều này dẫn đến các lỗi trong quá trình tích hợp hệ thống. Sự cần thiết của đặc tả hình thức (formal specification) trở nên rõ ràng. Một đặc tả hình thức sử dụng ngôn ngữ toán học với ngữ nghĩa được định nghĩa chính xác, loại bỏ sự mơ hồ. Như tác giả đã nhấn mạnh, "sức mạnh của nó [đại số tiến trình] đến từ việc cung cấp một cơ sở lý thuyết vững chắc cho tính tương tranh, cùng với một ký hiệu hình thức... không mơ hồ". Các phương pháp như lưới Petri (Petri Nets) hay mô hình tác nhân (Actor model) cũng là các cách tiếp cận hình thức, nhưng đại số tiến trình nổi bật với khả năng tính toán và suy luận dựa trên các quy tắc đại số, giúp đơn giản hóa việc chứng minh tính đúng đắn của hệ thống.

III. Top 2 phương pháp đại số tiến trình CSP và CCS

Trong thế giới của đại số tiến trình, hai hệ thống nền tảng và có ảnh hưởng lớn nhất là CSP và CCS. Cả hai đều được phát triển để lý giải về sự tương tranh, nhưng chúng tiếp cận vấn đề giao tiếp và đồng bộ hóa theo những cách hơi khác nhau. Việc lựa chọn giữa chúng thường phụ thuộc vào đặc điểm của hệ thống cần mô hình hóa. CSP, hay Hệ thống Giao tiếp Tuần tự, tập trung vào các sự kiện giao tiếp và cách chúng được đồng bộ hóa. Nó xem giao tiếp là một sự kiện mà cả bên gửi và bên nhận phải cùng tham gia tại một thời điểm. CCS, hay Phép tính Hệ thống Giao tiếp, lại tập trung vào cấu trúc của các tiến trình và khả năng quan sát hành vi của chúng từ bên ngoài. Nó sử dụng khái niệm hành động bổ sung (complementary actions) để mô hình hóa giao tiếp. Cả hai hệ thống này đều cung cấp các toán tử mạnh mẽ để xây dựng các tiến trình phức tạp từ những thành phần đơn giản. Chúng là những mô hình tính toán cơ bản, tạo tiền đề cho nhiều biến thể và mở rộng sau này, bao gồm cả phép tính pi (pi-calculus). Việc hiểu rõ hai phương pháp này là bước đầu tiên để áp dụng hiệu quả đại số tiến trình cho xử lý song song & phân tán vào giải quyết các bài toán thực tế, đặc biệt là trong việc xác minh hình thức các giao thức.

3.1. Phân tích Hệ thống Giao tiếp Tuần tự CSP

Hệ thống Giao tiếp Tuần tự (CSP), được phát triển bởi Tony Hoare, mô hình hóa các hệ thống dưới dạng các tiến trình tương tác với nhau thông qua các kênh. Điểm đặc trưng của CSP là cơ chế giao tiếp đồng bộ (synchronous communication). Khi một tiến trình muốn gửi dữ liệu qua một kênh, nó sẽ bị chặn cho đến khi một tiến trình khác sẵn sàng nhận dữ liệu trên cùng kênh đó. Sự kiện giao tiếp này được gọi là một 'rendezvous'. Mô hình này rất phù hợp để mô tả các hệ thống phần cứng hoặc các giao thức chặt chẽ nơi việc bắt tay (handshaking) là quan trọng. CSP cung cấp các mô hình ngữ nghĩa tinh vi như 'traces', 'failures', và 'divergences' để phân tích các khía cạnh khác nhau của hành vi tiến trình, bao gồm cả khả năng xảy ra bế tắc (deadlock). Ngôn ngữ lập trình Go với các 'goroutine' và 'channel' chịu ảnh hưởng sâu sắc từ các ý tưởng của CSP. Công cụ FDR4 là một trình kiểm tra mô hình nổi tiếng được sử dụng để tự động xác minh các thuộc tính của các hệ thống được đặc tả bằng CSP.

3.2. Khám phá Phép tính Hệ thống Giao tiếp CCS

Phép tính Hệ thống Giao tiếp (CCS), do Robin Milner phát triển, là một cách tiếp cận khác để mô hình hóa tương tranh. CCS tập trung vào đại số của các hành vi có thể quan sát được. Giao tiếp trong CCS được mô hình hóa bằng một cặp hành động bổ sung, ví dụ như 'send' và 'receive'. Khi hai hành động này xảy ra đồng thời, chúng 'hủy' lẫn nhau và tạo thành một hành động nội bộ không thể quan sát được, gọi là 'tau' (τ). CCS rất mạnh trong việc định nghĩa các khái niệm về sự tương đương giữa các tiến trình, chẳng hạn như 'bisimulation'. Hai tiến trình được coi là tương đương 'bisimilar' nếu chúng có thể mô phỏng hành vi của nhau ở mỗi bước. Khái niệm này cho phép đơn giản hóa và trừu tượng hóa các hệ thống phức tạp mà vẫn bảo toàn các thuộc tính hành vi quan trọng. CCS và các khái niệm của nó đã có ảnh hưởng lớn đến việc thiết kế các ngôn ngữ lập trình và các công cụ xác minh hình thức.

IV. Bí quyết mô hình hóa hệ thống động với Pi Calculus

Phép tính Pi (Pi-calculus) là một sự mở rộng của CCS, cũng được phát triển bởi Robin Milner và các cộng sự. Nó được tạo ra để giải quyết một hạn chế của các đại số tiến trình thế hệ đầu: chúng chỉ có thể mô hình hóa các hệ thống có cấu trúc liên kết tĩnh. Trong các hệ thống hiện đại, đặc biệt là các hệ thống di động hoặc hướng dịch vụ, các liên kết giao tiếp có thể được tạo ra, truyền đi và thay đổi một cách linh hoạt trong quá trình chạy. Pi-calculus giải quyết vấn đề này bằng cách cho phép các kênh giao tiếp chính là dữ liệu được truyền đi. Một tiến trình có thể gửi tên của một kênh cho một tiến trình khác, từ đó tạo ra một liên kết giao tiếp mới. Khả năng này được gọi là 'tính di động' (mobility) và là điểm cốt lõi của pi-calculus. Nó làm cho pi-calculus trở thành một công cụ cực kỳ mạnh mẽ để mô hình hóa hệ thống có cấu trúc liên kết động, chẳng hạn như các tác nhân di động, các kiến trúc hướng dịch vụ (SOA), hay các quy trình nghiệp vụ. Như đã đề cập trong Chương 5 và 7 của tài liệu gốc, pi-calculus được sử dụng để đặc tả hình thức các quy trình nghiệp vụ và các máy ảo cho tính di động hướng dịch vụ, chứng tỏ tính ứng dụng thực tiễn của nó.

4.1. Tính di động mobility và cấu trúc liên kết động

Điểm khác biệt cơ bản của phép tính pi (pi-calculus) so với CSPCCS là khả năng mô tả sự thay đổi trong cấu trúc giao tiếp của hệ thống. Trong các hệ thống tĩnh, các tiến trình và các kênh kết nối chúng được xác định trước. Tuy nhiên, trong nhiều ứng dụng thực tế, chẳng hạn như một người dùng kết nối vào mạng Wi-Fi, một dịch vụ web mới được đăng ký, hoặc một tác nhân phần mềm di chuyển giữa các máy chủ, cấu trúc liên kết này thay đổi liên tục. Pi-calculus nắm bắt được tính động này bằng cách cho phép 'tên' (đại diện cho các kênh) được gửi và nhận như những giá trị thông thường. Điều này cho phép một tiến trình học về các kênh mới và thiết lập các kết nối mới trong thời gian chạy. Khả năng này làm cho pi-calculus trở thành một mô hình tính toán lý tưởng cho các hệ thống phân tán hiện đại, nơi sự linh hoạt và khả năng thích ứng là yếu tố then chốt.

4.2. Vai trò của Pi calculus trong xác minh hình thức hệ thống

Nhờ khả năng mô tả các hệ thống động, phép tính pi (pi-calculus) đóng một vai trò quan trọng trong xác minh hình thức. Các nhà nghiên cứu có thể mô hình hóa các giao thức bảo mật phức tạp, nơi các khóa mã hóa (tương tự như các kênh) được trao đổi. Họ có thể phân tích xem liệu một kẻ tấn công có thể học được một khóa bí mật hay không. Trong lĩnh vực quy trình nghiệp vụ (Business Process), như được mô tả trong Chương 5 của tài liệu, pi-calculus giúp chuyển đổi các mô tả quy trình từ các ký hiệu như BPMN thành một đặc tả hình thức. Từ đó, có thể phân tích các thuộc tính như tính đúng đắn, không có bế tắc (deadlock), và đảm bảo quy trình luôn có thể hoàn thành. Mặc dù việc phân tích các mô hình pi-calculus có thể phức tạp về mặt tính toán, nhưng nó cung cấp một mức độ đảm bảo cao về sự chính xác của các hệ thống có hành vi tương tác thay đổi liên tục.

V. Hướng dẫn ứng dụng đại số tiến trình trong thực tiễn

Lý thuyết về đại số tiến trình đã được áp dụng thành công vào nhiều lĩnh vực thực tiễn, giải quyết các vấn đề cụ thể trong xử lý song song & phân tán. Cuốn PROCESS ALGEBRA FOR PARALLEL AND DISTRIBUTED PROCESSING đã dành riêng ba phần để giới thiệu các ứng dụng này: Lập trình song song, Hệ thống phân tán và Hệ thống nhúng. Trong lĩnh vực lập trình song song, các kỹ thuật dựa trên đại số tiến trình giúp song song hóa các thuật toán cho các kiến trúc song song đa lõi. Chẳng hạn, Chương 1 trình bày cách sử dụng một ngôn ngữ máy ảo được định nghĩa bằng đại số tiến trình để tổng hợp và xác minh các chương trình cho bộ xử lý Cell BE, đảm bảo phiên bản song song tương đương với phiên bản tuần tự. Trong các hệ thống phân tán, đại số tiến trình được dùng để đặc tả và phân tích các hệ thống phức tạp như middleware và kiến trúc hướng dịch vụ (SOA). Chương 6 sử dụng LOTOS (một đại số tiến trình tiêu chuẩn ISO) để hình thức hóa việc xây dựng các hệ thống middleware. Đối với hệ thống nhúng, nơi tài nguyên và thời gian là các yếu tố quan trọng, các phương pháp hình thức giúp đảm bảo độ tin cậy. Chương 10 phát triển PARS, một cặp đại số tiến trình để đặc tả cả tiến trình và hành vi của bộ lập lịch, đảm bảo các ràng buộc thời gian thực được đáp ứng.

5.1. Mô hình hóa kiến trúc song song và xử lý đa lõi

Sự bùng nổ của bộ xử lý đa lõi đặt ra yêu cầu cấp thiết về các công cụ và phương pháp để khai thác hiệu quả sức mạnh tính toán. Đại số tiến trình cung cấp một cách tiếp cận có hệ thống cho vấn đề này. Như được trình bày trong Phần I của tài liệu, các nhà nghiên cứu đã phát triển các phương pháp luận hình thức để tinh chỉnh (refine) một thuật toán tuần tự thành một phiên bản song song tương đương. Ví dụ, Chương 1 mô tả bộ công cụ Coconut, nhắm vào bộ xử lý Cell BE. Công cụ này sử dụng một biểu diễn dựa trên đồ thị để nắm bắt luồng dữ liệu và luồng điều khiển của chương trình. Vai trò của đại số tiến trình ở đây là định nghĩa ngôn ngữ cho một máy ảo, sau đó thực hiện xác minh hình thức để đảm bảo tính đúng đắn của phiên bản đã được lập lịch song song. Cách tiếp cận này giúp lập trình viên tập trung vào việc tối ưu hiệu suất mà không phải lo lắng về các lỗi tương tranh như bế tắc (deadlock).

5.2. Đặc tả middleware và hệ thống phân tán phức tạp

Hệ thống phân tán tự nhiên là một lĩnh vực ứng dụng lý tưởng cho đại số tiến trình. Chương 4 giới thiệu mCRL2, một đại số tiến trình được thiết kế đặc biệt cho các ứng dụng phân tán, hỗ trợ các kiểu dữ liệu trừu tượng và thời gian. Chương 5 và 6 tập trung vào một lĩnh vực đang phát triển mạnh là kiến trúc hướng dịch vụ (SOA) và middleware. Chương 5 sử dụng phép tính pi (pi-calculus) để đặc tả hình thức các quy trình nghiệp vụ, cho phép phân tích các thuộc tính đúng đắn. Trong khi đó, Chương 6 của tài liệu sử dụng LOTOS để định nghĩa một ngôn ngữ mô tả kiến trúc, giúp cả nhà cung cấp và người tích hợp dịch vụ có một đặc tả không mơ hồ, từ đó có thể chứng minh các thuộc tính thời gian của kiến trúc. Những ứng dụng này cho thấy đại số tiến trình không chỉ là công cụ lý thuyết mà còn là một phương tiện thực tiễn để xây dựng các thuật toán phân tán và hệ thống đáng tin cậy.

28/09/2025

Trích đoạn nội dung tài liệu

Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page i 2008-10-24 #1 PROCESS ALGEBRA FOR PARALLEL AND DISTRIBUTED PROCESSING www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page ii 2008-10-24 #2 Chapman & Hall/CRC Computational Science Series SERIES EDITOR Horst Simon Associate Laboratory Director, Computing Sciences Lawrence Berkeley National Laboratory Berkeley, California, U. AIMS AND SCOPE This series aims to capture new developments and applications in the field of computational sci- ence through the publication of a broad range of textbooks, reference works, and handbooks. Books in this series will provide introductory as well as advanced material on mathematical, sta- tistical, and computational methods and techniques, and will present researchers with the latest theories and experimentation. The scope of the series includes, but is not limited to, titles in the areas of scientific computing, parallel and distributed computing, high performance computing, grid computing, cluster computing, heterogeneous computing, quantum computing, and their applications in scientific disciplines such as astrophysics, aeronautics, biology, chemistry, climate modeling, combustion, cosmology, earthquake prediction, imaging, materials, neuroscience, oil exploration, and weather forecasting.

PUBLISHED TITLES PETASCALE COMPUTING: Algorithms and Applications Edited by David A. Bader PROCESS ALGEBRA FOR PARALLEL AND DISTRIBUTED PROCESSING Edited by Michael Alexander and William Gardner www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page iii 2008-10-24 #3 PROCESS ALGEBRA FOR PARALLEL AND DISTRIBUTED PROCESSING EDITED BY MICHAEL ALEXANDER WILLIAM GARDNER www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page iv 2008-10-24 #4 Cover Image Credit: Intel Teraflops Research Chip Wafer from Intel, used with permission. Chapman & Hall/CRC Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2009 by Taylor & Francis Group, LLC Chapman & Hall/CRC is an imprint of Taylor & Francis Group, an Informa business No claim to original U. Government works Printed in the United States of America on acid-free paper 10 9 8 7 6 5 4 3 2 1 International Standard Book Number-13: 978-1-4200-6486-5 (Hardcover) This book contains information obtained from authentic and highly regarded sources.

Reasonable efforts have been made to publish reliable data and information, but the author and publisher can- not assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint. Except as permitted under U.

Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.com (http://www.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that pro- vides licenses and registration for a variety of users.

For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged. Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe. Library of Congress Cataloging-in-Publication Data Process algebra for parallel and distrubuted processing / editors, Michael Alexander and William Gardner. -- (Chapman & Hall/CRC computational science series) Includes bibliographical references and index.

Electronic data processing--Distributed processing. Alexander, Michael, 1970 Sept. Gardner, William, 1952- QA76.01’51--dc22 2008029295 Visit the Taylor & Francis Web site at http://www.com and the CRC Press Web site at http://www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page v 2008-10-24 #5 Contents Foreword vii Acknowledgments ix Introduction xi Editors xix Contributors xxi Part I Parallel Programming 1 1 Synthesizing and Verifying Multicore Parallelism in Categories of Nested Code Graphs 3 Christopher Kumar Anand and Wolfram Kahl 2 Semi-Explicit Parallel Programming in a Purely Functional Style: GpH 47 Hans-Wolfgang Loidl, Phil Trinder, Kevin Hammond, Abdallah Al Zain, and Clem Baker-Finch 3 Refinement of Parallel Algorithms 77 Fredrik Degerlund and Kaisa Sere Part II Distributed Systems 97 4 Analysis of Distributed Systems with mCRL2 99 Jan Friso Groote, Aad Mathijssen, Michel A. Usenko, and Muck van Weerdenburg 5 Business Process Specification and Analysis 129 Uwe Nestmann and Frank Puhlmann 6 Behavioral Specification of Middleware Systems 161 Nelson Souto Rosa v www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page vi 2008-10-24 #6 vi Contents 7 Abstract Machine for Service-Oriented Mobility 199 Hervé Paulino 8 Specifying and Implementing Secure Mobile Applications 235 Andrew Phillips Part III Embedded Systems 285 9 Calculating Concurrency Using Circus 287 Alistair A.

McEwan 10 PARS: A Process Algebraic Approach to Resources and Schedulers 331 MohammadReza Mousavi, Michel A. Reniers, Twan Basten, and Michel Chaudron 11 Formal Approach to Derivation of Concurrent Implementations in Software Product Lines 359 Sergio Yovine, Ismail Assayad, Francois-Xavier Defaut, Marcelo Zanconi, and Ananda Basu Index 403 www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page vii 2008-10-24 #7 Foreword This book brings together the state of the art in research on applications of process algebras to parallel and distributed processing. Process algebras constitute a successful field of computer science. This field has existed for some 30 years and stands nowadays for an extensive body of theory of which much has been deeply absorbed by the researchers in computer science.

Moreover, the theoretical achievements of the field are to a great extent justified by applications. The applications, in turn, strongly influence how the field evolves; some of the field’s success may be attributed to frequently addressing needs that arose in practice. Meanwhile, an explosion of complex systems of interacting components has been going on since the emergence of parallel and distributed processing. The complex- ity of the systems in question arises to a great extent from the many ways in which their components can interact.

In developing a complex system of interacting com- ponents, it is important to be able to describe the behavior of the system in a precise way at various levels of detail, and to analyze it on the basis of the descriptions. Pro- cess algebras were and are developed for that purpose. Roughly speaking, a process algebra provides a collection of operators, a collection of equational laws for these operators, and a mathematical model of these laws. The latter allows for the behavior of a system to be described as composed of the emergent behaviors of several inter- acting components and for the described behavior to be analyzed by mere algebraic calculations.

The advent of process algebras was marked by the introduction of CCS in the seminal monograph A Calculus of Communicating Systems by Milner, published as volume 92 of Springer’s Lecture Notes in Computer Science in 1980; the elaboration of CSP in the influential paper “A theory of communicating sequential processes” by Brookes, Hoare, and Roscoe, published in the Journal of the ACM in 1984; and the presentation of ACP as a strict algebraic theory in the paper “Process algebra for synchronous communication” by Bergstra and Klop, published in Information and Control in 1984. The very first applications of process algebras were mostly concerned with the description and analysis of communication protocols. Later on, the applications became more and more advanced. Often, they were concerned with the description and analysis of embedded systems, and more recently with Internet-based distributed systems.

The applications of process algebras led to a number of developments. The very first applications brought about the development of basic algebraic verifi- cation techniques, i., basic techniques to establish—on the basis of algebraic vii www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page viii 2008-10-24 #8 viii Foreword calculations—whether the actual behavior of a system is in agreement with its expected behavior. The construction of basic tools to facilitate description and anal- ysis followed. Later applications led to extensions of existing process algebras and the development of more advanced algebraic verification techniques.

Both make it easier to describe and analyze the behaviors of the systems often encountered in prac- tice nowadays: systems that may change their communication topology dynamically, systems that must react within a certain amount of time under certain circumstances, systems that exhibit at certain stages behavior that is stochastic in nature, systems that in their behavior depend on continuously changing variables other than time, etc. Experience with the existing process algebras led also to the development of spe- cial process algebras for the definition of the semantics of programming languages that support parallel programming or the design of microprocessors that utilize par- allelism to speed up instruction processing. It is difficult to foresee future developments and applications, yet some tendencies are noticeable. One area that is gaining momentum is specialized process algebras that are tailored to a certain paradigm for parallel or distributed computing or even to a certain technology for parallel or distributed computing.

This fits in with the tendency to apply process algebras to describe and analyze a prototype of a certain class of systems. Such applications can be useful in understanding certain aspects of the systems of an emerging class. However, the adequacy of the prototypes may be a major issue, because often drastic simplifications are needed to keep the description manageable. There is also a tendency to apply process algebras outside the realm of computing, which shows promise.

Many theoretical developments in the field of process algebras were collected by Bergstra, Ponse, and Smolka in the Handbook of Process Algebra, published in 2001. In 2005, a workshop was organized in Bertinoro, Italy, to celebrate the first 25 years of research in the field. Several special issues of the Journal of Logic and Algebraic Programming are devoted to this workshop. Despite the importance of applications of process algebras for the success of the field, both the handbook and these spe- cial issues concentrate strongly on the theoretical achievements.

This shortcoming is compensated for in a splendid way by this book, which brings together the state of the art in research on applications of process algebras. Kees Middelburg Programming Research Group University of Amsterdam, the Netherlands www.com Alexander/Process Algebra for Parallel and Distributed Processing C6486 C000 Finals Page ix 2008-10-24 #9 Acknowledgments The editors are very grateful to those listed below who served as peer reviewers for contributions to this book. Their diligent and conscientious efforts not only helped us to make the final selection of chapters but also provided numerous valuable sug- gestions to the authors, resulting in a high-quality collection. Luca Aceto John Derrick School of Computer Science Department of Computer Science Reykjavik University University of Sheffield Reykjavik, Iceland Sheffield, South Yorkshire, United Kingdom Lorenzo Bettini Dipartimento di Informatica Gaétan Hains Universita’ di Torino Laboratoire d’Algorithmique, Torino, Italy Complexité et Logique Tommaso Bolognesi University of Paris-Est CNR—Istituto di Scienza e Tecnologie Créteil, France dell’Informazione “A.

Faedo” and Pisa, Italy SAP Labs France Gerhard Chroust Mougins, France Systems Engineering and Automation Institute of Systems Sciences Michael G. Hinchey Johannes Kepler University of Linz Lero—The Irish Software Engineering Linz, Austria Research Centre Philippe Clauss University of Limerick Scientific Parallel Computing Limerick, Ireland and Imaging Université Louis Pasteur Thomas John Strasbourg, France Department of Information Systems Vienna University of Economics and Pedro R. D’Argenio Business Administration Department of Computer Science Vienna, Austria Facultad de Matemática, Astronomia y Fisica Kenneth B. Kent Universidad Nacional de Faculty of Computer Science Córdoba—CONICET University of New Brunswick Córdoba, Argentina Fredericton, New Brunswick, Canada ix www.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ