Uygulama yazılımı ortamlarını uygulama yöntemleri. Uygulama yazılımı Uygulama yazılımını uygulama yolları

Uygulama yazılımı ortamlarını uygulama yöntemleri. Uygulama yazılımı Uygulama yazılımını uygulama yolları

Pek çok işletim sistemi mimari özelliği yalnızca sistem programcılarıyla doğrudan ilişkiliyken, çoklu uygulama (operasyonel) olanakları kavramı doğrudan son kullanıcıların ihtiyaçlarıyla - işletim sistemi diğer işletim sistemleri için yazılmış uygulamaları çalıştırın. İşletim sisteminin bu özelliğine uyumluluk denir.

Uygulama uyumluluğu ikili düzeyde ve kaynak düzeyinde olabilir [ 13 ]. Uygulamalar genellikle işletim sisteminde kod ve verilerin ikili görüntülerini içeren yürütülebilir dosyalar olarak depolanır. Yürütülebilir bir programı alıp farklı bir işletim sistemi ortamında çalıştırabildiğinizde ikili uyumluluk elde edilir.

Kaynak düzeyinde uyumluluk, üzerinde çalışması amaçlanan bilgisayarın yazılımında uygun bir derleyicinin bulunmasını gerektirir. bu başvuru, ayrıca kitaplıklar ve sistem çağrıları düzeyinde uyumluluk. Bu, uygulamanın kaynak kodunun yeni bir yürütülebilir modülde yeniden derlenmesini gerektirir.

Kaynak düzeyinde uyumluluk, esas olarak bu kaynaklara sahip olan uygulama geliştiricileri için önemlidir. Ancak son kullanıcılar için yalnızca ikili uyumluluk pratik öneme sahiptir, çünkü yalnızca bu durumda aynı ürünü farklı işletim sistemlerinde ve farklı makinelerde kullanabilirler.

Olası uyumluluğun türü birçok faktöre bağlıdır. Bunlardan en önemlisi işlemci mimarisidir. İşlemci aynı talimat setini (belki IBM PC'de olduğu gibi eklemelerle: standart set + multimedya + grafik + akış) ve aynı adres aralığını kullanıyorsa, ikili uyumluluk oldukça basit bir şekilde elde edilebilir. Bunun için aşağıdaki koşulların sağlanması gerekir:

    Uygulamanın kullandığı API, verilen işletim sistemi tarafından desteklenmelidir;

    uygulamanın yürütülebilir dosyasının dahili yapısı, işletim sisteminin yürütülebilir dosyalarının yapısıyla eşleşmelidir.

İşlemcilerin farklı mimarileri varsa, yukarıdaki koşullara ek olarak, ikili kodun öykünmesini düzenlemek gerekir. Örneğin, Intel işlemci yönergelerinin Macintosh'un Motorola 680x0 işlemcisinde öykünmesi yaygın olarak kullanılmaktadır. Bu durumda yazılım öykünücüsü, ikili talimatı sırayla seçer Intel işlemci ve Motorola işlemci talimatlarında yazılı eşdeğer alt programı yürütür. Motorola işlemcisi, Intel işlemcilerde olduğu gibi tam olarak aynı kayıtlara, bayraklara, dahili ALU'ya vb. sahip olmadığından, kendi kayıtlarını veya belleğini kullanarak tüm bu öğeleri simüle etmelidir (taklit etmelidir).

Bu basit ama çok yavaş çalışma, çünkü bir Intel talimatı, onu taklit eden Motorola işlemcisinin talimat dizisinden çok daha hızlı yürütülür. Bu gibi durumlarda çıkış yolu, sözde uygulama yazılım ortamlarının veya işletim ortamlarının kullanılmasıdır. Böyle bir ortamın bileşenlerinden biri, bir dizi uygulama arayüzü işlevidir. API programlama işletim sisteminin uygulamalarına sağladığı. Diğer kişilerin programlarının yürütülmesi için gereken süreyi azaltmak için uygulama ortamları, kütüphane işlevlerine yapılan çağrıları taklit eder.

Bu yaklaşımın etkinliği, günümüz programlarının çoğunun GUI (grafiksel kullanıcı arayüzleri) kontrolü altında çalışmasından kaynaklanmaktadır. Windows tipi, MAC veya UNIX Motif, uygulamalar zamanlarının %60-80'ini GUI işlevleri ve diğer işletim sistemi kitaplığı çağrıları yapmak için harcar. Uygulama ortamlarının, programların komut komut öykünmesi için harcanan büyük zamanı telafi etmesine izin veren, uygulamaların bu özelliğidir. Dikkatle tasarlanmış bir yazılım uygulama ortamı, GUI kitaplıklarını taklit eden ancak "yerel" kodla yazılmış kitaplıklar içerir. Böylece, başka bir işletim sisteminin API'si ile programların yürütülmesinde önemli bir hızlanma elde edilir. Aksi takdirde, bu yaklaşıma çeviri denir - onu her seferinde bir talimatı taklit eden daha yavaş süreçten ayırmak için.

Örneğin, bir Macintosh üzerinde çalışan bir Windows programı için, işlemci komutlarını yorumlarken Intel Performansıçok düşük olabilir. Ancak bir GUI işlevi çağrıldığında, bir pencere açıldığında vb., uygulamayı gerçekleştiren işletim sistemi modülü Windows ortamı, bu aramayı durdurabilir ve Motorola 680x0 işlemcisinin bir pencere açması için yeniden derlenmiş bir dosyaya yönlendirebilir. Sonuç olarak, kodun bu tür bölümlerinde programın hızı, kendi işlemcisinin çalışma hızına ulaşabilir (ve muhtemelen onu geçebilir).

Bir işletim sistemi için yazılan bir programın başka bir işletim sistemi üzerinde çalışabilmesi için sadece API uyumluluğunun sağlanması yeterli değildir. Farklı işletim sistemlerinin altında yatan kavramlar birbiriyle çatışabilir. Örneğin, bir işletim sisteminde, bir uygulamanın G / Ç cihazlarını kontrol etmesine izin verilebilir, diğerinde bu eylemler işletim sisteminin ayrıcalığıdır.

Her işletim sisteminin kendi kaynak koruma mekanizmaları, kendi hata ve istisna işleme algoritmaları, özel işlemci yapısı ve bellek yönetim şeması, kendi dosya erişim semantiği ve grafikleri vardır. Kullanıcı arayüzü. Uyumluluğu sağlamak için, aynı işletim sistemi içinde bilgisayar kaynaklarını yönetmenin çeşitli yollarının çakışmadan bir arada bulunmasını organize etmek gerekir.

Hem mimari çözümlerin özelliklerinde hem de değişen derecelerde uygulama taşınabilirliği sağlayan işlevsellikte farklılık gösteren, çoklu uygulama ortamları oluşturmak için çeşitli seçenekler vardır. Birden çok uygulama ortamını uygulamaya yönelik en bariz seçeneklerden biri, işletim sisteminin standart katmanlı yapısını temel alır.

Açık pirinç. 1.9 OS1, "yerel" uygulamalarına ek olarak OS2 ve OS3 işletim sistemlerinin uygulamalarını destekler. Bunun için içerdiği özel uygulamalar, "yabancı" işletim sistemleri API OS2 ve API OS3'ün arayüzlerini "yerel" işletim sistemleri - API OS1'in arayüzüne çeviren uygulama programlama ortamları. Bu nedenle, örneğin, OS2 UNIX OS ve OS1 OS/2 ise, bir UNIX uygulamasında fork() işlem oluşturma sistem çağrısını yürütmek için, yazılım ortamının sistemle OS/2 işletim sistemi çekirdeğine DOS'u çağırarak erişmesi gerekir. ExecPgm().

Pirinç. 1.9.Çoklu uygulama ortamlarının organizasyonu

Ne yazık ki, bir işletim sisteminin API'sini oluşturan hemen hemen tüm işlevlerin davranışı, kural olarak, başka bir işletim sisteminin karşılık gelen işlevlerinin davranışından önemli ölçüde farklıdır. Örneğin, OS/2 Dos ExecPgm() içindeki işlem oluşturma işlevinin UNIX benzeri sistemlerdeki fork() işlem oluşturma işleviyle tamamen tutarlı olması için, değiştirilmesi ve yeni işlevsellik yazılması gerekir: destek için üst işlemin adres alanını alt işlemin alanına kopyalama yeteneği [ 17 ].

Birden çok uygulama ortamı oluşturmanın başka bir yolu da mikro çekirdek yaklaşımına dayanır. Aynı zamanda, işletim sisteminin mekanizmaları ile stratejik sorunları çözen uygulama ortamlarının her birine özgü üst düzey işlevler arasındaki temel, tüm uygulama ortamları için ortak olan farkı not etmek çok önemlidir. Mikro çekirdek mimarisine uygun olarak, tüm işletim sistemi işlevleri mikro çekirdek ve kullanıcı modu sunucuları tarafından uygulanır. Uygulama ortamının formda tasarlanmış olması önemlidir. ayrı sunucu kullanıcı modu ve altta yatan mekanizmaları içermez.

API'yi kullanan uygulamalar, mikro çekirdek aracılığıyla ilgili uygulama ortamına sistem çağrıları yapar. Uygulama ortamı isteği işler, yürütür (belki bunun için mikro çekirdeğin temel işlevlerinden yardım isteyerek) ve sonucu uygulamaya geri gönderir. İsteğin yürütülmesi sırasında, uygulama ortamının da mikro çekirdek ve diğer işletim sistemi sunucuları tarafından uygulanan temel işletim sistemi mekanizmalarına erişmesi gerekir.

Birden fazla uygulama ortamı tasarlamaya yönelik bu yaklaşım, mikro çekirdek mimarisinin tüm avantaj ve dezavantajlarına sahiptir, özellikle:

    mikro çekirdek işletim sistemlerinin iyi genişletilebilirliğinin bir sonucu olarak uygulama ortamlarını eklemek ve hariç tutmak çok kolaydır;

    uygulama ortamlarından biri arızalanırsa, geri kalanı çalışır durumda kalır ve bu da bir bütün olarak sistemin güvenilirliğine ve kararlılığına katkıda bulunur;

    mikro çekirdek işletim sistemlerinin düşük performansı, uygulama araçlarının hızını ve dolayısıyla uygulamaların hızını etkiler.

Sonuç olarak, farklı işletim sistemlerindeki uygulamaları yürütmek için aynı işletim sistemi içinde birkaç uygulama aracının oluşturulmasının, programın tek bir sürümüne sahip olmanızı ve farklı işletim sistemleri arasında aktarmanızı sağlayan bir yol olduğu belirtilmelidir. Çoklu uygulama ortamları, belirli bir işletim sisteminin diğer işletim sistemleri için yazılmış uygulamalarla ikili uyumluluğunu sağlar.

Başka bir işletim sisteminin ortamıyla tamamen uyumlu eksiksiz bir uygulama ortamı oluşturmak yeterlidir. zorlu görev, işletim sisteminin yapısıyla yakından ilgilidir. Birden çok uygulama ortamı oluşturmak için hem mimari çözümlerin özellikleri hem de özellikleri bakımından farklılık gösteren çeşitli seçenekler vardır. işlevsellik, değişen derecelerde uygulama taşınabilirliği sağlar.

UNIX işletim sisteminin birçok sürümünde, uygulama ortamı çeviricisi normal bir uygulama olarak uygulanır. Windows NT gibi mikro çekirdek konsepti kullanılarak oluşturulan işletim sistemlerinde, uygulama ortamları kullanıcı modu sunucuları olarak çalışır. Ve daha basit mimarisiyle OS/2'de, uygulama ortamları işletim sisteminin derinliklerine yerleştirilmiştir.

Birden çok uygulama ortamını uygulamaya yönelik en bariz seçeneklerden biri, işletim sisteminin standart katmanlı yapısını temel alır. Şek. 3. 8 işletim sistemi OS1, "yerel" uygulamalarına ek olarak OS2 işletim sisteminin uygulamalarını destekler. Bunu yapmak için, özel bir uygulama içerir - "yabancı" bir işletim sisteminin - API OS2 arayüzünü "yerel" işletim sisteminin - API OS1 arayüzüne çeviren bir uygulama yazılımı ortamı.

Pirinç. 3. 8. Yayın yapan uygulama yazılım ortamı
sistem çağrıları

Birden çok uygulama ortamının başka bir uygulamasında, işletim sistemi birden çok eş uygulama programlama arabirimine sahiptir. Şek. 3. Örnekte, işletim sistemi OS1, OS2 ve OS3 için yazılmış uygulamaları desteklemektedir. Bunu yapmak için, tüm bu işletim sistemlerinin uygulama programlama arabirimleri doğrudan sistemin çekirdek alanına yerleştirilir: API OS1, API OS2 ve API OS3.

Pirinç. 3. 9. Birkaç temele dayalı uyumluluk uygulaması
eş API'ler

Bu varyantta, API düzeyi işlevleri, genel olarak uyumsuz olan üç uygulama ortamını da desteklemesi gereken temel işletim sistemi düzeyinin işlevlerini çağırır. Farklı işletim sistemleri, sistem zamanını farklı şekilde yönetir, farklı günün saati formatlarını kullanır, CPU zamanını kendi algoritmalarına göre böler, vb. benzer bir amaçları vardır.

Birden çok uygulama ortamı oluşturmanın başka bir yolu da mikro çekirdek yaklaşımına dayanır. Aynı zamanda, işletim sisteminin tüm uygulama ortamlarında ortak olan temel mekanizmalarını, stratejik sorunları çözen uygulama ortamlarının her birine özgü üst düzey işlevlerden ayırmak çok önemlidir.

Mikro çekirdek mimarisine uygun olarak, tüm işletim sistemi işlevleri mikro çekirdek ve kullanıcı modu sunucuları tarafından uygulanır. Her uygulama ortamının ayrı bir kullanıcı modu sunucusu olarak tasarlanması ve temel mekanizmaları içermemesi önemlidir (Şekil 3. 10). API erişimini kullanan uygulamalar sistem çağrıları mikro çekirdek aracılığıyla ilgili uygulama ortamına. Uygulama ortamı isteği işler, yürütür (belki bunun için mikro çekirdeğin temel işlevlerinden yardım isteyerek) ve sonucu uygulamaya geri gönderir. İsteğin yürütülmesi sırasında, uygulama ortamının da mikro çekirdek ve diğer işletim sistemi sunucuları tarafından uygulanan temel işletim sistemi mekanizmalarına erişmesi gerekir.

Pirinç. 3. 10. Birden çok uygulamanın uygulanmasına yönelik mikro çekirdek yaklaşımı
uygulama ortamları

Birden fazla uygulama ortamı tasarlamaya yönelik bu yaklaşım, bir mikro çekirdek mimarisinin tüm avantaj ve dezavantajlarına sahiptir, özellikle:

Mikro çekirdek işletim sistemlerinin iyi genişletilebilirliğinin bir sonucu olarak, uygulama ortamlarını eklemek ve hariç tutmak çok kolaydır;

Güvenilirlik ve kararlılık, uygulama ortamlarından birinin arızalanması durumunda diğerlerinin çalışır durumda kalmasıyla ifade edilir;

· Mikro çekirdek işletim sistemlerinin düşük performansı, uygulama ortamlarının hızını ve dolayısıyla uygulama yürütme hızını etkiler.

Farklı işletim sistemlerinin uygulamalarını yürütmek için tek bir işletim sistemi içinde çeşitli uygulama ortamlarının oluşturulması, programın tek bir sürümüne sahip olmanızı ve onu işletim sistemleri arasında aktarmanızı sağlayan bir yoldur. Çoklu uygulama ortamları, belirli bir işletim sisteminin diğer işletim sistemleri için yazılmış uygulamalarla ikili uyumluluğunu sağlar. Sonuç olarak, kullanıcılar işletim sistemlerini ve daha fazlasını seçme konusunda daha fazla özgürlüğe sahiptir. kolay erişim kaliteli yazılıma.

Kendi kendine muayene için sorular

  1. İşletim sistemi mimarisi ile kastedilen nedir?
  2. Bir bilgisayar sisteminin yapısındaki üç ana katman nedir?
  3. İşletim sistemi tarafından sistem çağrısı arabirimine atanan rol nedir?
  4. İşletim sisteminin kolayca taşınabilir olması için bir işletim sistemi tasarlarken hangi koşulların karşılanması gerekir?
  5. Mikro çekirdek mimarisi ile geleneksel işletim sistemi mimarisi arasındaki fark nedir?
  6. Mikro çekirdek, dağıtılmış bilgi işlemi desteklemek için neden çok uygundur?
  7. Çoklu uygulama ortamları kavramı ile kastedilen nedir?
  8. Kütüphane çeviri yönteminin özü nedir?

İş bitimi -

Bu konu şuna aittir:

İşletim sistemi, süreçler, donanım

İşletim sisteminin işletim sistemi, büyük ölçüde tüm bilgi işlem sisteminin bir bütün olarak görünümünü belirler, işletim sistemi, sanal bir genişletilmiş makine olarak, çoğu bilgisayarın kullanımı .. kullanıcının bakış açısından, esasen az ilgili iki .. işletim sistemi gerçekleştirir. işletim sisteminin işlevi, kullanıcıya bazı genişletilmiş veya sanal özellikler sağlamaktır.

Bu konuda ek malzemeye ihtiyacınız varsa veya aradığınızı bulamadıysanız, eser veritabanımızdaki aramayı kullanmanızı öneririz:

Alınan malzeme ile ne yapacağız:

Bu materyalin sizin için yararlı olduğu ortaya çıktıysa, onu sosyal ağlardaki sayfanıza kaydedebilirsiniz:

Bu bölümdeki tüm konular:

Donanım platformlarının özellikleri
İşletim sisteminin özellikleri, yönlendirildiği donanımdan doğrudan etkilenir. İşletim sistemleri donanım türlerine göre sınıflandırılır. kişisel bilgisayarlar mi

Görevler ve alıştırmalar
1. Bilgisayarların teknik temellerinin geliştirilmesinde hangi olaylar işletim sistemleri tarihinde dönüm noktaları oldu? 2. İlk toplu işleme monitörleri ile ilk toplu işleme monitörleri arasındaki temel fark neydi?

İşletim sistemi mimarisi
İyi organize edilmiş herhangi bir karmaşık sistem açık ve rasyonel bir yapıya sahiptir, yani parçalara bölünmüştür - tamamen tamamlanmış bir işlevsel amaca sahip modüller.

Ana bellek yönetimi
Bellek, her biri kendi adresine sahip geniş bir sözcük veya bayt dizisidir. Bu, sağlanan bir veri ambarıdır. hızlı erişim işlemci arasında dağıtılır ve

Harici bellek yönetimi
Ana bellek (birincil bellek) uçucu olduğundan ve tüm verileri ve programları kalıcı olarak tutmak için çok küçük olduğundan, VS ana belleği kaydetmek için ikincil bellek sağlamalıdır. Bol

Dosya yönetimi alt sistemi
Bir dosya, oluşturma sırasında tanımlanan ilgili bilgilerin bir koleksiyonudur. Gerçek verilere ek olarak, dosyalar hem kaynak hem de nesne biçimindeki programları temsil eder. alt sistem

ağ oluşturma
Dağıtılmış sistem - bellek ayırmayan bir dizi işlemci veya her işlemcinin kendi yerel belleği vardır. Sistemdeki işlemciler birbirine bağlıdır. bilgisayar ağı ve sağlanması

Çekirdek ve yardımcı işletim sistemi modülleri
İşletim sisteminin yapılandırılmasına yönelik en genel yaklaşım, tüm modüllerinin iki gruba bölünmesidir: çekirdek - temel işlevleri yerine getiren işletim sistemi modülleri;

Çekirdek ve ayrıcalıklı mod
Uygulamaların yürütülmesini güvenilir bir şekilde kontrol etmek için işletim sisteminin uygulamalar üzerinde belirli ayrıcalıklara sahip olması gerekir. Aksi takdirde, hatalı çalışan bir uygulama

Katmanlı işletim sistemi yapısı
Çekirdek tabanlı bir işletim sistemi altında çalışan bir bilgi işlem sistemi, hiyerarşik olarak düzenlenmiş üç katmandan oluşan bir sistem olarak görülebilir: alt katman, donanımı oluşturur.

Çekirdek yapı
İşletim sistemi donanım desteği. Şimdiye kadar işletim sisteminden bir dizi program olarak bahsedildi, ancak işletim sisteminin bazı işlevleri donanım tarafından da gerçekleştirilebilir. Şair

Donanım bağımlılığı ve işletim sistemi taşınabilirliği
Pek çok işletim sistemi, kompozisyonlarında önemli bir değişiklik olmaksızın çeşitli donanım platformlarında başarılı bir şekilde çalışır. Bu büyük ölçüde farklılıklara rağmen şu gerçeğinden kaynaklanmaktadır:

İşletim sistemi taşınabilirliği
İşletim sistemi kodu, bir işlemci türünden başka bir işlemci türüne ve bir donanım platformu türünden bir donanım platformuna görece kolaylıkla taşınabiliyorsa

Konsept
Mikro çekirdek mimarisi, bir işletim sistemi oluşturmanın klasik yoluna bir alternatiftir. Bu durumda klasik mimari, yukarıda tartışılan yapısal organizasyonu ifade eder.

İkili ve Kaynak Uyumluluğu
İkili düzeyde uyumluluk ile kaynak kod düzeyinde uyumluluk arasında ayrım yapmak gerekir. Uygulamalar genellikle işletim sisteminde ikili görüntüler içeren yürütülebilir dosyalar olarak saklanır.

Kütüphanelerin çevirisi
Bu gibi durumlarda çıkış yolu, sözde kullanmaktır. Uygulama programları ortamlar. Uygulama yazılımı ortamını oluşturan bileşenlerden biri de bir dizi işlevdir.

Süreç Konsepti
İşlem, bir işlemci üzerinde çalışan bir etkinliktir. En geniş anlamıyla işlemci, bir bilgisayardaki herhangi bir aygıttır.

kaynak konsepti
İşletim sisteminin işlevlerinden biri, bir bilgi işlem sisteminin kaynaklarını yönetmenin verimli ve çatışmasız bir yolunu sağlamaktır. Bir kaynak genellikle bir gösterge olarak anlaşılır

sanallaştırma kavramı
Şu veya bu kaynağın sanallaştırılması, merkezi bir kaynak tahsis şeması çerçevesinde gerçekleştirilir. Sanallaştırma yoluyla, iki tür kullanıcı aldatması uygulanır:

Tek sipariş hizmet disiplinleri
a) FIFO (First In -- First Out) - teslim alma sırasına göre hizmet disiplini. Tüm istekler kuyruğun sonuna gider. Kuyruğun başındaki başvurular önce servis edilir. Şematik

Kesinti sistemi
Bazı bağımsız olayların etkisinin bir sonucu olarak ortaya çıkan, bir programın belirli bir amaç doğrultusunda bir dizi komut yürütmesinin geçici olarak durdurulmasına yol açan bir durum.

Süreç Konsepti
İşlem (görev), yürütme modunda olan bir programdır. Her işlemin kendisiyle ilişkili, okuyabileceği ve okuyabileceği kendi adres alanı vardır.

İşlem modeli
Çok görevli bir sistemde, gerçek işlemci işlemden işleme değişir, ancak modeli basitleştirmek için paralel (sözde paralel) çalışan bir dizi işlem dikkate alınır. Dikkate almak

Bir süreci sonlandırmak
(çağrı çıkışı veya ExitProcess): Planlanmış sonlandırma (yürütme sonu) Bilinen bir hatada planlanmış çıkış (ör. eksik dosya)

Süreç Hiyerarşisi
UNIX sistemleri katı bir süreç hiyerarşisine sahiptir. Çatal sistem çağrısı tarafından oluşturulan her yeni işlem, önceki işlemin bir alt öğesidir. Alt süreç, üst süreçten alır.

İşlem durumu
Bir işlemin üç durumu şunlardır: Çalışıyor (işlemciyi meşgul ediyor) Hazır (işlem, başka bir işlemin çalışmasına izin vermek için geçici olarak askıya alınmış) Bekliyor (işlem)

akış kavramı
Her işlemin bir adres alanı ve tek bir yürütülebilir talimat akışı vardır. Çok kullanıcılı sistemlerde, aynı servise yapılan her çağrı ile varış

akış modeli
Her iş parçacığı şunlarla ilişkilendirilir: Komut yürütme sayacı Geçerli değişkenler için kayıtlar Yığın Durumu Yığınlar kendi aralarında öğeleri paylaşır

Konu Kullanmanın Yararları
Bazı durumlarda ortak bir adres alanı kullanarak programı basitleştirmek. Bir işlemle karşılaştırıldığında iş parçacığı oluşturma hızı yaklaşık 100 kattır. terfi

Kullanıcı uzayında, çekirdekte ve karmada iş parçacıklarının uygulanması
A - kullanıcı alanındaki ileti dizileri B

Windows Uygulama Özellikleri
Dört kavram kullanılır: İş - ortak kotaları ve limitleri olan bir dizi süreç Süreç - bir kaynak kabı (bellek...), en az bir iş parçacığı içerir. Poto

Süreçler arasındaki iletişim
Süreçlerin etkileşime girmesi gereken durumlar: Bir süreçten diğerine bilgi aktarımı Süreçlerin faaliyetleri üzerinde kontrol (örneğin:

Bir süreçten diğerine bilgi aktarma
Aktarım birkaç şekilde yapılabilir: Paylaşılan bellek Kanallar (borular), bir işlemin yazdığı ve diğerinin okuduğu sahte bir dosyadır.

Yarış kondisyonu
Yarış durumu, birden fazla işlemin aynı anda veri okuduğu veya yazdığı (belleğe veya bir dosyaya) bir durumdur. İki işlemin yapmaya çalıştığı bir örneği ele alalım.

Kritik alanlar
Kritik bölge, paylaşılan verilere erişen bir programın parçasıdır. Çekişmeyi önleme koşulları ve verimli çalışma süreçler: İki süreç değil

Kilit değişkenleri
Bir kilit değişkeni kavramı tanıtılır, örn. bu değişkenin değeri, örneğin 1'e eşitse, kaynak başka bir işlem tarafından kullanılır ve ikinci işlem bekleme moduna (bloklar) geçer.

sıkı münavebe
Bu modelde, süreçler bir değişken kullanılarak kesinlikle sırayla yürütülebilir.

İşlem etkileşimi ilkelleri
İki ilkel kavramı tanıtıldı. uyku, arama işleminin başka bir işlem tarafından başlatılana kadar engellenmesine neden olan bir sistem isteğidir. uyanmak

semaforlar
Semaforlar, gelecek için saklanan tetikleme sinyallerini saymak için kullanılan değişkenlerdir. Aşağı ve yukarı iki operasyon önerildi (uyku ve uyanma analogları

Toplu işleme sistemlerinde çizelgeleme
6.2.1 İlk Giren İlk Çıkar (FIFO) İşlemler geldikleri gibi sıraya alınır. Avantajlar:

döngüsel planlama
En basit zamanlama algoritması ve sık kullanılan. Her işleme bir CPU zaman dilimi verilir. Kuantum sona erdiğinde, süreç planlayıcı tarafından sürecin sonuna aktarılır.

Öncelik Planlaması
Her işleme bir öncelik atanır ve kontrol en yüksek önceliğe sahip işleme aktarılır. Öncelik dinamik veya statik olabilir. Dinamikler

Gerçek zamanlı sistemlerde zamanlama
Gerçek zamanlı sistemler şu şekilde ayrılır: katı (her görev için kesin son tarihler) - hareket kontrolü esnek (zaman çizelgesinin ihlali arzu edilmez, ancak kabul edilebilir) -

Genel Gerçek Zamanlı Programlama
Her süreç işlemci için kendi görevi ve yürütülmesi için programla mücadele ettiğinde bir model kullanılır. Planlayıcının bilmesi gerekenler: her birinin hangi sıklıkta

Süreç Kilitlenmesi
Birden çok işlem aynı kaynak için rekabet ettiğinde işlem kilitlenmesi oluşabilir. Kaynaklar disk belleğine alınabilir ve disk belleğine alınamaz, donanım ve yazılım olabilir.

Modelleme Kilitlenmeleri
Çıkmazları grafiklerle modelleme. Sözleşmeler Böyle bir model üzerinde

Kilitlenme tespiti ve ortadan kaldırılması
Sistem kilitlenmeyi engellemeye çalışmaz, tespit etmeye ve çözmeye çalışır. Her türden bir kaynak olduğunda kilitlenme tespiti

Dinamik kilitlenmeden kaçınma
Bu şekilde, işletim sisteminin kaynak tahsisinin güvenli olup olmadığını bilmesi gerekir. Kaynak Yörüngeleri İki süreç ve iki kaynaktan oluşan bir model düşünün

Kilitlenmeler İçin Gerekli Dört Koşulu Önlemek
Karşılıklı Dışlama Koşulu Önleme Kaynaklar için rekabet eden işlem sayısını en aza indirebilirsiniz. Örneğin, t

G/Ç Donanım İlkeleri
G / Ç kontrol sisteminin iki alt seviyesi donanımdır: doğrudan işlemleri gerçekleştiren cihazların kendileri ve düzenlemeye hizmet eden kontrolörleri ortak çalışma cihaz

Cihaz denetleyicileri
I/O cihazları genellikle iki bölümden oluşur: mekanik (kelimenin tam anlamıyla anlaşılmamalıdır) - disk, yazıcı, monitör elektronik - denetleyici veya

Bellek eşlemeli G/Ç
Her denetleyicinin, merkezi işlemciyle etkileşimde bulunmak için kullanılan birkaç kaydı vardır. Bu kayıtların yardımıyla işletim sistemi kontrol eder (okur, yazar, açar vb.) ve belirler

Doğrudan hafıza erişimi (DMA - Doğrudan Hafıza Erişimi)
Doğrudan bellek erişimi, bir DMA denetleyicisi kullanılarak gerçekleştirilir. Denetleyici birkaç kayıt içerir: bellek adresi kaydı bayt sayacı

Kesintiler
G/Ç cihazı başladıktan sonra işlemci diğer görevlere geçer. İşlemcinin sonunu işlemciye bildirmek için, aygıt bir kesme başlatır,

G/Ç Yazılım Görevleri
Çözülmesi gereken ana görevler yazılım G/Ç: Cihaz bağımsızlığı - örneğin, bir dosyadan veri okuyan bir programın bunun nedenini düşünmesine gerek yoktur

Yazılım G/Ç
Bu durumda, CPU tüm işi yapar. ABCDEFGH dizesini bu şekilde yazdırma işlemini düşünün.

Kesintiye dayalı G/Ç
Önceki örnekte arabellek kullanılmıyorsa ve yazıcı saniyede 100 karakter yazdırıyorsa, her karakter 10 ms sürer ve bu süre zarfında işlemci boşta kalır ve baskının hazır olmasını bekler.

Kesme işleyicileri
Kesintiler, işletim sisteminin derinliklerinde mümkün olduğu kadar derinlere gizlenmelidir, böylece işletim sisteminin mümkün olduğu kadar az bir kısmı bunlarla uğraşmak zorunda kalır. G/Ç'yi başlatan sürücüyü engellemek en iyisidir. Algo

Aygıt sürücüleri
Aygıt sürücüsü - her aygıt için gereklidir. Farklı işletim sistemleri farklı sürücüler gerektirir. Kayıtlara erişmek için sürücülerin çekirdeğin bir parçası olması (yekpare bir sistemde) olması gerekir.

Cihazdan bağımsız G/Ç yazılımı
Aygıttan bağımsız G/Ç yazılım özellikleri: Aygıt sürücüleri için tek tip arabirim, Arabelleğe Alma Hatası mesajları

G/Ç seviyelerinin ve fonksiyonlarının genelleştirilmesi
I/O sisteminin seviyeleri ve temel fonksiyonları Baz

Engelleme, engellemesiz ve eşzamansız sistem çağrıları
G/Ç işlemlerinin uygulanmasıyla ilişkili tüm sistem çağrıları, süreç ile G/Ç cihazı arasındaki etkileşimi gerçekleştirme yollarına göre üç gruba ayrılabilir. ilkine,

Arabelleğe alma ve önbelleğe alma
Bir arabellek genellikle, iki cihaz, iki işlem veya bir işlem ve bir cihaz arasında veri alışverişi yapıldığında bilgi depolamak için bazı bellek alanı olarak anlaşılır. takas

Biriktirme ve yakalama cihazları
Kursumuzun ilk dersinde, ilk kez bir görevin gerçek G / Ç işlemlerini başka bir görevin yürütülmesiyle birleştirmeyi mümkün kılan bir mekanizma olarak biriktirme kavramından bahsetmiştik.

Kesme ve Hata İşleme
Harici bir cihazla çalışırken, bilgi işlem sistemi durumunu yoklama yöntemini kullanmıyorsa, ancak kesme mekanizmasını kullanıyorsa, daha önce yaptığımız gibi bir kesinti meydana geldiğinde

Sorgu planlama
Engellemeyen bir sistem çağrısı kullanırken, şu ortaya çıkabilir: istenen cihaz zaten bazı işlemlerle meşgul. Bu durumda, bloke olmayan arama hemen

UNIX G/Ç kontrol alt sisteminin arkasındaki ilkeler
1. Bu alt sistem, veri yönetimi alt sistemi (dosya sistemi) ile aynı şekilde oluşturulmuştur. Kullanıcıya hem PU'ya hem de dosyalara erişmek için birleşik bir yol sağlanır. İşletim sisteminde dosya altında

işletim sistemi bellek yönetimi
4.1. Organizasyon ve yönetim kavramı fiziksel hafıza işletim sistemlerinde 4.2. Ana belleğin bağlı tahsis yöntemleri 4.2.1. bağlı dağıtılmış

İşletim sistemlerinde fiziksel belleğin organizasyonunu ve yönetimini anlamak
Bir bilgisayarın ana (birincil, fiziksel, gerçek) belleğinin organizasyonu ve yönetimi, işletim sistemlerinin yapısını belirleyen en önemli faktörlerden biridir. ingilizce teknik

Tek bir kullanıcı için bağlı bellek tahsisi
Tek sürekli ayırma olarak da adlandırılan bir kullanıcı için bağlantılı bellek ayırma, en basitinin kontrolü altında toplu tek program modunda çalışan bilgisayarlarda kullanılır.

Çoklu program işlemede bağlantılı bellek tahsisi
Çoklu program işleme ile, bilgisayarın belleğine aynı anda birkaç görev yerleştirilir. Bu durumda işler arasında bellek tahsisi aşağıdaki şekillerde yapılabilir:

Bilgileri belleğe yerleştirme stratejileri
Bellek ayırma stratejileri, ana bellekte gelen programların ve verilerin taşınmaz bir bellek ayırmada nereye yerleştirilmesi gerektiğini belirlemek için tasarlanmıştır.

Sanal belleğin temel kavramları
Sanal bellek terimi genellikle belirli bir bilgi işlem makinesinin birincil (gerçek, fiziksel) bellek kapasitesinden çok daha büyük bir bellek alanını ele alma yeteneği ile ilişkilendirilir.

Sanal belleğin çağrılması
Yalnızca sayfalama yapan bir sanal adres, sıralı bir çifttir (p, d), burada p, sayfa numarasıdır. sanal bellek ve d, p sayfası içindeki uzaklıktır. süreç çalışabilir

Sanal belleğin segment organizasyonu
Sanal belleğin bölümlere ayrılmış organizasyonundaki sanal adres, sıralı bir çifttir n = (s, d) , burada s, sanal bellek bölümünün numarasıdır ve d, bu bölüm içindeki ofsettir. süreç olabilir

Sanal belleğin sayfa segmenti organizasyonu
Çağrı sistemleri, sanal belleği uygulamanın her iki yolunun da avantajlarına sahiptir. Segmentler genellikle bir tamsayı sayıda sayfa içerir ve tüm sayfaların olması gerekli değildir.

Sanal bellek yönetimi stratejileri
Fiziksel bellek yönetimi stratejileri gibi sanal bellek yönetimi stratejileri üç kategoriye ayrılır: itme stratejileri, yerleştirme stratejileri ve pop stratejileri.

İtme Stratejileri
İtmeyi kontrol etmek için aşağıdaki stratejiler kullanılır: talep üzerine (talep üzerine) itme (pompalama); kurşunla (ileri) itme (pompalama).

Yerleştirme stratejileri
Sanal belleğin sayfalandırılmasına sahip sistemlerde, yeni yüklenen sayfaların yerleştirilmesine ilişkin karar oldukça basit bir şekilde verilir: yeni sayfa herhangi bir ücretsiz yerleştirilebilir

İtme Stratejileri
Çoklu programlama sistemlerinde, kural olarak tüm birincil bellek kullanılır. Bu durumda, bellek yöneticisi birincil bellekten hangi sayfanın veya hangi bölümün kaldırılacağına karar vermelidir.

dosya adlandırma
Dosya adının uzunluğu işletim sistemine bağlıdır, 8 (MS-DOS) ile 255 (Windows, LINUX) karakter arasında olabilir. İşletim sistemleri büyük ve küçük karakterleri ayırt edebilir. Örneğin, WINDOWS ve MS-DOS için pencereler aynıdır ve t

dosya yapısı
Üç temel dosya yapısı: 1. Bayt Sırası - İşletim sistemi dosyanın içeriğini umursamaz, yalnızca baytları görür. Böyle bir sistemin ana avantajı esnekliktir.

Dosya türleri
Ana dosya türleri: · Düzenli - kullanıcı bilgilerini içerir. Windows ve UNIX'te kullanılır. · Kataloglar - sistem dosyaları sağlama

Dosya Özellikleri
Ana dosya öznitelikleri: · Güvenlik - dosyaya kim ve nasıl erişebilir (kullanıcılar, gruplar, okuma/yazma). Windows ve UNIX'te kullanılır. · Şifre - fa şifresi

Bellek adres alanına eşlenen dosyalar
Bazen bir dosyayı belleğe eşlemek (dosyayla çalışmak için G/Ç sistem çağrılarını kullanmaya gerek yoktur) ve bellekle çalışmak ve ardından değiştirilen dosyayı diske yazmak uygundur. Kullanırken

Tek seviyeli dizin sistemleri
Bu sistemde, tüm dosyalar bir dizinde bulunur. od

Yol adı
Bir dizin ağacını organize etmek için bir dosya belirleme yöntemine ihtiyacınız vardır. Bir dosyayı belirtmek için iki ana yöntem şunlardır: mutlak yol adı - yolu kökten belirtir

Dizin Uygulaması
Bir dosyayı açarken, dizindeki girişi bulmak için yol adı kullanılır. Dizin girişi, disk bloklarının adreslerini gösterir. Sisteme bağlı olarak bu şunlar olabilir: disk cehennemi

Uzun dosya adlarının uygulanması
Daha önceki işletim sistemleri, MS-DOS 8 karaktere kadar, UNIX Sürüm 7'de 14 karaktere kadar kısa dosya adları kullanıyordu. Artık daha uzun dosya adları kullanılıyor (en fazla 255 karakter veya daha fazla).

Dosya aramayı hızlandırın
Dizin çok büyükse (birkaç bin dosya), dizinin sıralı okunması çok verimli olmaz. 1 Dosya aramalarını hızlandırmak için bir karma tablo kullanma.

A - paylaşılan dosya
Böyle bir dosya sistemine yönlendirilmiş döngüsel olmayan grafik (DAG, Yönlendirilmiş Döngüsel Olmayan Grafik) denir. Disk adresleri dizin girişlerinde bulunuyorsa bir sorun vardır.

Blok boyutu
Dosyayı bloklar halinde depolamaya karar verilirse, bu blokların boyutu hakkında soru ortaya çıkar. İki uç nokta vardır: Büyük bloklar - örneğin, 1 MB, o zaman 1 baytlık bir dosya bile tüm bloğu alır

Ücretsiz blokların muhasebesi
Boş blokları hesaba katmanın iki ana yolu vardır: · Disk bloklarının bağlantılı bir listesi, her blok, bloğa müdahale ettiği kadar çok serbest blok numarası içerir. Genellikle yedek liste için

Disk kotaları
Kullanıcıyı sınırlamak için bir kota mekanizması vardır. İki tür sınır: Zor - aşılamaz Esnek - aşılabilir, ancak kullanıcı oturumu kapattığında

Destek olmak
Yedeklemenin gerekli olduğu durumlar: Diskteki verilerin kaybıyla sonuçlanan acil durumlar Dosyaların yanlışlıkla silinmesi veya yazılımsal olarak bozulması

Dosya sistemi tutarlılığı
Değiştirilen blok yazılmadan önce sistem çökerse, dosya sistemi tutarsız bir duruma girebilir. Özellikle bir i-node bloğu, bir dizin bloğu ve

Önbelleğe almak
Blok önbelleği (arabellek önbelleği) - bellekte depolanan, ancak mantıksal olarak diske ait olan bir dizi blok. Diske yapılan tüm okuma istekleri durdurulur ve gerekli olanların varlığı

ISO 9660 dosya sistemi
Daha fazla bilgi - http://en.wikipedia.org/wiki/ISO_9660 Standart 1988'de kabul edildi. Standarda göre, diskler mantıksal bölümlere ayrılabilir, ancak diskleri şu şekilde ele alacağız:

ISO 9660 katalog girişi
Dosya konumu - çünkü ilk bloğun numarası. bloklar sırayla yerleştirilir. L - bayt olarak dosya adının uzunluğu Dosya adı - 8 karakter, 3 karakter uzantı (uyumlu

UNIX için Rock Ridge Uzantıları
Bu uzantı, UNIX dosya sisteminin CD-ROM'da bulunması için oluşturuldu. Bunun için Sistem kullanım alanı kullanılır. Uzantılar aşağıdaki alanları içerir: 1. PX -

Dosya sistemi UDF (Evrensel Disk Biçimi)
Daha fazla bilgi - http://ru.wikipedia.org/wiki/Universal_Disk_Format Orijinal olarak DVD için oluşturulmuştur, sürüm 1.50 ile CD-RW ve CD-R desteği eklenmiştir. Şimdi en son sürüm

Dosya sistemi MS-DOS (FAT-12,16,32)
İlk sürümlerin yalnızca bir dizini vardı (MS-DOS 1.0). MS-DOS 2.0'dan beri hiyerarşik bir yapı uygulanmaktadır. 32 bayta sabitlenmiş dizin girişleri. Dosya adları -

Windows 98'de etkinleştirilecekler
Programlar için arşiv özniteliği gereklidir. Yedek kopya, ona göre dosyanın kopyalanıp kopyalanmayacağını belirlerler. Zaman alanı (16 bit) üç alt alana ayrılır:

FAT-32 için Windows 98 uzantısı
Uzantı için 10 serbest bit kullanıldı. Biçim

FAT-32 üzerindeki ana üstyapı, bunlar uzun dosya isimleridir.
Her dosyaya iki ad atanmaya başlandı: 1. MS-DOS 2 ile uyumluluk için kısa 8+3. uzun isim dosya, Unicode biçiminde Dosyaya herhangi bir kullanıcı tarafından erişilebilir.

Windows 98'de uzun bir dosya adının parçası olan giriş dizinlerinin biçimi
"Öznitelikler" alanı, uzun bir adın (0x0F değeri) bir parçasını bir dosya tanıtıcıdan ayırmanıza olanak tanır. Öznitelik alanı değeri 0x0 olan eski MS-DOS programları dizin girdileri

NTFS dosya sistemi
Dosya NTFS sistemi Windows NT için geliştirilmiştir. Özellikler: · 64-bit adresler, yani. teorik olarak 264*216 baytı destekleyebilir (1 208 925 819 M

Ada göre bir dosya bulma
Bir dosya oluştururken, program kitaplık prosedürünü CreateFile("C:windowsreadmy.txt", ...) olarak çağırır. Bu çağrı, düzey n paylaşılan kitaplığa gider

Dosya Sıkıştırması
Dosya sıkıştırılmış olarak işaretlenirse, sistem yazarken otomatik olarak sıkıştırır ve okurken açar. Çalışma algoritması: 1. Dosyanın ilk 16 bloğu inceleme için alınır (n

Dosya şifreleme
Şifrelenmemiş herhangi bir bilgi, erişim sağlanarak okunabilir. Bu nedenle en güvenilir koruma yetkisiz erişimden gelen bilgiler - şifreleme. senden çalsalar bile

UNIX V7 dosya sistemi
Eski bir dosya sistemi olmasına rağmen, temel öğeler hala modern UNIX sistemleri tarafından kullanılmaktadır. Özellikler: Dosya adları, eğik çizgi "/&q" dışında 14 ASCII karakterle sınırlıdır

i-düğüm yapısı
Alan Baytları Açıklama Modu Dosya türü, güvenlik bitleri, setuid ve setgid bitleri Nlinks

Dosya oluşturma ve dosyayla çalışma
fd=creat("abc", mode) - mod değişkeninde (kullanıcıların erişime sahip olduğu) belirtilen koruma moduyla bir abc dosyası oluşturma örneği. Sistem kullanılır

BSD dosya sistemi
Temel, klasik UNIX dosya sistemidir. Özellikler (farklı önceki sistem): Dosya adı uzunluğu 255 karaktere yükseltildi Dizinler yeniden düzenlendi

EXT2 dosya sisteminin diskteki konumu
Diğer özellikler: · Blok boyutu 1 KB · Her i-node'un boyutu 128 bayttır. i-düğüm 12 doğrudan ve 3 dolaylı adres içerir, i-düğümdeki adresin uzunluğu yaklaşık 4 bayt olmuştur.

EXT3 dosya sistemi
EXT2'den farklı olarak EXT3 bir günlük kaydı dosya sistemidir, örn. başarısızlıklardan sonra tutarsız bir duruma düşmeyecektir. Ancak EXT2 ile tamamen uyumludur.

XFS dosya sistemi
XFS, Silicon Graphics tarafından geliştirilen ancak şimdi açık kaynak olarak yayınlanan bir günlük kaydı dosya sistemidir. http://oss.sgi.com/projec adresindeki resmi bilgiler

RFS dosya sistemi
RFS (RaiserFS), Namesys tarafından geliştirilmiş bir günlük kaydı dosya sistemidir. RaiserFS hakkında resmi bilgiler Bazı özellikler: Daha verimli çalışma

JFS Dosya Sistemi
JFS (Günlüklü Dosya sistemi), IBM tarafından AIX işletim sistemi için geliştirilen, ancak şimdi açık kaynak olarak yayınlanan bir günlük kaydı dosya sistemidir. Journaled File S hakkında resmi bilgiler

NFS dosya sistemi düzeylerinin yapısı
VFS (Sanal Dosya Sistemi) - sanal dosya sistemi. Açık dosyalar tablosunu yönetmek için gereklidir. Herkes için girişler açık dosya v düğümleri denir

Öykünme alternatifi - çoklu uygulama ortamları, bir dizi API işlevi içerir. Uygulama ortamının kitaplık işlevlerine yapılan çağrıyı taklit ederler, ancak aslında kendi iç kitaplıklarını çağırırlar. denir kütüphane çevirisi. Bu tamamen yazılımdır.

Bir işletim sistemi altında yazılan bir programın başka bir işletim sistemi altında çalışabilmesi için, farklı işletim sistemlerinde süreç kontrol yöntemlerinin çakışmadan etkileşiminin sağlanması gerekir.

Uygulama yazılımı ortamlarını uygulama yolları

Mimariye bağlı olarak:

1. Bir uygulama biçimindeki uygulama yazılımı ortamı (yerel işletim sisteminin çekirdeğinin üst katmanı).

Kullanıcı çalışma modu, sistem çağrılarının (API çağrıları) yerel işletim sistemi çağrılarına çevrilmesi. Klasik çok katmanlı işletim sistemine (Unix, Windows) karşılık gelir.

2. Eşit şekilde çalışan birkaç uygulama ortamının varlığı. Her biri ayrı bir çekirdek tabakası şeklinde.

Ayrıcalıklı çalışma modu. API, işletim sisteminin temel (ayrıcalıklı) katmanının işlevlerini çağırır. Çağrıyı tanıma ve uyarlama görevi sisteme düşer. Gerekli çok sayıda kaynaklar. Tanıma için bir dizi tanımlayıcı özellik çekirdeğe iletilir.

3. Mikronükleer prensip.

Herhangi bir uygulama ortamı, ayrı bir kullanıcı modu sunucusu olarak tasarlanmıştır. API'yi kullanan uygulamalar, mikro çekirdek aracılığıyla ilgili uygulama ortamına sistem çağrıları yapar. Uygulama ortamı, isteği işler ve sonucu mikro çekirdek aracılığıyla döndürür. Mikro çekirdek işlevlerini kullanabilir. Diğer kaynaklara çoklu erişim mümkündür (mikro çekirdek çalışırken).

işletim sistemi arayüzleri

işletim sistemi arayüzü bir uygulama programlama sistemidir. Standartlarla düzenlenmiştir (POSIX, ISO).

1. Kullanıcı arayüzü- özel yardımı ile uygulanan yazılım modülleri, özel bir komut dilindeki kullanıcı isteklerini işletim sistemine yönelik isteklere çeviren.

Bu tür modüllerin kümesine denir tercüman. Sözcüksel ve ayrıştırma gerçekleştirir ve komutu kendisi yürütür veya API'ye iletir.

2. API- uygulama programlarına işletim sistemi kaynakları sağlamak ve diğer işlevleri uygulamak için tasarlanmıştır. API, çekirdeğe ve işletim sistemi eklentilerine ait bir dizi işlevi, prosedürü açıklar. API kullanımları sistem programları programlama ortamı aracılığıyla uygulama programlarını kullanarak hem işletim sisteminin içinde hem de dışında.

İşletim sistemine kaynak sağlamanın merkezinde, nihayetinde bir yazılım kesintisi vardır. Sisteme bağlı olarak uygulanmaları (vektör, tablo). API'yi işletim sistemi düzeyinde (en hızlı, en düşük), düzeyde uygulamak için birkaç seçenek vardır. sistem programlama(daha soyut, daha az hızlı) ve harici bir yordamlar ve işlevler kitaplığı düzeyinde (küçük küme).

Linux işletim sistemi arayüzleri:

yazılım (aracılar olmadan - sistem çağrılarının fiili olarak yürütülmesi);

· Komut satırı(aracı - aramayı yeniden yönlendiren Shell yorumlayıcısının bir kabuğu);

Grafik (aracılar - Kabuk + grafik kabuk).

Dosya sistemi

Dosya sistemi sağlamak için tasarlanmış işletim sisteminin bir parçasıdır. Kullanıcı dostu arayüz dosyalarla çalışmak ve harici ortamda depolanan dosyaların kullanılmasını sağlamak ( HDD+ RAM) birden çok kullanıcı ve işlem tarafından.

FS'nin bileşimine göre:

tüm ortamdaki diskteki tüm dosyaların toplamı,

dosya dizinleri, dosya tanıtıcıları, boş ve kullanılmış disk alanı ayırma tabloları gibi dosyaları yönetmek için kullanılan veri yapıları kümeleri,

sistemik bir kompleks yazılım araçları dosya yönetimini uygulayan, özellikle: dosyalar üzerinde oluşturma, yok etme, okuma, yazma, adlandırma, arama ve diğer işlemler.

Dosyaların niteliklerinden biri, kullanıcıya bir dosyayı tanımlamanın bir yolu olan dosya adlarıdır. Birden fazla isme izin verilen sistemlerde, dosyaya işletim sistemi çekirdeği tarafından kullanılan bir inode atanır. Farklı işletim sistemlerindeki adlar farklı şekilde ayarlanır.

Pek çok işletim sistemi mimari özelliği yalnızca sistem programcılarıyla doğrudan ilişkili olsa da, çoklu uygulama (operasyonel) olanakları kavramı doğrudan son kullanıcıların gereksinimleriyle ilgilidir - işletim sisteminin diğer işletim sistemleri için yazılmış uygulamaları çalıştırma yeteneği. İşletim sisteminin bu özelliğine uyumluluk denir.

Uygulama uyumluluğu, ikili düzeyde ve kaynak kodu düzeyinde olabilir. Uygulamalar genellikle işletim sisteminde kod ve verilerin ikili görüntülerini içeren yürütülebilir dosyalar olarak depolanır. Yürütülebilir bir programı alıp farklı bir işletim sistemi ortamında çalıştırabildiğinizde ikili uyumluluk elde edilir.

Kaynak seviyesinde uyumluluk, kütüphaneler ve sistem çağrıları seviyesinde uyumluluğun yanı sıra, uygulamanın çalışacağı bilgisayarın yazılımında uygun derleyicinin bulunmasını gerektirir. Bu, uygulamanın kaynak kodunun yeni bir yürütülebilir modülde yeniden derlenmesini gerektirir.

Kaynak düzeyinde uyumluluk, esas olarak bu kaynaklara sahip olan uygulama geliştiricileri için önemlidir. Ancak son kullanıcılar için yalnızca ikili uyumluluk pratik öneme sahiptir, çünkü yalnızca bu durumda aynı ürünü farklı işletim sistemlerinde ve farklı makinelerde kullanabilirler.

Olası uyumluluğun türü birçok faktöre bağlıdır. Bunlardan en önemlisi işlemci mimarisidir. İşlemci aynı talimat setini (belki IBM PC'de olduğu gibi eklemelerle: standart set + multimedya + grafik + akış) ve aynı adres aralığını kullanıyorsa, ikili uyumluluk oldukça basit bir şekilde elde edilebilir. Bunun için aşağıdaki koşulların sağlanması gerekir:

  • Uygulamanın kullandığı API, verilen işletim sistemi tarafından desteklenmelidir;
  • uygulamanın yürütülebilir dosyasının dahili yapısı, işletim sisteminin yürütülebilir dosyalarının yapısıyla eşleşmelidir.

İşlemcilerin farklı mimarileri varsa, yukarıdaki koşullara ek olarak, ikili kodun öykünmesini düzenlemek gerekir. Örneğin, Intel işlemci yönergelerinin Macintosh'un Motorola 680x0 işlemcisinde öykünmesi yaygın olarak kullanılmaktadır. Bu durumda yazılım öykünücüsü, sırayla Intel işlemcinin ikili talimatını seçer ve Motorola işlemcisinin talimatlarında yazılı eşdeğer alt programı yürütür. Motorola işlemcisi, Intel işlemcilerde olduğu gibi tam olarak aynı kayıtlara, bayraklara, dahili ALU'ya vb. sahip olmadığından, kendi kayıtlarını veya belleğini kullanarak tüm bu öğeleri simüle etmelidir (taklit etmelidir).

Bu basit ama çok yavaş bir işlemdir, çünkü tek bir Intel talimatı, onu taklit eden Motorola talimat dizisinden çok daha hızlıdır. Bu gibi durumlarda çıkış yolu, sözde uygulama yazılım ortamlarının veya işletim ortamlarının kullanılmasıdır. Böyle bir ortamın bileşenlerinden biri, işletim sisteminin uygulamalarına sunduğu API işlev kümesidir. Diğer kişilerin programlarının yürütülmesi için gereken süreyi azaltmak için uygulama ortamları, kütüphane işlevlerine yapılan çağrıları taklit eder.

Bu yaklaşımın etkinliği, günümüz programlarının çoğunun Windows , MAC veya UNIX Motif gibi GUI (grafiksel kullanıcı arabirimleri) altında çalışırken, uygulamaların zamanın %60-80'ini GUI işlevleri ve diğer işletim sistemi kütüphane çağrıları yapmakla geçirmesinden kaynaklanmaktadır. . Uygulama ortamlarının, programların komut komut öykünmesi için harcanan büyük zamanı telafi etmesine izin veren, uygulamaların bu özelliğidir. Dikkatle tasarlanmış bir yazılım uygulama ortamı, GUI kitaplıklarını taklit eden ancak yerel kodla yazılmış kitaplıklar içerir. Böylece, başka bir işletim sisteminin API'si ile programların yürütülmesinde önemli bir hızlanma elde edilir. Aksi takdirde, bu yaklaşıma çeviri denir - onu her seferinde bir talimatı taklit eden daha yavaş süreçten ayırmak için.

Örneğin, bir Macintosh üzerinde çalışan bir Windows programı için, bir Intel işlemciden gelen komutları yorumlarken verimçok düşük olabilir. Ancak bir GUI işlevi çağrıldığında, bir pencere açıldığında vb. Windows uygulama ortamını uygulayan işletim sistemi modülü bu çağrıyı durdurabilir ve onu Motorola 680x0 işlemci için yeniden derlenmiş pencere açma rutinine yönlendirebilir. Sonuç olarak, kodun bu tür bölümlerinde programın hızı, kendi işlemcisinin çalışma hızına ulaşabilir (ve muhtemelen onu geçebilir).

Bir işletim sistemi için yazılan bir programın başka bir işletim sistemi üzerinde çalışabilmesi için sadece API uyumluluğunun sağlanması yeterli değildir. Farklı işletim sistemlerinin altında yatan kavramlar birbiriyle çatışabilir. Örneğin, bir işletim sisteminde, bir uygulamanın G / Ç cihazlarını kontrol etmesine izin verilebilir, diğerinde bu eylemler işletim sisteminin ayrıcalığıdır.

Her işletim sisteminin kendi kaynak koruma mekanizmaları, kendi hata ve istisna işleme algoritmaları, kendi işlemci yapısı ve bellek yönetim şeması, kendi dosya erişim semantiği ve kendi grafik kullanıcı arayüzü vardır. Uyumluluğu sağlamak için, aynı işletim sistemi içinde bilgisayar kaynaklarını yönetmenin çeşitli yollarının çakışmadan bir arada bulunmasını organize etmek gerekir.

Hem mimari çözümlerin özelliklerinde hem de değişen derecelerde uygulama taşınabilirliği sağlayan işlevsellikte farklılık gösteren, çoklu uygulama ortamları oluşturmak için çeşitli seçenekler vardır. Birden çok uygulama ortamını uygulamaya yönelik en bariz seçeneklerden biri, işletim sisteminin standart katmanlı yapısını temel alır.

Birden çok uygulama ortamı oluşturmanın başka bir yolu da mikro çekirdek yaklaşımına dayanır. Aynı zamanda, işletim sisteminin mekanizmaları ile stratejik sorunları çözen uygulama ortamlarının her birine özgü üst düzey işlevler arasındaki temel, tüm uygulama ortamları için ortak olan farkı not etmek çok önemlidir. Uyarınca mikronükleer mimari tüm işletim sistemi işlevleri, mikro çekirdek ve kullanıcı modu sunucuları tarafından uygulanır. Uygulama ortamının ayrı bir kullanıcı modu sunucusu olarak tasarlanması ve altta yatan mekanizmaları içermemesi önemlidir.

API'yi kullanan uygulamalar, mikro çekirdek aracılığıyla ilgili uygulama ortamına sistem çağrıları yapar. Uygulama ortamı isteği işler, yürütür (belki bunun için mikro çekirdeğin temel işlevlerinden yardım isteyerek) ve sonucu uygulamaya geri gönderir. İsteğin yürütülmesi sırasında, uygulama ortamının da mikro çekirdek ve diğer işletim sistemi sunucuları tarafından uygulanan temel işletim sistemi mekanizmalarına erişmesi gerekir.

Birden fazla uygulama ortamı tasarlamaya yönelik bu yaklaşım, mikro çekirdek mimarisinin tüm avantaj ve dezavantajlarına sahiptir, özellikle:

  • mikro çekirdek işletim sistemlerinin iyi genişletilebilirliğinin bir sonucu olarak uygulama ortamlarını eklemek ve hariç tutmak çok kolaydır;
  • uygulama ortamlarından biri arızalanırsa, geri kalanı çalışır durumda kalır ve bu da bir bütün olarak sistemin güvenilirliğine ve kararlılığına katkıda bulunur;
  • mikro çekirdek işletim sistemlerinin düşük performansı, uygulama araçlarının hızını ve dolayısıyla uygulamaların hızını etkiler.

Sonuç olarak, farklı işletim sistemlerinin uygulamalarını yürütmek için bir işletim sistemi içinde birkaç uygulama aracının oluşturulmasının, programın tek bir sürümüne sahip olmanızı ve farklı işletim sistemleri arasında aktarmanızı sağlayan bir yol olduğuna dikkat edilmelidir. Çoklu uygulama ortamları, belirli bir işletim sisteminin diğer işletim sistemleri için yazılmış uygulamalarla ikili uyumluluğunu sağlar.

1.9. Çoklu uygulama ortamlarının uygulanmasına modern bir yaklaşım olarak sanal makineler

"Sanal makine monitörü" (VMM) kavramı, 60'ların sonunda bir yazılım olarak ortaya çıktı. soyutlama seviyesi, donanım platformunu birkaç sanal makineye böldü. Bu sanal makinelerin (VM'ler) her biri, altta yatan fiziksel makineye o kadar benziyordu ki, mevcut yazılım değişmeden yapılabilir. O zaman, hesaplama sorunları genel pahalı ana bilgisayarlarda (IBM/360 gibi) çözüldü ve kullanıcılar, VMM'nin kıt kaynakları birden çok uygulama arasında tahsis etme becerisini övdü.

1980'lerde ve 1990'larda maliyet önemli ölçüde düştü. bilgisayar donanımı ve etkili çoklu görev işletim sistemi, kullanıcıların gözünde VMM'nin değerini düşüren. Ana bilgisayarlar yerini mini bilgisayarlara ve ardından PC'lere bıraktı ve bir VMM'ye olan ihtiyaç ortadan kalktı. Sonuç olarak, bilgisayar mimarisi basitçe ortadan kalktı. donanım etkili bir şekilde uygulanmaları için. 80'lerin sonunda bilimde ve VMM'lerin üretiminde yalnızca tarihsel bir merak olarak algılanıyordu.

Bugün MVM yeniden ilgi odağı oldu. Intel, AMD, Sun Microsystems ve IBM sanallaştırma stratejileri oluşturuyor ve laboratuvarlar ve üniversiteler mobilite, güvenlik ve yönetilebilirlik konularını ele almak için sanal makine tabanlı yaklaşımlar geliştiriyor. MVM'nin istifası ile yeniden canlanmaları arasında ne oldu?

1990'larda Stanford Üniversitesi'ndeki araştırmacılar, donanım ve işletim sistemlerinin sınırlamalarının üstesinden gelmek için sanal makineleri kullanma olasılığını keşfetmeye başladı. Programlaması zor olan ve mevcut işletim sistemlerini çalıştıramayan büyük ölçüde paralel işlemeye (Massively Parallel Processing, MPP) sahip bilgisayarlarda sorunlar ortaya çıktı. Araştırmacılar, sanal makinelerin bu hantal mimariyi, kullanıma hazır işletim sistemlerinden yararlanmak için mevcut platformlara yeterince benzer hale getirebileceğini keşfetti. Bu projeden, genel amaçlı bilgisayarlar için VMM'lerin ilk tedarikçisi olan VMware'in (www.vmware.com) altın madeni haline gelen insanlar ve fikirler geldi.

İşin garibi, modern işletim sistemlerinin gelişimi ve azalan donanım maliyetleri, araştırmacıların VMM'lerle çözmeyi umduğu sorunlara yol açtı. Ekipmanın ucuzluğu, bilgisayarların hızla yayılmasına katkıda bulundu, ancak bunlar genellikle gereğinden az kullanıldı ve ek alan ve bakım için çaba gerektirdi. Ve işletim sisteminin işlevselliğindeki artışın sonuçları, istikrarsızlıkları ve güvenlik açıkları haline geldi.

Sistem çökmelerinin etkisini azaltmak ve bilgisayar korsanlarına karşı koruma sağlamak için, sistem yöneticileri tek göreve geri döndü hesaplama modeli(bir makinede bir uygulama ile). Bu, artan donanım gereksinimleri nedeniyle ek maliyetlerle sonuçlandı. Uygulamaları farklı fiziksel makinelerden VM'lere taşımak ve bu VM'leri birkaç fiziksel platformda birleştirmek, donanım kullanımını iyileştirdi, yönetim maliyetlerini düşürdü ve taban alanını azalttı. Böylece, VMM'nin donanımı çoklama yeteneği - bu kez sunucu birleştirme ve yardımcı bilgi işlem adına - onları hayata döndürdü.

Şu anda, VMM, bir zamanlar tasarlandığı gibi çoklu görevleri organize etmek için bir araç değil, güvenlik, mobilite ve güvenilirlik sağlama sorunlarına bir çözüm haline geldi. Birçok yönden VMM, işletim sistemi geliştiricilerine günümüzün karmaşık işletim sistemlerinde mümkün olmayan işlevsellik geliştirme yeteneği verir. Geçiş ve koruma gibi işlevlerin, önceki başarıları korurken yenilikçi işletim sistemi çözümleri dağıtırken geriye dönük uyumluluğu koruyan VMM düzeyinde uygulanması çok daha uygundur.

Sanallaştırma gelişen bir teknolojidir. Genel anlamda sanallaştırma, yazılımı altta yatan donanım altyapısından ayırmanıza olanak tanır. Aslında, belirli bir program grubu ile belirli bir bilgisayar arasındaki bağlantıyı keser. Sanal Makine Monitörü ayırır yazılım donanımdan ve çalışan yazılımlar arasında bir ara seviye oluşturur. Sanal makineler ve donanım. Bu seviye, VMM'nin donanım kaynaklarının kullanımını tam olarak kontrol etmesini sağlar. konuk işletim sistemleri (GuestOS) sanal makinede çalışan.

VMM, temel donanımın birleşik bir görünümünü oluşturur, böylece farklı satıcılardan farklı G/Ç alt sistemlerine sahip fiziksel makineler aynı görünür ve VM mevcut herhangi bir donanımda çalışır. Yöneticiler, sıkı donanım-yazılım ara bağlantılarına sahip bireysel makineleri umursamayarak, donanımı herhangi bir isteğe bağlı hizmet sağlamak için bir kaynak havuzu olarak görebilirler.

Sayesinde tam kapsülleme VM'deki yazılım durumlarında, VMM monitörü VM'yi mevcut herhangi bir donanım kaynağıyla eşleyebilir ve hatta bir fiziksel makineden diğerine taşıyabilir. Bir grup makinede yük dengeleme görevi önemsiz hale gelir ve donanım arızalarıyla başa çıkmanın ve sistemi büyütmenin güvenilir yolları vardır. Arızalı bir bilgisayarı kapatmanız veya yenisini tekrar çevrimiçi duruma getirmeniz gerekirse, VMM sanal makineleri buna göre yeniden dağıtabilir. Sanal makinenin çoğaltılması kolaydır ve yöneticilerin ihtiyaç duyulduğunda hızlı bir şekilde yeni hizmetler sağlamasına olanak tanır.

Kapsülleme ayrıca, yöneticinin sanal makineyi istediği zaman duraklatabileceği veya devam ettirebileceği, ayrıca sanal makinenin mevcut durumunu kaydedebileceği veya önceki durumuna döndürebileceği anlamına gelir. Evrensel geri alma özelliği ile çökmeler ve yapılandırma hataları kolayca çözülebilir. Kapsülleme, genelleştirilmiş bir mobilite modelinin temelidir, çünkü askıya alınmış bir VM ağ üzerinden kopyalanabilir, çıkarılabilir medyada saklanabilir ve taşınabilir.

VMM, birçok sanal makinenin tek bir donanım platformunda yürütülmesini destekleyerek ve bunların güvenilir şekilde yalıtılmasını sağlayarak, VM ile temeldeki donanım arasındaki tüm etkileşimlerde bir aracı rolü oynar. VMM, düşük kaynak gereksinimi olan bir grup VM'yi tek bir bilgisayarda bir araya getirmenize olanak tanıyarak, donanım ve üretim alanı ihtiyacı.

Tam izolasyon, güvenilirlik ve emniyet için de önemlidir. Eskiden tek bir makinede çalışan uygulamalar artık farklı VM'lere dağıtılabilir. Bunlardan biri bir hata sonucu işletim sisteminin çökmesine neden olursa, diğer uygulamalar bundan izole edilecek ve çalışmaya devam edecektir. Uygulamalardan biri harici bir saldırı tarafından tehdit edilirse, saldırı "tehlikeye girmiş" VM içinde yerelleştirilir. Bu nedenle, VMM, uygulamaları ayrı fiziksel makinelerde çalıştırırken gerekli olan ek alan ve yönetim çabaları gerektirmeden, sistemin kararlılığını ve güvenliğini artırmak için yeniden yapılandırma aracıdır.

VMM, VM üzerinde tam denetime sahip olurken, bir donanım arabirimini VM ile ilişkilendirmelidir. temel makine ve donanımıyla etkileşim için prosedürler. Bu amaca ulaşmak için belirli teknik uzlaşmalara dayanan farklı yöntemler vardır. Bu tür tavizler aranırken, VMM için temel gereksinimler dikkate alınır: uyumluluk, verim ve sadelik. Uyumluluk önemlidir çünkü bir VMM'nin temel avantajı eski uygulamaları çalıştırabilme yeteneğidir. Verim sanallaştırma için ek yükün miktarını belirler - sanal makinedeki programlar gerçek makinedeki ile aynı hızda yürütülmelidir. Sadelik gereklidir, çünkü VMM'nin arızalanması bilgisayarda çalışan tüm VM'lerin arızalanmasına neden olacaktır. Özellikle güvenilir yalıtım, VMM'nin saldırganların sistemi yok etmek için kullanabileceği hatalardan arındırılmış olmasını gerektirir.

Konuk işletim sisteminin karmaşık bir kod yeniden yazımından geçmek yerine, çekirdeğin en "müdahale eden" kısımlarından bazılarını değiştirerek ana bilgisayar işletim sisteminde bazı değişiklikler yapabilirsiniz. Bu yaklaşıma sanallaştırma denir. Bu durumda işletim sistemi çekirdeğini yalnızca yazarın uyarlayabileceği açıktır ve örneğin Microsoft, popüler Windows 2000 çekirdeğini belirli sanal makinelerin gerçeklerine uyarlamak için herhangi bir istek göstermez.

Paravirtualization'da, VMM geliştiricisi, sanal makinenin arayüzünü yeniden tanımlayarak, orijinal komut setinin sanallaştırma için uygun olmayan bir alt kümesini daha uygun ve verimli eşdeğerleriyle değiştirir. İşletim sisteminin bu tür VM'lerde çalışması için taşınması gerekmesine rağmen, en yaygın uygulamaların değişmeden çalışabileceğini unutmayın.

Sanallaştırmanın en büyük dezavantajı uyumsuzluktur. Herhangi işletim sistemi Paravirtualized VMM monitörünün kontrolü altında çalışacak şekilde tasarlanmış olan , işletim sistemi satıcılarıyla işbirliği müzakeresinin gerekli olduğu bu mimariye taşınmalıdır. Ayrıca, eski işletim sistemleri kullanılamaz ve mevcut makineler kolaylıkla sanal makinelerle değiştirilemez.

x86 sanallaştırmada yüksek performans ve uyumluluk elde etmek için VMware, yeni yöntem geleneksel doğrudan yürütmeyi anında hızlı ikili çeviri ile birleştiren sanallaştırma. Çoğu modern işletim sisteminde, sıradan uygulama programlarının yürütülmesi sırasında işlemcinin çalışma modları kolayca sanallaştırılır ve bu nedenle doğrudan yürütme yoluyla sanallaştırılabilirler. Sanallaştırma için uygun olmayan ayrıcalıklı modlar, "uygunsuz" x86 komutlarını düzelten bir ikili kod çeviricisi tarafından yürütülebilir. Sonuç, yüksek performans sanal makine, ekipman ve desteklerle tam uyumlu tam uyumlulukİLE .

Dönüştürülen kod, paravirtualization sonuçlarına çok benzer. Sıradan komutlar değişmeden yürütülür ve ihtiyaç duyulan komutlar özel muamele(POPF ve okuma kodu segmenti kayıt talimatları gibi), tercüman, yarı sanallaştırılmış bir bilgisayarda yürütmek için gerekenlere benzer talimat dizilerini değiştirir. sanal makine. Ancak önemli bir fark var: değiştirmek yerine kaynak işletim sistemi veya uygulamaları, ikili tercüman kodu ilk kez çalıştırıldığında değiştirir.

İkili kodu çevirmenin bazı ek maliyetleri olsa da, bunlar normal iş yükleri altında ihmal edilebilir düzeydedir. Tercüman, kodun yalnızca bir kısmını işler ve program yürütme hızı, önbellek dolduğunda doğrudan yürütme hızıyla karşılaştırılabilir hale gelir.

Uyumluluk ve çoklu uygulama ortamları

Çoklu uygulama ortamları kavramı, son kullanıcıların gereksinimleriyle, yani işletim sisteminin diğer işletim sistemlerinin uygulamalarını çalıştırma yeteneğiyle ilgilidir. İşletim sisteminin bu özelliğine denir. uyumluluk.

İkili ve Kaynak Uyumluluğu

İkili düzeyde uyumluluk ile kaynak kod düzeyinde uyumluluk arasında ayrım yapın. Uygulamalar genellikle işletim sisteminde kod ve verilerin ikili görüntülerini içeren yürütülebilir dosyalar olarak depolanır. Yürütülebilir bir programı alıp başka bir işletim sisteminde çalıştırabildiğinizde ikili uyumluluk sağlanır.

Kaynak düzeyinde uyumluluk, uygulamanın çalıştırılacağı bilgisayarın yazılımında uygun derleyicinin yanı sıra kitaplıklar ve sistem çağrıları düzeyinde uyumluluk gerektirir. Bu, mevcut kaynak kodunun yürütülebilir bir modülde derlenmesini gerektirir.

Kaynak düzeyinde uyumluluk, esas olarak bu kaynaklara sahip olan uygulama geliştiricileri için önemlidir. Son kullanıcılar için yalnızca ikili uyumluluk pratik öneme sahiptir, çünkü yalnızca bu durumda aynı ticari ürünü ikili biçimde kullanabilirler. yürütülebilir kodçeşitli çalışma ortamlarında.

İşletim sistemlerinin ikili uyumlu mu yoksa kaynak uyumlu mu olduğu birçok faktöre bağlıdır. Bunların başında, yeni işletim sisteminin üzerinde çalıştığı işlemcinin mimarisi gelir. İşlemci aynı komut setini (belki bazı eklemelerle) ve aynı adres aralığını kullanıyorsa, ikili uyumluluk oldukça kolay bir şekilde sağlanabilir. Bunun için aşağıdaki koşullara uymak yeterlidir:

Bir uygulamanın içerdiği API işlevlerine yapılan çağrılar işletim sistemi tarafından desteklenmelidir;

Yürütülebilir uygulama dosyasının iç yapısı, işletim sistemi yürütülebilir dosyalarının yapısıyla eşleşmelidir.

Farklı mimarilere sahip işlemciler üzerinde çalışacak şekilde tasarlanmış işletim sistemleri için ikili uyumluluk sağlamak daha zordur. Yukarıdaki koşulları gözlemlemeye ek olarak, oldukça yavaş bir program yürütmesine yol açacak olan ikili kodun emülasyonunu organize etmek gerekir.

Başka bir işletim sisteminin ortamıyla tamamen uyumlu eksiksiz bir uygulama ortamı oluşturmak, işletim sisteminin yapısıyla yakından ilgili bir görevdir. Hem mimari çözümlerin özelliklerinde hem de değişen derecelerde uygulama taşınabilirliği sağlayan işlevsellikte farklılık gösteren, çoklu uygulama ortamları oluşturmak için çeşitli seçenekler vardır.


Birden çok uygulama ortamını uygulamaya yönelik en belirgin seçeneklerden biri, standart katmanlı işletim sistemi yapısını temel alır ve sistem çağrısı çevirisi sağlar.

Şekil 6'da OS1 işletim sistemi, uygulamalarına ek olarak OS2 ve OS3 işletim sistemlerinin uygulamalarını da destekler.

Bunu yapmak için, "yabancı" işletim sistemleri API OS2 ve API OS3'ün arayüzlerini kendi işletim sistemlerinin arayüzüne (API OS1) çeviren özel uygulamalar - uygulama yazılımı ortamları - içerir.

Şekil 6 - Sistem çağrılarını çeviren uygulama ortamları

Birden çok uygulama ortamının başka bir uygulamasında, işletim sistemi birden çok eş uygulama programlama arabirimine sahiptir (Şekil 7). Gösterilen örnekte, işletim sistemi OS1, OS2 ve OS3 uygulamalarını desteklemektedir.

Bunu yapmak için, tüm bu işletim sistemlerinin uygulama programlama arabirimleri doğrudan sistemin çekirdek alanına yerleştirilir: API OS1, API OS2 ve API OS3.

Şekil 7 - Birden çok eş API'ye dayalı uyumluluk uygulaması

Bu varyantta, API düzeyi işlevleri, genel olarak uyumsuz olan üç uygulama ortamını da desteklemesi gereken temel işletim sistemi düzeyinin işlevlerini çağırır. Her bir API'nin işlevleri, benzer bir amaca sahip olsalar bile, karşılık gelen işletim sisteminin özellikleri dikkate alınarak çekirdek tarafından uygulanır. Çekirdeğin bir sistem çağrısının istenen uygulamasını seçmesi için, her işlemin çekirdeğe bir dizi tanımlayıcı özellik iletmesi gerekir.

Birden çok uygulama ortamı oluşturmanın başka bir yolu da mikro çekirdek yaklaşımına dayanır. Mikro çekirdek mimarisine uygun olarak, tüm işletim sistemi işlevleri mikro çekirdek ve kullanıcı modu sunucuları tarafından uygulanır. Her uygulama ortamı, ayrı bir kullanıcı modu sunucusu olarak tasarlanmıştır ve temel mekanizmaları içermez (Şekil 8). Uygulamalar, mikro çekirdek aracılığıyla uygun uygulama ortamına sistem çağrıları yapar. Uygulama ortamı isteği işler, yürütür ve sonucu uygulamaya geri gönderir. İsteğin yürütülmesi sırasında, uygulama ortamının da mikro çekirdek ve diğer işletim sistemi sunucuları tarafından uygulanan temel işletim sistemi mekanizmalarına erişmesi gerekir.

Birden fazla uygulama ortamı tasarlamaya yönelik bu yaklaşım, bir mikro çekirdek mimarisinin tüm avantaj ve dezavantajlarına sahiptir, özellikle:

Mikro çekirdek işletim sistemlerinin iyi genişletilebilirliğinin bir sonucu olarak, uygulama ortamlarını eklemek ve kaldırmak çok kolaydır;

Güvenilirlik ve kararlılık, uygulama ortamlarından birinin arızalanması durumunda diğerlerinin çalışır durumda kalmasıyla ifade edilir;

Mikro çekirdek işletim sistemlerinin düşük performansı, uygulama ortamlarının hızını ve dolayısıyla uygulama yürütme hızını etkiler.

Şekil 8 - Çoklu uygulama ortamlarını uygulamaya yönelik mikro çekirdek yaklaşımı

Farklı işletim sistemlerinin uygulamalarını yürütmek için tek bir işletim sistemi içinde çeşitli uygulama ortamlarının oluşturulması, programın tek bir sürümüne sahip olmanızı ve onu işletim sistemleri arasında aktarmanızı sağlayan bir yoldur.