Menü
Bedava
kayıt
ev  /  bellenim/ Ders: Uygulamalı yazılım ortamlarını uygulama yolları. İşletim sistemlerinin mimarisi, amacı ve işlevi Amaçlar ve alıştırmalar

Ders: Uygulamalı yazılım ortamlarını uygulama yolları. İşletim sistemlerinin mimarisi, amacı ve işlevi Amaçlar ve alıştırmalar

İşletim sisteminin mimari özelliklerinin çoğu yalnızca sistem programcılarını doğrudan ilgilendirirken, çoklu uygulama (işletim) araçları kavramı doğrudan son kullanıcıların ihtiyaçlarıyla - işletim sisteminin diğer işletim sistemleri için yazılmış uygulamaları çalıştırma yeteneğiyle - ilgilidir. İşletim sisteminin bu özelliğine uyumluluk denir.

Uygulama uyumluluğu ikili düzeyde ve kaynak 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 başka bir işletim sistemi ortamında çalıştırabilirseniz ikili uyumluluk sağlanır.

Kaynak uyumluluğu, uygulamayı çalıştırmayı düşündüğünüz bilgisayarın yazılımında uygun bir derleyicinin yanı sıra kitaplık ve sistem çağrısı uyumluluğu gerektirir. Bu durumda, uygulamanın kaynak kodunu yeni bir yürütülebilir modülde yeniden derlemek gerekir.

Kaynak uyumluluğu, öncelikle kaynak koduna sahip olan uygulama geliştiricileri için önemlidir. Ancak son kullanıcılar için yalnızca ikili uyumluluk pratikte önemlidir, çünkü yalnızca bu durumda aynı ürünü farklı işletim sistemlerinde ve farklı makinelerde kullanabilirler.

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

  • Uygulama tarafından kullanılan API, verilen işletim sistemi tarafından desteklenmelidir;
  • uygulamanın yürütülebilir dosyasının iç yapısı, verilen işletim sisteminin yürütülebilir dosyalarının yapısına uygun olmalıdır.

İşlemcilerin farklı mimarileri varsa, listelenen koşullara ek olarak, ikili kodun öykünmesini düzenlemek gerekir. Örneğin, bir Macintosh bilgisayarın Motorola 680x0 işlemcisinde Intel işlemci komutlarının öykünmesi yaygın olarak kullanılmaktadır. Yazılım öykünücüsü daha sonra sırayla Intel işlemci ikili yönergesini seçer ve Motorola işlemci yönergelerinde yazılan eşdeğer alt yordamı 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, kayıtlarını veya belleğini kullanarak tüm bu öğeleri simüle etmesi (öykünmesi) gerekir.

Tek bir Intel komutu, onu taklit eden Motorola işlemci komut dizisinden önemli ölçüde daha hızlı olduğundan, bu basit ama çok yavaş bir iştir. 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 sağladığı bir dizi API işlevidir. Başka birinin programlarını yürütmek için harcanan zamanı 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 (Grafik Kullanıcı Arayüzleri) altında çalışması ve uygulamaların zamanın %60-80'ini GUI işlevlerini ve diğer işletim sistemi kitaplığı çağrılarını yürütmeye harcamasından kaynaklanmaktadır. Uygulama ortamlarının, komut başına programları taklit etmek için harcanan büyük miktarda zamanı telafi etmesine olanak sağlayan, 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, programların başka bir işletim sisteminin API'si ile yürütülmesinde önemli bir hızlanma sağlanır. Bu yaklaşıma, aynı anda bir komut olan daha yavaş öykünme sürecinden ayırt etmek için yayın denir.

Örneğin, Macintosh'ta ç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ıya müdahale edebilir ve onu Motorola 680x0 işlemcisi için yeniden derlenen pencere açma rutinine yönlendirebilir. Sonuç olarak, kodun bu tür bölümlerinde programın hızı, kendi işlemcisindeki çalışma hızına ulaşabilir (ve muhtemelen onu geçebilir).

Bir işletim sistemi için yazılmış bir programın başka bir işletim sisteminde çalıştırılabilmesi için yalnızca API uyumluluğunun sağlanması yeterli değildir. Farklı işletim sistemlerinin arkasındaki 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ı, belirli bir işlemci yapısı ve bellek yönetim şeması, kendi dosya erişim semantiği ve grafiksel kullanıcı arayüzü vardır. Uyumluluğu sağlamak için, bilgisayar kaynaklarını yönetmenin çeşitli yöntemlerinin bir işletim sistemi içinde çatışmasız bir arada yaşamayı organize etmek gerekir.

Farklı derecelerde uygulama taşınabilirliği sağlayan hem mimari özellikler hem de işlevsellik açısından farklılık gösteren çoklu uygulama ortamları oluşturmak için çeşitli seçenekler vardır. Birden çok uygulama ortamını uygulamak için en belirgin seçeneklerden biri, standart bir işletim sistemi katmanlı yapısına dayanmaktadır.

Birden çok uygulama ortamı oluşturmanın başka bir yolu da mikro çekirdek yaklaşımına dayanmaktadır. Aynı zamanda, tüm uygulama ortamları için ortak olan, işletim sistemi mekanizmaları arasındaki farkı ve stratejik sorunları çözen uygulama ortamlarının her birine özgü üst düzey işlevleri not etmek çok önemlidir. Uyarınca mikro çekirdek mimarisi 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 temel mekanizmaları içermemesi önemlidir.

API kullanan 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 (belki de yardım için temel mikro çekirdek işlevlerini kullanarak) ve sonucu uygulamaya geri gönderir. Bir isteğ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.

Mikro-nükleer mimarinin tüm avantajları ve dezavantajları, özellikle aşağıdakiler olmak üzere, çoklu uygulama ortamlarının inşasına yönelik bu yaklaşımın doğasında vardır:

  • mikro çekirdekli işletim sisteminin 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 onu 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.

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 birden çok sanal makineye böldü. Bu sanal makinelerin (VM'lerin) her biri, temeldeki fiziksel makineye o kadar benziyordu ki, mevcut yazılım değişmeden üzerinde yürütülebilir. O zamanlar, pahalı ana bilgisayarlarda (IBM / 360 gibi) genel bilgi işlem görevleri gerçekleştirildi ve kullanıcılar VMM'nin kıt kaynakları birden çok uygulama arasında dağıtma yeteneğini takdir ettiler.

80-90'larda bilgisayar ekipmanının maliyeti önemli ölçüde azaldı ve etkili oldu çoklu görev işletim sistemi, kullanıcıların gözünde VMM'nin değerini azalttı. Ana bilgisayarlar yerini mini bilgisayarlara ve ardından PC'lere bıraktı ve VMM'ye gerek kalmadı. Sonuç olarak, bilgisayar mimarisi basitçe ortadan kayboldu. donanım etkili bir şekilde uygulanması için. 80'lerin sonunda, bilimde ve üretimde MVM, tarihsel bir meraktan başka bir şey olarak algılanmıyordu.

Bugün MVM yeniden gündemde. Intel, AMD, Sun Microsystems ve IBM sanallaştırma stratejileri oluşturuyor ve akademi ve üniversitelerde mobilite, güvenlik ve yönetilebilirlik konularını ele almak için sanal makine tabanlı yaklaşımlar gelişiyor. MVM'nin istifası ile yeniden canlanması 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 VM'lerin kullanımını keşfetmeye başladılar. Programlanması zor olan ve mevcut işletim sistemlerini çalıştıramayan Massively Parallel Processing (MPP) olan bilgisayarlarda sorunlar ortaya çıktı. Araştırmacılar, sanal makinelerin bu garip mimariyi, kullanıma hazır işletim sistemlerinden yararlanmak için mevcut platformlara yeterince benzer hale getirebileceğini keşfetti. Bu projeden, ana akım bilgisayarlar için ilk VMM satıcısı olan VMware'in (www.vmware.com) altın rezervi haline gelen insanlar ve fikirler ortaya çıktı.

İronik olarak, modern işletim sistemlerinin ilerlemesi ve donanım maliyetlerinin azalması, araştırmacıların VMM'nin yardımıyla çözmeyi umdukları sorunlara yol açmıştır. Ekipmanların ucuzluğu, bilgisayarların hızla yayılmasına katkıda bulundu, ancak çoğu zaman yetersiz kullanıldı ve bakım için ek alan ve çaba gerektirdi. Ve işletim sisteminin işlevsel yeteneklerinin büyümesinin sonuçları, kararsızlıkları ve kırılganlıklarıydı.

Sistem çökmelerinin etkisini azaltmak ve bilgisayar korsanlarına karşı koruma sağlamak için sistem yöneticileri tekrar tek göreve döndü hesaplama modeli(bir makinede bir uygulama ile). Bu, artan donanım gereksinimleri nedeniyle ek maliyetlere neden oldu. Uygulamaları farklı fiziksel makinelerden VM'lere taşımak ve bu VM'leri birkaç fiziksel platformda konsolide etmek, ekipman kullanımını artırmaya, yönetim maliyetlerini düşürmeye ve taban alanını azaltmaya izin verdi. Böylece VMM'nin donanımı çoğullama yeteneği - bu sefer sunucu konsolidasyonu ve yardımcı bilgi işlem adına - onları yeniden hayata döndürdü.

VMM, bir zamanlar güvenlik, hareketlilik ve güvenilirlik sağlama sorunlarına bir çözüm olarak düşünüldüğünden, günümüzde çoklu görevleri organize etmek için çok fazla bir araç haline gelmedi. Birçok yönden VMM, işletim sistemlerinin yaratıcılarına günümüzün karmaşık işletim sistemlerinde mümkün olmayan işlevsellik geliştirme yeteneği verir. Geçiş ve güvenlik gibi özelliklerin, önceki gelişmeleri korurken yenilikçi işletim sistemi çözümlerini 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ı temel 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ı koparır. Sanal makine monitörü ayırır yazılım donanımdan gelir ve sanal makineler tarafından çalıştırılan yazılımlar ile donanım arasında bir ara katman oluşturur. Bu düzey, VMM'nin donanım kaynaklarının kullanımını tam olarak kontrol etmesine olanak tanır. konuk işletim sistemleri (GuestOS) VM üzerinde çalışan.

VMM, farklı G / Ç alt sistemlerine sahip farklı satıcılardan gelen fiziksel makinelerin aynı görünmesi ve VM'lerin hangi donanım mevcut olursa olsun çalışması için temel donanımın birleşik bir görünümünü oluşturur. Yöneticiler, donanım ve yazılım arasındaki sıkı bağlantılara sahip tek tek makineler hakkında endişelenmeden, donanımı, talep üzerine herhangi bir hizmeti sunmak için basit bir kaynak havuzu olarak görebilirler.

Sayesinde tam kapsülleme VMM monitörü, VM'yi mevcut herhangi bir donanım kaynağına eşleyebilir ve hatta onu bir fiziksel makineden diğerine aktarabilir. Bir grup makine üzerindeki yükü dengeleme görevi önemsiz hale geliyor ve ekipman arızaları ve sistem büyümesi ile başa çıkmanın güvenilir yolları ortaya çıkıyor. Arızalı bir bilgisayarı kapatmanız veya yeni bir bilgisayarı devreye almanız gerekiyorsa, VMM sanal makineleri uygun şekilde yeniden dağıtabilir. Sanal makinenin kopyalanması kolaydır ve yöneticilerin gerektiğinde yeni hizmetleri hızlı bir şekilde sunmasına olanak tanır.

Kapsülleme ayrıca, yöneticinin herhangi bir zamanda bir VM'yi askıya alabileceği veya devam ettirebileceği ve ayrıca sanal makinenin mevcut durumunu kaydedebileceği veya önceki durumuna döndürebileceği anlamına gelir. Evrensel geri alma yetenekleriyle, kazalar ve yapılandırma hatalarıyla başa çıkmak kolaydır. Kapsülleme, genel bir mobilite modelinin kalbinde yer alır, çünkü askıya alınmış bir VM ağ üzerinden kopyalanabilir, depolanabilir ve çıkarılabilir ortamda taşınabilir.

VMM, VM ve temel donanım arasındaki tüm etkileşimler için bir aracı görevi görerek, birden çok sanal makinenin tek bir donanım platformunda çalışmasını sağlar ve güvenilir yalıtım sağlar. VMM, düşük kaynak gereksinimlerine sahip bir grup VM'yi ayrı bir bilgisayarda bir araya getirmenize olanak tanır ve maliyeti düşürür. donanım ve üretim alanı ihtiyacı.

Tam izolasyon, güvenilirlik ve güvenlik için de önemlidir. Eskiden aynı makinede çalışan uygulamalar artık farklı sanal makinelere dağıtılabilir. Bunlardan biri, bir hatanın sonucu olarak işletim sisteminin çökmesine neden olursa, diğer uygulamalar ondan izole edilecek ve çalışmaya devam edecektir. Uygulamalardan biri harici bir saldırı tarafından tehdit edilirse, saldırı "güvenliği ihlal edilmiş" VM içinde yerelleştirilir. Böylece VMM, uygulamaları ayrı fiziksel makinelerde çalıştırırken gereken ek alan ve idari çaba gerektirmeden, esnekliğini ve güvenliğini artırmak için sistemi yeniden yapılandırmak için bir araçtır.

VMM, donanım arabirimini VM ile ilişkilendirirken, temel alınan makine ve onun donanımıyla etkileşime girme prosedürleri üzerinde tam denetimi elinde tutmalıdır. Belirli teknik ödünleşimlere dayalı olarak bu hedefe ulaşmak için farklı yöntemler vardır. Bu tür tavizler aranırken VMM için temel gereksinimler dikkate alınır: uyumluluk, verim ve basitlik. Uyumluluk önemlidir çünkü VMM'nin ana avantajı eski uygulamaları çalıştırma yeteneğidir. Verim sanallaştırma ek yükünü belirler - bir VM'deki programlar gerçek bir makinedekiyle aynı hızda çalışmalıdır. Bir VMM hatası, bilgisayarda çalışan tüm VM'lerin başarısız olmasına neden olacağından, basitlik gereklidir. Özellikle güvenli izolasyon, VMM'nin, saldırganların sistemi yok etmek için kullanabileceği hatalardan arındırılmış olmasını gerektirir.

Konuk işletim sistemi kodunun karmaşık yeniden yazılmasıyla uğraşmak yerine, çekirdeğin daha "rahatsız edici" kısımlarından bazılarını değiştirerek ana bilgisayar işletim sisteminde bazı değişiklikler yapabilirsiniz. Bu yaklaşıma paravirtualization 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 tasarımcısı, orijinal talimat setinin sanallaştırılamayan alt kümesini daha uygun ve verimli eşdeğerlerle değiştirerek sanal makine arayüzünü yeniden tanımlar. İşletim sisteminin bu VM'lerde çalışması için taşınması gerekmesine rağmen, çoğu yaygın uygulamanın değişmeden çalışabileceğini unutmayın.

Paravirtualizasyonun en büyük dezavantajı uyumsuzluktur. Herhangi işletim sistemi paravirtualized bir VMM monitörünün kontrolü altında çalışacak şekilde tasarlananlar, işletim sistemi satıcılarıyla işbirliği müzakere edilerek bu mimariye taşınmalıdır. Ayrıca eski işletim sistemleri kullanılamaz ve mevcut makineler kolayca sanal makinelerle değiştirilemez.

VMware, x86 mimarisini sanallaştırırken yüksek performans ve uyumluluk elde etmek için geleneksel canlı yürütmeyi hızlı, anında ikili çeviri ile birleştiren yeni bir sanallaştırma tekniği geliştirdi. Çoğu modern işletim sisteminde, sıradan uygulama programları yürütülürken 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, "garip" x86 talimatlarını düzelterek ikili çevirici tarafından yürütülebilir. Sonuç, yüksek verimli sanal makine donanımla tam olarak eşleşen ve tam yazılım uyumluluğunu koruyan.

Dönüştürülen kod, paravirtualization sonuçlarına çok benzer. Normal komutlar değiştirilmeden yürütülür ve özel işlemeye ihtiyaç duyan komutlar (POPF ve kod segmenti kayıtlarını okumak için komutlar gibi), çevirmen tarafından, sanallaştırılmış bir sanal makinede yürütülmesi için gerekenlere benzer komut dizileriyle değiştirilir. Ancak önemli bir fark vardır: İşletim sisteminin veya uygulamaların kaynak kodunu değiştirmek yerine, ikili çevirici kodu ilk çalıştırıldığında değiştirir.

İkili kodu çevirmek için gereken bazı ek ek yük olsa da, normal iş yükleri altında ihmal edilebilir. Çevirmen 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.

Başka bir işletim sisteminin ortamıyla tamamen uyumlu tam teşekküllü bir uygulama ortamının oluşturulması, işletim sisteminin yapısı ile yakından ilgili oldukça zor bir iştir. Hem mimari çözümlerin özellikleri hem de değişen derecelerde uygulama taşınabilirliği sağlayan işlevsellik açısından farklılık gösteren, çoklu uygulama ortamları oluşturmak için çeşitli seçenekler vardır. .

UNIX OS'nin birçok versiyonunda, uygulama ortamı çevirmeni normal bir uygulama olarak uygulanmaktadır. Windows NT veya Workplace OS gibi mikro çekirdek konsepti kullanılarak oluşturulan işletim sistemlerinde, uygulama ortamları kullanıcı modu sunucuları olarak çalışır. Ve OS / 2'de, daha basit mimarisiyle, uygulama ortamlarını düzenlemeye yönelik araçlar, işletim sisteminin derinliklerine yerleştirilmiştir. Birden çok uygulama ortamını uygulamak için en belirgin seçeneklerden biri, standart katmanlı bir işletim sistemi yapısına dayanmaktadır. .

Pirinç. 3.13. Sistem çağrılarını çeviren uygulama programlama ortamları

Ne yazık ki, bir işletim sisteminin API'sini oluşturan hemen hemen tüm işlevlerin davranışı, diğerinin karşılık gelen işlevlerinin davranışından önemli ölçüde farklı olma eğilimindedir.

Birden çok uygulama ortamının başka bir uygulamasında, işletim sisteminin birden çok eş API'si vardır. Şekil 2'de gösterilen örnekte. 3.14 OS örneği, OS1, OS2 ve OS3 için yazılmış uygulamaları destekler. Bunu yapmak için, tüm bu işletim sistemlerinin uygulama programlama arayüzleri, doğrudan sistemin çekirdek alanında bulunur: API OS1, API OS2 ve API OS3. Bu varyasyonda, API düzeyindeki işlevler, genel olarak uyumsuz olan üç uygulama ortamını da desteklemesi gereken daha düşük düzeyli işletim sistemi işlevlerine atıfta bulunur.

Farklı işletim sistemleri, sistem zamanını farklı şekilde yönetir, farklı bir günün saati formatı kullanır, işlemci zamanını kendi algoritmalarına göre paylaşır, vb. Her API'nin işlevleri, ilgili işletim sisteminin özellikleri dikkate alınarak çekirdek tarafından uygulanır. eğer benzer bir amaçları varsa. Örneğin bahsedildiği gibi süreç oluşturma özelliği bir UNIX uygulaması ve bir OS/2 uygulaması için farklı çalışır. Benzer şekilde, bir işlem sona erdiğinde, çekirdeğin de işlemin hangi işletim sistemine ait olduğunu belirlemesi gerekir. Bu işlem bir UNIX uygulamasının isteği üzerine oluşturulmuşsa, sonlandırması sırasında çekirdek, UNIX OS'de yapıldığı gibi ana işleme bir sinyal göndermelidir. Ve OS/2 işleminin sona ermesi üzerine, çekirdek, işlem kimliğinin başka bir OS/2 işlemi tarafından yeniden kullanılamayacağını not etmelidir. Çekirdeğin sistem çağrısının istenen uygulamasını seçebilmesi için, her işlemin çekirdeğe bir dizi tanımlayıcı özelliği iletmesi gerekir.

Pirinç. 3.14 Birden Çok Eş API'sine Dayalı Birlikte Çalışabilirlik Uygulaması

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

Mikro çekirdek mimarisine göre, 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.15). API kullanan 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 (belki de yardım için temel mikro çekirdek işlevlerini kullanarak) ve sonucu uygulamaya geri gönderir. Bir isteğ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.

Çoklu uygulama ortamlarının oluşturulmasına 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 sisteminin düşük performansı, uygulama ortamlarının hızını ve dolayısıyla uygulama yürütme hızını etkiler.

Pirinç. 3.15. Çoklu Uygulama Ortamlarını Uygulamak İçin Mikro Çekirdek Yaklaşımı

Farklı işletim sistemlerinin uygulamalarını yürütmek için bir işletim sistemi içinde birkaç uygulama ortamının oluşturulması, programın tek bir sürümüne sahip olmanıza ve onu işletim sistemleri arasında aktarmanıza izin veren 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 daha fazla işletim sistemi seçme özgürlüğüne ve kaliteli yazılıma daha kolay erişime sahiptir.

Sonuçlar:

§ En basit işletim sistemi yapılandırması, tüm işletim sistemi bileşenlerini ana işletim sistemi işlevlerini (çekirdek) gerçekleştiren modüllere ve yardımcı işletim sistemi işlevlerini gerçekleştiren modüllere bölmekten oluşur. Destekleyici işletim sistemi modülleri, uygulamalar (yardımcı programlar ve sistem işleme programları) veya prosedür kitaplıkları olarak tasarlanmıştır. Yardımcı modüller yalnızca işlevleri süresince RAM'e yüklenir, yani geçicidirler. Çekirdek modülleri RAM'de yerleşiktir, yani yerleşiktir.

§ Farklı yetki seviyelerine sahip modlar için donanım desteği varsa, ayrıcalıklı modda çekirdek işlevleri ve kullanıcı modunda yardımcı işletim sistemi modülleri ve uygulamaları yürütülerek işletim sisteminin kararlılığı artırılabilir. Bu, işletim sistemi ve uygulamaların kodlarını ve verilerini yetkisiz erişime karşı korumayı mümkün kılar. İşletim sistemi, kaynaklar üzerindeki uygulama anlaşmazlıklarında arabulucu olarak hareket edebilir.

§ İşletim sisteminin yapısal bir öğesi olan çekirdek, sırayla aşağıdaki katmanlara mantıksal olarak ayrıştırılabilir (en alttan başlayarak):

§ işletim sisteminin makineye bağlı bileşenleri;

§ çekirdeğin temel mekanizmaları;

§ kaynak yöneticileri;

§ sistem çağrı arayüzü.

§ Çok katmanlı bir sistemde, her katman üstteki katmana hizmet eder ve onun için bir ara katman arayüzü oluşturan belirli bir dizi işlevi yerine getirir. Alttaki katmanın işlevlerine dayalı olarak, hiyerarşi katmanındaki bir sonraki katman, işlevlerini oluşturur - daha karmaşık ve daha güçlü, bu da üstteki katmanın daha da güçlü işlevlerini oluşturmak için ilkel hale gelir. İşletim sisteminin çok katmanlı organizasyonu, sistemin geliştirilmesini ve modernizasyonunu büyük ölçüde basitleştirir.

§ Görevlerini çözmek için herhangi bir işletim sistemi bilgisayar donanımıyla etkileşime girer, yani: ayrıcalıklı modu ve adres çevirisini destekleme araçları, süreçleri değiştirme ve bellek alanlarını koruma araçları, bir kesme sistemi ve bir sistem zamanlayıcısı. Bu, işletim sistemi makinesini belirli bir donanım platformuna bağlı olarak bağımlı hale getirir.

§ İşletim sistemi taşınabilirliği aşağıdaki kurallara uyularak sağlanabilir. İlk olarak, kodun çoğu, sistemin aktarılması gereken tüm bilgisayarlarda tercümanların bulunduğu bir dilde yazılmalıdır. İkincisi, donanımla doğrudan etkileşime giren makineye bağlı kod parçalarının miktarı mümkün olduğunca en aza indirilmelidir. Üçüncüsü, donanıma bağlı kod, birden çok modül arasında güvenilir bir şekilde yerelleştirilmelidir.

§ Mikro çekirdek mimarisi, çok katmanlı bir çekirdeği oluşturan tüm ana işletim sistemi işlevlerinin ayrıcalıklı bir modda gerçekleştirildiği klasik bir işletim sistemi oluşturma yöntemine bir alternatiftir. Mikro çekirdek işletim sistemlerinde, işletim sisteminin mikro çekirdek adı verilen çok küçük bir kısmı ayrıcalıklı modda çalışmaya devam eder. Diğer tüm üst düzey çekirdek işlevleri, kullanıcı modu uygulamaları olarak tasarlanmıştır.

§ Mikro çekirdekli işletim sistemleri, taşınabilirlik, genişletilebilirlik, güvenilirlik ve dağıtılmış uygulamaları desteklemek için iyi bir ön koşul oluşturma ile modern işletim sistemleri gereksinimlerinin çoğunu karşılar. Bu avantajlar, mikro çekirdek mimarisinin ana dezavantajı olan düşük performans pahasına gelir.

§ Uygulama yazılımı ortamı - belirli bir makine talimatları sistemi, belirli bir API türü ve yürütülebilir programın belirli bir biçimini kullanarak uygulamaların yürütülmesini organize etmek için tasarlanmış bir dizi işletim sistemi aracı. Her işletim sistemi en az bir uygulama programlama ortamı oluşturur. Sorun, aynı işletim sistemi içindeki birkaç yazılım ortamının uyumluluğunun sağlanmasında yatmaktadır. Birden çok uygulama ortamı oluştururken çeşitli mimari çözümler, ikili kod öykünmesi kavramları ve API çevirileri kullanılır.

Görevler ve alıştırmalar

1. Aşağıdaki terimlerden hangisi eş anlamlıdır?

§ ayrıcalıklı rejim;

§ korumalı mod;

§ süpervizör modu;

§ Kullanıcı modu;

§ gerçek mod;

§ çekirdek modu.

2. Bir programın ikili kodunu analiz ederek, kullanıcı modunda çalıştırılamayacağı sonucuna varmak mümkün müdür?

3. Ayrıcalıklı ve kullanıcı modlarındaki bir işlemci arasındaki farklar nelerdir?

4. İdeal olarak, bir mikro çekirdek işletim sistemi mimarisi, yalnızca kullanıcı modunda çalıştırılamayan işletim sistemi bileşenlerinin mikro çekirdeğe yerleştirilmesini gerektirir. İşletim sistemi geliştiricilerini bu ilkeden uzaklaştıran ve ona sunucu işlemleri şeklinde uygulanabilecek işlevleri aktararak çekirdeği genişleten nedir?

5. Yeni bir donanım platformu için bir mobil işletim sistemi varyantı geliştirmenin adımları nelerdir?

6. Uygulamaların mikro çekirdek mimarisine sahip bir işletim sistemi ile nasıl etkileşime girdiğini açıklayın.

7. Bir mikro çekirdek işletim sisteminde ve monolitik çekirdeğe sahip bir işletim sisteminde bir sistem çağrısı yürütmeyle ilgili adımlar nelerdir?

8. "Yabancı" bir işlemcide taklit edilen bir program "yerli" bir işlemciden daha hızlı çalışabilir mi?

Öykünmeye bir alternatif çoklu uygulama ortamları, bir dizi API işlevi içerir. Uygulama ortamının kütüphane fonksiyonlarına yapılan çağrıyı taklit ederler, fakat aslında kendi iç kütüphanelerini çağırırlar. denir kitaplıkların çevirisi... Bu tamamen bir yazılım paketidir.

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çleri yönetme yöntemleri arasında çatışmasız etkileşimin sağlanması gerekir.

Uygulama Yazılım Ortamlarını Uygulama Yöntemleri

Mimariye bağlı olarak:

1. Uygulama biçiminde bir uygulama yazılımı ortamı (yerel işletim sistemi çekirdeğinin üst katmanı).

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

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

Ayrıcalıklı çalışma modu. API, temel alınan (ayrıcalıklı) işletim sistemi katmanının işlevlerini ifade eder. Çağrının tanınmasından ve uyarlanmasından sistem sorumludur. Çok fazla kaynak gerektirir. Tanıma için bir dizi tanımlayıcı özellik çekirdeğe aktarılır.

3. Mikro çekirdek ilkesi.

Herhangi bir uygulama ortamı, ayrı bir kullanıcı modu sunucusu olarak tasarlanmıştır. API kullanan uygulamalar, mikro çekirdek aracılığıyla uygun 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 fonksiyonları kullanılabilir. 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üzenlenir (POSIX, ISO).

1. Kullanıcı arayüzü- özel bir komut dilinde kullanıcı isteklerini işletim sistemine yapılan isteklere çeviren özel yazılım modülleri kullanılarak uygulanır.

Bu tür modüllerin koleksiyonuna denir Tercüman... Sözcüksel ve ayrıştırma yapar ve ya komutu kendisi yürütür ya da 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, bir programlama ortamı aracılığıyla uygulama programlarını kullanarak hem işletim sistemi içinde hem de dışında sistem programlarını kullanır.

OS-th kaynaklarının sağlanmasının özünde, nihayetinde bir yazılım kesintisi vardır. Sisteme bağlı olarak uygulanması (vektör, tablo). API'yi işletim sistemi düzeyinde (en hızlı, en düşük), sistem programlama düzeyinde (daha soyutlanmış, daha az hızlı) ve harici bir prosedürler ve işlevler kitaplığı düzeyinde (küçük bir küme) uygulamak için çeşitli seçenekler vardır.

Linux işletim sistemi arayüzleri:

· Yazılım (aracılar olmadan - sistem çağrılarının fiilen yürütülmesi);

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

· Grafiksel (aracılar - Kabuk + grafik kabuk).

Dosya sistemi

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

FS'nin bileşimi ile:

Diskteki tüm dosyaların tüm ortamlarda toplanması,

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

· Dosya yönetimini uygulayan bir dizi sistem yazılım aracı, özellikle: dosyalar üzerinde oluşturma, yok etme, okuma, yazma, adlandırma, arama ve diğer işlemler.

Dosya özniteliklerinden biri - dosya adları - bir dosyayı kullanıcıya tanımlamanın bir yoludur. Birden çok isme izin verilen sistemlerde, dosyaya işletim sistemi çekirdeği tarafından kullanılan bir düğüm atanır. Adlar farklı işletim sistemlerinde farklı tanımlanır.

Soyut bir çok dilli, açık, derlemeli programlama sisteminin yapısını ve bu ortamda uygulama geliştirme sürecini düşünün (Şekil 1.4).

Kaynak dilde (kaynak modül) program, metin editörleri yardımıyla hazırlanır ve çevirmene metin dosyası veya kütüphanenin bir bölümü şeklinde girer.

Kaynak programın çevirisi, kaynak modülü bir ara nesne formuna dönüştürmek için bir prosedürdür. Çeviri genellikle ön işleme (ön işleme) ve derlemeyi içerir.

Önişleme, kaynak metnin analiz edilmesinden, önişlemci yönergelerinin çıkarılmasından ve yürütülmesinden oluşan isteğe bağlı bir aşamadır.

Önişlemci yönergeleri, kısaltmalar, simgeler vb. içeren özel karakterlerle (genellikle %, #, &) işaretlenmiş dizelerdir. Derleyici tarafından işlenmeden önce kaynak programa dahil edilen yapılar.

Kaynak metni genişletmeye yönelik veriler standart, kullanıcı tanımlı veya işletim sistemi sistem kitaplıklarında yer alan veriler olabilir.

Derleme genellikle aşağıdaki aşamaları içeren çok adımlı bir süreçtir:

Sözcük analizi - giriş metninin sözcüksel bileşimini kontrol etmek ve bileşik karakterleri (işlemciler, köşeli ayraçlar, tanımlayıcılar vb.) daha sonraki işlemler için uygun bazı ara dahili biçimlere (tablolar, grafikler, yığınlar, köprüler) çevirmek;

ayrıştırma- metnin hazırlanmasında programcı tarafından kullanılan yapıların doğruluğunu kontrol etmek;

anlamsal analiz- değişkenlerin, işlevlerin ve prosedürlerin türlerinin ve yapılarının tutarsızlıklarının belirlenmesi;

Nesne kodu oluşturma, çevirinin son aşamasıdır.

Çeviri (derleme), kurulumu tuşlar, parametreler veya seçenekler kullanılarak gerçekleştirilen çeşitli modlarda gerçekleştirilebilir. Örneğin, yalnızca ayrıştırma aşamasının ve benzerlerinin yürütülmesi gerekebilir.

Bir nesne modülü, bir kaynak modülün derlenmesinin sonucu olan bir program modülüdür. Makine talimatlarını, sözlükleri, servis bilgilerini içerir.

Nesne modülü, giriş / çıkış işlevlerini, sayısal ve dize değişkenlerinin işlenmesini ve ayrıca diğer kullanıcı programlarına veya araçlarına uygulayan çevirmen kitaplığının (genel durumda, programlama sistemleri) çağrılan alt rutinlerine çözümlenmemiş referanslar içerdiğinden işlevsel değildir. uygulama paketleri.

Pirinç. 1.4. Soyut çok dilli, açık kaynak kodlu, derleme programlama sistemi

Yükleme modülü yükleme ve yürütme için uygun bir biçimde bir program modülü. Yük modülünün yapımı özel yazılım araçlarıyla gerçekleştirilir - bağlantı düzenleyici, görev oluşturucu, bağlayıcı, toplayıcı, ana işlevi nesne ve yük modüllerini tek bir yük modülünde birleştirmek ve ardından bir yükleme modülüne yazmaktır. kitaplık veya dosya. Ortaya çıkan modül daha sonra başka programlar vb. oluşturmak için kullanılabilir, bu da yazılım oluşturmayı mümkün kılar.

Montajdan sonra, yükleme modülü ya kullanıcı program kitaplığına yerleştirilir ya da doğrudan yürütülmek üzere gönderilir. Modülün yürütülmesi, RAM'e yüklenmesini, belleğe yerleştirilmesini ve kontrolün ona aktarılmasını içerir. Yük modülünün bellekteki görüntüsüne mutlak modül denir, çünkü buradaki tüm bilgisayar komutları son şeklini alır ve bellekte mutlak adresleri alır. Mutlak modülün oluşturulması, hem programatik olarak, modülün komut kodlarını yükleyici program tarafından işlenerek, hem de donanımsal olarak, indeksleme uygulanarak ve yükleme modülünün komutlarını temel alarak ve onlarda belirtilen ilgili adresleri ilgili adreslere getirerek gerçekleştirilebilir. mutlak biçim.

Modern programlama sistemleri, bir aşamadan diğerine rahatça geçmenizi sağlar. Bu, bir metin düzenleyici, derleyici, bağlayıcı, yerleşik hata ayıklayıcı içeren ve sisteme veya sürümüne bağlı olarak programcıya program yazma ve hata ayıklama için ek kolaylık sağlayan entegre programlama ortamının varlığı ile yapılır. .

Başka bir işletim sisteminin ortamıyla tamamen uyumlu, tam teşekküllü bir uygulama ortamının oluşturulması, işletim sisteminin yapısıyla yakından ilgili oldukça karmaşık bir iştir. Hem mimari çözümlerin özellikleri hem de değişen derecelerde uygulama taşınabilirliği sağlayan işlevsellik açısından farklılık gösteren, çoklu uygulama ortamları oluşturmak için çeşitli seçenekler vardır.

UNIX OS'nin birçok versiyonunda, uygulama ortamı çevirmeni normal bir uygulama olarak uygulanmaktadır. Windows NT gibi mikro çekirdek konsepti kullanılarak oluşturulan işletim sistemlerinde, uygulama ortamları kullanıcı modu sunucuları olarak çalışır. OS / 2 işletim sisteminde, daha basit mimarisiyle, uygulama ortamlarını düzenlemeye yönelik araçlar sistemin derinliklerine yerleştirilmiştir.

Birden çok uygulama ortamını uygulamak için en belirgin seçeneklerden biri, standart bir işletim sistemi katmanlı yapısına dayanmaktadır. İncirde. 2.7 OS1 işletim sistemi, "yerel" uygulamalarına ek olarak OS2 işletim sisteminin uygulamalarını destekler. Bunun için özel bir uygulama içerir - "yabancı" işletim sisteminin arayüzünü - OS2 API'sini "yerel" işletim sisteminin - OS1 API'sinin arayüzüne çeviren bir uygulama yazılımı ortamı.



Özel mod

ayrıcalıklı mod

Pirinç. 2.7. Uygulama yazılım ortamı,
sistem çağrılarını çevirme

Birden çok uygulama ortamının başka bir uygulamasında, işletim sistemi birden çok eş API'ye sahiptir. Şekil 2'de gösterilen örnekte. 2.8 örneğinde, işletim sistemi OS1, OS2 ve OS3 için yazılmış uygulamaları destekler. Bunun için uygulamalar doğrudan sistemin çekirdek alanında bulunur.

tüm bu işletim sistemlerinin programlama arayüzleri: API OS1, API OS2 ve
API OS3.


Özel mod


Ayrıcalıklı

Pirinç. 2.8. Uyumluluğu Uygulamak
birden çok eş API'ye dayalı

Bu varyasyonda, API katmanı işlevleri, genel olarak uyumsuz olan üç uygulama ortamının tümünü desteklemesi gereken temel işletim sistemi katmanı işlevlerine atıfta bulunur. Farklı işletim sistemleri, sistem zamanını farklı şekillerde yönetir, farklı bir günün saati formatı kullanır, kendi algoritmalarına göre ayrı işlemci zamanı vb. Her API'nin işlevleri, benzer bir amaca sahip olsalar bile, ilgili işletim sisteminin özellikleri dikkate alınarak çekirdek tarafından uygulanır.

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

Mikro çekirdek mimarisine göre, 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 2.9). API kullanan 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 (belki de yardım için temel mikro çekirdek işlevlerini kullanarak) ve sonucu uygulamaya geri gönderir. Bir isteğ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.

Uygulama Sunucuları İşletim Sistemi


Gelenek


Ayrıcalıklı

Pirinç. 2.9. Mikro çekirdek yaklaşımı
çoklu uygulama ortamlarının uygulanmasına

Çoklu uygulama ortamlarının oluşturulmasına 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 çekirdekli 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 bir işletim sistemi içinde birkaç uygulama ortamının oluşturulması, programın tek bir sürümüne sahip olmanızı ve onu işletim sistemleri arasında taşımanı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 daha fazla işletim sistemi seçme özgürlüğüne ve kaliteli yazılımlara daha kolay erişime sahiptir.

Kendi kendine test soruları

50. Mikro çekirdek mimarisi ile geleneksel işletim sistemi mimarisi arasındaki fark nedir?

51. Bir mikro çekirdek neden dağıtılmış bilgi işlemi desteklemek için çok uygundur?

52. Çoklu uygulama ortamları kavramı ile ne kastedilmektedir?

53. Kütüphane çeviri yönteminin özü nedir?

Kontrol soruları

54. Mikro çekirdek mimarisinde, kullanıcı moduna yerleştirilen kaynak yöneticilerine atıfta bulunmak için kullanılan terim nedir?

56. İşletim sisteminin mikro çekirdek mimarisi neden klasik işletim sisteminden daha genişletilebilir?

57. Mikro çekirdek mimarisi geleneksel mimariden daha mı güvenilir?

58. Mikro çekirdek mimarisinin performansının geleneksel işletim sisteminin performansından düşük olmasının nedenini belirtin.

60. Ne tür uyumluluklar biliyorsunuz?

61. Farklı mimarilerdeki işlemciler için ikili uyumluluğu nasıl sağlayabilirsiniz?

62. "Yabancı" bir yürütülebilir dosya yürütülürken PC'nizin performansını artırmanıza olanak tanıyan bir yöntem belirtin.

63. Tam uygulama uyumluluğu için bir kitaplık çeviri yöntemi yeterli midir?