Jika DOS adalah tugas tunggal, bagaimana multitugas mungkin dilakukan pada Windows versi lama?

113

Saya membaca bahwa DOS adalah OS satu-tugas.

Tetapi jika versi lama Windows (juga termasuk Windows 95?) Hanyalah pembungkus DOS, bagaimana Windows dapat berjalan sebagai OS multitasking?

Arkonix
sumber
8
Ini disebut preemptive multitasking - support.microsoft.com/kb/117567
joeqwerty
20
Anda harus mendefinisikan "lama" jauh lebih baik dari itu. DOS + Windows 9x dan DOS + Windows 3.x dalam "386 Enhanced Mode" sangat berbeda dalam hal ini untuk DOS + Windows 3.x / 2.x dalam "Mode Standar" dan "Mode Nyata". Dan seperti disinggung oleh joeqwerty, ada multi-tasking kooperatif serta preaktif. Seluruh buku telah ditulis tentang ini, jadi pertanyaan spesifik lebih baik.
JdeBP
5
@ joeqwerty IMO yang paling mengagumkan adalah Microsoft membuat dokumentasi online tentang perangkat lunak yang begitu antik. Bahkan ada artikel tentang topik-topik tingkat lanjut pada versi MS-DOS yang lebih lama ... Sangat bagus untuk membuatnya tetap hidup.
Mungkin
6
DOS tidak memberi Anda banyak tugas. Anda masih dapat menulis program multitasking sepenuhnya di atasnya tanpa bantuan DOS, itulah yang dilakukan Windows awal. Windows 95 tentu saja bukan hanya "pembungkus" untuk DOS.
Boann
3
@NigelNquande Saya sebenarnya menemukan MS cukup baik dalam memelihara dokumentasi lama. Sebagian besar artikel KB pensiunannya online (misalnya; Windows 3.1 KB acak , atau dokumen pada printutilitas untuk Windows 2.1-3.0, atau ansi.sys dari MS-DOS 5.0), bahkan setelah 12 bulan yang dinyatakan akhir dari Masa tenggang kehidupan. Hanya saja tidak semudah dijelajahi seperti dokumentasi produk aktif, Anda harus spesifik dalam pencarian Anda.
Jason C

Jawaban:

160

Windows 95

Windows 95 jauh lebih dari "hanya pembungkus" untuk MS-DOS . Mengutip Raymond Chen:

MS-DOS melayani dua tujuan di Windows 95.

  • Ini berfungsi sebagai boot loader.
  • Itu bertindak sebagai lapisan driver perangkat warisan 16-bit.

Windows 95 benar-benar terhubung / mengesampingkan hampir semua MS-DOS, menjaganya sebagai lapisan kompatibilitas sambil melakukan semua pekerjaan berat itu sendiri. Ini juga menerapkan multitasking preemptive untuk program 32-bit.


Pra-Windows 95

Windows 3.x dan yang lebih tua kebanyakan 16-bit (dengan pengecualian Win32s, lapisan kompatibilitas yang menjembatani 16 dan 32, tapi kami akan mengabaikannya di sini), lebih bergantung pada DOS, dan hanya menggunakan multitasking kooperatif - itu yang tidak memaksa program berjalan untuk beralih; mereka menunggu program yang sedang berjalan untuk menghasilkan kontrol (pada dasarnya, katakan "saya sudah selesai" dengan memberitahu OS untuk menjalankan program berikutnya yang sedang menunggu).

Multitasking bersifat kooperatif, seperti di versi lama MacOS (meskipun tidak seperti Multitasking DOS 4.x, yang menggunakan multitasking preemptive). Suatu tugas harus menghasilkan ke OS untuk menjadwalkan tugas yang berbeda. Hasil dibuat untuk panggilan API tertentu, terutama pemrosesan pesan. Selama suatu tugas memproses pesan secara tepat waktu, semuanya berjalan dengan baik. Jika tugas berhenti memproses pesan dan sibuk menjalankan beberapa pemrosesan loop, multitasking tidak ada lagi.

Arsitektur Windows 3.x

Adapun bagaimana program Windows awal akan menghasilkan kontrol:

Windows 3.1 menggunakan multitasking kooperatif - artinya setiap aplikasi yang sedang dalam proses menjalankan diinstruksikan untuk secara berkala memeriksa antrian pesan untuk mencari tahu apakah ada aplikasi lain yang meminta penggunaan CPU dan, jika demikian, untuk menghasilkan kontrol untuk aplikasi itu . Namun, banyak aplikasi Windows 3.1 akan jarang memeriksa antrian pesan, atau tidak sama sekali, dan memonopoli kontrol CPU sebanyak waktu yang diperlukan. Sistem multitasking preemptive seperti Windows 95 akan mengambil kendali CPU dari aplikasi yang sedang berjalan dan mendistribusikannya kepada mereka yang memiliki prioritas lebih tinggi berdasarkan kebutuhan sistem.

sumber

Semua DOS akan melihat aplikasi tunggal ini (Windows atau lainnya) berjalan, yang akan melewati kontrol tanpa keluar. Secara teori, preemptive multitasking mungkin dapat diimplementasikan di atas DOS dengan menggunakan jam waktu nyata dan gangguan perangkat keras untuk secara paksa memberikan kontrol kepada penjadwal. Seperti komentar Tonny , ini sebenarnya dilakukan oleh beberapa OS yang berjalan di atas DOS.

386 mode yang disempurnakan?

Catatan: ada beberapa komentar tentang 386 mode Windows 3.x yang ditingkatkan menjadi 32-bit, dan mendukung preemptive multitasking.

Ini adalah kasus yang menarik. Untuk meringkas posting blog yang ditautkan , 386 mode yang ditingkatkan pada dasarnya adalah hypervisor 32-bit, yang menjalankan mesin virtual. Di dalam salah satu mesin virtual itu menjalankan mode standar Windows 3.x, yang melakukan semua hal yang tercantum di atas.

MS-DOS juga akan berjalan di dalam mesin-mesin virtual, dan tampaknya mereka sebelumnya multitasked - sehingga tampaknya 386 peningkatan mode hypervisor akan berbagi irisan waktu CPU antara mesin virtual (salah satunya berjalan normal 3.x dan yang lain menjalankan MS -DOS), dan masing-masing VM akan melakukan hal sendiri - 3.x akan bekerja sama multitask, sementara MS-DOS akan menjadi tugas tunggal.


MS-DOS

DOS sendiri adalah single-tasking di atas kertas, tetapi memang memiliki dukungan untuk program TSR , yang akan tetap berada di latar belakang sampai dipicu oleh gangguan hardware. Jauh dari multitasking sejati, tetapi juga tidak sepenuhnya memiliki tugas tunggal.


Semua pembicaraan tentang bit-ness ini? Saya bertanya tentang multitasking!

Yah, sebenarnya sedikit-ness dan multitasking tidak saling bergantung. Seharusnya dimungkinkan menerapkan mode multitasking apa pun dalam bit-ness. Namun, perpindahan dari prosesor 16-bit ke prosesor 32-bit juga memperkenalkan fungsionalitas perangkat keras lain yang bisa membuat multitasking preemptive lebih mudah untuk diimplementasikan.

Juga, karena program 32-bit adalah baru, lebih mudah untuk membuatnya bekerja ketika mereka dipaksa keluar - yang mungkin telah merusak beberapa program 16-bit lama.

Tentu saja, ini semua spekulasi. Jika Anda benar-benar ingin tahu mengapa MS tidak menerapkan preemptive multitasking di Windows 3.x (386 mode yang disempurnakan meskipun demikian), Anda harus bertanya kepada seseorang yang bekerja di sana.

Juga, saya ingin memperbaiki asumsi Anda bahwa Windows 95 adalah hanya pembungkus untuk DOS;)

Bob
sumber
4
Tulisan yang sangat bagus. Jika saya ingat dengan benar (kelas desain OS bertahun-tahun yang lalu bagi saya) Windows 9x mengaitkan timer-interupsi untuk menegakkan penjadwal itu sendiri, seperti yang Anda sarankan pada paragraf 2 hingga terakhir. Ada OS lain di atas DOS yang melakukan hal yang sama. Saya ingat dengan jelas ini dari AMX (OS waktu nyata untuk aplikasi industri) dan XINU (tujuan pendidikan kecil Unix / Posix seperti OS) yang keduanya berjalan di atas DOS. (AMX dapat menjalankan bare-metal langsung dari EPROM juga. Jauh lebih mudah untuk menguji / men-debug ketika dijalankan pada DOS. Menyelamatkan Anda dari membakar kembali EPROMS untuk setiap tes.)
Tonny
@Tonny Terima kasih telah mengonfirmasi bahwa skema itu mungkin (dan digunakan dalam praktiknya). Di duga, alasan Windows 1-3 tidak menggunakan preemptive multitasking tidak begitu banyak sehingga mereka tidak dapat melakukannya (MS-DOS 4 memilikinya, meskipun tidak dirilis), tetapi lebih karena itu akan merusak kompatibilitas ke belakang dengan DOS program.
Bob
3
Mmmmhhh Mempertimbangkan Windows 1-3: Fakta bahwa itu adalah basis kode yang umum untuk CPU 8086 dan lebih tinggi mungkin lebih berkaitan dengan itu. Penanganan ring0-3 yang tepat hanya dimungkinkan dengan 80286 dan lebih tinggi dan itulah yang digunakan Win9x untuk mengimplementasikan multi-tasking. 4DOS dan lainnya sudah menyediakan multi-tasking terbatas pada DOS (80286 diperlukan jika saya ingat dengan benar). Anda bahkan dapat menjalankan Win3 sendiri sebagai proses terpisah di 4DOS.
Tonny
1
Xinu benar-benar tidak berjalan di atas DOS. Itu dimulai sebagai sistem operasi LSI-11. Pernyataan bahwa tidak ada multitasking awal di DOS + Windows 3.x salah. Dalam 386 Enhanced Mode ada, milik VMM. Dan omong kosong tentang 4DOS memberi Anda jawaban yang sering diberikan: 4DOS bukan sistem operasi . Pernyataan yang diberikan multitasking sepenuhnya salah.
JdeBP
2
PDP-8 mendukung pre-emptive multitasking, dan itu hanya komputer 12 bit.
david25272
26

Itu terus menjalankan satu program, yang disebut windows. Yang satu itu menyebarkan waktu CPU (dan sumber daya lainnya) antara berbagai program.

Pertimbangkan analogi ini:

Anda memiliki kantor yang hanya dapat memiliki satu orang pada saat itu (orang itu disebut tuan atau Nona DOS). Orang itu mengerjakan satu hal pada saat itu. Misalnya telepon satu orang dan mulai mengobrol 24/7 dengannya.

Sekarang Anda ganti orang itu dengan Tuan sekretaris. (windows). Ini akan menelepon seseorang dan berbicara sepanjang waktu dengannya (masih satu tugas). Kemudian setelah beberapa waktu orang lain akan berkata, "Saya sudah bicara cukup untuk saat ini. Bicaralah dengan orang lain dan telepon saya kembali sedikit".

Pak sekretaris akan memanggil orang lain. Obrolan dengan yang itu sampai orang itu mengatakan hal yang sama. Kemudian ia akan memanggil orang berikutnya sampai pada akhir daftar orang untuk diajak bicara. Pada saat itu akan dimulai lagi di atas.

  • Dalam istilah teknis ini disebut multitasking kooperatif. Membutuhkan orang lain untuk mengatakan bahwa ia memiliki cukup waktu CPU. Jika seseorang tidak melakukan itu maka semua berantakan.
  • Sistem modern jauh lebih pintar. Termasuk multitasking pre-emptive. Pikirkan sekretaris mengatur jam alarm dan memotong orang lain setelah 5 menit. "Itu Jane yang baik. Tapi aku harus bicara dengan Joe sekarang. Aku akan meneleponmu sebentar lagi. - Klik."

Jika Anda menambahkan banyak prosesor, prosesnya menjadi semakin rumit. :)

Hennes
sumber
1
Bukankah maksud Anda multitasking kooperatif / non-preemptive di poin pertama Anda? Juga, yang menarik, Windows 95 memperkenalkan multitasking preemptive untuk program 32-bit. Itu tidak begitu banyak pembungkus untuk DOS, karena itu adalah OS yang menggunakan DOS sebagai bootloader tetapi menggantikan bagian-bagian utama dari itu (menjaga cukup untuk dukungan program 16-bit / DOS).
Bob
tuan atau merindukan, mengapa tidak 'Dr.' DOS?
gtrak
1
"Itu terus-menerus menjalankan satu program ... Yang itu menyebarkan waktu CPU (dan sumber daya lainnya) di antara berbagai program." tidak dapatkah dikatakan tentang sistem operasi apa pun? Padahal pertanyaannya menyiratkan bahwa MS-DOS tidak bisa. Saya sangat menentang analogi / metafora ketika tidak menggunakan rincian teknis teknologi. Ok, jadi sekarang kita tahu cara kerja beberapa kantor hipotetis? Itu tidak benar-benar menjelaskan jawaban atas pertanyaan itu.
Celeritas
13

Dalam sistem operasi modern, sistem operasi mengontrol semua sumber daya perangkat keras, dan aplikasi yang berjalan disimpan dalam kotak pasir. Aplikasi tidak diizinkan untuk mengakses memori yang tidak dialokasikan oleh OS untuk aplikasi itu, dan tidak dapat secara langsung mengakses perangkat keras di komputer. Jika akses perangkat keras diperlukan, aplikasi harus berkomunikasi melalui driver perangkat.

OS dapat menegakkan kontrol ini, karena memaksa CPU untuk masuk ke mode terlindungi .

DOS, di sisi lain, tidak pernah memasuki mode terproteksi, tetapi tetap dalam mode nyata *. Dalam mode nyata, aplikasi yang berjalan dapat melakukan apa saja yang diinginkan, misalnya mengakses perangkat keras secara langsung. Tetapi aplikasi yang berjalan dalam mode nyata juga dapat memberitahu CPU untuk masuk ke mode terlindungi.

Dan bagian terakhir ini memungkinkan aplikasi seperti Windows 95 untuk memulai lingkungan multi-threaded meskipun pada dasarnya diluncurkan dari DOS.

DOS (Disk Operating System), afaik, tidak lebih dari sistem manajemen file. Ini menyediakan sistem file, mekanisme untuk menavigasi sistem file, beberapa alat, dan kemungkinan untuk meluncurkan aplikasi. Itu juga memungkinkan beberapa aplikasi tetap tinggal, misalnya driver mouse dan emulator EMM. Tapi itu tidak berusaha untuk mengontrol perangkat keras di komputer seperti OS modern.

* Ketika DOS pertama kali dibuat pada tahun 70-an, mode terproteksi tidak ada dalam CPU. Tidak sampai prosesor 80286 di pertengahan 80-an yang dilindungi mode menjadi bagian dari CPU.

Pete
sumber
2
Pikiran bahwa pada saat itu CPU tidak memiliki hal-hal seperti mode terlindungi.
jwenting
1
@jwenting - poin bagus, saya menambahkan catatan tentang hal itu
Pete
6

Sebelum Windows 3.x yang merupakan versi pertama untuk aplikasi DOS multitask, ada program seperti DesqView yang bisa melakukan hal yang sama. Jika seseorang mis menjalankan tiga sesi DOS sekaligus, maka DesqView akan membuat empat mesin virtual. Tiga sesi DOS masing-masing akan berpikir bahwa mereka "memiliki" seluruh mesin, kecuali bahwa tidak satu pun dari mereka yang benar-benar melakukan file I / O. Sebagai gantinya, versi DOS yang berjalan di setiap sesi akan ditambal sehingga akan meneruskan permintaan file I / O ke sesi khusus, yang didedikasikan untuk tujuan itu. Karena perangkat keras mode teks PC akan terus menampilkan konten area memori sebagai karakter; DesqView dapat membiarkan setiap sesi memiliki layar virtual sendiri dengan memetakan rentang 0xB8000-0xB9FFF setiap sesi ke area RAM sendiri, dan secara berkala menyalin area aplikasi saat ini ke buffer layar fisik. Dukungan grafis jauh lebih sulit, karena 256 ribu RAM pada papan display dikontrol menggunakan 64K ruang alamat, beberapa register I / O, dan beberapa perangkat keras "menarik" yang mengharuskan hal-hal untuk dibaca dan ditulis dalam urutan tertentu. Dalam mode teks, ketika aplikasi menulis sesuatu ke buffer teks ditulis, DesqView dapat menetapkan bendera yang menunjukkan itu harus disalin ke tampilan pada centang waktu berikutnya; hanya penulisan pertama ke buffer teks dalam centang waktu tertentu yang membutuhkan intervensi DesqView; semua yang lain akan dikonsolidasikan ke tick timer berikutnya. karena 256 ribu RAM pada papan display dikontrol menggunakan ruang alamat 64K, beberapa register I / O, dan beberapa perangkat keras "menarik" yang mengharuskan hal-hal untuk dibaca dan ditulis dalam urutan tertentu tertentu. Dalam mode teks, ketika aplikasi menulis sesuatu ke buffer teks ditulis, DesqView dapat menetapkan bendera yang menunjukkan itu harus disalin ke tampilan pada centang waktu berikutnya; hanya penulisan pertama ke buffer teks dalam centang waktu tertentu yang membutuhkan intervensi DesqView; semua yang lain akan dikonsolidasikan ke tick timer berikutnya. karena 256 ribu RAM pada papan display dikontrol menggunakan ruang alamat 64K, beberapa register I / O, dan beberapa perangkat keras "menarik" yang mengharuskan hal-hal untuk dibaca dan ditulis dalam urutan tertentu tertentu. Dalam mode teks, ketika aplikasi menulis sesuatu ke buffer teks ditulis, DesqView dapat menetapkan bendera yang menunjukkan itu harus disalin ke tampilan pada centang waktu berikutnya; hanya penulisan pertama ke buffer teks dalam centang waktu tertentu yang membutuhkan intervensi DesqView; semua yang lain akan dikonsolidasikan ke tick timer berikutnya. DesqView dapat mengatur bendera yang menunjukkan bahwa itu harus disalin ke tampilan pada centang waktu berikutnya; hanya penulisan pertama ke buffer teks dalam centang waktu tertentu yang membutuhkan intervensi DesqView; semua yang lain akan dikonsolidasikan ke tick timer berikutnya. DesqView dapat mengatur bendera yang menunjukkan bahwa itu harus disalin ke tampilan pada centang waktu berikutnya; hanya penulisan pertama ke buffer teks dalam centang waktu tertentu yang membutuhkan intervensi DesqView; semua yang lain akan dikonsolidasikan ke tick timer berikutnya.

Sebaliknya, mode grafik virtualisasi akan membutuhkan DeskView untuk menjebak setiap orang menulis untuk menampilkan memori atau register I / O. Mengingat bahwa ini akan memperlambat memori menulis dengan faktor sekitar 100, dan program grafis harus menulis lebih banyak data daripada program teks, virtualisasi real-time dari sebagian besar perangkat lunak grafis tidak praktis. Sebaliknya, grafik ditangani dengan memiliki aplikasi non-latar depan yang mencoba melakukan jeda grafis sampai menjadi aplikasi latar depan, dan kemudian memberikannya kontrol penuh atas layar. Ketika kontrol beralih ke aplikasi lain, DesqView akan mencoba membuat salinan status semua register grafik dan kemudian beralih. Setelah beralih kembali ke aplikasi grafis, DesqView akan memulihkan keadaan yang disimpan.

Di satu sisi, aplikasi DOS non-grafis multi-tasking lebih mudah daripada aplikasi Windows multi-tasking karena ada sedikit sumber daya bersama, dan aplikasi tidak harus berinteraksi satu sama lain. Di Windows, sebaliknya, penting untuk menangani hal-hal seperti clipboard, atau kemungkinan bahwa satu jendela program dapat bergerak sedemikian rupa untuk mengaburkan yang lain. Windows 95 adalah versi pertama Windows yang dapat mengatasi keterbatasan seperti itu dengan memasukkan hal-hal seperti sistem windowing yang dapat mengakomodasi memiliki area layar menjadi tidak tersedia saat kode berusaha menarik ke sana (dengan efek bahwa gambar akan ditutup-tutupi) ).

supercat
sumber
Terima kasih telah mengingatkan saya tentang DesqView. Saya biasa menggunakannya sepanjang waktu, tetapi benar-benar lupa.
Emmet
3

Multitasking tidak lebih dari ilusi menjalankan aplikasi secara bersamaan. Ini dianggap sebagai eksekusi simultan di ujung Anda, tetapi sebenarnya proses A, B dan C berbagi waktu CPU dalam urutan ini: A, B, C, A, B, C, A, B ... mereka hanya menghidupkan dan sangat cepat. Tidak ada dua proses yang benar-benar berjalan pada saat yang bersamaan.

Jadi, sangat mungkin untuk membuat MS-DOS multitask dengan membuatnya menghentikan satu proses, menjalankan proses selanjutnya untuk waktu yang singkat, menghentikan sementara proses itu, melompat kembali ke yang pertama, dan seterusnya.

Multitasking hanyalah fitur pintar yang dikembangkan ketika CPU mulai cukup cepat untuk terus berputar melalui proses ini dan membuatnya tampak serempak bagi pengguna akhir.

Bagi mereka yang ingat, game masih dijalankan di DOS4GW karena Windows terlalu lambat.

Dan Horvat
sumber
1
dan sebagian besar, itulah yang masih berjalan di sistem operasi sampai hari ini. Itu sebabnya Anda dapat menjalankan 10 hal "pada saat yang sama" pada CPU 4 inti misalnya.
jwenting
2
Sebenarnya bukan "CPU mulai cukup cepat". Dimungkinkan untuk menjalankan sistem operasi multi-pengguna multi-tasking pada '286 (seperti The Mark Williams Company Coherent , OS yang bagus diperkenalkan ke PC pada tahun 1983). Versi MS-DOS dan Windows (bukan NT) hingga (dan termasuk) "Milenium" benar-benar mengerikan oleh standar objektif apa pun, bahkan standar teknis saat itu, tetapi begitu MS-DOS ditetapkan sebagai standar untuk PC oleh IBM, Pemasaran dan momentum Microsoft (belum lagi penyalahgunaan kriminal atas kekuatan monopoli mereka) secara efektif menyingkirkan persaingan yang lebih baik untuk waktu yang sangat lama.
Emmet
2
"Multitasking hanyalah fitur pintar yang dikembangkan ketika CPU mulai cukup cepat ..." Maksud Anda seperti bagaimana Apollo Guidance Computer adalah desain multi-tasking ?
CVn
1
Ketika saya mengatakan "CPU", yang saya maksud adalah yang diproduksi secara massal, dan ketika saya mengatakan "multitasking", yang saya maksud adalah multitasking dari aplikasi PC. Dan, akhirnya, oleh "pengguna akhir" yang saya maksud adalah anak di belakang PC, bukan astronot. Namun, pujian untuk komentar yang menarik.
Dan Horvat
0

Meskipun hanya bisa fokus pada satu tugas, apa yang akan dilakukannya adalah langkah sederhana dengan cepat berpindah dari satu tugas ke tugas lainnya. Dengan cara ini tampaknya itu multitasking, tetapi sebenarnya hanya berfokus pada 1, lalu yang lain, lalu yang lain, dll.

Thoth
sumber
Anda menggabungkan multitasking dengan komputasi multiprosesor di sana. Beralih di antara banyak tugas dengan sangat cepat adalah multi-tugas, di dunia komputer. Definisi yang biasa tidak menuntut eksekusi paralel. Berbagai "versi lama Windows" melakukan multitasking secara berbeda, tergantung dari versi Windows apa, mode apa yang dijalankannya, dan apakah itu bahkan berbasis DOS. (Windows NT 3.1 lebih tua dari DOS + Windows 95, dan dapat melakukan SMP.) Seperti yang saya tunjukkan dalam komentar lain, seluruh buku telah ditulis tentang ini. Itu bukan ringkasan 2 kalimat terbaik.
JdeBP
@ JdeBP ... Saya tahu perbedaan antara multitasking dan multiprosesor karena saya masih menggunakan prosesor inti tunggal! Komputer bekerja secara serial. Paralel sejati hanya akan terlihat dalam komputasi kuantum.
Thoth
0

Satu hal yang saya tidak lihat disebutkan di sini yang agak menarik:

Windows 3.0 bukanlah sistem multitasking yang pre-emptive, melainkan kooperatif seperti semua versi MacOS hingga OS X - Satu aplikasi harus kembali dari panggilan sebelum aplikasi lain dapat mengambil tindakan apa pun.

Namun, sebagai komentator mengingatkan saya, aplikasi DOS memiliki banyak tugas. Ini karena mereka tidak ditulis ke "Kooperatif" multi-tugas (Ini harus selalu dibangun ke dalam sistem yang menggunakannya).

Pada saat itu ada program yang disebut TSR (Terminate-Stay Resident) yang menggantikan driver perangkat saat ini. Driver ini akan berjalan secara independen - umumnya pada utas mereka sendiri dengan memasukkan diri mereka ke dalam salah satu pengendali acara OS. Windows umumnya tidak tahu tentang mereka, mereka berlari di level yang lebih rendah.

Ini bukan benar-benar aplikasi windows, tetapi mereka adalah bagaimana semua aktivitas threading terjadi sebelum windows 3.1 seperti driver printer, driver com, dll.

Meskipun windows 3.1 multi-tasking, DOS tidak, tetapi Windows 3.1 hanya mendorong dos keluar dari jalan dan mengambil alih ketika dimulai (Saat itu Anda sering memulai windows dari DOS prompt).

Bill K
sumber
Windows 3.0 mendukung multitasking aplikasi DOS preemptive saat dijalankan pada prosesor 386 atau lebih tinggi. Hanya aplikasi Windows yang multitasking secara kooperatif.
Jules
Oh, itu benar - Saya sedang mengkode aplikasi windows pada saat itu dan tidak benar-benar memikirkan DOS. Itu memperlakukan aplikasi DOS secara berbeda - terima kasih telah menunjukkan itu.
Bill K
-8

Pertanyaan bagus. Dalam MS-DOS, kernel bersifat monolitik, artinya hanya menangani satu tugas pada satu waktu, dibandingkan dengan kernel modern baru yang diimplementasikan pada Windows 9x dan versi saat ini. Anda dapat melihat lebih lanjut di sini .

javathunderman
sumber
11
-1 Anda yakin bahwa OS monothithic tidak dapat melakukan banyak tugas - itu salah besar. linux FAMOUSLY kernel monothithic (ada perdebatan terkenal antara linus torvalds dan andrew tanenbaum) tetapi linux jelas bisa multi-task. di sini adalah tautan untuk menunjukkan kepada Anda linux adalah monolithic stackoverflow.com/questions/1806585/…
barlop
4
Monolitik tidak berarti apa yang Anda pikirkan.
Thorbjørn Ravn Andersen