Windows 95
Windows 95 không chỉ là "trình bao bọc" cho MS-DOS . Trích dẫn Raymond Chen:
MS-DOS phục vụ hai mục đích trong Windows 95.
- Nó phục vụ như bộ tải khởi động.
- Nó hoạt động như lớp trình điều khiển thiết bị cũ 16 bit.
Windows 95 thực sự đã kết nối / khắc phục tất cả các MS-DOS, giữ nó như một lớp tương thích trong khi thực hiện tất cả các công việc nặng nhọc. Nó cũng thực hiện đa nhiệm ưu tiên cho các chương trình 32 bit.
Tiền Windows 95
Windows 3.x trở lên chủ yếu là 16 bit (ngoại trừ Win32, lớp tương thích loại cầu nối 16 và 32, nhưng chúng tôi sẽ bỏ qua điều đó ở đây), phụ thuộc nhiều hơn vào DOS và chỉ sử dụng đa nhiệm hợp tác - đó là một trong đó họ không buộc một chương trình đang chạy phải tắt; họ chờ đợi chương trình đang chạy để mang lại quyền kiểm soát (về cơ bản, hãy nói "Tôi đã hoàn thành" bằng cách yêu cầu HĐH chạy chương trình tiếp theo đang chờ).
Đa nhiệm là hợp tác, giống như trong các phiên bản cũ của MacOS (mặc dù không giống như Đa nhiệm DOS 4.x, có chức năng đa nhiệm được ưu tiên). Một nhiệm vụ phải nhường cho HĐH để lên lịch cho một nhiệm vụ khác. Sản lượng được tích hợp vào các lệnh gọi API nhất định, đáng chú ý là xử lý tin nhắn. Miễn là một nhiệm vụ xử lý tin nhắn kịp thời, mọi thứ đều tuyệt vời. Nếu một tác vụ dừng xử lý tin nhắn và đang bận thực hiện một số vòng lặp xử lý, thì đa nhiệm sẽ không còn nữa.
Kiến trúc Windows 3.x
Về việc các chương trình Windows sớm sẽ mang lại quyền kiểm soát như thế nào:
Windows 3.1 sử dụng đa nhiệm hợp tác - có nghĩa là mỗi ứng dụng đang trong quá trình chạy được hướng dẫn kiểm tra định kỳ hàng đợi tin nhắn để tìm hiểu xem có ứng dụng nào khác đang yêu cầu sử dụng CPU hay không, và nếu vậy, để mang lại quyền kiểm soát cho ứng dụng đó . Tuy nhiên, nhiều ứng dụng Windows 3.1 sẽ chỉ kiểm tra hàng đợi tin nhắn không thường xuyên hoặc hoàn toàn không kiểm soát độc quyền CPU trong bao nhiêu thời gian mà chúng yêu cầu. Một hệ thống đa nhiệm được ưu tiên như Windows 95 sẽ đưa điều khiển CPU ra khỏi một ứng dụng đang chạy và phân phối nó cho những ứng dụng có mức độ ưu tiên cao hơn dựa trên nhu cầu của hệ thống.
nguồn
Tất cả các DOS sẽ thấy là ứng dụng đơn này (Windows hoặc khác) đang chạy, sẽ vượt qua sự kiểm soát mà không cần thoát ra. Về lý thuyết, dù sao thì việc đa nhiệm được ưu tiên có thể được thực hiện trên DOS bằng cách sử dụng đồng hồ thời gian thực và các ngắt phần cứng để buộc kiểm soát bộ lập lịch. Như Tonny nhận xét , điều này thực sự được thực hiện bởi một số HĐH chạy trên DOS.
Chế độ nâng cao 386?
Lưu ý: đã có một số nhận xét về chế độ nâng cao của Windows 3.x là 32 bit và hỗ trợ đa nhiệm được ưu tiên.
Đây là một trường hợp thú vị. Để tóm tắt bài đăng trên blog được liên kết , chế độ nâng cao 386 về cơ bản là một trình ảo hóa 32 bit, chạy các máy ảo. Bên trong một trong những máy ảo đó chạy chế độ tiêu chuẩn Windows 3.x, thực hiện tất cả những thứ được liệt kê ở trên.
MS-DOS cũng sẽ chạy bên trong các máy ảo đó và dường như chúng được đa nhiệm hóa một cách ưu tiên - vì vậy có vẻ như trình ảo hóa chế độ nâng cao 386 sẽ chia sẻ các lát thời gian CPU giữa các máy ảo (một trong số đó chạy bình thường 3.x và các máy khác chạy MS -DOS) và mỗi VM sẽ làm việc riêng của mình - 3.x sẽ hợp tác đa nhiệm, trong khi MS-DOS sẽ hoạt động đơn lẻ.
MS-DOS
Bản thân DOS là một tác vụ đơn trên giấy, nhưng nó đã hỗ trợ cho các chương trình TSR , nó sẽ ở trong nền cho đến khi được kích hoạt bởi một ngắt phần cứng. Khác xa với đa nhiệm thực sự, nhưng cũng không hoàn toàn đơn nhiệm vụ.
Tất cả điều này nói về bit-ness? Tôi hỏi về đa nhiệm!
Chà, nói đúng ra thì tính chất đa nhiệm và đa nhiệm không phụ thuộc vào nhau. Nên có thể thực hiện hàng đầu bất kỳ chế độ đa nhiệm trong bất kỳ bit nào. Tuy nhiên, việc chuyển từ bộ xử lý 16 bit sang bộ xử lý 32 bit cũng giới thiệu các chức năng phần cứng khác có thể giúp thực hiện đa nhiệm được ưu tiên dễ dàng hơn.
Ngoài ra, vì các chương trình 32 bit là mới, nên chúng dễ dàng hoạt động hơn khi chúng bị tắt một cách cưỡng bức - điều này có thể đã phá vỡ một số chương trình 16 bit cũ.
Tất nhiên, đây là tất cả suy đoán. Nếu bạn thực sự muốn biết lý do tại sao MS không thực hiện đa nhiệm được ưu tiên trong Windows 3.x (mặc dù có chế độ nâng cao 386), bạn sẽ phải hỏi ai đó làm việc ở đó.
Ngoài ra, tôi muốn sửa lại giả định của bạn rằng Windows 95 là một trình bao bọc cho DOS;)