Eski Sürümlerde Çoklu Görev Nasıl Yapılabilir?
DOS'un tek görevli bir işletim sistemi olduğu ve Windows'un önceki sürümleriyle olan bağları olduğu göz önüne alındığında, Windows'un önceki sürümleri çoklu görev yapmayı nasıl başardı? Bugünün Süper Kullanıcı Soru-Cevap yazısı bu sorunun cevaplarına bakıyor.
Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..
Windows 95 ekran görüntüsü Wikipedia izniyle.
Soru
SuperUser okuyucu LeNoob, Windows'un eski sürümlerinin çoklu görev sistemleri olarak nasıl çalışabildiğini bilmek istiyor ?:
DOS'un tek görevli bir işletim sistemi olduğunu okudum. Ancak Windows'un eski sürümleri (Windows 95 dahil)? DOS için yalnızca paketleyiciyse, çok görevli bir işletim sistemi olarak nasıl çalışabilirler??
İyi soru! Windows'un eski sürümleri çoklu görev sistemleri olarak çalışmayı nasıl başardı??
Cevap
SuperUser katılımcıları Bob ve Pete bizim için cevabını alıyor. İlk önce, Bob:
Windows 95, MS-DOS için "yalnızca bir sarıcı" dan çok daha fazlaydı. Raymond Chen'den alıntı:
- MS-DOS, Windows 95'te iki amaca hizmet etti: 1.) Önyükleyici olarak görev yaptı. & 2.) 16-bit eski aygıt sürücüsü katmanı olarak görev yaptı.
Windows 95 gerçekte tüm ağır kaldırma işlemlerini gerçekleştirirken bir uyumluluk katmanı olarak kalmasını sağladı. Ayrıca, 32-bit programlar için önleyici çoklu görevler uyguladı..
Windows 95 öncesi
Windows 3.x ve daha eski sürümler çoğunlukla 16-bit'ti (Win32 ve 16 ve 32 köprülerini kullanan bir tür uyumluluk katmanı hariç olmak üzere ancak burada görmezden geleceğiz), DOS'a daha fazla bağımlıydı ve yalnızca çok işlevli ortak görev kullandılar - çalışan bir programı kapatmaya zorlamadıkları yer; çalışan programın kontrol vermesini beklerler (temel olarak, işletim sistemine bekleyen bir sonraki programı çalıştırmasını söyleyerek “bittim” der).
- Multi-tasking, tıpkı MacOS'un eski sürümlerinde olduğu gibi işbirliğine dayanıyordu (yine de önceden görevlendirilmiş multi-tasking özelliğini kullanan Multi-tasking DOS 4.x'in aksine). Farklı bir görev zamanlamak için bir görev OS'ye vermek zorundaydı. Verimler, özellikle ileti işleme olmak üzere, belirli API çağrılarına dahil edildi. Bir görev mesajları zamanında işleme koyduğu sürece, her şey harikaydı. Bir görev iletileri işlemeyi durdurduysa ve bazı işleme döngüsünü yürütmekle meşguldüyse, çoklu görev artık gerçekleşmedi.
Windows 3.x Mimarisi
Windows programlarının ne kadar erken kontrol edebileceğine gelince:
- Windows 3.1 işbirlikçi çoklu görev kullanır - bu, çalışma sürecinde olan her uygulamanın başka bir uygulamanın CPU kullanımını isteyip istemediğini bulmak için periyodik olarak bir mesaj kuyruğunu kontrol etmesi ve eğer öyleyse kontrol etmek için bu uygulama. Bununla birlikte, birçok Windows 3.1 uygulaması ileti kuyruğunu yalnızca seyrek olarak ya da hiç kontrol etmeyecek ve CPU'nun kontrolünü istedikleri kadar tekelleştirecektir. Windows 95 gibi bir önleyici çok görevli sistem, CPU kontrolünü çalışan bir uygulamadan uzaklaştıracak ve sistemin gereksinimlerine göre daha yüksek önceliğe sahip olanlara dağıtacak.
Kaynak
Tüm DOS'un göreceği, çalışan tek bir uygulama (Windows ya da diğer) çalışıyor, kontrolün çıkmadan kontrolünü geçiyordu. Teorik olarak, önceden-etkili çoklu görev, muhtemelen zamanlayıcıya zorla kontrol vermek için gerçek zamanlı bir saat ve donanım kesintileri ile DOS'un üstüne uygulanabilir. Tonny'nin dediği gibi, bu aslında DOS üzerinde çalışan bazı işletim sistemleri tarafından yapıldı..
386 Gelişmiş Mod?
Not: 386 geliştirilmiş Windows 3.x modunun 32 bit olduğu ve önleyici çoklu görev yapmayı desteklediği konusunda bazı yorumlar yapıldı..
Bu ilginç bir durum. Bağlantılı blog gönderisini özetlemek için, 386 geliştirilmiş modu temelde sanal makineleri kullanan 32 bitlik bir hipervizördü. Bu sanal makinelerden birinin içinde, yukarıda listelenen her şeyi yapan Windows 3.x standart modu kullanıldı..
MS-DOS aynı zamanda bu sanal makinelerin içinde de çalışacaktı ve görünüşe göre önleyici olarak çok görevliydiler - 386 geliştirilmiş mod hipervizörünün sanal makineler arasında CPU zaman dilimleri paylaşacak gibi görünüyordu (biri normal 3.x çalıştı. MS-DOS çalıştıran diğerleri) ve her VM kendi işini yapacak - 3.x birlikte çok görevli, MS-DOS tek görevli olacaktı.
MS-DOS
DOS'un kendisi kağıt üzerinde tek görevi üstlendi, ancak donanım kesintisi tarafından tetiklenene kadar arka planda kalacak TSR programlarını destekliyordu. Gerçek çok görevli olmaktan uzak, ancak tamamen tek görevli değil.
Bunca aptallık lafı mı? Çoklu görev hakkında sordum!
Kesin konuşursak, keskinlik ve çoklu görev birbirine bağlı değildir. Herhangi bir işlemde herhangi bir çoklu görev modunu uygulamak mümkün olmalıdır. Bununla birlikte, 16 bit işlemcilerden 32 bit işlemcilere geçiş, önleyici çoklu görevlerin daha kolay uygulanmasını sağlayabilecek başka donanım işlevselliği de getirdi..
Ayrıca, 32 bit programlar yeni olduğu için zorla kapatıldıklarında çalışmalarını sağlamak daha kolaydı - ki bu bazı eski 16 bit programları bozmuş olabilirdi.
Tabii ki, bunların hepsi spekülasyon. MS'in neden Windows 3.x'te (386 gelişmiş mod) önleyici çoklu görev uygulamasının gerçekleşmediğini bilmek istiyorsanız, orada çalışan birisine sormanız gerekir..
Ayrıca, Windows 95'in DOS için yalnızca bir sarıcı olduğu varsayımını düzeltmek istedim..
Pete'in cevabını takip etti:
Modern bir işletim sisteminde, işletim sistemi tüm donanım kaynaklarını kontrol eder ve çalışan uygulamalar sanal alanlarda tutulur. Bir uygulamanın, işletim sisteminin bu uygulamaya tahsis etmediği belleğe erişmesine izin verilmez ve bilgisayardaki donanım aygıtlarına doğrudan erişemez. Donanım erişimi gerekiyorsa, uygulamanın aygıt sürücüleri aracılığıyla iletişim kurması gerekir..
İşletim sistemi bu kontrolü zorlayabilir, çünkü CPU'yu korumalı moda girmeye zorlar..
Öte yandan, DOS, hiçbir zaman korumalı moda girmez, ancak gerçek modda kalır (*aşağıya bakınız). Gerçek modda, çalışan uygulamalar istediği her şeyi yapabilir, yani donanıma doğrudan erişebilir. Ancak gerçek modda çalışan bir uygulama da CPU'ya korumalı moda girmesini söyleyebilir..
Ve bu son bölüm, Windows 95 gibi uygulamaların temelde DOS'tan başlatılmış olsalar bile çok dişli bir ortam başlatmasına izin veriyor.
DOS (Disk İşletim Sistemi) bildiğim kadarıyla bir dosya yönetim sisteminden çok daha fazlası değildi. Bir dosya sistemi, dosya sisteminde gezinme mekanizmaları, birkaç araç ve uygulamaları başlatma imkanı sağladı. Ayrıca bazı uygulamaların yerleşik kalmasını sağladı, yani fare sürücüleri ve EMM emülatörleri. Ancak bilgisayardaki donanımı, modern bir işletim sisteminin yaptığı gibi kontrol etme girişiminde bulunmadı..
*DOS ilk 1970'lerde oluşturulduğunda, korumalı mod CPU'da yoktu. 1980'lerin ortalarında 80286 işlemciye kadar korunan kip CPU'nun bir parçası haline gelmedi..
Asıl konuya göz attığınızdan ve aşağıdaki bağlantıyı kullanarak bu konuyla ilgili canlı tartışmaları okuduğunuzdan emin olun.!
Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.