DOS tek görevli ise, Windows'un eski sürümünde çoklu görevler nasıl mümkün oldu?


113

DOS'un tek görevli bir işletim sistemi olduğunu okudum.

Ancak Windows'un eski sürümleri (Windows 95 de dahil olmak üzere) DOS'un yalnızca paketleyicisiyse, Windows çoklu görev yapan bir işletim sistemi olarak nasıl çalışabilir?



20
"Eski" kelimesini bundan daha iyi tanımlaman gerekecek. DOS + Windows 9x ve DOS + Windows 3.x "386 Enhanced Mode", "Standart Mod" ve "Gerçek Mod" da DOS + Windows 3.x / 2.x için oldukça farklıydı. Ve joeqwerty'nin ima ettiği gibi, kooperatif çok görevli olduğu kadar önleyici de vardı. Bütün kitaplar bu konuda yazılmıştır, bu nedenle belirli bir soru daha iyidir.
JdeBP

5
@joeqwerty En harika IMO, Microsoft'un bu kadar antik yazılımla ilgili belgeleri çevrimiçi tuttuğu şeklindedir. MS-DOS'un eski sürümlerinde gelişmiş konular hakkında makaleler bile var ... Bunu canlı tutmak çok hoş.
NothingsImpossible

6
DOS size çoklu görev vermiyor. Yine de DOS'un yardımı olmadan tam çoklu görev programları yazabilir ve bu da erken Windows yapar. Windows 95 kesinlikle DOS için sadece bir "sarmalayıcı" değildir.
Boann

3
@ NigelNquande Aslında MS'i eski dokümantasyonun korunması konusunda oldukça iyi buldum. Emekli KB makalelerinin çoğu çevrimiçidir (örneğin; rasgele bir Windows 3.1 KB veya Windows 2.1-3.0 printyardımcı programındaki dokümanlar veya MS-DOS 5.0'dan ansi.sys ) - hayat ödemesiz dönem. Aktif ürün dokümantasyonu kadar kolay göz atılabilir bir özellik değil, aramalarınızda belirli olmanız gerekiyor.
Jason C

Yanıtlar:


160

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;)


4
Çok güzel yazı. Doğru hatırlıyorsam (işletim sistemi tasarım sınıfı benim için uzun yıllar önceydi) Windows 9x, tıpkı ikinci ve son paragrafınızda önerdiğiniz gibi zamanlayıcı kesintilerini kendi zamanlayıcısını uygulamak için bağladı. Aynısını yapan DOS’un üstünde başka OS’ler de vardı. Bunu, her ikisi de DOS'un üzerinde çalışan AMX'den (endüstriyel uygulamalar için gerçek zamanlı işletim sistemi) ve XINU'dan (eğitim amaçlı küçük Unix / Posix gibi) açıkça hatırlıyorum. (AMX doğrudan EPROM'dan çıplak metal çalıştırabilirdi. DOS üzerinde çalışırken test etmek / hata ayıklamak çok daha kolaydı. Her test için EPROM'ları yeniden yakmaktan kurtardı.)
Tonny

@Tonny Bu planın mümkün olduğunu (ve pratikte kullanıldığını) onayladığınız için teşekkür ederiz. Tahmin ediyorum ki, Windows 1-3'ün önleyici çoklu görev kullanmamasının nedeni bunu yapamayacak kadar değil (MS-DOS 4'te yayımlanmamış olsa da) programları.
Bob

3
Mmmmhhh Windows 1-3'u Düşünmek: 8086 CPU ve üstü için ortak bir kod tabanı olduğu gerçeği, bununla daha fazla ilgisi olabilirdi. Doğru ring0-3 kullanımı sadece 80286 ve üstü ile mümkündü ve Win9x'in çoklu görev için kullandığı şey buydu. 4DOS ve diğerleri zaten DOS üzerinde sınırlı bir çoklu görev sağladı (doğru hatırlıyorsam 80286 gerekiyordu). 4DOS'ta Win3'ün kendisini ayrı bir işlem olarak bile çalıştırabilirsiniz.
Tonny

1
Xinu gerçekten vermedi değil DOS üstünde çalışır. Sonuçta, bir LSI-11 işletim sistemi olarak başladı. DOS + Windows 3.x işletim sisteminde önceden çoklayıcı çoklu görev olmadığı ifadesi yanlıştır. 386 Gelişmiş Mod'da, VMM'nin izniyle vardı. Ve 4DOS ile ilgili saçmalık size Sıkça Verilen bir Cevap veriyor: 4DOS bir işletim sistemi değil . Çoklu görev sağladığı ifadeleri tamamen yanlıştır.
JdeBP

2
PDP-8 önleyici çoklu görev desteğini destekledi ve bu sadece 12 bit bir bilgisayardı.
david25272

26

Sürekli olarak pencere denilen tek bir program çalıştırıyordu. Bu, CPU zamanını (ve diğer kaynakları) farklı programlar arasında yaydı.

Bu analojiyi düşünün:

O sırada sadece bir kişi alabilecek bir ofisine sahipsiniz (Bu kişiye bay veya bayan DOS adı verilir). O kişi o zaman bir şey üzerinde çalışıyor. Örneğin, tek bir kişiyi arar ve onunla 7/24 sohbet etmeye başlar.

Şimdi o kişiyi sayın sekreter ile değiştiriyorsunuz. (pencereler). Birini arayacak ve onunla her zaman konuşacak (hala tek bir görev). Sonra bir süre sonra diğer kişi "Şimdilik yeterince konuştum. Git bir başkası ile konuş ve beni biraz sonra ara" diyecek.

Sayın sekreter diğer kişiyi arayacak. O kişi aynı şeyi söyleyene kadar onunla sohbet et. Ardından konuşacak kişi listesinin sonuna gelinceye kadar bir sonraki kişiyi arayacaktır. O zaman en baştan başlayacak.

  • Teknik açıdan buna kooperatif çoklu görev denir. Diğer kişinin yeterli CPU zamanı olduğunu söylemesini gerektirir. Biri bunu yapmazsa, o zaman hepsi ayrı düşer.
  • Modern sistemler çok daha akıllı. Önleyici çoklu görev dahil. Sekreteri çalar saat ayarlamayı ve diğer kişiyi 5 dakika sonra kesmeyi düşünün. “Bu çok hoş Jane. Ama şimdi Joe ile konuşmalıyım. Seni birazdan arayacağım. - Tıkla.”

Birden fazla işlemci eklerseniz daha da karmaşıklaşır. :)


1
İlk noktasında kooperatif / önleyici olmayan çoklu görev demek istemiyor musunuz? Ayrıca, ilginç olarak, Windows 95, 32 bit programlar için önleyici çoklu görev tanıttı. DOS için bir sarmalayıcı değildi, çünkü DOS'u bootloader olarak kullanan ancak ana bölümlerini değiştirdi (16-bit / DOS program desteği için yeterli kaldı).
Bob

bayım veya özlüyor, neden 'Dr.' DOS?
gtrak

1
"Sürekli tek bir program çalıştırıyordu ... Bu, CPU zamanını (ve diğer kaynakları) farklı programlar arasında yayıyordu." Herhangi bir işletim sistemi hakkında söylenemez mi? Soru MS-DOS'un yapamayacağı anlamına gelse de. Teknolojinin teknik ayrıntılarını etkisiz hale getirirken analojilere / metaforlara şiddetle karşıyım. Tamam, şimdi bazı varsayımsal ofislerin nasıl çalıştığını biliyoruz? Bu gerçekten sorunun cevabını açıklamıyor.
Celeritas

13

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 *. Gerçek modda, çalışan uygulamalar istedikleri her şeyi yapabilir, örneğin 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 ortama başlamasını sağlar.

DOS (Disk İşletim Sistemi) 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ına izin verdi, örneğin fare sürücüleri ve EMM emülatörleri. Ancak bilgisayardaki donanımı, modern bir işletim sisteminin yaptığı gibi kontrol etmeye çalışmadı.

* DOS 70'lerde ilk yaratıldığında, CPU'da korumalı mod yoktu. 80'li yılların ortalarındaki 80286 işlemcisi korunan modun işlemcinin bir parçası haline gelmesine kadar değildi.


2
O zaman CPU'ların korumalı mod gibi bir şeyleri olmadığını unutmayın.
Mart'ta

1
@jwenting - iyi nokta, bunun hakkında bir not ekledim
Pete

6

Çoklu görev DOS uygulamalarının ilk sürümü olan Windows 3.x'ten önce DesqView gibi programlar da vardı. Örneğin bir kerede üç DOS oturumu çalıştırıyor olsaydı, DesqView dört sanal makine yaratacaktı. Her üç DOS oturumu da, hiçbirinin gerçekte G / Ç dosyası yapmamaları haricinde, tüm makineye "sahip olduklarını" düşünüyor. Bunun yerine, her oturumda çalışan DOS sürümü, G / Ç dosyası isteklerini bu amaca yönelik özel bir oturuma iletecek şekilde eklenir. PC’nin metin modu donanımı, sürekli olarak bir bellek alanının içeriğini karakter olarak göstereceğinden; DesqView, her oturumun 0xB8000-0xB9FFF aralığını kendi RAM alanına eşleyerek her oturumun kendi sanal ekranına sahip olmasını sağlayabilir. ve mevcut uygulamanın alanının fiziksel ekran ara belleğine periyodik olarak kopyalanması. Grafik desteği çok daha zordu, çünkü ekran kartındaki 256K RAM, 64K adres alanı, bazı G / Ç kayıtları ve bazı özel dizilerde okunup yazılması gereken "ilginç" donanımlar kullanılarak kontrol ediliyordu. Metin modunda, bir uygulama metin arabelleğine bir şeyler yazdığında, DesqView bir sonraki zamanlayıcı onaylamadaki ekrana kopyalanması gerektiğini belirten bir bayrak ayarlayabilir; sadece belirli bir zaman diliminde metin arabelleğine ilk yazma işlemi DesqView'ün müdahalesini gerektirecektir; diğerleri bir sonraki zamanlayıcı kene konsolide olur. çünkü ekran kartındaki 256K RAM 64K adres alanı, bazı G / Ç kayıtları ve bazı belirli dizilerde okunup yazılması gereken bazı "ilginç" donanımlar kullanılarak kontrol edildi. Metin modunda, bir uygulama metin arabelleğine bir şeyler yazdığında, DesqView bir sonraki zamanlayıcı onaylamadaki ekrana kopyalanması gerektiğini belirten bir bayrak ayarlayabilir; sadece belirli bir zaman diliminde metin arabelleğine ilk yazma işlemi DesqView'ün müdahalesini gerektirecektir; diğerleri bir sonraki zamanlayıcı kene konsolide olur. çünkü ekran kartındaki 256K RAM 64K adres alanı, bazı G / Ç kayıtları ve bazı belirli dizilerde okunup yazılması gereken bazı "ilginç" donanımlar kullanılarak kontrol edildi. Metin modunda, bir uygulama metin arabelleğine bir şeyler yazdığında, DesqView bir sonraki zamanlayıcı onaylamadaki ekrana kopyalanması gerektiğini belirten bir bayrak ayarlayabilir; sadece belirli bir zaman diliminde metin arabelleğine ilk yazma işlemi DesqView'ün müdahalesini gerektirecektir; diğerleri bir sonraki zamanlayıcı kene konsolide olur. DesqView, bir sonraki zamanlayıcı onayındaki ekrana kopyalanması gerektiğini belirten bir bayrak ayarlayabilir; sadece belirli bir zaman diliminde metin arabelleğine ilk yazma işlemi DesqView'ün müdahalesini gerektirecektir; diğerleri bir sonraki zamanlayıcı kene konsolide olur. DesqView, bir sonraki zamanlayıcı onayındaki ekrana kopyalanması gerektiğini belirten bir bayrak ayarlayabilir; sadece belirli bir zaman diliminde metin arabelleğine ilk yazma işlemi DesqView'ün müdahalesini gerektirecektir; diğerleri bir sonraki zamanlayıcı kene konsolide olur.

Bunun aksine, grafik modunun sanallaştırılması, bellek görüntülemesini veya I / O kayıtlarını görüntülemek için her bir bireysel yazıyı tuzağa düşürmek için DeskView uygulamasını gerektirir. Bunun, bellek yazmalarını yaklaşık 100 faktörle yavaşlatacağı ve grafik programlarının metin programlarından çok daha fazla veri yazması gerektiğine göre, grafik programlarının çoğu grafik yazılımının gerçek zamanlı sanallaştırması pratik değildi. Bunun yerine, grafikler, ön plan uygulaması olana kadar grafik duraklatmaya çalışan herhangi bir ön plan dışı uygulamanın yapılması ve ardından ekran üzerinde tam kontrol verilmesiyle idare edildi. Kontrol farklı bir uygulamaya geçtiğinde, DesqView tüm grafik kayıtlarının durumunun bir kopyasını çıkarmaya çalışır ve ardından geçer. Grafik uygulamaya geçildiğinde, DesqView kaydedilen durumu geri yükler.

Bir bakıma, çok görevli grafik olmayan DOS uygulamaları, çok görevli Windows uygulamalarından daha kolaydı çünkü çok az paylaşılan kaynak vardı ve uygulamaların birbirleriyle etkileşime girmesi gerekmiyordu. Buna karşılık, Windows'ta, pano gibi şeylerle uğraşmak ya da bir programın pencerelerinin diğerini gizleyecek şekilde hareket etmesi olasılığı vardır. Windows 95, kodun çizmeye çalıştığı sırada ekranın bir alanı kullanılamaz duruma gelebilecek bir pencereleme sistemi gibi şeyleri dahil ederek bu sınırlamaların üstesinden gelebilecek ilk Windows sürümüdür (çizimin maskelenmesi etkisi ile) ).


Bana DesqView'i hatırlattığın için teşekkürler. Ben her zaman kullanırdım ama tamamen unutmuştum.
Emmet

3

Çoklu görev aynı anda çalışan uygulama yanılsamasından başka bir şey değildir. Sonunda eşzamanlı yürütme olarak algılanır, ancak aslında A, B ve C süreçleri CPU sırasını şu sırayla paylaşır: A, B, C, A, B, C, A, B ... çok hızlı kapalı. İki işlem aslında aynı anda çalışmıyor.

Bu nedenle, MS-DOS çoklu görevlerini bir işlemi duraklatmak, bir sonrakini kısa bir süre çalıştırmak, birinciyi duraklatmak, birincisine geri atlamak vb. Yapmak mükemmel bir şekilde mümkündür.

Çoklu görev, CPU'ların bu işlemler arasında dönmeye devam etmek ve son kullanıcıya aynı anda görünmesini sağlamak için yeterince hızlı başladığında geliştirilen akıllıca bir özelliktir.

Hatırlayanlar için, oyunlar hala DOS4GW'de oynanıyordu çünkü Windows çok yavaştı.


1
ve çoğunlukla, işletim sistemlerinde işler bu güne kadar devam ediyor. Bu nedenle, örneğin 4 çekirdekli bir işlemcide 10 şeyi "aynı anda" çalıştırabilirsiniz.
jwenting

2
Gerçekten “İşlemciler yeterince hızlı olmaya başladı” değil. Çok kullanıcılı çok görevli işletim sistemlerini 286'da çalıştırmak mümkündü (örneğin, Mark Williams Company'nin Coherent'i , 1983'te PC'ye tanıtılan iyi bir işletim sistemi gibi). MS-DOS ve Windows (NT değil) sürümleri “Millenium” a kadar (ve dahil) gerçekten herhangi bir nesnel standart tarafından bile iğrençti, zamanın teknik standartları bile, ancak bir kez MS-DOS IBM tarafından PC'ler için standart olarak oluşturulduysa, Microsoft pazarlama ve momentum (tekel güçlerinin cezai kötüye kullanılmasından bahsetmiyoruz), uzun süredir daha iyi bir rekabeti etkili bir şekilde dışladı.
Emmet

2
"Çoklu görev sadece CPU'lar yeterince hızlı olmaya başladığında geliştirilen akıllıca bir özellik ..." Apollo Rehberlik Bilgisayarının nasıl çok görevli bir tasarım olduğu gibi mi?
CVn

1
"İşlemciler" derken seri üretilenleri kastettim ve "çoklu görev" derken PC uygulamalarının çoklu görevlerini kastettim. Ve nihayet, "son kullanıcı" derken, astronotu değil, bilgisayarın arkasındaki çocuğu kastettim. Yine de, ilginç yorum için şeref.
Dan Horvat

0

Sadece bir göreve odaklanabilmesine rağmen, yapacağı şey, birinden diğerine hızlı bir şekilde gitmek için basit bir adımdır. Bu şekilde çok görevli olduğu ortaya çıktı, ama gerçekte sadece 1'e, sonra başkalarına, sonra başkalarına vb. Odaklanıyordu.


Çok görevli ile çok işlemcili bilişim hesaplamalarınızı orada birleştiriyorsunuz . Çok hızlı bir şekilde çok hızlı bir şekilde çalışmak bilgisayar dünyasında çok görevlidir. Her zamanki tanım değil talep paralel yürütme. Çeşitli "eski Windows sürümleri", hangi Windows sürümüne, hangi modda çalıştığına ve hatta en başta DOS tabanlı olup olmamasına bağlı olarak farklı görevler yaptı. (Windows NT 3.1, DOS + Windows 95'ten daha eski ve SMP'yi yapabilir.) Başka bir yorumda da belirttiğim gibi, kitapların tamamı bu konuda yazılmıştır. Bu gerçekten en iyi 2 cümle özeti değil.
JdeBP

@JdeBP ... Çoğunlukla tek çekirdekli işlemci kullandığım için çoklu görev ve çoklu işlemci arasındaki farkı biliyorum! Bilgisayarlar seri olarak çalışır. Gerçek paralel sadece kuantum hesaplamada görülecektir.
Thoth

0

Burada bahsetmediğim bir şey daha ilginç:

Windows 3.0 önceden çalışan bir çoklu görev sistemi değildi, MacOS'un tüm sürümleri gibi OS X'e kadar işbirliği yapıyordu.

Ancak bir yorumcu bana hatırlattığında, DOS uygulamaları çok görevliydi. Bunun nedeni, “İşbirliği” çok görevine yazılmamış olmalarıdır (Bu her zaman onu kullanan sistemlere yerleştirilmelidir).

O zamanlar bugünün aygıt sürücülerinin yerini alan TSR'ler (Terminate-Stay Resident) adı verilen programlar vardı. Bu sürücüler bağımsız olarak çalışırlar - genellikle kendilerini işletim sisteminin olay işleyicilerinden birine sokarak kendi başlarına çalışırlar. Windows genellikle onlar hakkında bir şey bilmiyordu, daha düşük bir seviyede koştular.

Bunlar aslında Windows uygulamaları değildi, ancak tüm diş açma faaliyetlerinin yazıcı sürücüleri, com sürücüleri vb.

Her ne kadar Windows 3.1 çoklu görevde olsa da, DOS değildi, ancak Windows 3.1 sadece dos attı ve başladığında devraldı (O zaman genellikle bir DOS isteminden pencereleri başlattınız).


Windows 3.0, 386 veya daha yüksek bir işlemcide çalıştırıldığında, DOS uygulamalarının öncelikli çoklu görev desteğini destekledi. Yalnızca Windows uygulamaları işbirliği içinde çok görevlendirildi.
Jules

Oh, bu doğru - O zamanlar Windows uygulamalarını kodluyordum ve DOS hakkında pek düşünmedim. DOS uygulamalarına farklı davrandı - bunu işaret ettiğiniz için teşekkürler.
Bill K

-8

İyi soru. MS-DOS'ta, çekirdek monolitikti, yani Windows 9x'te ve şimdiki sürümünde uygulanan yeni, modern çekirdeğe karşılık, bir seferde yalnızca bir görevi yerine getiriyordu. Burada daha fazla kontrol edebilirsiniz .


11
-1, monothitik bir işletim sisteminin çoklu görev yapamayacağına dair önerin - bu ölü bir yanlıştır. linux FAMOUSLY monothithic çekirdeğidir (linus torvalds ve andrew tanenbaum arasında ünlü bir tartışma vardı) ama linux açıkça çok görevli olabilir.
linux'un

4
Monolitik, düşündüğünüzü kastetmiyor.
Thorbjørn Ravn Andersen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.