Windows 95
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.
- Önyükleyici olarak görev yaptı.
- 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örev gerçekleştirdi.
Windows 95 öncesi
Windows 3.x ve daha eski sürümler çoğunlukla 16-bit'ti (16 ve 32 numaralı köprüleri kullanan bir çeşit uyumluluk katmanı olan Win32'ler hariç, ancak burada görmezden geleceğiz), DOS'a daha fazla bağımlıydı ve yalnızca işbirlikçi çoklu görev kullandı - bu çalışan bir programı çıkarmaya 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" deyin).
Çoklu görev, tıpkı MacOS'un eski sürümlerinde olduğu gibi kooperatifti (preemptive multitasking özelliğini kullanan Multitasking 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şlem döngüsünü yürütmekle meşguldüyse, çoklu görev artık yoktu.
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ıyor - 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 denetlemesi ve bu uygulama için denetim sağlaması talimatı verileceği anlamına geliyor . Bununla birlikte, birçok Windows 3.1 uygulaması ileti kuyruğunu yalnızca seyrek olarak ya da hiç kontrol etmeyecek ve işlemcinin denetimini istedikleri kadar tekelleyecektir. Windows 95 gibi önleyici bir çoklu görev sistemi çalışan bir uygulamadan CPU kontrolünü elinden alacak 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çerdi. Teoride, gerçek zamanlı bir saat kullanımıyla zamanlayıcı üzerinde zorlayıcı bir şekilde kontrol vermek için önceden yapılmış çok görevli çalışma zaten 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ştirilmiş mod?
Not: 386 geliştirilmiş Windows 3.x modu hakkında 32 bitlik ve önleyici çoklu görev destekleme konusunda bazı yorumlar yapılmıştır .
Bu ilginç bir durum. Bağlantılı blog gönderisini özetlemek için , 386 geliştirilmiş modu temelde sanal makineleri çalıştıran 32 bitlik bir hipervizördü. Bu sanal makinelerden birinin içinde yukarıda listelenenlerin hepsini yerine getiren 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 önceden çok görevli olmuşlardı - bu yüzden 386 geliştirilmiş mod hipervizörünün, sanal makineler arasında CPU zaman dilimlerini paylaşacağı anlaşılıyor (biri normal 3.x ve MS çalıştıran diğerleri. -DOS) ve her VM kendi işini yapacak - 3.x birlikte çalışarak çoklu görev yapacak, MS-DOS ise tek görevli olacaktı.
MS-DOS
DOS'un kendisi kağıt üzerinde tek görevliydi, ancak bir donanım kesintisi tarafından tetiklenene kadar arka planda kalacak olan 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şabilmek, açık sözlülük ve çoklu görev birbirine bağlı değildir. Herhangi bir çoklu görev modunu herhangi bir zamanda 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ırabilecek 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ş olabilir.
Tabii ki, bunların hepsi spekülasyon. MS'in neden Windows 3.x'te önleyici çoklu görev gerçekleştirmediğini bilmek istiyorsanız (386 gelişmiş mod olmasına rağmen), orada çalışan birine sormanız gerekir.
Ayrıca, Windows 95'in DOS için bir sarıcı olduğu varsayımını düzeltmek istedim;)