12Sep

Windows'un Eski Sürümlerinde Çok Amaçlı Çalışma nasıl mümkün oldu?

DOS'un tek görevli bir işletim sistemi ve Windows'un ilk sürümleriyle olan bağları göz önünde bulundurulduğunda, Windows'un önceki sürümlerinin çok görevli olmayı nasıl başarabildikleri? Bugünkü Süper Kullanıcı Q & A postası, bu sorunun cevabına bakıyor.

Bugünkü Soru &Yanıt oturumu bize Q & A web sitelerinin topluluk temelli bir gruplandırması olan Stack Exchange'in bir alt bölümü olan SuperUser nezaketen geliyor.

Windows 95'in ekran görüntüsü Wikipedia'nın izniyle.

Soru

SuperUser okuyucusu LeNoob, Windows'un eski sürümlerinin çoklu görev sistemleri olarak nasıl çalıştığını bilmek ister mi? :

DOS'u tek görevli bir işletim sistemi olarak okudum. Ancak Windows'un eski sürümleri( Windows 95 de dahil olmak üzere) sadece DOS sarıcılarıysa, nasıl bir çoklu görevli işletim sistemi olarak çalışabilirler?

İyi soru! Eski Windows sürümleri çok görevli sistemler olarak nasıl yönetilir?

Cevap

SuperUser katılımcıları Bob ve Pete'in bize cevabı var.İlk önce, Bob:

Windows 95, MS-DOS için "sadece bir sarmalayıcı" çok daha fazlaydı.Alıntı Raymond Chen:

  • MS-DOS, Windows 95'te iki amaçla hizmet etmiştir: 1.) Önyükleme yükleyicisi olarak görev yapmıştır.& Sons;2.) 16-bit eski aygıt sürücü katmanı gibi davranıyordu.

Windows 95, MS-DOS'un hemen hemen tamamıyla çengel / overrode edildi, tüm ağır kaldırma işlemlerini yaparken bir uyumluluk katmanı olarak kaldım. Ayrıca, 32-bit programlar için ön-görevli çoklu görev gerçekleştirdi.

Windows 95 Öncesi

Windows 3.x ve daha eski sürümler çoğunlukla 16 bit'tir( 16 ve 32'yi köprüleyen bir tür uyumluluk katmanı olan Win32s hariç), DOS'ta daha fazla bağımlı olduklarını veYalnızca kooperatif çoklu görev kullandı - çalışan bir programı değiştirmeye zorlamayan biri bu.Çalışan programın kontrolü ele geçirmesini beklerler( temel olarak, "Beklediğim sonraki programı çalıştırması için OS'ye söyleyerek" tamamlandım "deyin).

  • Mac OS'un eski sürümlerinde olduğu gibi çok görevli işbirliği yapıldı( ancak çoklu görevleme DOS 4.x'in aksine, önleyici çok görevli olmaya özen gösterdi).Bir görev, farklı bir görevi planlamak için OS'ye yön vermek zorundaydı.Verim, belirli API çağrılarına, özellikle de mesaj işleme içine yerleştirildi. Bir görev mesajlari zamanında işlediği sürece, her şey harikaydı.Bir görev, mesajların işlenmesini durdurduysa ve bazı işlem döngüsünü yürütmekle meşgulse, çoklu görevler artık yoktu.

Windows 3.x Mimarisi

Windows programlarının ne kadar erken kontrol sağlayacağı konusunda:

  • Windows 3.1, koordine çoklu görevlendirme kullanır; yani, çalışan süreçteki her uygulamanın bir mesaj sırasını kontrol ederekdiğer uygulama CPU'yu kullanmak isterken, o takdirde, o uygulamaya kontrol sağlamaya çalışıyor. Bununla birlikte, birçok Windows 3.1 uygulaması ileti dizisini yalnızca seyrek görür veya hiç denetlemez ve CPU'nun denetimini gereken süre kadar tekelleştirirdi. Windows 95 gibi önleyici bir çok görevli sistem, CPU denetimini çalışan bir uygulamadan uzaklaştırır ve sistemin ihtiyaçlarına göre daha yüksek önceliğe sahip olanlara dağıtacaktır.

Kaynak

Tüm DOS'un göreceği, denetimi çıkmadan geçirecek tek bir uygulama( Windows veya diğer) çalışıyor. Teorik olarak, önleyici çoklu görev, muhtemelen zamanlayıcıya zorla kontrol vermek için bir gerçek zaman saati ve donanım kesmeleri kullanmak suretiyle DOS'un üstünde uygulanabilir. Tonny'nin söylediği gibi, aslında DOS'un üstünde çalışan bazı OS'ler tarafından yapıldı.

386 Geliştirilmiş Mod?

Not: Windows 3.x'in 32 bit olmak üzere 386 geliştirilmiş modu ve ön seçimli çok görevli desteği destekleyen bazı yorumlar var.

Bu ilginç bir durum. Bağlantılı blog postasını özetlemek için, 386 geliştirilmiş mod, temelde sanal makineleri çalıştıran 32-bit bir hypervisor idi. Bu sanal makinelerden birinde yukarıda listelenen tüm işleri yapan Windows 3.x standart modu çalıştırıldı.

MS-DOS bu sanal makinelerde de çalışıyor ve görünüşe göre önyargılı olarak çok görevli - bu yüzden 386 geliştirilmiş mod hipervizör, sanal makineler arasında CPU zaman dilimlerini paylaşacak gibi görünüyor( biri normalin 3.x'i çalıştırıyordu)ve MS-DOS'u çalıştıran diğerleri) ve her bir VM kendi işini yapacaktır - 3.x işbirliği içinde çoklu görev olurken MS-DOS tek görevlidir.

MS-DOS

DOS kendisi kağıt üzerinde tek görev oldu, ancak bir donanım kesmesi tetiklenene kadar arka planda kalacak TSR programları için destek var. Gerçek çok görevli olmaktan uzakta, fakat tam olarak tek görevli değildir.

Tüm bu birazcık konuşma?Çok görevli olmasını istedim!

Kısaca, bit niteliği ve çok görevlilik birbirine bağımlı değildir.Çok görevli herhangi bir modu herhangi bir bit niteliğinde uygulamak mümkün olmalıdır. Bununla birlikte, 16-bit işlemcilerden 32-bit işlemcilere geçiş, önleyici çoklu görevlerin uygulanmasını kolaylaştırabilen diğer donanım işlevlerini de beraberinde getirdi.

Ayrıca, 32-bit programlar yeni olduğundan, bazı eski 16-bit programları bozulmuş olabileceği için zorla çalıştırıldığında onları çalıştırmak daha kolaydı.

Tabii ki hepsi spekülasyon. Gerçekten MS'in Windows 3.x'te( 386 geliştirilmiş mod olsa da) ön-görevli çoklu görevlemeyi neden uygulamadığını bilmek istiyorsanız, orada çalışan birisine sormanız gerekecektir.

Ayrıca, Windows 95'in DOS için sadece bir sarmalayıcı olduğuna dair varsayımınızı düzeltmek istedim.

Pete'nin cevabı peşinde cevap veriyor:

Modern bir işletim sisteminde, işletim sistemi tüm donanım kaynaklarını kontrol ediyor ve çalışan uygulamalar sandık kutularında tutuluyor. Bir uygulamanın, işletim sisteminin o uygulamaya tahsis etmediği belleğe erişmesi yasaktır 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, CPU'yu korumalı moda girmeye zorladığı için bu denetimi zorlayabilir.

DOS, diğer taraftan asla korumalı moda girmez ancak gerçek modda kalır( * aşağıya bakın).Gerçek modda, çalışan uygulamalar istediği her şeyi gerçekleştirebilir, yani doğrudan donanıma erişebilir. Ancak gerçek modda çalışan bir uygulama, CPU'ya korumalı mod girmesini de söyleyebilir.

Ve bu son bölüm, Windows 95 gibi uygulamaların temelde DOS'dan başlatılmış olsa da çok parçacıklı bir ortam başlatmasına izin veriyor.

DOS( Disk İşletim Sistemi) bildiğim kadarıyla bir dosya yönetim sisteminden çok daha fazla değildi. Bir dosya sistemi, dosya sisteminde dolaşma mekanizmaları, birkaç araç ve uygulama başlatma imkânı sağladı.Ayrıca, bazı uygulamaların ikamet etmesine, yani fare sürücüleri ve EMM emülatörlerine izin vermişti. Fakat modern bir işletim sisteminin yaptığı gibi bilgisayardaki donanımı kontrol etmeye çalışmadı.

* DOS 1970'lerde ilk oluşturulduğunda, CPU'da korumalı mod mevcut değildi.1980'lerin ortasında, korumalı modun CPU'nun bir parçası haline gelmesi 80286 işlemciye kadar değildi.

Orijinal konuya göz attığınızdan ve aşağıdaki bağlantıyı kullanarak bu konudaki canlı tartışmayı okuyacağınızdan emin olun!

Açıklamaya eklemek için bir şey var mı?Yorumların sesini kapatın. Diğer teknik uzman Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Buradaki tam tartışma dizinine göz atın.