12Sep

Bagaimana Multi-Tasking Kemungkinan di Versi Windows yang Lama?

click fraud protection

Menimbang bahwa DOS adalah OS single-tasking dan ikatannya dengan versi awal Windows, bagaimana versi Windows sebelumnya berhasil menyelesaikan multi-tasking? Today's SuperUser Q & Sebuah posting melihat jawaban atas pertanyaan ini.

Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web.

Windows 95 screenshot milik Wikipedia.

Pertanyaan

Pembaca SuperUser LeNoob ingin tahu bagaimana versi Windows yang lebih tua dapat dijalankan sebagai sistem multi-tasking? :

Saya membaca bahwa DOS adalah OS satu tugas. Tapi jika versi Windows yang lebih tua( juga termasuk Windows 95?) Hanyalah pembungkus untuk DOS, bagaimana mereka bisa menjalankan OS multi tasking?

Pertanyaan bagus! Bagaimana versi Windows yang lebih tua dikelola untuk dijalankan sebagai sistem multi-tasking?

Jawaban

Kontributor SuperUser Bob dan Pete memiliki jawabannya untuk kita. Pertama, Bob:

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

instagram viewer
  • MS-DOS melayani dua tujuan pada Windows 95: 1.) Ini berfungsi sebagai boot loader.&2.) Ini bertindak sebagai lapisan driver perangkat warisan 16 bit.

Windows 95 benar-benar mengaitkan / mengesampingkan hampir semua MS-DOS, menjaganya sebagai lapisan kompatibilitas saat melakukan semua pengangkatan berat itu sendiri. Ini juga menerapkan multi-tasking pre-emptive untuk program 32-bit.

Pre-Windows 95

Windows 3.x dan yang lebih tua sebagian besar berukuran 16-bit( kecuali Win32s, sejenis lapisan kompatibilitas yang menjembatani 16 dan 32, namun kami akan mengabaikannya di sini), lebih bergantung pada DOS, dandigunakan hanya multi-tasking kooperatif - dialah yang tidak memaksa program berjalan untuk beralih;mereka menunggu program yang sedang berjalan untuk menghasilkan kontrol( pada dasarnya, katakanlah "Saya sudah selesai" dengan memberi tahu OS untuk menjalankan program berikutnya yang sedang menunggu).

  • Multi-tasking kooperatif, seperti pada MacOS versi lama( walaupun tidak seperti Multi-tasking DOS 4.x, yang menggunakan pre-emptive multi tasking).Sebuah tugas harus diserahkan ke OS untuk menjadwalkan tugas yang berbeda. Hasil dibuat menjadi panggilan API tertentu, terutama pemrosesan pesan. Selama tugas memproses pesan pada waktu yang tepat, semuanya hebat. Jika sebuah tugas berhenti memproses pesan dan sibuk menjalankan beberapa pemrosesan, multi tasking tidak ada lagi.

Windows 3.x Architecture

Mengenai bagaimana program Windows awal akan menghasilkan kontrol:

  • Windows 3.1 menggunakan kooperatif multi-tasking - yang berarti bahwa setiap aplikasi yang sedang dalam proses dijalankan diinstruksikan untuk secara berkala memeriksa antrian pesan untuk mengetahui apakah adaAplikasi lain meminta penggunaan CPU dan, jika ya, untuk menghasilkan kontrol terhadap aplikasi itu. Namun, banyak aplikasi Windows 3.1 yang akan memeriksa antrian pesan jarang, atau tidak sama sekali, dan memonopoli kontrol CPU untuk waktu sebanyak yang mereka butuhkan. Sistem multi-tasking pre-emptive seperti Windows 95 akan mengendalikan CPU dari aplikasi yang sedang berjalan dan mendistribusikannya ke yang memiliki prioritas lebih tinggi berdasarkan kebutuhan sistem.

Source

Semua DOS akan melihat aplikasi single ini( Windows atau lainnya) yang berjalan, yang akan melewati kontrol tanpa keluar. Secara teori, multi-tasking pre-emptive dapat diimplementasikan di atas DOS dengan menggunakan jam real-time dan interupsi hardware untuk secara paksa memberikan kontrol kepada scheduler. Seperti yang dilaporkan Tonny, ini sebenarnya dilakukan oleh beberapa OS yang berjalan di atas DOS.

386 Enhanced Mode?

Catatan: ada beberapa komentar tentang 386 mode Windows 3.x yang disempurnakan menjadi 32-bit, dan mendukung multi-tasking pre-emptive.

Ini adalah kasus yang menarik. Untuk meringkas posting blog terkait, 386 modus ditingkatkan pada dasarnya adalah 32-bit hypervisor, 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 virtual tersebut, dan tampaknya mereka adalah multi-tasking pre-emptively - jadi nampaknya 386 hypervisor mode yang disempurnakan akan berbagi irama waktu CPU antara mesin virtual( salah satunya berjalan normal 3.xdan yang lainnya yang menjalankan MS-DOS), dan setiap VM akan melakukan tugasnya sendiri - 3.x akan bekerja sama multi task, sedangkan MS-DOS akan menjadi satu-tugas.

MS-DOS

DOS sendiri adalah single-tasking di atas kertas, namun memiliki dukungan untuk program TSR yang akan bertahan di latar belakang sampai dipicu oleh interupsi perangkat keras. Jauh dari benar multi tasking, tapi tidak sepenuhnya single-tasked.

Semua pembicaraan tentang bit-ness ini? Saya bertanya tentang multi-tasking!

Nah, secara ketat, bit-ness dan multi-tasking tidak tergantung satu sama lain. Ini harus dimungkinkan untuk menerapkan mode multi-tasking apapun dalam bit-ness. Namun, kepindahan dari prosesor 16 bit ke prosesor 32-bit juga memperkenalkan fungsionalitas perangkat keras lainnya yang bisa membuat penerapan multi-tasking lebih mudah diterapkan.

Juga, karena program 32-bit baru, lebih mudah membuat mereka bekerja saat dipindahkan secara paksa - yang mungkin telah melanggar beberapa program 16-bit lawas.

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

Juga, saya ingin memperbaiki asumsi Anda bahwa Windows 95 hanyalah sebuah pembungkus untuk DOS.

Diikuti oleh jawaban dari Pete:

Dalam sistem operasi modern, sistem operasi mengendalikan semua sumber daya perangkat keras, dan menjalankan aplikasi disimpan di kotak pasir. Aplikasi tidak diizinkan mengakses memori yang belum dialokasikan OS ke aplikasi itu, dan tidak dapat langsung mengakses perangkat keras di komputer. Jika diperlukan akses perangkat keras, aplikasi harus berkomunikasi melalui driver perangkat.

OS dapat menerapkan kontrol ini, karena memaksa CPU masuk ke mode protected. DOS

, di sisi lain, tidak pernah memasuki mode proteksi, namun tetap dalam mode nyata( * lihat di bawah).Dalam mode nyata, aplikasi yang sedang berjalan dapat melakukan apapun yang diinginkannya, yaitu mengakses perangkat keras secara langsung. Tapi aplikasi yang berjalan dalam mode real juga bisa memberitahu CPU untuk masuk mode protected.

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

DOS( Disk Operating System), sejauh yang saya tahu, tidak lebih dari sekedar sistem manajemen file. Ini menyediakan sistem file, mekanisme untuk menavigasi sistem file, beberapa alat, dan kemungkinan untuk meluncurkan aplikasi. Hal itu juga memungkinkan beberapa aplikasi untuk tetap tinggal, yaitu driver mouse dan emulator EMM.Tapi itu tidak berusaha mengendalikan perangkat keras di komputer seperti yang dilakukan oleh OS modern.

* Ketika DOS pertama kali dibuat pada tahun 1970an, mode proteksi tidak ada di CPU.Tidak sampai prosesor 80286 pada pertengahan 1980an mode yang terlindungi menjadi bagian dari CPU.

Pastikan untuk mencari di atas ke thread asli dan membaca diskusi yang hidup tentang topik ini dengan menggunakan link di bawah ini!

Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.