Quan hệ giữa các thành phần trong Wave Interpreter

Một phần của tài liệu xây dựng bộ phân tích cú pháp chương trình (Trang 65 - 68)

i. Xóa bỏ tất cả các biến frontal, chuỗi wave liên quan tới track node này Xóa bỏ track node

3.6Quan hệ giữa các thành phần trong Wave Interpreter

Tổ chức các thành phần trong WI và quan hệ giữa chúng được thể hiện trong Hình 3 -34: Quan hệ giữa các thành phần trong Wave Interpreter. Các thông điệp đến WI đều thông qua Communication Processor với 3 kiểu thông điệp chính là Wave, Echo và Tail. Type Destination Address Source Address Data Communication Queue Communication Message

Hình 3-34: Quan hệ giữa các thành phần trong Wave Interpreter - 66 - PARSING UNIT (PU) TRACK PROCESSOR (TP) EXECUTION PROCESSOR (EP) trackless sectors, code injection, hop, action track operations TQ Q resumed tails, activated sectors propagations, echoes, tails CQ wave, create KN echoes, tails waves WQ KN TN

Wave nhận được từ CP sẽ được gửi vào WQ để phân tích và xử lý, ngoài ra wave có thể được chèn vào WQ một cách trực tiếp từ WI, hoặc từ TP khi kích hoạt các nhánh để gửi các suspended wave. Thành phần EP cũng có thể gửi các wave vào WQ khi xử lý các sector, các toán tử code injection của ngôn ngữ Wave. Sự lan truyền của wave phụ thuộc vào TP và EP. Nếu trạng thái track của wave được kích hoạt, sự lan truyền của wave phụ thuộc gián tiếp vào EP, đầu tiên EP sẽ gửi thông điệp điều khiển vào TQ, thông điệp sẽ được TP xử lý và chuỗi wave được lan truyền khi track tương ứng được kích hoạt.

Thông điệp ECHO và TAIL được CP và TP xử lý. Mỗi khi chuỗi wave kết thúc trong chế độ track EP sẽ tạo ra thông điệp ECHO và gửi vào TQ. Các suspended tail sẽ được TP gửi đi sau khi xử lý các ECHO mà điều kiện của rule được thỏa mãn để kích hoạt track.

Các thành phần xử lý trong WI độc lập với nhau, mỗi thành phần sẽ xử lý dữ liệu trong các hàng đợi riêng. Tuy nhiên, EP có thể coi là thành phần xử lý chính, khi EP chịu trách nhiệm điều khiển toàn bộ quá trình xử lý wave và khởi tạo các thông điệp điều khiển tới các thành phần xử lý khác.

WI là một hệ thống mở hoàn toàn khi 3 thông điệp WAVE, ECHO và TAIL có thể gửi trực tiếp từ bên ngoài vào trong hệ thống tới các node và link hoặc giữa các track. Người dùng có thể tương tác với WI bằng cách gửi các thông điệp tới CP hoặc trực tiếp gửi vào WQ thông qua các giao diện được cung cấp trên máy có cài đặt WI.

Tương ứng với 3 loại thông điệp, WI có thể được tổ chức thành 3 luồng điều khiển chính cho từng thông điệp và thực thi một cách hoàn toàn độc lập. Các luồng điều khiền đó chính là đầu vào WI từ bên ngoài hệ thống, không những thế chúng còn tương tác qua lại lẫn nhau trong WI tạo thành chu trình xử lý các đoạn mã wave trên các node trong KN. Các hoạt động cơ bản của WI và tương tác giữa chúng được mô tả như trong Hình 3 -35.Trước tiên, chúng tôi sẽ đưa ra cái nhìn tổng quát về các luồng chính này, sau đó sẽ mô tả chi tiết chúng trong phần tiếp theo.

• Luồng xử lý Wave: Khi nhận được một wave từ bên ngoài, chuỗi wave thông thường được xử lý theo các bước: phân tích và xử lý wave head (parse, process_head), tạo ra các nhánh (spread_branches), sao chép wave tail cho các nhánh (replicate_tail) và lan tỏa chuỗi wave thu được đến các node đích (propagate). Quá trình này sẽ được tiếp tục cho đến khi chuỗi wave kết thúc hoặc được gửi ra ngoài hệ thống.

• Luồng xử lý Echo: mỗi echo nhận được sẽ được gửi cho TP xử lý. Quá trình xử lý echo trải qua các bước: kích hoạt echo (activate_echo), gửi echo lên track cha (propagate_echo), và kết hợp echo nhận được với echo đã có ở track cha. Nếu tất cả các nhánh con của track cha đều đã gửi echo lên, thì quá trình lại được tiếp tục đối với track cha. Vòng lặp cứ tiếp diễn cho đến khi echo được gửi ra bên ngoài hệ thống.

• Luồng xử lý Tail: tail từ các rule sẽ được gửi ngược lại thông qua track xuống các track con. Một wave tail từ bên ngoài đến sẽ được gửi tới track tương ứng

COMMUNICATION PROCESSOR (CP)

wave tail sẽ được lặp lại cho đến khi tới các node đích hoặc wave tail được gửi đến các track con ở bên ngoài hệ thống.

Hình 3-35: Luồng xử lý giữa các thành phần trong Wave Interpreter

Một phần của tài liệu xây dựng bộ phân tích cú pháp chương trình (Trang 65 - 68)