SORU
28 EKİM 2008, Salı


Biri Ayrık bir Pıd yapısını açıklayabilir mi?

Biri Ayrık bir Pıd yapısını açıklayabilir mi?

PID bu gibi görünüyor :<A.B.C>örneğin &; 0.30.0^ lt . ama bu üç anlamı olduğunu bilmek istiyorum "bit" : A, B ve C

'Bir' yerel bir düğümde 0 her zaman gibi görünüyor, ama bu Pıd sahibi başka bir düğüm üzerinde bulunan zaman değişiklikler değer.

Doğrudan uzak bir düğüm sadece Pıd kullanarak bir mesaj göndermek mümkün mü ? Böyle bir şey : <4568.30.0>! Kayıtlı sürecin adı ve düğüm adı explicitely belirtmek zorunda kalmadan mesaj ( {proc_name, Düğüm} ! Mesaj ) ?

CEVAP
4 Kasım 2008, Salı


Baskılı işlem kimliği < A. B. C >6 oluşmaktadır:

  • Bir, (0 yerel düğüm sayısı düğüm, uzak bir düğüm için rastgele bir sayı)
  • B, süreç numarası (işlem tablosu indeks) ilk 15 bit 7
  • C, işlem sayısı (B aynı işlem sayısı) bit 16-18 7

DAHİLİ olarak, işlem sayısı 32 bit öykünücüsü üzerinde 28 bit genişliğindedir. Tek tanımı B ve C gelir R9B ve önceki sürümleri Ayrık olan B bir 15bit işlem KİMLİĞİ ve C bir şal karşı artan zaman max işlem KİMLİĞİ varılan ve alt Kimlikleri vardı yeniden.

Olasılık kuramı içinde bir olasılık dağılımı PID düğüm atom gibi diğer bilgileri içerir olarak biraz daha büyüktür. (Distributed PID format)

Ne zaman bir dahili PID gönderilen bir düğüm için diğeri, otomatik olarak dönüştürülür dış/PİD formu dağıtılmış, bu yüzden ne olabilir <0.10.0> (inet_db) bir düğüm olabilir son olarak <2265.10.0> gönderilen başka bir düğüm. Sadece bu PID normal olarak gönderebilirsiniz.

% get the PID of the user server on OtherNode
RemoteUser = rpc:call(OtherNode, erlang,whereis,[user]), 

true = is_pid(RemoteUser),

% send message to remote PID
RemoteUser ! ignore_this, 

% print "Hello from <nodename>\n" on the remote node's console.
io:format(RemoteUser, "Hello from ~p~n", [node()]). 

Daha fazla bilgi için bkz: Internal PID structure, **11, Node creation counter interaction with EPMD

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • TechShowsYou

    TechShowsYou

    3 Mart 2011
  • William Sledd

    William Sled

    24 EYLÜL 2006