Dağıtılmış işletim sistemi - Distributed operating system

Bir dağıtılmış işletim sistemi bağımsız bir koleksiyon üzerinden sistem yazılımıdır, ağ bağlantılı, iletişim ve fiziksel olarak ayrı hesaplama düğümleri. Birden çok CPU tarafından hizmet verilen işleri yönetirler.[1] Her bir düğüm, genel toplu işletim sisteminin belirli bir yazılım alt kümesini içerir. Her bir alt küme, iki farklı hizmet sağlayıcıdan oluşan bir bileşimdir.[2] İlki, her yerde bulunan bir minimal çekirdek veya mikro çekirdek, o düğümün donanımını doğrudan kontrol eder. İkincisi, daha üst düzey bir koleksiyondur sistem yönetimi bileşenleri düğümün bireysel ve işbirlikçi faaliyetlerini koordine eden. Bu bileşenler mikro çekirdek işlevlerini soyutlar ve kullanıcı uygulamalarını destekler.[3]

Mikro çekirdek ve yönetim bileşenleri koleksiyonu birlikte çalışır. Sistemin birden çok kaynağı ve işleme işlevselliğini verimli ve istikrarlı bir sisteme entegre etme hedefini desteklerler.[4] Bireysel düğümlerin küresel bir sisteme bu sorunsuz entegrasyonu şu şekilde adlandırılır: şeffaflıkveya tek sistem görüntüsü; tek bir hesaplama varlığı olarak küresel sistemin görünümünün kullanıcılarına sağlanan illüzyonu açıklamak.

Açıklama

Monolitik çekirdek, mikro çekirdek ve hibrit çekirdek tabanlı işletim sistemlerinin yapısı

Dağıtılmış bir işletim sistemi, bir işletim sistemi için gereken temel hizmetleri ve işlevselliği sağlar, ancak öznitelikler ve belirli konfigürasyonlar artan ölçek ve kullanılabilirlik gibi ek gereksinimleri desteklemesine izin vermek. Bir kullanıcı için, dağıtılmış bir işletim sistemi tek düğüme benzer şekilde çalışır, monolitik işletim sistemi. Yani, birden çok düğümden oluşmasına rağmen, kullanıcılara ve uygulamalara tek bir düğüm olarak görünür.

Sistem düzeyinde minimum işlevselliği ek kullanıcı düzeyindeki modüler hizmetlerden ayırmak, "mekanizma ve politika ayrımı ". Mekanizma ve politika, sırasıyla" bir şey nasıl yapılır "ile" bir şey nasıl yapılır "olarak yorumlanabilir. Bu ayrım, esnekliği ve ölçeklenebilirliği artırır.

Genel Bakış

Çekirdek

Her biri yerel ayar (tipik olarak bir düğüm), çekirdek, bir düğümün temelindeki donanım ve kaynakları çalıştırmak için gerekli olan minimum düzeyde eksiksiz bir düğüm düzeyi yardımcı programlar kümesi sağlar. Bu mekanizmalar, bir düğümün kaynaklarının, süreçlerinin, iletişiminin tahsisi, yönetimi ve elden çıkarılmasını içerir. giriş çıkış yönetim destek fonksiyonları.[5] Çekirdek içinde, iletişim alt sistemi, dağıtılmış bir işletim sistemi için en büyük öneme sahiptir.[3]

Dağıtılmış bir işletim sisteminde, çekirdek genellikle düşük seviye dahil olmak üzere minimum bir dizi işlevi destekler. adres alanı yönetim Konu Yönetim ve arası iletişim (IPC). Bu tasarımın bir çekirdeği, mikro çekirdek.[6][7] Modüler yapısı, dağıtılmış bir işletim sistemi için temel özellikler olan güvenilirliği ve güvenliği artırır.[8] Bir çekirdeğin bir sistemdeki tüm düğümler üzerinde aynı şekilde kopyalanması ve bu nedenle bir sistemdeki düğümlerin benzer donanım kullanması yaygındır.[9] Minimal tasarım ve her yerde bulunan düğüm kapsamının kombinasyonu, küresel sistemin genişletilebilirliğini ve dinamik olarak yeni düğümler veya hizmetler sunma becerisini geliştirir.[10]

General overview of system management components that reside above the microkernel.
Sistem yönetimi bileşenlerine genel bakış

Sistem Yönetimi

Sistem yönetimi bileşenleri, düğümleri tanımlayan yazılım süreçleridir. politikalar. Bu bileşenler, işletim sisteminin çekirdeğin dışındaki parçasıdır. Bu bileşenler, daha yüksek düzeyde iletişim, süreç ve kaynak yönetimi, güvenilirlik, performans ve güvenlik sağlar. Bileşenler, dağıtılmış bir ortamda gereken şeffaflığı ekleyerek, tek varlıklı bir sistemin işlevleriyle eşleşir.[3]

İşletim sisteminin dağıtılmış yapısı, bir düğümün küresel sisteme karşı sorumluluklarını desteklemek için ek hizmetler gerektirir. Ek olarak, sistem yönetimi bileşenleri güvenilirlik, kullanılabilirlik ve süreklilik gibi "savunmacı" sorumlulukları kabul eder. Bu sorumluluklar birbiriyle çatışabilir. Tutarlı bir yaklaşım, dengeli bir bakış açısı ve genel sistemin derinlemesine anlaşılması, azalan getiri. Politika ve mekanizmanın ayrılması, bu tür çatışmaları azaltır.[10]

Bir işletim sistemi olarak birlikte çalışmak

Dağıtılmış bir işletim sisteminin mimarisi ve tasarımı, hem bireysel düğüm hem de küresel sistem hedeflerini gerçekleştirmelidir. Mimari ve tasarıma, politika ve mekanizmayı birbirinden ayıran bir yaklaşımla yaklaşılmalıdır. Bunu yaparken, dağıtılmış bir işletim sistemi, altta yatan komuta ve kontrol çabalarının mutlak minimum kullanıcı farkındalığını sağlayan verimli ve güvenilir bir dağıtılmış hesaplama çerçevesi sağlamaya çalışır.[8]

Bir çekirdek ile sistem yönetimi bileşenleri arasındaki ve daha sonra dağıtılmış bir işletim sistemindeki farklı düğümler arasındaki çok seviyeli işbirliği, dağıtılmış işletim sisteminin işlevsel zorluğudur. Bu, sistemde mükemmel bir amaç uyumunu sürdürmesi ve aynı zamanda niyetin uygulamadan tamamen kopukluğunu sürdürmesi gereken noktadır. Bu zorluk, dağıtılmış işletim sisteminin güvenilir, verimli, kullanılabilir, sağlam, genişletilebilir ve ölçeklenebilir bir sistem için temel ve çerçeve oluşturma fırsatıdır. Bununla birlikte, bu fırsat karmaşıklık açısından çok yüksek bir maliyete sahiptir.

Karmaşıklığın bedeli

Dağıtılmış bir işletim sisteminde, olağanüstü derecede içsel karmaşıklık, tüm sistemi herhangi bir kullanıcı için kolayca bir anatema haline getirebilir. Bu nedenle, dağıtılmış bir işletim sistemini gerçekleştirmenin mantıksal bedeli, birçok alanda ve birçok düzeyde muazzam miktarda karmaşıklığın üstesinden gelmek açısından hesaplanmalıdır. Bu hesaplama, en mütevazı uygulamayı bile başarmak için gereken tasarım yatırımı ve mimari planlamanın derinliğini, genişliğini ve aralığını içerir.[11]

Bu tasarım ve geliştirme konuları kritiktir ve affetmez. Örneğin, son derece erken bir noktada, dağıtılmış bir işletim sisteminin genel mimari ve tasarım detaylarının derinlemesine anlaşılması gerekir.[1] Dağıtılmış bir işletim sisteminin geliştirilmesinde yorucu bir dizi tasarım düşüncesi vardır. Bu tasarım değerlendirmelerinin her biri, potansiyel olarak diğerlerinin çoğunu önemli ölçüde etkileyebilir. Bu, bireysel tasarım hususları ve bunların permütasyonlarının çoğu açısından dengeli bir yaklaşımda büyük bir çabaya yol açar. Bu çabaya bir yardımcı olarak, çoğu, dağıtılmış bilgi işlem gücünde belgelenmiş deneyim ve araştırmaya güveniyor.

Tarih

Araştırma ve deneme çabaları 1970'lerde ciddi bir şekilde başladı ve 1980'lerin sonlarında yoğun ilgi zirveye ulaşan 1990'larda devam etti. Bu dönemde bir dizi dağıtılmış işletim sistemi tanıtıldı; ancak, bu uygulamaların çok azı mütevazı bir ticari başarıya bile ulaştı.

İlkel dağıtılmış işletim sistemi bileşeni kavramlarının temel ve öncü uygulamaları 1950'lerin başına kadar uzanmaktadır.[12][13][14] Bu adımlardan bazıları doğrudan dağıtılmış hesaplamaya odaklanmadı ve o zamanlar çoğu önemli etkilerini fark etmemiş olabilir. Bu öncü çabalar, önemli bir zemin hazırladı ve dağıtılmış bilgi işlemle ilgili alanlarda sürekli araştırmalara ilham verdi.[15][16][17][18][19][20]

1970'lerin ortalarında, araştırmalar dağıtık hesaplamada önemli ilerlemeler sağladı. Bu atılımlar, 1990'larda devam eden çabalar için sağlam ve istikrarlı bir temel sağladı.

Hızlanan çoğalması çoklu işlemci ve çok çekirdekli işlemci sistem araştırması, dağıtılmış işletim sistemi konseptinin yeniden canlanmasına yol açtı.

1950'ler

DYSEAC

İlk çabalardan biri, DYSEAC genel amaçlı senkron bilgisayar. En eski yayınlarından birinde Bilgi İşlem Makineleri Derneği Nisan 1954'te bir araştırmacı Ulusal Standartlar Bürosu - şimdi Ulusal Standartlar ve Teknoloji Enstitüsü (NIST ) - DYSEAC'ın ayrıntılı bir spesifikasyonunu sundu. Giriş, esnek iletişim dahil olmak üzere amaçlanan uygulamaların gereksinimlerine odaklandı, ancak diğer bilgisayarlardan da bahsetti:

Son olarak, harici cihazlar DYSEAC ile aynı dijital dili kullanan diğer tam ölçekli bilgisayarları bile içerebilir. Örneğin, SEAC veya buna benzer diğer bilgisayarlar DYSEAC'a bağlanabilir ve koordineli programların kullanılmasıyla ortak bir görev üzerinde karşılıklı işbirliği içinde birlikte çalışması sağlanabilir ... Sonuç olarak [,] bilgisayar, çeşitli tüm harici cihazların faaliyetlerini etkili bir toplu işlem haline getirir.

— ALAN L. LEINER, DYSEAC için Sistem Özellikleri

Spesifikasyon, master-slave yerine eşler arası tercih edilen çoklu bilgisayar sistemlerinin mimarisini tartıştı.

Bu tür birbirine bağlı ayrı bilgisayarlar grubunun her üyesi, herhangi bir zamanda, sistemdeki ortaklarından herhangi birine özel kontrol emirleri başlatmak ve göndermek için ücretsizdir. Sonuç olarak, ortak görev üzerindeki denetim kontrolü başlangıçta sistem boyunca gevşek bir şekilde dağıtılabilir ve daha sonra geçici olarak bir bilgisayarda yoğunlaşabilir veya ihtiyaç ortaya çıktıkça bir makineden diğerine hızla geçebilir. … Açıklanan çeşitli kesinti tesisleri, bilgisayar ve ona bağlı harici aygıtlar arasındaki karşılıklı işbirliğine dayanmaktadır ve yalnızca basit bir ana-bağımlı ilişkisini yansıtmamaktadır.

— ALAN L. LEINER, DYSEAC için Sistem Özellikleri

Bu, dağıtılmış kontrole sahip bir bilgisayarın en eski örneklerinden biridir. Ordu Bölümü raporlar[21] güvenilirliğini ve tüm kabul testlerini Nisan 1954'te geçtiğini onayladı. Mayıs 1954'te zamanında tamamlanıp teslim edildi. Bu bir "taşınabilir bilgisayar ", bir traktör römork 2 görevli araçla ve 6 ton soğutma kapasite.

Lincoln TX-2

Deneysel bir girdi-çıktı sistemi olarak tanımlanan Lincoln TX-2 esnek, eşzamanlı olarak çalışan giriş-çıkış cihazlarını vurguladı, yani çoklu programlama. TX-2'nin tasarımı modülerdi ve yüksek derecede modifikasyon ve genişletmeyi destekliyordu.[13]

Sistem, Çoklu Sıralı Program Tekniğini kullandı. Bu teknik birden fazla program sayaçları her biri 32 olası program kodu dizisinden biriyle ilişkilendirilir. Bu açıkça önceliklendirilmiş diziler, yalnızca işlemdeki hesaplamayı değil, aynı zamanda dizilerin kontrol akışını ve cihazların anahtarlamasını da etkileyecek şekilde, araya eklenebilir ve aynı anda yürütülebilir. Cihaz sıralamasıyla ilgili birçok tartışma.

DYSEAC'a benzer şekilde, TX-2 ayrı programlanmış cihazlar aynı anda çalışabilir, çıktı. Merkezi birimin tam gücü herhangi bir cihazda mevcuttu. TX-2, dağıtılmış kontrol sergileyen bir sistemin başka bir örneğiydi, merkezi birimi adanmış kontrole sahip değildir.

İletişim Hücreleri

Hafıza erişimini soyutlamanın ilk çabalarından biri, bir hücrenin bir koleksiyondan oluştuğu, İletişim Hücreleri idi. hafıza elementler. Bir bellek öğesi temelde bir ikili elektronikti takla veya röle. Bir hücre içinde iki tür öğe vardır: sembol ve hücre. Her hücre yapısı veri içinde dizi aşağıdakilerden oluşan semboller isim ve bir dizi parametreleri. Bilgi, hücre ilişkileri yoluyla bağlantılıdır.[14]

Teori, adreslemenin savurgan ve değersiz olduğunu iddia etti. dolaylılık düzeyi. Bilgiye doğrudan ve çapraz erişim olmak üzere iki şekilde erişildi. Doğrudan erişim bir adı kabul eder ve bir parametre seti döndürür. Çapraz erişim projeler parametre kümeleri aracılığıyla ve verilen alt küme parametrelerin. Bu, değiştirilmiş bir karma tablo veri yapısı çoklu izin verdi değerler (parametreler) her biri için anahtar (isim).

Hücresel belleğin birçok avantajı vardır:
Writing bullet.svgBir sistemin büyük bir kısmı mantık hücrelerde depolanan bilgi dernekleri içinde dağıtılır,
Writing bullet.svgBu bilgi akışı ilişkisi, bir şekilde depolama ve geri alma eylemi tarafından yönlendirilir,
Writing bullet.svgDepolama için gereken süre ve geri alma Çoğunlukla sabit ve belleğin boyutu ve doldurma faktörüyle tamamen ilgisiz
Writing bullet.svgHücreler mantıksal olarak ayırt edilemez, bu da onları hem kullanımı esnek hem de boyut olarak genişletmek için nispeten basit hale getirir.

Bu konfigürasyon dağıtılmış sistemler için idealdi. Depolama ve geri çağırma için bellek yoluyla sabit zamanlı projeksiyon, doğası gereği atomik ve özel. Hücresel belleğin içsel dağınık özellikleri paha biçilmez olacaktır. Üzerindeki etkisi kullanıcı, donanım /cihaz veya Uygulama programlama arayüzleri dolaylıydı. Yazarlar dağıtılmış sistemleri düşünerek şunları söylüyordu:

Burada, taramadan, aramadan, adreslemeden ve saymadan uzak, mantıksal tasarımın makroskopik kavramı ile dağıtılmış bir mantık sisteminin temel fikirlerini sunmak istedik. Ne pahasına olursa olsun, kendimizi yalnızca makinelerin evrimsel ölçeğine göre düşük bir makineye uyan ayrıntılı yerel sorunların yüklerinden kurtarmalıyız.

— Chung-Yeol (C.Y.) Lee, Birbiriyle İletişim Kuran Hücreler, Dağıtılmış Mantık Bilgisayarının Temeli

Temel çalışma

Tutarlı bellek soyutlaması

  Paylaşılan bellekli çok işlemcilerde ölçeklenebilir senkronizasyon için algoritmalar [22]

Dosya Sistemi soyutlaması

 Dağıtılmış bir dosya sisteminin ölçümleri[23]
 Paylaşılan sanal bellek sistemlerinde bellek tutarlılığı [24]

İşlem soyutlama

 İşlemler
  Sagalar [25]

 İşlem Belleği
 Birleştirilebilir bellek işlemleri[26]
 İşlem belleği: kilitsiz veri yapıları için mimari destek [27]
 Dinamik boyutlu veri yapıları için yazılım işlem belleği[28]
 Yazılım işlem belleği[29]

Kalıcılık soyutlaması

 OceanStore: küresel ölçekte kalıcı depolama için bir mimari [30]

Koordinatör soyutlama

  Çoğaltılmış veriler için ağırlıklı oylama [31]
  Kısmi senkronizasyon varlığında fikir birliği [32]

Güvenilirlik soyutlaması

 Sağlık kontrolleri
 Bizans Generalleri Sorunu [33]
 Arıza durdurma işlemcileri: hataya dayanıklı bilgi işlem sistemleri tasarlamaya bir yaklaşım [34]

 Kurtarılabilirlik
 Dağıtılmış anlık görüntüler: dağıtılmış sistemlerin genel durumlarını belirleme[35]
 Dağıtılmış sistemlerde iyimser kurtarma [36]

Dağıtılmış bilgi işlem modelleri

[37]

Üç temel dağıtım

Bu noktayı daha iyi açıklamak için üç sistemi inceleyin mimariler; merkezi, merkezi olmayan ve dağıtılmış. Bu incelemede, üç yapısal yönü göz önünde bulundurun: organizasyon, bağlantı ve kontrol. Organizasyon, bir sistemin fiziksel düzenleme özelliklerini tanımlar. Bağlantı, düğümler arasındaki iletişim yollarını kapsar. Kontrol, önceki iki düşüncenin işleyişini yönetir.

Organizasyon

Bir merkezi sistem tüm kurucu unsurların doğrudan tek bir kontrol unsuruna bağlı olduğu tek bir yapı seviyesine sahiptir. Bir merkezi olmayan sistem hiyerarşiktir. En alt seviye, bir sistemin varlıklarının alt kümelerini birleştirir. Bu varlık alt kümeleri, daha yüksek seviyelerde birleşir ve sonuçta merkezi bir ana öğeyle sonuçlanır. Dağıtılmış bir sistem, düzey kavramı olmayan özerk öğelerden oluşan bir koleksiyondur.

Bağ

Merkezi sistemler, bileşenleri doğrudan bir merkezdeki merkezi bir ana varlığa bağlar ve bu şekilde konuşur. Merkezi olmayan bir sistem (aka Ağ sistemi ) kurucu unsurlar ile merkezi varlık arasındaki doğrudan ve dolaylı yolları birleştirir. Tipik olarak bu, herhangi iki öğe arasında yalnızca en kısa yol olan bir hiyerarşi olarak yapılandırılır. Son olarak, dağıtılmış işletim sistemi herhangi bir model gerektirmez; herhangi iki unsur arasında doğrudan ve dolaylı bağlantılar mümkündür. 1970'lerin "dize sanatı "Veya a spirograf olarak çizim tamamen bağlı sistem, ve örümcek ağı ya da Eyaletlerarası Karayolu Sistemi ABD şehirleri arasında bir örnek olarak kısmen bağlı sistem.

Kontrol

Merkezi ve merkezi olmayan sistemler yönetti bağlantı akışları dağıtılmış sistemler rastgele yollar boyunca iletişim kurarken, merkezi varlığa ve merkezden. Bu, üçüncü düşüncenin en önemli kavramıdır. Kontrol, verimliliği, yanıt verebilirliği ve karmaşıklığı dengeleyen sistem öğelerine görev ve veri tahsis etmeyi içerir.

Merkezi ve merkezi olmayan sistemler, seçenekleri sınırlandırarak potansiyel olarak yönetimi kolaylaştırarak daha fazla kontrol sunar. Dağıtılmış sistemlerin açıkça kontrol edilmesi daha zordur, ancak yatay olarak daha iyi ölçeklenir ve sistem genelinde daha az hata noktası sunar. Dernekler, tasarımının dayattığı ihtiyaçlara uyuyor, ancak örgütsel kaosla değil

Tasarım konuları

Şeffaflık

Şeffaflık veya tek sistem görüntüsü Bir uygulamanın, dağıtılıp dağıtılmadığına ve donanım veya diğer uygulama ayrıntılarına bakılmaksızın üzerinde çalıştığı sistemi işleme yeteneği anlamına gelir. Erişim, konum, performans, adlandırma ve geçiş dahil olmak üzere bir sistemin birçok alanı şeffaflıktan yararlanabilir. Şeffaflığın dikkate alınması, dağıtılmış bir işletim sisteminin tasarımının her aşamasında karar vermeyi doğrudan etkiler. Şeffaflık, diğer tasarım hususlarına belirli gereksinimleri ve / veya kısıtlamaları getirebilir.

Sistemler, isteğe bağlı olarak, belirli uygulama gereksinimlerini karşılamak için şeffaflığı çeşitli derecelerde ihlal edebilir. Örneğin, dağıtılmış bir işletim sistemi bir bilgisayarda bir sabit sürücüyü "C:" olarak ve başka bir bilgisayardaki bir sürücüyü "G:" olarak sunabilir. Kullanıcı, aygıt sürücüleri veya sürücünün konumu hakkında herhangi bir bilgiye ihtiyaç duymaz; her iki cihaz da uygulamanın bakış açısından aynı şekilde çalışır. Daha az şeffaf bir arabirim, uygulamanın sürücüyü hangi bilgisayarın barındırdığını bilmesini gerektirebilir. Şeffaflık alanları:

  • Konum şeffaflığı - Konum şeffaflığı, şeffaflığın iki farklı yönünü içerir: şeffaflık ve kullanıcı hareketliliği. Şeffaflığın adlandırılması, herhangi bir sistem öğesine fiziksel veya mantıksal referanslardaki hiçbir şeyin, varlığın konumuna veya kullanıcı veya uygulama ile yerel veya uzak ilişkisine ilişkin herhangi bir gösterge göstermemesini gerektirir. Kullanıcı hareketliliği, referansın geldiği sistem konumundan bağımsız olarak sistem varlıklarının tutarlı bir şekilde referans alınmasını gerektirir.[8]:20
  • Şeffaflığa erişin - Yerel ve uzak sistem varlıkları, kullanıcı arayüzünden görüntülendiklerinde ayırt edilemez kalmalıdır. Dağıtılmış işletim sistemi, bu varlığın kullanıcıya yerel veya uzak olmasına bakılmaksızın, bir sistem varlığı için tek bir erişim mekanizmasının teşhiriyle bu algıyı sürdürür. Şeffaflık, belirli bir sistem varlığına (yerel veya uzak) erişim yöntemlerindeki herhangi bir farklılığın hem görünmez hem de kullanıcı tarafından tespit edilemez olması gerektiğini belirtir.[3]:84
  • Göç şeffaflığı - Kaynaklar ve faaliyetler, yalnızca sistem tarafından kontrol edilen ve kullanıcı / uygulama bilgisi veya eylemi olmadan bir unsurdan diğerine geçer.[9]:16
  • Çoğaltma şeffaflığı - Bir kaynağın başka bir öğede çoğaltıldığı süreç veya olgusu, sistem kontrolü altında ve kullanıcı / uygulama bilgisi veya müdahalesi olmadan gerçekleşir.[9]:16
  • Eşzamanlılık şeffaflığı - Kullanıcılar / uygulamalar diğer kullanıcıların varlığından / faaliyetlerinden haberdar değildir ve bunlardan etkilenmez.[9]:16
  • Başarısızlık şeffaflığı - Sistem, sistem arızalarının tespiti ve giderilmesinden sorumludur. Sistemin sorunu çözmesini beklemek dışında hiçbir kullanıcı bilgisi / eylemi söz konusu değildir.[10]:30
  • Performans Şeffaflığı - Sistem, yerel veya küresel performans eksikliklerinin tespiti ve düzeltilmesinden sorumludur. Sistem politikalarının bazı kullanıcıları / kullanıcı sınıflarını / görevleri diğerlerine tercih edebileceğini unutmayın. Kullanıcı bilgisi veya etkileşimi yok. işin içinde.[8]:23
  • Boyut / Ölçek şeffaflığı - Sistem, herhangi bir kullanıcı bilgisi veya etkileşimi gerekmeksizin coğrafi erişimini, düğüm sayısını, düğüm yeteneği düzeyini yönetmekten sorumludur.[8]:23
  • Revizyon şeffaflığı - Sistem, kullanıcı bilgisi veya eylemi olmaksızın sistem altyapısındaki yükseltmelerden, revizyonlardan ve değişikliklerden sorumludur.[10]:30
  • Şeffaflığı kontrol edin - Sistem, tüm sistem bilgilerini, sabitleri, özellikleri, yapılandırma ayarlarını vb. Tutarlı bir görünüm, çağrışım ve tüm kullanıcılara ve uygulamalara belirtmekle sağlamaktan sorumludur.[3]:84
  • Veri şeffaflığı - Sistemin nerede depoladığına ilişkin kullanıcı bilgisi veya eylemi olmaksızın uygulamalara veri sağlamaktan sistem sorumludur.[3]:85
  • Paralellik şeffaflığı - Sistem, kullanıcı bilgisi veya etkileşimi olmadan görev yürütmeyi paralel hale getirme yeteneğinden yararlanmaktan sorumludur. Muhtemelen şeffaflığın en zor yönü ve Tanenbaum tarafından dağıtılmış sistem tasarımcıları için "Kutsal Kase" olarak tanımlanıyor.[38]:23–25

Arası iletişim

Arası iletişim (IPC) genel iletişim, süreç etkileşimi ve veri akışı arasında İş Parçacığı ve / veya süreçler hem bir düğüm içinde hem de dağıtılmış bir işletim sistemindeki düğümler arasında. Düğüm içi ve düğümler arası iletişim gereksinimleri, şeffaflığı destekleyen iletişim işlevlerini uygulamaya yönelik tipik yaklaşım olan düşük seviyeli IPC tasarımını yönlendirir. Bu anlamda, Interprocess iletişim, dağıtılmış bir işletim sisteminin düşük seviyeli tasarım hususlarında en büyük temel kavramdır.

Süreç yönetimi

Süreç yönetimi dağıtılmış süreçler arasında kaynakların etkili ve verimli paylaşımı için politikalar ve mekanizmalar sağlar. Bu politikalar ve mekanizmalar, işlemlerin ve bağlantı noktalarının işlemcilere tahsisi ve yeniden tahsisinin yanı sıra işlem yürütmeyi çalıştırma, askıya alma, taşıma, durdurma veya devam ettirme mekanizmalarını içeren işlemleri destekler. Bu kaynaklar ve işlemler birbirine göre yerel veya uzak olabilirken, dağıtılmış işletim sistemi sistemdeki tüm işlemler üzerinde durumu ve senkronizasyonu korur.

Örnek olarak, yük dengeleme ortak bir süreç yönetimi işlevidir. Yük dengeleme, düğüm performansını izler ve sistem dengesiz olduğunda etkinliği düğümler arasında kaydırmaktan sorumludur. Yük dengeleme işlevlerinden biri, taşınacak bir işlem seçmektir. Çekirdek, önceliğe dayalı seçim dahil olmak üzere birkaç seçim mekanizması kullanabilir. Bu mekanizma, 'en yeni istek' gibi bir politikaya dayalı bir süreç seçer. Sistem politikayı uygular

Kaynak yönetimi

Sistem kaynakları bellek, dosyalar, cihazlar vb. gibi bir sisteme dağıtılır ve herhangi bir anda bu düğümlerden herhangi biri hafif ila boşta iş yüklerine sahip olabilir. Yük paylaşımı ve yük dengeleme, boştaki CPU'ların bulunmasından, ne zaman taşınacağına ve hangilerinin taşınacağına kadar birçok politika odaklı karar gerektirir. Birçok algoritmalar bu kararlara yardımcı olmak için var; ancak bu, senaryo için en uygun algoritmayı ve senaryoyu çevreleyen koşulları seçmede ikinci bir karar verme politikası düzeyi gerektirir.

Güvenilirlik

Dağıtılmış işletim sistemi, yüksek düzeylere ulaşmak için gerekli kaynakları ve hizmetleri sağlayabilir. güvenilirlikveya hataları önleme ve / veya düzeltme yeteneği. Arızalar sistemde hatalara neden olabilecek fiziksel veya mantıksal kusurlardır. Bir sistemin güvenilir olması için, hataların olumsuz etkilerinin bir şekilde üstesinden gelmesi gerekir.

Hatalarla başa çıkmanın başlıca yöntemleri şunlardır: hata önleme, hata toleransı, ve arıza tespiti ve kurtarma. Arıza önleme, arızaların oluşumunu en aza indirmek için alınan proaktif önlemleri kapsar. Bu proaktif önlemler şu şekilde olabilir: işlemler, çoğaltma ve yedekler. Hata toleransı, bir sistemin bir arıza durumunda çalışmaya devam etme yeteneğidir. Bu durumda, sistem tam işlevselliği algılamalı ve kurtarmalıdır. Her halükarda, yapılan herhangi bir eylem, korumak için her türlü çabayı göstermelidir. tek sistem görüntüsü.

Kullanılabilirlik

Kullanılabilirlik sistemin isteklere yanıt verebileceği zaman dilimidir.

Verim

Birçok karşılaştırma ölçümleri ölçmek verim; iş hacmi, yanıt süresi, birim zaman başına iş tamamlama sayısı, sistem kullanımı, vb. Dağıtılmış bir işletim sistemi ile ilgili olarak, performans çoğunlukla aşağıdakiler arasındaki bir dengeye gelir: süreç paralelliği ve IPC.[kaynak belirtilmeli ] Yönetmek görev ayrıntı düzeyi Destek için gerekli mesajlarla anlamlı bir ilişki içinde paralellik son derece etkilidir.[kaynak belirtilmeli ] Ayrıca, ne zaman daha yararlı olduğunu belirlemek bir süreci taşımak Verileri kopyalamaktan ziyade verileriyle aynı zamanda etkilidir.[kaynak belirtilmeli ]

Senkronizasyon

İşbirliği eşzamanlı süreçler doğal bir ihtiyacı var senkronizasyon, değişikliklerin doğru ve öngörülebilir bir şekilde gerçekleşmesini sağlar. Bu ihtiyacın kapsamını tanımlayan üç temel durum:

  • Bir veya daha fazla işlemin devam etmesi için bir veya daha fazla işlemin belirli bir noktada senkronize olması gerekir,
  • bir veya daha fazla işlemin devam edebilmesi için eşzamansız bir koşul beklemesi gerekir,
  • veya bir işlem, paylaşılan bir kaynağa özel erişim sağlamalıdır.

Uygun olmayan senkronizasyon, veri kaybı dahil olmak üzere birden fazla hata moduna yol açabilir. atomiklik, tutarlılık, izolasyon ve dayanıklılık, kilitlenme, canlı kilit ve kaybı serileştirilebilirlik.[kaynak belirtilmeli ]

Esneklik

Esneklik dağıtılmış bir işletim sisteminde, dağıtılmış işletim sisteminin modüler ve özellikleri aracılığıyla ve daha zengin bir üst düzey hizmet kümesi sağlayarak geliştirilir. Çekirdeğin / mikro çekirdeğin eksiksizliği ve kalitesi, bu tür hizmetlerin uygulanmasını basitleştirir ve potansiyel olarak hizmet sağlayıcılara bu tür hizmetler için daha fazla sağlayıcı seçeneği sunar.[kaynak belirtilmeli ]

Araştırma

Çoğaltılmış model, bir bileşen nesne modeline genişletildi

 E1 Dağıtık İşletim Sisteminin Mimari Tasarımı[39]
 Cronus dağıtılmış işletim sistemi[40]
 MINIX dağıtılmış işletim sisteminin tasarımı ve geliştirilmesi[41]

Karmaşıklık / Kabul edilen sorumluluk yoluyla güvene maruz kalma

Denali izolasyon çekirdeğinde ölçek ve performans.[42]

Çok / Çok çekirdekli odaklı sistemler

Çok kanallı: ölçeklenebilir çok çekirdekli sistemler için yeni bir işletim sistemi mimarisi.[43]
Corey: Birçok Çekirdek için İşletim Sistemi.[44]
Almos: cc-NUMA Çok Çekirdekler için Gelişmiş Yerellik Yönetimi İşletim Sistemi.[45]

Heterojenlikte aşırılıklar üzerinde dağıtılmış işleme

Helios: uydu çekirdekleriyle heterojen çoklu işlem.[46]

Birden çok karmaşıklık düzeyinde etkili ve kararlı

Tessellation: Manycore İstemci İşletim Sisteminde Uzay-Zaman Bölümleme.[47]

Ayrıca bakınız

Referanslar

  1. ^ a b Tanenbaum, Andrew S (Eylül 1993). "Dağıtılmış işletim sistemleri anno 1992. Şimdiye kadar neler öğrendik?". Dağıtık Sistem Mühendisliği. 1 (1): 3–10. Bibcode:1993DSE ..... 1 .... 3T. doi:10.1088/0967-1846/1/1/001.
  2. ^ Nutt, Gary J. (1992). Merkezi ve Dağıtık İşletim Sistemleri. Prentice Hall. ISBN  978-0-13-122326-4.
  3. ^ a b c d e f Gościński, Andrzej (1991). Dağıtık İşletim Sistemleri: Mantıksal Tasarım. Addison-Wesley Pub. Şti. ISBN  978-0-201-41704-3.
  4. ^ Fortier, Paul J. (1986). Dağıtık İşletim Sistemlerinin Tasarımı: Kavramlar ve Teknoloji. Intertext Yayınları. ISBN  9780070216211.
  5. ^ Hansen, Per Brinch, ed. (2001). Klasik İşletim Sistemleri: Toplu İşlemden Dağıtılmış Sistemlere. Springer. ISBN  978-0-387-95113-3.
  6. ^ CHORUS dağıtılmış işletim sistemi çekirdeğini belirtmek için LOTOS kullanma Pecheur, C. 1992. CHORUS dağıtılmış işletim sistemi çekirdeğini belirlemek için LOTOS kullanma. Bilgisayar. Commun. 15, 2 (Mart 1992), 93-102.
  7. ^ COOL: nesne yönelimli ortamlar için çekirdek desteği Habert, S. ve Mosseri, L. 1990. COOL: nesne yönelimli ortamlar için çekirdek desteği. Nesne Tabanlı Programlama Sistemleri, Dilleri ve Uygulamaları Üzerine Nesne Tabanlı Programlama Avrupa Konferansı Bildirilerinde (Ottawa, Kanada). OOPSLA / ECOOP '90. ACM, New York, NY, 269-275.
  8. ^ a b c d e Sinha, Pradeep Kumar (1997). Dağıtılmış İşletim Sistemleri: Kavramlar ve Tasarım. IEEE Basın. ISBN  978-0-7803-1119-0.
  9. ^ a b c d Galli, Doreen L. (2000). Dağıtılmış İşletim Sistemleri: Kavramlar ve Uygulama. Prentice Hall. ISBN  978-0-13-079843-5.
  10. ^ a b c d Chow, Randy; Theodore Johnson (1997). Dağıtık İşletim Sistemleri ve Algoritmalar. Addison Wesley. ISBN  978-0-201-49838-7.
  11. ^ Surajbali, B., Coulson, G., Greenwood, P., and Grace, P. 2007. Yansıtıcı ara yazılımın bir yön oryantasyon destek katmanı ile arttırılması. 6. Uluslararası Uyarlanabilir ve Yansıtıcı Ara Yazılım Çalıştayı Bildirilerinde: ACM / IFIP / USENIX Uluslararası Ara Yazılım Konferansı'nda Düzenlendi (Newport Beach, CA, 26-30 Kasım 2007). ARM '07. ACM, New York, NY, 1-6.
  12. ^ Leiner, Alan L. (Nisan 1954). "DYSEAC için Sistem Özellikleri". ACM Dergisi. 1 (2): 57–81. doi:10.1145/320772.320773.
  13. ^ a b Forgie, James W. (26-28 Şubat 1957). Lincoln TX-2 Giriş-Çıkış Sistemi. Batı Ortak Bilgisayar Konferansı: Güvenilirlik Teknikleri. Los Angeles, California: Bilgisayar Makineleri Derneği. s. 156–160. doi:10.1145/1455567.1455594. ISBN  9781450378611.
  14. ^ a b C. Y. Lee (4-6 Aralık 1962). Birbiriyle iletişim halinde olan hücreler, dağıtılmış bir mantık bilgisayarı için temel. Güz Ortak Bilgisayar Konferansı. Philadelphia, Pensilvanya: Bilgisayar Makineleri Derneği. s. 130–136. doi:10.1145/1461518.1461531.
  15. ^ Dreyfus, Phillippe (1958-05-08) [1958-05-06], Los Angeles'ta yazılmıştır, "Gamma 60'ın sistem tasarımı" (PDF), 6-8 Mayıs 1958 tutanakları, Batı Ortak Bilgisayar Konferansı: Bilgisayarlarda Karşıtlıklar, ACM, New York, NY, ABD, s. 130–133, IRE-ACM-AIEE '58 (Batı), arşivlendi (PDF) 2017-04-03 tarihinde orjinalinden, alındı 2017-04-03
  16. ^ Leiner, A. L., Notz, W. A., Smith, J. L., ve Weinberger, A. 1958. Son teslim tarihlerini karşılamak için bir bilgisayar ağı organize etmek. 9–13 Aralık 1957'de Sunulan Makale ve Tartışmalarda, Doğu Ortak Bilgisayar Konferansı: Son Teslim Tarihi Olan Bilgisayarlar (Washington, D.C., 09–13 Aralık 1957). IRE-ACM-AIEE '57
  17. ^ Leiner, A. L., Smith, J. L., Notz, W. A. ​​ve Weinberger, A. 1958. PILOT, NBS çoklu bilgisayar sistemi. 3-5 Aralık 1958'de Sunulan Makale ve Tartışmalarda Doğu Ortak Bilgisayar Konferansı: Modern Bilgisayarlar: Hedefler, Tasarımlar, Uygulamalar (Philadelphia, Pennsylvania, 03-05 Aralık 1958). AIEE-ACM-IRE '58 (Doğu). ACM, New York, NY, 71-75.
  18. ^ Bauer, W. F. 1958. Programcının bakış açısından bilgisayar tasarımı. 3-5 Aralık 1958'de Sunulan Makale ve Tartışmalarda Doğu Ortak Bilgisayar Konferansı: Modern Bilgisayarlar: Hedefler, Tasarımlar, Uygulamalar (Philadelphia, Pennsylvania, 03-05 Aralık 1958). AIEE-ACM-IRE '58 (Doğu). ACM, New York, NY, 46-51.
  19. ^ Leiner, A. L., Notz, W. A., Smith, J. L. ve Weinberger, A. 1959. PILOT - Yeni Bir Çoklu Bilgisayar Sistemi. J. ACM 6, 3 (Temmuz 1959), 313-335.
  20. ^ Estrin, G. 1960. Bilgisayar sistemlerinin organizasyonu: sabit artı değişken yapılı bilgisayar. 3–5 Mayıs 1960, Western Joint IRE-AIEE-ACM Computer Conference'da Sunulan Makalelerde (San Francisco, California, 03-05 Mayıs 1960). IRE-AIEE-ACM '60 (Batı). ACM, New York, NY, 33-40.
  21. ^ Martin H. Weik, "Üçüncü Bir Yerli Elektronik Dijital Hesaplama Sistemleri Araştırması," Balistik Araştırma Laboratuvarları Rapor No. 1115, sf. 234-5, Aberdeen Proving Ground, Maryland, Mart 1961
  22. ^ Mellor-Crummey, J.M. ve Scott, M.L. 1991. Paylaşılan bellekli çok işlemcilerde ölçeklenebilir senkronizasyon için algoritmalar. ACM Trans. Bilgisayar. Syst. 9, 1 (Şubat 1991), 21-65.
  23. ^ Baker, M.G., Hartman, J.H., Kupfer, M.D., Shirriff, K. W., ve Ousterhout, J. K. 1991. Dağıtılmış bir dosya sisteminin ölçümleri. İşletim Sistemleri İlkeleri Üzerine On Üçüncü ACM Sempozyumu Bildirilerinde (Pacific Grove, California, Amerika Birleşik Devletleri, 13–16 Ekim 1991). SOSP '91. ACM, New York, NY, 198-212.
  24. ^ Li, K. ve Hudak, P. 1989. Paylaşılan sanal bellek sistemlerinde bellek tutarlılığı. ACM Trans. Bilgisayar. Syst. 7, 4 (Kasım 1989), 321-359.
  25. ^ Garcia-Molina, H. ve Salem, K. 1987. Sagas. 1987 ACM SIGMOD Uluslararası Veri Yönetimi Konferansı Bildirilerinde (San Francisco, California, Amerika Birleşik Devletleri, 27–29 Mayıs 1987). U. Dayal, Ed. SIGMOD '87. ACM, New York, NY, 249-259.
  26. ^ Harris, T., Marlow, S., Peyton-Jones, S. ve Herlihy, M. 2005. Birleştirilebilir bellek işlemleri. Paralel Programlama İlkeleri ve Uygulaması üzerine Onuncu ACM SIGPLAN Sempozyumu Bildirilerinde (Chicago, IL, ABD, 15–17 Haziran 2005). PPoPP '05. ACM, New York, NY, 48-60.
  27. ^ Herlihy, M. ve Moss, J.E. 1993. İşlem belleği: kilitsiz veri yapıları için mimari destek. Bilgisayar Mimarisi üzerine 20. Yıllık uluslararası Sempozyum Bildirilerinde (San Diego, California, Amerika Birleşik Devletleri, 16–19 Mayıs 1993). ISCA '93. ACM, New York, NY, 289-300.
  28. ^ Herlihy, M., Luchangco, V., Moir, M. ve Scherer, W.N. 2003. Dinamik boyutlu veri yapıları için yazılım işlem belleği. Dağıtılmış Hesaplamanın İlkeleri Üzerine Yirmi İkinci Yıllık Sempozyum Bildirilerinde (Boston, Massachusetts, 13–16 Temmuz 2003). PODC '03. ACM, New York, NY, 92-101.
  29. ^ Shavit, N. ve Touitou, D. 1995. Yazılım işlem belleği. Dağıtılmış Hesaplama İlkeleri Üzerine On Dördüncü Yıllık ACM Sempozyumu Bildirilerinde (Ottawa, Ontario, Kanada, 20-23 Ağustos 1995). PODC '95. ACM, New York, NY, 204-213.
  30. ^ Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Wells, C., ve Zhao, B. 2000. OceanStore: küresel ölçekte kalıcı depolama için bir mimari. Programlama Dilleri ve İşletim Sistemleri İçin Mimari Destek Dokuzuncu Uluslararası Konferansı Bildirilerinde (Cambridge, Massachusetts, Amerika Birleşik Devletleri). ASPLOS-IX. ACM, New York, NY, 190-201.
  31. ^ Gifford, D.K. 1979. Çoğaltılmış veriler için ağırlıklı oylama. In Proceedings of the Seventh ACM Symposium on Operating Systems Principles (Pacific Grove, California, United States, December 10–12, 1979). SOSP '79. ACM, New York, NY, 150-162
  32. ^ Dwork, C., Lynch, N., and Stockmeyer, L. 1988. Consensus in the presence of partial synchrony. J. ACM 35, 2 (Apr. 1988), 288-323.
  33. ^ Lamport, L., Shostak, R., and Pease, M. 1982. The Byzantine Generals Problem. ACM Trans. Program. Lang. Syst. 4, 3 (Jul. 1982), 382-401.
  34. ^ Schlichting, R. D. and Schneider, F. B. 1983. Fail-stop processors: an approach to designing fault-tolerant computing systems. ACM Trans. Bilgisayar. Syst. 1, 3 (Aug. 1983), 222-238.
  35. ^ Chandy, K. M. and Lamport, L. 1985. Distributed snapshots: determining global states of distributed systems. ACM Trans. Bilgisayar. Syst. 3, 1 (Feb. 1985), 63-75.
  36. ^ Strom, R. and Yemini, S. 1985. Optimistic recovery in distributed systems. ACM Trans. Bilgisayar. Syst. 3, 3
  37. ^
  38. ^ Tanenbaum, Andrew S. (1995). Dağıtık İşletim Sistemleri. Prentice Hall. ISBN  978-0-13-219908-7.
  39. ^ 1 POUND = 0.45 KG. Ryzhyk, A.Y. Burtsev. Architectural design of dE1 distributed operating system. System Research and Information Technologies international scientific and technical journal, October 2004, Kiev, Ukraine.
  40. ^ Vinter, S. T. and Schantz, R. E. 1986. The Cronus distributed operating system. In Proceedings of the 2nd Workshop on Making Distributed Systems Work (Amsterdam, Netherlands, September 08–10, 1986). EW 2. ACM, New York, NY, 1-3.
  41. ^ Ramesh, K. S. 1988. Design and development of MINIX distributed operating system. In Proceedings of the 1988 ACM Sixteenth Annual Conference on Computer Science (Atlanta, Georgia, United States). CSC '88. ACM, New York, NY, 685.
  42. ^ Whitaker, A., Shaw, M., and Gribble, S. D. 2002. In Proceedings of the 5th Symposium on Operating Systems Design and Implementation
  43. ^ Baumann, A., Barham, P., Dagand, P., Harris, T., Isaacs, R., Peter, S., Roscoe, T., Schüpbach, A., and Singhania, A. 2009. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (Big Sky, Montana, USA, October 11–14, 2009). SOSP '09.
  44. ^ S. Boyd-Wickizer, H. Chen, R. Chen, Y. Mao, F. Kashoek, R. Morris, A. Pesterev, L. Stein, M. Wu, Y. Dai, Y. Zhang, and Z. Zhang. Proceedings of the 2008 Symposium on Operating Systems Design and Implementation (OSDI), December 2008.
  45. ^ Almaless, G. and Wajsbürt, F. 2011. In Proceedings of the 5th national seminar of GDR SoC-SIP, Lyon, France, 2011.
  46. ^ Nightingale, E. B., Hodson, O., McIlroy, R., Hawblitzel, C., and Hunt, G. 2009. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (Big Sky, Montana, USA, October 11–14, 2009). SOSP '09.
  47. ^ Rose Liu, Kevin Klues, and Sarah Bird, University of California at Berkeley; Steven Hofmeyr, Lawrence Berkeley National Laboratory; Krste Asanović and John Kubiatowicz, University of California at Berkeley. HotPar09.

Dış bağlantılar