Dağıtılmış bilgi işlem tam olarak nedir? [kapalı]


14

Dağıtılmış bilgi işlemin tam olarak ne olduğunu ve paralel / eşzamanlı bilgi işlemden farkı nedir?

Bir kaynağa erişim için senkronize etmeye çalışan birden çok paralel iş parçacığında muteks ve semafor kullanımı dağıtılmış bilgi işlem alanında bir sorun teşkil ediyor mu?

Yanıtlar:


8

Dağıtılmış bilişimi tam olarak ne oluşturur?

Dağıtık bilgi işlem, bir veya daha fazla sorunu çözmek için birbirleriyle iletişim kuran doğal olarak paralel bir işlem öğeleri topluluğudur. Bu işleme elemanları, aralarında güvenilir ve zamanında mesajlaşma dokusu oluşturmanın pratik olmadığı ve birbirinden yeterince ayrılmıştır ve bu nedenle sistemin durumu hakkında küresel bir bilgi sahibi olmak imkansız hale gelir. Dağıtık sistemlerle mesajlaşma belirli özellikleri mesajlar şunlardır olacak , kaybolmak olacak , bozuk olsun edecek gecikmeli olsun - bu alanda çözümler bu hesaba almak zorunda. Dolayısıyla, dağıtılmış programlama ağlar ve mesajlar, paralellik ve küresel bilgi eksikliği ile uğraşmakla ilgilidir.

Sorunları çözmenin en kolay yöntemi, tek bir işleme öğesini özel, yani belirli bir bilgi parçası için yetkili kılmaktır. Daha sonra diğer öğeler her zaman ona geri dönebilir veya bilgileri önbelleğe alabilir ve güncelliğini yitirmeyeceğini umarlar (değişikliklerden bahsetmeye güvenemeyecekleri için). Bu klasik istemci / sunucu mimarisidir.

İnternet bilgi işlem olup bilgisayar dağıtılmış, ancak dağıtılmış düğümlerin en gerçekten yaptıklarını kontrol yeteneği olmadan.

Bir kaynağa erişim için eşitlemeye çalışan birden çok paralel iş parçacığı, dağıtılmış bilgi işlem alanında bir sorun teşkil ediyor mu?

İstemci / sunucu modelini oluştururken yararlı olabilecek , ancak kaynak çekişmesinde potansiyel olarak dramatik bir artış pahasına olası bir çözüm oluştururlar . Okumalar için, bu çok büyük bir anlaşma değil (yeterli donanım sağlandığında), ancak yazmak için gerçekten büyük bir sorun.

Kaçınılması gereken şey dağıtılmış kilitler. Güvenilir zamanında mesajlaşma eksikliği, Paxos protokolü gibi bir şey kullanmadıkça, dağıtılmış karar protokollerini kesinlikle öldürür , ancak bunun bir sürü uyarısı vardır. Dağıtılmış bilgi işlemle ilgili temel sorun "mesajlarda kötü şeyler olması" dır. TCP gibi nispeten düşük seviyeli protokoller sorunları azaltır, ancak yine de kötü bir şekilde çözülebilir.


6

Bir kaynağa erişim için eşitlemeye çalışan birden çok paralel iş parçacığı, dağıtılmış bilgi işlem alanında bir sorun teşkil ediyor mu?

Bu iş parçacıkları farklı makinelerde çalışıyorsa veya aynı makinede ama farklı işlemlerde çalışıyor olsalar da yaparlar.


1
Farklı makinelerde çalışan iplikler temel olarak geleneksel muteks ve semaforlar ile senkronize edilemez.
Jan Hudec

@JanHudec Bence röportajcının sorusu bu oldu. Atomik test ve set veya karşılaştır ve takas talimatları veya paylaşılan bellek olmadan, dağıtılmış bilgi işlemin senkronizasyon için makineler arasındaki mesajlaşmaya güvenmesi gerekir. Neyse ki, bunu başaran algoritmalar var.
Caleb

"Neyse ki" ile aynı fikirde değilim. Algoritmalar karmaşıktır ve hataya dayanıklı değildir, bu nedenle kaçınılmalıdır.
Jan Hudec

5

Dağıtılmış bilgi işlem, farklı bilgisayarlarda (yani dağıtılmış bir sistemde) işlemesi olan bir bilgi işlem sistemidir. Bireysel programlar birbirleriyle bir dizi iletişim kanalı aracılığıyla iletişim kurar. Bu kanallar genellikle ağ bağlantılarıdır (örneğin, TCP soketleri), ancak genellikle diğer iletişim protokollerini ve aygıtlarını (DeviceNET, BACNet, SECS-2, Modbus vb.) Veya hatta belirli bir aygıt için özel olarak yapılmış protokolleri kullanır.

Dağıtılmış sistemler genellikle tek bir bilgisayarda çalışmak üzere tasarlanmış sistemlerden çok daha karmaşıktır. Çok iş parçacıklı uygulamaların uğraşması gereken eşzamanlılık ve kaynak kilitleme sorunlarına ek olarak, dağıtılmış sistemlerin iletişim hatalarını ve işlem düğümü hatalarını işlemesi gerekir. Yürütmek için birden çok işlemci gerektiren işlemler (ve geri alma) da zor olabilir.

Dağıtılmış sistemler pek çok form alır ve şu anda birçok uygulamada kullanılmaktadır. Web uygulamaları dağıtılmış sistemlerdir. Bir N-Katmanlı sistem genellikle en az N farklı işlemciye sahiptir (farklı uygulamalarla). Dağıtılmış sistemler aynı zamanda birçok fabrika otomasyon sisteminde de kullanılmaktadır.

Yazma-up Wikipedia bilgisayar dağıtılmış üzerinde değer okunur.

Çok iş parçacıklı bir uygulamanın dağıtılmış bir uygulama oluşturup oluşturmadığı sorusuna yanıt olarak - iş parçacıkları tek bir bilgisayarda çalışıyorsa, sistem dağıtılmaz. Dağıtılmış sistemlerin doğasında var olan bazı problemleri çözmek zorunda ama hepsini değil.


3

Kesin olarak konuşmak gerekirse, "dağıtılmış bilgi işlem", birden fazla bilgisayarda tek bir işlem / istek / hesaplamanın işlenmesini içeren herhangi bir çözümdür.

Ayrıca, merkezi veri merkezi dışında dağıtılan pencereler, unix ve diğer küçük sistem sunucuları için bir terim olan "Dağıtılmış Sistemler" terimiyle de karşılaşacaksınız. Bu sistemlerin bu günlerde veri merkezi içine yerleştirilmesi daha normal olmasına rağmen, bu terim sıkıştı.


3

Dağıtılmış bilgi işlemin neyi oluşturduğuna dair genel sorunuza cevap vermek için Ann Wollrath, Geoff Wyant, Jim Waldo ve Samuel C. Kendall'ın Dağıtık Bilgi İşlem Üzerine Bir Not adlı makalesini tavsiye ederim . Dağıtılmış sistemlerin yakın geçmişini ve başarısızlıklarını kapsar ve dağıtılmış bilgi işlemin ilgili sorunlar hakkında farklı düşünmeyi gerektirdiğini önerir.

Gazetede ne muteksler ne de semaforlar belirtilmemesine rağmen, dağıtılmış bir yazılım sisteminin doğru mühendisliği hakkında değerli bilgiler vermektedir.

Görüşmecinizin neden muteksler ve semaforlar hakkında sorduğuna gelince, @Caleb'e katılıyorum:

Bu iş parçacıkları farklı makinelerde çalışıyorsa veya aynı makinede ama farklı işlemlerde çalışıyor olsalar da yaparlar.

Ekleyeceğim tek şey, mutekslerin ve semaforların, işi birden çok bilgisayar cihazına dağıtmanıza izin veren düşük seviyeli kilitleme ilkelleri olması ve işlemlerinin (genellikle) uygulamanın başarısı için hayati önem taşımasıdır. Açıkçası, kullanılan dile ve teknolojiye bağlıdır. Erlang veya Scala kullanıyorsanız, muhtemelen geleneksel, kilit tabanlı eşzamanlılık yerine Actor model tabanlı eşzamanlılık kullanacaksınız.


2

Kelime her şeyi söylüyor. Bazı bilgi işlem işlemleri yapmak zorundasınız ve bu bilgi işlemin bölümlerini, her bilgi işlem diğer bilgi işlemden bağımsız olarak çalışacak şekilde dağıtabilirseniz ve daha sonra her şey tamamlandığında, temel bilgi işlemin yanıtını almak için her bilgi işlemin sonucunu birleştirirsiniz. Örnek: Harita Azaltma


1

"Dağıtılmış sistemler" konusunda bir ders aldık ve tanımı tam olarak hatırlamasam da, şu şekildeydi:

  1. mesajlarla iletişim kuran birden fazla ayrı düğümde çalışabilir (belleği paylaşamaz)
  2. nesneler düğümler arasında geçirilebilir
  3. nesneler taşınırken kimliklerini korur ve taşınırken şeffaf bir şekilde adreslenebilir
  4. nesneler onları oluşturan düğüme bağlı değildir
  5. sistem düğüm ekleme ve çıkarma işlemlerini yapabilir

(Daha fazla olduğuna inanıyorum ve son noktadan emin değilim)

Şimdi derste dağıtılmış işlem ve dağıtılmış kilit uygulama yöntemlerini öğrendik. Ders, dağıtılmış kilidin temel olarak, yerel olarak yaptığınızla karşılaştırıldığında başka bir yol olan dağıtılmış işlem kullanılarak uygulanması ve doğası gereği hataya dayanıklı olmamasıdır;

Düzenleme: Bu tanım işletim sistemi veya veritabanı sistemi dar anlamda ve sadece istemci-sunucu sistemi aksine "dağıtılmış sistem" içindir. İlk koşulu karşılayan her şey bazı bağlamlarda dağıtılmış olarak adlandırılabilir.

Tesadüfen, tanım, hepsi en azından istemci-sunucu olan ve genellikle de çoğaltılan dağıtılmış ve geleneksel sürüm kontrol sistemleri arasındaki farkla eşleşir.


Bu belirli bir dağıtılmış bilgi işlem stili. Başkaları da var ve paylaştıkları tek şey ilk nokta. Mesajlaşma kritik, diğerleri… çok fazla değil.
Donal Fellows

1
@DonalFellows: Evet, bu dağıtılan sistemi işletim veya veritabanı sisteminin bir anlamda. Göç ve hataya dayanıklılık, bunları yapmanın ana noktalarıdır. Dağıtılmış "bilgi işlem", birden çok düğümde çalışan her şeydir.
Jan Hudec

Bu durumda, bir karara varma işini kapsamalıydı. Dağıtılmış bir sistemde bu zor. (Ayrıca, konuyla ilgili gördüğüm akademik makalelerin çoğu, geçerli ama işe yaramaz sonuçlar veren, alttaki grafik topolojisi hakkında tamamen gerçekçi olmayan varsayımlar yapar.)
Donal Fellows

@DonalFellows: Elbette, karar verme işini ve tüm bu tahkim ve bölünmüş beyin şeylerini kapsıyordu (çok derinden değil, sadece giriş seviyesindeydi). Ancak bu, dağıtılmış sistemin özelliğini tanımlamaz. Sadece bir tane oluşturmak istiyorsanız atlamanız gereken bir engel.
Jan Hudec

0

Dağıtık hesaplama, gerçek hayatta çok daha fazla şey duyabileceğiniz kurumsal bilgi işlem için "pazarlamasız" terimidir. Bununla birlikte, başkaları tarafından işaret edilen genel fikir "iş yapmak için birden fazla bilgisayar kullanıyorsunuz"

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.