Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 124 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
124
Dung lượng
1,26 MB
Nội dung
ĐẠ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 MÔ 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 mô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 môhình biểu diễn tươngtranh khác đã ra
đời. Một số mô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ố mô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ƯƠNGTRANH VÀ CÁCMÔ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ươngtranh 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ươngtranh 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ươngtranh 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ươngtranh 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ươngtranh 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ươngtranh (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ươngtranh 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ácmôhình biểu diễn tương tranh
1) Môhình đầu tiên để biểu diễn hệ tươngtranh đượ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ỉ mô 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, mô 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ươngtranh [1].
3. CSP (Communicating Sequential Processes) là một ngôn ngữ để biểu
diễn các hệ tươngtranh [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 môhình kể trên, các hệ tươngtranh còn được mô tả bằng
các mô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 môhình khác.
Một số nhóm nghiên cứu các hệ tươngtranh trên thế giới:
Hệ tươngtranh đượ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 môhình khác nhau của mạng
Petri.
- Đại học Aarhus (Đan Mạch) xây dựng cácmô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 môhìnhcác hệ tươngtranh 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ươngtranh 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: Mô phỏng tương đương
3. WG.3: Các kỹ thuật chứng minh
4. WG.4-5: Cácmô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ươngtranh (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ươngtranh đã đượ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áchình tròn, còn các T-phần tử được biểu diễn bằng cáchì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)