2009-09-12 25 views
7

Whats khác nhau giữa IPC và ổ cắm miền Unix và ống được đặt tên là gì?IPC vs tên miền vs ống có tên

Tôi có định nghĩa mơ hồ từ nhiều sách khác nhau nhưng không thể rõ ràng về việc nên sử dụng cái nào ở đâu.

+0

Chủ đề đó dường như nhận được nhiều sự chú ý hơn: http://stackoverflow.com/questions/9475442/unix-domain-socket-vs-named-pipes – schmijos

Trả lời

6

Chỉ cần về bất kỳ cách nào, hai quy trình giao tiếp với nhau có thể được coi là một dạng IPC.

Ví dụ:

  1. Ống Chưa đặt tên (mèo file.txt | grep foo) hoặc Named Pipes
  2. Unix Sockets miền
  3. TCP hoặc UDP socket
  4. Netlink Sockets on Linux
  5. Nhiều cơ chế bộ nhớ chia sẻ chẳng hạn như Tệp được ánh xạ bộ nhớ
  6. Thông báo tốc độ cao Truyền qua như ZeroMQ
4

IPC là viết tắt của Truyền thông liên ngành. UNIX socket miền và ống dẫn đặt tên chỉ là hai cơ chế IPC, được mô tả trong Wikipedia:

6

Như qrdl ghi, ổ cắm UNIX-miền và đường ống được đặt tên là cả hai cơ chế IPC.

Trong số hai ống được đặt tên này thì đơn giản hơn để làm việc, nhưng ít linh hoạt hơn so với các ổ cắm miền UNIX. Ví dụ, nếu bạn có khả năng mong đợi nhiều hơn một quá trình đọc cho mỗi quá trình viết, thì các socket của miền UNIX là phải; nếu bạn mong đợi quá trình đọc để dừng lại và bắt đầu trong quá trình thực hiện quá trình viết, thì bạn sẽ cần các socket trên miền UNIX.

0

Cám ơn tập trung vào câu hỏi, vài tính năng Cập nhật:

Trong socket Domain, giao tiếp thực tế (việc trao đổi dữ liệu) không sử dụng hệ thống tập tin, nhưng bộ đệm trong bộ nhớ hạt nhân. Theo mặc định, đó là chế độ song công.

Ống được đặt tên được xác định bởi điểm truy cập của chúng, một tệp được lưu trên hệ thống tệp để xử lý dữ liệu. Một đường ống được đặt tên theo mặc định hỗ trợ các hoạt động đọc và ghi bị chặn. Tuy nhiên, có thể làm cho các đường ống được đặt tên hỗ trợ các hoạt động không chặn bằng cách chỉ định cờ O_NONBLOCK khi mở chúng. Một đường ống có tên phải được mở ra chỉ đọc hoặc chỉ ghi. Nó không được mở để đọc-ghi vì nó là bán song công, một kênh một chiều.

+2

OP hỏi về ổ cắm miền. Các ổ cắm miền thường được triển khai trên các đường ống để chúng nhanh như các đường ống. Các ổ cắm tên miền rất hữu ích vì chúng có giao diện giống như các ổ cắm mạng (chỉ có các ổ cắm khác nhau) vì vậy nếu ứng dụng của bạn hỗ trợ ổ cắm và bạn thấy rằng cả hai bên đều nằm trên cùng một máy tính, bạn có thể dễ dàng chuyển sang ổ cắm miền để tăng tốc. (X Windows hiện nó). Vì vậy, bạn trả lời là không chính xác. – qrdl

+0

hy vọng nó được cập nhật tốt. –

Các vấn đề liên quan