Các mô hình tương tranh pot

124 448 4
Các mô hình tương tranh pot

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN HOÀNG CHÍ THÀNH CÁC HÌNH TƯƠNG TRANH Hà Nội 2 MỞ ĐẦU Mô tả, thiết kế và điều khiển hệ thống là các vấn đề chính cần đặt ra khi chúng ta xây dựng một hệ thống nào đó và sử dụng nó trong thực tiễn. Lý thuyết mạng là lý thuyết tổ chức hệ thống được C.A. Petri khởi xướng vào đầu thập niên sáu mươi của thế kỷ trước trong Luận án Tiến sĩ của ông. Từ đó đến nay các nhà tin học trên thế giới đã nghiên cứu phát triển nhiều hình mạng khác nhau và ứng dụng chúng vào nhiều lĩnh vực khoa học khác nhau. Ưu điểm chính của lý thuyết mạng là khả năng nhận biết và biểu diễn sự tương tranh, an toàn, xung đột, sống, tắc nghẽn , cung cấp kỹ thuật phân tích và thiết kế hệ thống và cảnh báo sự hữu hạn của các tài nguyên của hệ thống. Bên cạnh lý thuyết mạng nhiều hình biểu diễn tương tranh khác đã ra đời. Một số hình dựa trên ngôn ngữ hình thức như: ngôn ngữ vết của A. Mazurkiewicz, ngôn ngữ CSP của C.A.R. Hoare, ngôn ngữ CCS của R. Milner, ngôn ngữ COSY của P. Lauer, ngôn ngữ nửa vết của H.C. Thành Công cụ đại số cũng được sử dụng để biểu diễn tương tranh. Từ đó ra đời: đại số các quá trình của V.E. Kotov và của J.A. Bergstra, cấu trúc biến cố của G. Winskel Do khuôn khổ của chuyên đề, chúng tôi chỉ chọn lựa một số hình tiêu biểu nhất để đưa vào các bài giảng với mục tiêu giúp người học nắm bắt được các khái niệm mới, kỹ thuật cơ bản và ứng dụng chúng vào các vấn đề thực tiễn như: hệ thống thông tin, cơ sở dữ liệu, thiết kế mạch lôgic, kiến trúc máy tính, lập trình song song, công nghệ phần mềm, điều khiển hệ thống Cuốn sách là nội dung chuyên đề dành cho học viên cao học và nghiên cứu sinh chuyên ngành Tin học, Công nghệ Thông tin, Đảm bảo Toán học cho Máy tính và Các hệ thống tính toán mà tác giả đã giảng dạy nhiều năm tại ĐHQG Hà Nội và một số trường đại học khác. Nhiều thảo luận lý thú giữa tác giả với đồng nghiệp và học viên đã góp phần phát triển nội dung và nâng cao chất lượng của cuốn sách. Chúng tôi hy vọng rằng cuốn sách nhỏ này sẽ thật sự cần thiết cho những ai muốn nghiên cứu, khám phá những vấn đề kỳ diệu và hóc búa trong các hệ thống tương tranh. Tác giả 3 Chương 1 HỆ TƯƠNG TRANHCÁC HÌNH BIỂU DIỄN 1.1 Khái niệm về tương tranh Trong đời sống hàng ngày, chúng ta thường thấy các sự kiện mà các hành động trong nó xảy ra một cách tuần tự hoặc không tuần tự. Tương ứng với các sự kiện trên ta có các quá trình và chúng cũng được phân thành hai loại: các quá trình tuần tự và các quá trình không tuần tự. Một số quá trình được kết hợp lại với nhau tạo thành một hệ thống. Hệ thống tuần tự được tạo bởi các quá trình tuần tự. Các quá trình không tuần tự tạo nên hệ thống không tuần tự. Trong một hệ thống tuần tự tại mỗi thời điểm chỉ có một hành động xuất hiện (được thực hiện). Hành động sau xảy ra khi hành động trước đó đã kết thúc. Chúng chỉ có thể kế thừa kết quả của nhau. Chẳng hạn: - Khách xếp hàng mua hàng khi chỉ có một nhân viên bán hàng - Các thuật toán tính toán tuần tự - Các otomat hữu hạn… Còn trong hệ thống không tuần tự, tại một thời điểm có thể xảy ra đồng thời nhiều hành động. Các hành động này có thể cạnh tranh lẫn nhau trong việc sử dụng tài nguyên. Trước khi đưa ra định nghĩa hệ tương tranh chúng ta xét một số ví dụ cụ thể sau đây. Ví dụ 1.1: Quá trình sản xuất công nghiệp Giả sử một thiết bị nào đó được tạo ra từ việc chế tạo và lắp ráp ba chi tiết. Việc chế tạo từng chi tiết không phụ thuộc vào nhau. Việc lắp ráp thì thực hiện tuần tự: trước tiên lắp ráp hai chi tiết đầu sau đó lắp thêm chi tiết thứ ba. Hình 1.1. Quy trình tổ chức chế tạo và lắp ráp song song một thiết bị 4 Ta có thể đưa quá trình sản xuất thiết bị trên về một hệ thống tương tranh như sau: chế tạo đồng thời hai chi tiết 1 và 2, việc lắp ráp hai chi tiết 1 và 2 đồng thời với việc chế tạo chi tiết thứ ba, cuối cùng lắp ráp thêm chi tiết 3. Như vậy, trong hệ thống sản xuất này việc chế tạo chi tiết 1 và việc chế tạo chi tiết 2 là tương tranh với nhau. Chúng chỉ có thể được thực hiện đồng thời nếu không tranh chấp các máy móc Quá trình sản xuất một sản phẩm có thể biểu diễn ngắn gọn bằng sơ đồ sau: 1  2 ; 3  4 ; 5 Với việc tổ chức sản xuất như trên, ta thấy ngay các lợi ích sau đây: 1) Các chi tiết kỹ thuật được chế tạo trên các máy khác nhau, việc chế tạo đồng thời có thể xoá bỏ thời gian chết của các máy. 2) Giảm thời gian chế tạo ra một sản phẩm. Ví dụ 1.2: Tính giá trị của một biểu thức toán học Giả sử ta cần phải tính giá trị của biểu thức sau đây: A * B - (C + D) / (E - F) Hình 1.2. Tổ chức tính toán song song một biểu thức Sơ đồ tính toán giá trị biểu thức như trên giống như sơ đồ quá trình sản xuất trong Ví dụ 1.1. Nếu máy tính có ít nhất hai bộ xử lý thì quá trình tính giá trị biểu thức sẽ nhanh hơn nhiều. Ví dụ 1.3: Chu trình xử lý Xét chu trình tính toán được viết trên ngôn ngữ lập trình Pascal sau đây: for i := 1 to 100 do if A[i] > 0 then A[i] := A[i] + 1 else A[i] := 0 ; 5 100 lệnh if trên có thể được thực hiện đồng thời nếu máy tính có trên 100 bộ xử lý. Tuy nhiên, không phải chu trình nào cũng có thể thực hiện đồng thời được. Chẳng hạn, xét chu trình sau đây: S := 0 ; for i := 1 to 100 do S := S + A[i] ; Đây là các lệnh lặp phụ thuộc. Trong trường hợp này có nhiều cách giải quyết. Chẳng hạn, ta tính toán đồng thời theo sơ đồ sau đây: Hình 1.3. Một sơ đồ tính toán song song Ví dụ 1.4: Tương tranh trong máy tính Tương tranh trong máy tính được thể hiện ở các máy tính có nhiều bộ xử lý (multi-processor). Đó là các máy tính có thể xử lý đồng thời nhiều quá trình tại cùng một thời điểm. Hình 1.4. Sơ đồ máy tính song song Với kỹ thuật này nảy sinh các vấn đề sau đây mà ta cần phải giải quyết: 6 - Sự chung sống của các bộ xử lý thuộc nhiều chủng loại khác nhau - Số lượng tối đa của các bộ xử lý trong một máy tính - Phần mềm để tự động hoá các quá trình tương tranh trên máy tính nhiều bộ xử lý… 1.2 Định nghĩa hệ tương tranh Một hệ thống được gọi là hệ tương tranh (concurrent system) nếu nó được hợp thành từ một số hệ con (tuần tự) và có các biến cố được xảy ra một cách đồng thời. Hệ tương tranh là đồng bộ nếu các hệ con của nó có chung một số biến cố và trong quá trình hoạt động của hệ chúng xuất hiện trùng hợp trong tất cả các hệ con có chung các biến cố này. Điều này chỉ ra rằng, mỗi biến cố chung xuất hiện ở bước nào đó thì nó phải có khả năng xuất hiện ở bước đó trong tất cả các hệ con có chung biến cố này. Số lần xuất hiện và thứ tự xuất hiện của biến cố chung trong các hệ con phải giống nhau. 1.3 Sơ lược về các hình biểu diễn tương tranh 1) hình đầu tiên để biểu diễn hệ tương tranh được đề xuất bởi C.A. Petri (Đức) vào năm 1962 trong Luận án Tiến sĩ của ông. Đó là mạng Petri. Nếu otomat hữu hạn chỉ tả được các hệ thống tuần tự thì mạng Petri, một công cụ toán học được phát triển trên cơ sở của otomat hữu hạn, tả được các hệ thống không tuần tự mà trong đó có các hệ thống tương tranh. Hiện nay mạng Petri vẫn được nghiên cứu phát triển mạnh mẽ cả về lý thuyết lẫn ứng dụng [5,7,10,11]. Đã có hơn mười loại mạng khác nhau và được áp dụng vào rất nhiều lĩnh vực. 2. Ngôn ngữ vết (trace language) do A. Mazurkiewicz (Ba Lan) đưa ra vào năm 1977. Đây là một ngôn ngữ được phát triển từ ngôn ngữ hình thức để mô tả hành vi của các hệ tương tranh [1]. 3. CSP (Communicating Sequential Processes) là một ngôn ngữ để biểu diễn các hệ tương tranh [3] do C.A.R. Hoare (Anh) đưa ra vào năm 1978. 4. CCS (Calculus of Communicating Systems) được R. Milner (Anh) xây dựng vào năm 1980 như một công cụ toán học rõ ràng và tổng quát về tương tranh và được thể hiện như một ngôn ngữ lập trình [4]. Ngoài những hình kể trên, các hệ tương tranh còn được tả bằng các hình sau đây: - Đại số các quá trình (Algebra of Processes) của J.A. Bergstra (Hà Lan) 7 - COSY (COncurent SYstem) do P. Lauer (Canada) đề xuất - Cấu trúc biến cố (Event Structure) của G. Winskel (Đức), và nhiều hình khác. Một số nhóm nghiên cứu các hệ tương tranh trên thế giới: Hệ tương tranh được nhiều nhà khoa học trên thế giới nghiên cứu và phát triển tại các trường đại học và các viện nghiên cứu. - Tại Đại học Bonn (Đức), nơi ra đời của mạng Petri, có một nhóm các nhà khoa học có tên tuổi như: C.A. Petri, E. Best, W. Reisig, W. Brauer, U. Goltz… phát triển nhiều hình khác nhau của mạng Petri. - Đại học Aarhus (Đan Mạch) xây dựng các hình mạng Petri màu và ứng dụng trong thiết kế. - Đại học Amsterdam (Hà Lan) với tên tuổi của G. Rozenberg và J.W. de Baker chủ trì dự án REX (Research and Education in Concurrent Systems) - Đại học Oxfort (Anh) là nơi C.A.R. Hoare và R. Milner xây dựng trường phái hình các hệ tương tranh bằng ngôn ngữ trừu tượng. - Trường phái dùng monoid của đại số để phát triển lý thuyết tương tranh được nghiên cứu tại Đại học Milan (Italia) với tên tuổi các nhà khoa học như: U. Montarari, F. de Cindio, C. Simone… - A. Mazurkiewicz và J. Winkowski chủ trì nhóm nghiên cứu tương tranh tại Viện Công nghệ Thông tin, Viện Hàn lâm Khoa học Ba Lan. - Đại học Tổng hợp Novosibierk (Nga) có một nhóm các nhà khoa học trẻ nghiên cứu về tương tranh bằng các công cụ đại số như: V.E. Kotov, L. Cherkasova… - P.S. Thiagarajan đã xây dựng một nhóm nghiên cứu mạnh về tương tranh tại Viện Toán học Chennai (Ấn độ). - Dự án châu Âu ESPRIT có trụ sở tại Đại học Newcastle (Anh) dưới sự điều hành của R.P. Hopkin với 44 nhà khoa học tham gia trực tiếp trong 10 nhóm làm việc (WG) sau đây: 1. WG.1: Các lớp modul mạng 2. WG.2: phỏng tương đương 3. WG.3: Các kỹ thuật chứng minh 4. WG.4-5: Các hình trừu tượng 5. WG.6: Các nghiên cứu thời sự 6. WG.7: Đặc tả 8 7. WG.8: Lập trình 8. WG.9-10: Công bố kết quả Hội thảo khoa học hàng năm toàn thế giới về tương tranh (CONCUR) được tổ chức tại nhiều trung tâm nghiên cứu trên khắp các châu lục đã thu hút sự chú ý của nhiều người về Lý thuyết Tương tranh. Nhiều kết quả nghiên cứu lý thuyết và ứng dụng của hệ tương tranh đã được trình bày tại hội thảo này. 9 Chương 2 MẠNG PETRI 2.1 Ví dụ về mạng Petri Chúng ta nghiên cứu việc tổ chức cho mượn sách và nhận trả lại sách ở một thư viện. Hình 2.1. Cấu trúc đơn giản của một thư viện Đây là cấu trúc đơn giản của một thư viện. Bạn đọc có thể truy nhập vào thư viện thông qua ba bàn: bàn yêu cầu, bàn nhận sách và bàn trả sách. Trong thư viện tất cả các sách đều được để trên giá và mỗi cuốn sách có một thẻ mục. a) Bạn đọc yêu cầu: Nếu cuốn sách có trong thư viện thì thủ thư lấy sách, thẻ mục của cuốn sách đó được cập nhật và bạn đọc nhận sách tại bàn nhận sách. b) Bạn đọc trả sách: Thẻ mục của sách được cập nhật và sách được đặt trở lại giá. Làm mịn sơ đồ thư viện trên bằng cách thêm vào hai bộ phận làm việc là: “cho mượn sách” và “nhận lại sách” và hai thành phần thụ động là “kho sách” và “hộp thẻ mục sách đã mượn”. Khi đó ta có sơ đồ mới chi tiết hơn của một thư viện như dưới đây: Hình 2.2. Sơ đồ tổ chức đầy đủ của một thư viện 10 Đây là một ví dụ về mạng Petri. 2.2 Các khái niệm cơ sở 2.2.1 Mạng Petri Định nghĩa 2.1: Bộ ba N = (S, T; F) được gọi là một mạng Petri nếu: 1) S và T là hai tập hợp không giao nhau. Các phần tử của tập S được gọi là S-phần tử, còn các phần tử của tập T được gọi là T-phần tử. 2) F  (S  T)  (T  S) là một quan hệ nhị nguyên và được gọi là lưu đồ của mạng N. Người ta thường biểu diễn đồ thị định hướng cho mạng Petri bằng cách coi mỗi phần tử của tập S  T là một đỉnh của đồ thị. Các S-phần tử được biểu diễn bằng các hình tròn, còn các T-phần tử được biểu diễn bằng các hình vuông. Quan hệ lưu đồ F chính là các cung nối giữa các đỉnh tương ứng. Mỗi cung của quan hệ lưu đồ F chỉ nối hai đỉnh khác loại. Do vậy, đồ thị biểu diễn một mạng Petri là một đồ thị định hướng hai phần. Giả sử N là một mạng Petri. Nếu không nhầm lẫn đôi khi ta viết N thay cho S  T. Đó chính là tập các phần tử của mạng N. i) Với mỗi phần tử x  N thì:  x = { y  N  (y, x)  F } - được gọi là tập vào của x, x  = { y  N  (x, y)  F } - được gọi là tập ra của x. với mỗi tập con X  N thì:  X =  Xx  x và X  =  Xx x  Chú ý rằng, với cặp phần tử x, y  N ta có: x   y  y  x  ii) Cặp (s, t)  S  T được gọi là một nút (self-loop) nếu (s, t)  F và (t, s)  F. Mạng N được gọi là tinh khiết (pure) nếu quan hệ lưu đồ F không chứa một nút nào. iii) Phần tử x  N được gọi là cô lập nếu  x  x  = . iv) Mạng N được gọi là đơn giản (simple) nếu và chỉ nếu các phần tử khác nhau không có chung tập vào và tập ra, nghĩa là: x, y  N : (  x =  y )  ( x  = y  )  x = y. . búa trong các hệ thống tương tranh. Tác giả 3 Chương 1 HỆ TƯƠNG TRANH VÀ CÁC MÔ HÌNH BIỂU DIỄN 1.1 Khái niệm về tương tranh Trong đời sống hàng ngày, chúng ta thường thấy các sự kiện mà các hành động. và tổng quát về tương tranh và được thể hiện như một ngôn ngữ lập trình [4]. Ngoài những mô hình kể trên, các hệ tương tranh còn được mô tả bằng các mô hình sau đây: - Đại số các quá trình (Algebra. tự xuất hiện của biến cố chung trong các hệ con phải giống nhau. 1.3 Sơ lược về các mô hình biểu diễn tương tranh 1) Mô hình đầu tiên để biểu diễn hệ tương tranh được đề xuất bởi C.A. Petri (Đức)

Ngày đăng: 29/03/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan