Skip to the content
Đường ống và bộ lọc
- Mỗi thành phần có
- Tập hợp đầu vào (đọc)
- Tập hợp đầu ra (được tạo ra)
- Thành phần bộ lọc
- Các biến đổi tăng dần một số lượng dữ liệu ở đầu vào thành dữ liệu ở đầu ra
- Biến đổi luồng sang luồng
- Chuyển đổi cục bộ
- Sử dụng một ít ngữ cảnh cục bộ trong luồng xử lý
- Độc lập, không chia sẻ trạng thái với các bộ lọc khác (bất biến)
- Không biết danh tính của các luồng đến và đi (bất biến)
Đường ống và bộ lọc tiếp tục
- Ống kết nối
- Di chuyển dữ liệu từ đầu ra một bộ lọc đến đầu vào một bộ lọc
- Đường ống tạo thành đồ thị truyền dữ liệu
- Tính toán tổng thể
- Chạy đường ống và bộ lọc (không xác định) cho đến khi không thể tính toán thêm được nữa
- Tính đúng đắn của đầu ra của mạng đường ống và bộ lọc không được phụ thuộc vào trình tự (bất biến)
- Các chuyên môn hóa
- Đường ống dẫn (Pipelines), đường ống giới hạn (bounded pipes), đường ống định kiểu (typed pipes)
- Hệ thống tuần tự hàng loạt: đường ống suy biến (degenerated pipeline)
Ví dụ về đường ống và bộ lọc
- Các chương trình được viết bằng Unix shell
- Bộ lọc: Các tiến trình Unix
- Pipes: cơ chế thời gian chạy để hiện thực chúng
- Trình biên dịch (ví dụ của đường ống)
- (các giai đoạn thường không tăng dần)
- Phân tích từ vựng, phân tích cú pháp, phân tích ngữ nghĩa, tạo mã
- Các lĩnh vực xử lý tín hiệu
- Lập trình song song
- Lập trình phân tán
Ưu điểm và nhược điểm
- Adv
- I/O tổng thể là một hợp thành của các hành vi của các bộ lọc độc lập
- Hỗ trợ tái sử dụng
- Dễ dàng bảo trì, cải tiến
- Cho phép phân tích (phân tích thông lượng, bế tắc)
- Hỗ trợ thực thi đồng thời
- Disadv
- Thường dẫn đến việc tổ chức xử lý hàng loạt
- Không tốt xử lý các ứng dụng tương tác
- Khá phức tạp
- Không hiệu quả lắm