วินโดวส์ 95
วินโดวส์ 95 เป็นมากกว่า "just wrapper" สำหรับ MS-DOS . การอ้างอิง Raymond Chen:
MS-DOS ทำหน้าที่สองประการใน Windows 95
- มันทำหน้าที่เป็นบูตโหลดเดอร์
- มันทำหน้าที่เป็นเลเยอร์ไดรเวอร์อุปกรณ์ดั้งเดิม 16 บิต
จริง ๆ แล้ววินโดวส์ 95 มีตะขอ / overrode เกือบทั้งหมดของ MS-DOS ทำให้มันเป็นเลเยอร์ที่เข้ากันได้ในขณะที่ทำการยกของหนักทั้งหมดเอง นอกจากนี้ยังใช้งานมัลติทาสกิ้งแบบ preemptive สำหรับโปรแกรม 32 บิต
Pre-Windows 95
Windows 3.x และรุ่นเก่าส่วนใหญ่มีขนาด 16 บิต (ยกเว้น Win32s ซึ่งเป็นเลเยอร์ความเข้ากันได้กับ kinda ที่เชื่อมต่อ 16 และ 32 แต่เราจะเพิกเฉยต่อเรื่องนี้ได้) ขึ้นอยู่กับระบบปฏิบัติการ DOS และใช้มัลติทาสก์แบบร่วมมือกันเท่านั้น ที่ที่พวกเขาไม่ได้บังคับให้โปรแกรมที่กำลังทำงานอยู่ทำการสลับออกไป พวกเขารอให้โปรแกรมที่รันอยู่ให้ผลตอบแทนการควบคุม (โดยทั่วไปให้พูดว่า "ฉันเสร็จแล้ว" โดยบอกให้ระบบปฏิบัติการรันโปรแกรมถัดไปที่กำลังรออยู่)
การทำงานหลายอย่างเป็นแบบร่วมมือเช่นเดียวกับ MacOS รุ่นเก่า (แม้ว่าจะไม่เหมือนกับ Multitasking DOS 4.x ซึ่งมีการทำงานแบบมัลติทาสก์แบบ preemptive) งานต้องยอมจำนนต่อระบบปฏิบัติการเพื่อกำหนดตารางงานที่แตกต่างกัน อัตราผลตอบแทนถูกสร้างขึ้นในการเรียก API บางอย่างการประมวลผลข้อความที่สะดุดตา ตราบใดที่งานประมวลผลข้อความในเวลาที่กำหนดทุกอย่างยอดเยี่ยม หากงานหยุดการประมวลผลข้อความและไม่ว่างในการดำเนินการวนรอบการประมวลผลการทำมัลติทาสก์ก็ไม่มาก
สถาปัตยกรรม Windows 3.x
สำหรับวิธีที่โปรแกรม Windows ก่อนจะให้การควบคุม:
Windows 3.1 ใช้ระบบมัลติทาสกิ้งแบบร่วมมือกัน - หมายความว่าแต่ละแอปพลิเคชันที่อยู่ในกระบวนการทำงานจะได้รับคำสั่งให้ตรวจสอบคิวข้อความเป็นระยะเพื่อดูว่ามีแอปพลิเคชันอื่นใดที่ขอใช้งาน CPU หรือไม่ . อย่างไรก็ตามแอปพลิเคชั่น Windows 3.1 จำนวนมากจะตรวจสอบคิวข้อความไม่บ่อยนักหรือไม่เลยและควบคุมการทำงานของซีพียูเป็นเวลานานเท่าที่จำเป็น ระบบมัลติทาสกิ้งที่ยึดเอาเสียก่อนเช่น Windows 95 จะควบคุม CPU ให้ห่างจากแอปพลิเคชันที่กำลังทำงานและแจกจ่ายให้กับผู้ที่มีลำดับความสำคัญสูงกว่าตามความต้องการของระบบ
แหล่ง
DOS ทั้งหมดจะเห็นว่าเป็นแอปพลิเคชันเดียว (Windows หรืออื่น ๆ ) ที่ใช้งานซึ่งจะผ่านการควบคุมโดยไม่ต้องออก ในทางทฤษฎีการทำงานแบบมัลติทาสกิ้งแบบ preemptive สามารถนำมาใช้บน DOS ได้ด้วยการใช้นาฬิกาเรียลไทม์และฮาร์ดแวร์ขัดจังหวะเพื่อบังคับให้ควบคุมตารางเวลา เช่น ความคิดเห็น Tonny จริง ๆ แล้วนี่คือสิ่งที่กระทำโดยระบบปฏิบัติการบางตัวที่ทำงานอยู่บน DOS
386 โหมดปรับปรุง?
หมายเหตุ: มีความคิดเห็นบางส่วนเกี่ยวกับ 386 โหมดปรับปรุง ของ Windows 3.x มีขนาด 32 บิตและรองรับการทำงานมัลติทาสกิ้งแบบ preemptive
นี่เป็นกรณีที่น่าสนใจ เพื่อสรุปการเชื่อมโยง โพสต์บล็อก 386 โหมดที่ได้รับการปรับปรุงนั้นเป็นไฮเปอร์ไวเซอร์แบบ 32 บิตซึ่งใช้งานเครื่องเสมือน ภายในหนึ่งในเครื่องเสมือนเหล่านั้นใช้โหมดมาตรฐาน Windows 3.x ซึ่งทำรายการทั้งหมดที่กล่าวข้างต้น
MS-DOS ก็จะทำงานในเครื่องเสมือนเหล่านั้นและดูเหมือนว่าพวกเขาจะทำงานแบบมัลติทาสก์ล่วงหน้าดังนั้นจึงดูเหมือนว่าไฮเปอร์ไวเซอร์โหมด 386 ที่ปรับปรุงแล้วจะแชร์ช่วงเวลาของ CPU ระหว่างเครื่องเสมือน (หนึ่งในนั้นทำงานปกติ 3.x และอื่น ๆ ที่วิ่ง MS -DOS) และแต่ละ VM จะทำสิ่งที่เป็นของตัวเอง - 3.x จะทำงานหลายอย่างพร้อมกันในขณะที่ MS-DOS จะทำงานแบบเดี่ยว
MS-DOS
ดอสเองทำหน้าที่เป็นทาสก์เดียวบนกระดาษ แต่มันก็ได้รับการสนับสนุน TSR โปรแกรมที่จะอยู่ในพื้นหลังจนกว่าทริกเกอร์โดยฮาร์ดแวร์ขัดจังหวะ ห่างไกลจากมัลติทาสกิ้งที่แท้จริง แต่ไม่ได้มอบหมายงานเดี่ยวอย่างสมบูรณ์
ทั้งหมดนี้พูดถึงบิตเนส? ฉันถามเกี่ยวกับมัลติทาสกิ้ง!
การพูด bit-ness และ multitasking อย่างเคร่งครัดนั้นไม่ได้ขึ้นอยู่กับกันและกัน มันควรจะเป็นไปได้บนใช้โหมดมัลติทาสกิ้งในบิตใด ๆ อย่างไรก็ตามการย้ายจากตัวประมวลผลแบบ 16 บิตไปเป็นตัวประมวลผลแบบ 32 บิตยังนำเสนอฟังก์ชันการทำงานของฮาร์ดแวร์อื่น ๆ
นอกจากนี้เนื่องจากโปรแกรม 32 บิตใหม่มันง่ายกว่าที่จะให้พวกเขาทำงานเมื่อพวกเขาถูกบังคับให้ออกซึ่งอาจทำให้โปรแกรม 16 บิตแบบดั้งเดิมแตกหักได้
แน่นอนว่านี่คือการเก็งกำไรทั้งหมด หากคุณต้องการทราบว่าทำไม MS ไม่ได้ใช้มัลติทาสกิ้งแบบ preemptive ใน Windows 3.x (โหมดขั้นสูง 386 แม้จะมี) คุณจะต้องถามคนที่ทำงานที่นั่น
นอกจากนี้ฉันต้องการแก้ไขข้อสันนิษฐานของคุณว่า Windows 95 เป็นเพียงเสื้อคลุมสำหรับ DOS;)