SORU
1 Ocak 2009, PERŞEMBE


Karşılaştırma Unıx/Linux IPC

Unıx/Linux tarafından sunulan IPCs sürü: borular, yuva, bellek, dbus, paylaşılan mesaj sıralar...

Her biri için en uygun uygulama nedir ve nasıl yapabilirim?

CEVAP
1 Ocak 2009, PERŞEMBE


Unıx IPC

İşte büyük yedi:

  1. Pipe

    İşler üst/alt gibi ilgili sadece arasında yararlı. pipe(2) fork(2) Ara. Tek yönlü.

  2. FIFO veya adlandırılmış

    İki alakasız işler düz boru aksine FIFO kullanabilirsiniz. mkfifo(3) Ara. Tek yönlü.

  3. Socket Unix Domain Socket

    Çift yönlü. Ağ iletişimi için geliyordu, ama yerel olarak da kullanılabilir. Farklı protokol için kullanılabilir. İleti TCP için sınır yok. socket(2) Ara.

  4. Message Queue

    OS ayrık mesaj korur. sys/msg.h bkz.

  5. Signal

    Sinyal başka bir işlem için bir tamsayı gönderir. Peki çoklu iş parçacığı ile örgü yok. kill(2) Ara.

  6. Semaphore

    Çoklu iş parçacıkları veya işlemler için eşitleme mekanizması, insanlar banyo için bekleyen bir kuyruk benzer. sys/sem.h bkz.

  7. Shared memory

    Kendi eşzamanlılık denetimi yapmak. shmget(2) Ara.

Mesaj Sınır sorunu

Diğer bir yöntem seçerken belirleyici bir faktör sınır sorunu mesaj. "Birbirlerinden ayrı olarak, ama TCP veya Boru gibi bayt akışı için değil "mesajları beklediğiniz

Echo istemci ve sunucu bir çift düşünün. İstemci dize gönderir, sunucu alır ve geri gönderir. İstemci gönderir sanırım"", "", ve "Nasıl bir cevap hakkında".? Merhaba Merhaba

Akış protokolleri byte ile sunucu almak gibi olabilir"", "", ve "bir cevap";? oHelloHow Cehennem ya da daha çok "bir cevap hakkında HelloHelloHow?". gerçekçi Sunucu ileti sınırı nerede olduğu hakkında hiçbir fikri yok.

Yaş eski bir numara CHAR_MAX UINT_MAX mesaj uzunluğu sınırı ve mesajı göndermek için kabul önce char uint uzunluk. Eğer alıcı tarafında Yani, eğer, mesaj uzunluğu ilk okuman gerekiyor. Bu da yalnızca bir iş parçacığının ileti bir anda okuma yapmak gerektiğini ifade eder.

UDP veya mesaj iletim gibi ayrık protokolleri ile, bu konuda endişelenmenize gerek yok, ama Program aracılığıyla bayt akışları dosyalar gibi davranır ve/stdin çünkü ile başa çıkmak için daha kolay.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • laptopmag

    laptopmag

    25 Ocak 2008
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009