Nếu DOS hoạt động đơn lẻ, làm thế nào đa nhiệm có thể có trong phiên bản Windows cũ?


113

Tôi đọc được rằng DOS là một hệ điều hành đơn.

Nhưng nếu các phiên bản Windows cũ (bao gồm cả Windows 95?) Chỉ là các trình bao bọc của DOS, làm thế nào Windows có thể chạy như một hệ điều hành đa nhiệm?


8
Nó được gọi là đa nhiệm phủ đầu - support.microsoft.com/kb/117567
joeqwerty

20
Bạn sẽ phải định nghĩa "cũ" tốt hơn thế nhiều. DOS + Windows 9x và DOS + Windows 3.x trong "Chế độ nâng cao 386" hoàn toàn khác nhau về vấn đề DOS + Windows 3.x / 2.x trong "Chế độ tiêu chuẩn" và "Chế độ thực". Và như ám chỉ joeqwerty, đã có đa tác vụ cũng như preëmptive. Toàn bộ cuốn sách đã được viết về điều này, vì vậy một câu hỏi cụ thể là tốt hơn.
JdeBP

5
@joeqwerty IMO tuyệt vời nhất là Microsoft giữ tài liệu trực tuyến về phần mềm quá cổ. Thậm chí có những bài viết về các chủ đề nâng cao trên các phiên bản cũ hơn của MS-DOS ... Thực sự rất hay trong số đó để duy trì sự sống.
NothingsImpossible

6
DOS không cung cấp cho bạn đa nhiệm. Bạn vẫn có thể viết các chương trình đa nhiệm đầy đủ lên trên mà không cần sự trợ giúp của DOS, đó là những gì Windows sớm làm. Windows 95 chắc chắn không chỉ là một "trình bao bọc" cho DOS.
Boann

3
@NigelNquande Tôi thực sự thấy MS khá giỏi trong việc duy trì tài liệu cũ. Hầu hết các bài viết KB đã nghỉ hưu của họ đều trực tuyến (ví dụ: Windows 3.1 KB ngẫu nhiên hoặc tài liệu về printtiện ích cho Windows 2.1-3.0 hoặc ansi.sys từ MS-DOS 5.0), ngay cả sau khi kết thúc 12 tháng đã nêu thời gian ân sủng. Nó không dễ duyệt như tài liệu sản phẩm đang hoạt động, bạn phải sắp xếp cụ thể trong các tìm kiếm của mình.
Jason C

Câu trả lời:


160

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


4
Rất tốt đẹp viết lên. Nếu tôi nhớ chính xác (lớp thiết kế hệ điều hành đã có từ nhiều năm trước đối với tôi) Windows 9x đã nối các ngắt hẹn giờ để thực thi bộ lập lịch của riêng nó, giống như bạn đã đề xuất trong đoạn 2 đến đoạn cuối. Có những hệ điều hành khác trên DOS cũng làm như vậy. Tôi nhớ rõ điều này từ AMX (HĐH thời gian thực cho các ứng dụng công nghiệp) và XINU (mục đích giáo dục nhỏ Unix / Posix giống như HĐH) mà cả hai đều chạy trên DOS. (AMX có thể chạy bare-metal thẳng từ EPROM quá Đó là dễ dàng hơn để kiểm tra / debug khi chạy trên hệ điều hành DOS lưu bạn từ EPROMs lại đốt cho mỗi bài kiểm tra...)
Tonny

@Tonny Cảm ơn bạn đã xác nhận rằng chương trình đó là có thể (và được sử dụng trong thực tế). Theo phỏng đoán, lý do Windows 1-3 không sử dụng đa nhiệm được ưu tiên không đến nỗi họ không thể làm như vậy (MS-DOS 4 đã có, mặc dù chưa được phát hành), nhưng nó sẽ bị hỏng khả năng tương thích ngược với DOS Chương trình.
Bob

3
Mmmmhhh Xem xét Windows 1-3: Thực tế đó là cơ sở mã phổ biến cho CPU 8086 và cao hơn có thể có nhiều việc phải làm với nó. Việc xử lý ring0-3 thích hợp chỉ có thể thực hiện được với 80286 trở lên và đó là những gì Win9x đã sử dụng để thực hiện đa tác vụ. 4DOS và những người khác đã cung cấp đa tác vụ hạn chế trên DOS (cần 80286 nếu tôi nhớ lại chính xác). Bạn thậm chí có thể tự chạy Win3 như một quy trình riêng biệt trong 4DOS.
Tonny

1
Xinu thực sự không chạy trên DOS. Rốt cuộc, nó bắt đầu như một hệ điều hành LSI-11. Tuyên bố rằng không có đa nhiệm trước trong DOS + Windows 3.x là sai. Trong Chế độ nâng cao 386, có sự hỗ trợ của VMM. Và những điều vô nghĩa về 4DOS giúp bạn có câu trả lời thường xuyên: 4DOS không phải là một hệ điều hành . Các tuyên bố mà nó cung cấp đa nhiệm là hoàn toàn sai.
JdeBP

2
PDP-8 hỗ trợ đa nhiệm ưu tiên và đó chỉ là một máy tính 12 bit.
david25272

26

Nó liên tục chạy một chương trình duy nhất, một chương trình được gọi là windows. Điều đó trải đều thời gian CPU (và các tài nguyên khác) giữa các chương trình khác nhau.

Hãy xem xét sự tương tự này:

Bạn có một văn phòng chỉ có thể có một người tại thời điểm đó (Người đó được gọi là mister hoặc missus DOS). Người đó làm việc trên một điều tại thời điểm đó. Ví dụ, nó gọi điện cho một người và bắt đầu trò chuyện 24/7 với anh ấy / cô ấy.

Bây giờ bạn thay người đó bằng thư ký của ông. (các cửa sổ). Nó sẽ gọi điện cho ai đó và nói chuyện mọi lúc với nó (vẫn là một nhiệm vụ duy nhất). Sau một thời gian, người khác sẽ nói "Tôi đã nói đủ rồi. Hãy nói chuyện với người khác và gọi lại cho tôi sau một lát".

Ông thư ký sẽ gọi người khác. Trò chuyện với người đó cho đến khi người đó nói điều tương tự. Sau đó, nó sẽ gọi người tiếp theo cho đến khi nó ở cuối danh sách những người cần nói chuyện. Lúc đó nó sẽ bắt đầu lại từ đầu.

  • Về mặt kỹ thuật, điều này được gọi là đa nhiệm hợp tác. Nó yêu cầu người khác nói rằng anh ấy / cô ấy có đủ thời gian CPU. Nếu một người không làm điều đó thì tất cả sụp đổ.
  • Hệ thống hiện đại thông minh hơn nhiều. Bao gồm đa nhiệm ưu tiên. Hãy nghĩ về thư ký đặt đồng hồ báo thức và cắt người khác sau 5 phút. "Thật tuyệt Jane. Nhưng tôi phải nói chuyện với Joe ngay bây giờ. Tôi sẽ gọi lại cho bạn sau. - Nhấp vào."

Nếu bạn thêm nhiều bộ xử lý, nó thậm chí còn phức tạp hơn. :)


1
Bạn không có nghĩa là đa nhiệm hợp tác / không ưu tiên trong điểm đầu tiên của bạn? Ngoài ra, thật thú vị, Windows 95 đã giới thiệu đa nhiệm ưu tiên cho các chương trình 32 bit. Nó không phải là một trình bao bọc cho DOS, vì nó là một hệ điều hành sử dụng DOS làm bộ tải khởi động nhưng đã thay thế các phần chính của nó (giữ đủ cho hỗ trợ chương trình 16 bit / DOS).
Bob

mister hoặc nhớ, tại sao không 'Tiến sĩ' DOS?
gtrak

1
"Nó liên tục chạy một chương trình duy nhất ... Cái đó trải đều thời gian CPU (và các tài nguyên khác) giữa các chương trình khác nhau." không thể nói về bất kỳ hệ điều hành nào? Mặc dù câu hỏi ngụ ý rằng MS-DOS không thể. Tôi cực kỳ phản đối các phép tương tự / ẩn dụ khi không sử dụng các chi tiết kỹ thuật của công nghệ. Ok, vậy bây giờ chúng ta biết một số văn phòng giả định hoạt động như thế nào? Điều đó không thực sự giải thích câu trả lời cho câu hỏi.
Celeritas

13

Trong một hệ điều hành hiện đại, hệ điều hành này kiểm soát tất cả các tài nguyên phần cứng và các ứng dụng đang chạy được giữ trong hộp cát. Một ứng dụng không được phép truy cập vào bộ nhớ mà HĐH chưa phân bổ cho ứng dụng đó và nó không thể truy cập trực tiếp vào các thiết bị phần cứng trong máy tính. Nếu cần truy cập phần cứng, ứng dụng phải giao tiếp thông qua trình điều khiển thiết bị.

HĐH có thể thực thi điều khiển này, vì nó buộc CPU phải vào chế độ được bảo vệ .

Mặt khác, DOS không bao giờ vào chế độ được bảo vệ mà vẫn ở chế độ thực *. Trong chế độ thực, các ứng dụng đang chạy có thể thực hiện bất cứ điều gì nó muốn, ví dụ như truy cập trực tiếp vào phần cứng. Nhưng một ứng dụng chạy ở chế độ thực cũng có thể yêu cầu CPU vào chế độ được bảo vệ.

Và phần cuối cùng này cho phép các ứng dụng như Windows 95 bắt đầu một môi trường đa luồng mặc dù về cơ bản chúng đã được khởi chạy từ DOS.

DOS (Hệ điều hành đĩa), afaik, không nhiều hơn hệ thống quản lý tập tin. Nó cung cấp một hệ thống tệp, các cơ chế để điều hướng hệ thống tệp, một vài công cụ và khả năng khởi chạy các ứng dụng. Nó cũng cho phép một số ứng dụng ở lại, ví dụ như trình điều khiển chuột và trình giả lập EMM. Nhưng nó đã không cố gắng kiểm soát phần cứng trong máy tính theo cách mà một hệ điều hành hiện đại làm.

* Khi DOS được tạo lần đầu tiên vào những năm 70, chế độ được bảo vệ không tồn tại trong CPU. Mãi đến khi bộ xử lý 80286 vào giữa những năm 80, chế độ được bảo vệ mới trở thành một phần của CPU.


2
Lưu ý rằng tại thời điểm đó CPU không có những thứ như chế độ được bảo vệ.
jwenting

1
@jwenting - điểm tốt, tôi đã thêm một ghi chú về nó
Pete

6

Trước Windows 3.x là phiên bản đầu tiên của các ứng dụng DOS đa nhiệm, đã có các chương trình như DesqView có thể làm tương tự. Nếu một người ví dụ chạy ba phiên DOS cùng một lúc, thì DesqView sẽ tạo ra bốn máy ảo. Ba phiên DOS sẽ nghĩ rằng họ "sở hữu" toàn bộ máy, ngoại trừ việc không ai trong số họ thực sự thực hiện I / O tệp. Thay vào đó, phiên bản DOS chạy trong mỗi phiên sẽ được vá để nó sẽ chuyển tiếp bất kỳ yêu cầu nào cho tệp I / O đến một phiên đặc biệt, dành riêng cho mục đích đó. Vì phần cứng chế độ văn bản của PC sẽ liên tục hiển thị nội dung của một vùng bộ nhớ dưới dạng ký tự; DesqView có thể cho phép mỗi phiên có màn hình ảo riêng bằng cách ánh xạ phạm vi 0xB8000-0xB9FFF của từng phiên vào vùng RAM của riêng nó, và định kỳ sao chép khu vực của ứng dụng hiện tại vào bộ đệm màn hình vật lý. Hỗ trợ đồ họa khó hơn nhiều, vì 256K RAM trên bảng hiển thị được điều khiển bằng 64K không gian địa chỉ, một số thanh ghi I / O và một số phần cứng "thú vị" đòi hỏi phải đọc và ghi theo một số trình tự cụ thể. Trong chế độ văn bản, khi một ứng dụng đã ghi một cái gì đó vào bộ đệm văn bản đã được viết, DesqView có thể đặt một cờ cho biết nó sẽ được sao chép vào màn hình trên dấu thời gian tiếp theo; chỉ lần ghi đầu tiên vào bộ đệm văn bản trong một khoảng thời gian nhất định mới cần có sự can thiệp của DesqView; tất cả những cái khác sẽ được hợp nhất để đánh dấu thời gian tiếp theo. bởi vì 256K RAM trên bảng hiển thị được điều khiển bằng 64K không gian địa chỉ, một số thanh ghi I / O và một số phần cứng "thú vị" đòi hỏi phải đọc và ghi theo một số trình tự cụ thể. Trong chế độ văn bản, khi một ứng dụng đã ghi một cái gì đó vào bộ đệm văn bản đã được viết, DesqView có thể đặt một cờ cho biết nó sẽ được sao chép vào màn hình trên dấu thời gian tiếp theo; chỉ lần ghi đầu tiên vào bộ đệm văn bản trong một khoảng thời gian nhất định mới cần có sự can thiệp của DesqView; tất cả những cái khác sẽ được hợp nhất để đánh dấu thời gian tiếp theo. bởi vì 256K RAM trên bảng hiển thị được điều khiển bằng 64K không gian địa chỉ, một số thanh ghi I / O và một số phần cứng "thú vị" đòi hỏi phải đọc và ghi theo một số trình tự cụ thể. Trong chế độ văn bản, khi một ứng dụng đã ghi một cái gì đó vào bộ đệm văn bản đã được viết, DesqView có thể đặt một cờ cho biết nó sẽ được sao chép vào màn hình trên dấu thời gian tiếp theo; chỉ lần ghi đầu tiên vào bộ đệm văn bản trong một khoảng thời gian nhất định mới cần có sự can thiệp của DesqView; tất cả những cái khác sẽ được hợp nhất để đánh dấu thời gian tiếp theo. DesqView có thể đặt cờ cho biết nó sẽ được sao chép vào màn hình trên dấu thời gian tiếp theo; chỉ lần ghi đầu tiên vào bộ đệm văn bản trong một khoảng thời gian nhất định mới cần có sự can thiệp của DesqView; tất cả những cái khác sẽ được hợp nhất để đánh dấu thời gian tiếp theo. DesqView có thể đặt cờ cho biết nó sẽ được sao chép vào màn hình trên dấu thời gian tiếp theo; chỉ lần ghi đầu tiên vào bộ đệm văn bản trong một khoảng thời gian nhất định mới cần có sự can thiệp của DesqView; tất cả những cái khác sẽ được hợp nhất để đánh dấu thời gian tiếp theo.

Ngược lại, chế độ đồ họa ảo hóa sẽ yêu cầu DeskView bẫy mọi ghi riêng lẻ để hiển thị bộ nhớ hoặc các thanh ghi I / O. Cho rằng điều này sẽ làm chậm bộ nhớ ghi bởi hệ số khoảng 100 và các chương trình đồ họa phải ghi nhiều dữ liệu hơn chương trình văn bản, ảo hóa thời gian thực của hầu hết các phần mềm đồ họa là không thực tế. Thay vào đó, đồ họa được xử lý bằng cách có bất kỳ ứng dụng không tiền cảnh nào cố gắng tạm dừng đồ họa cho đến khi nó trở thành ứng dụng nền trước, và sau đó cho nó toàn quyền kiểm soát màn hình. Khi điều khiển chuyển sang một ứng dụng khác, DesqView sẽ cố gắng tạo một bản sao trạng thái của tất cả các thanh ghi đồ họa và sau đó chuyển đổi. Khi chuyển trở lại ứng dụng đồ họa, DesqView sẽ khôi phục trạng thái đã lưu.

Nói cách khác, các ứng dụng DOS phi đồ họa đa tác vụ dễ hơn các ứng dụng Windows đa tác vụ vì có rất ít tài nguyên được chia sẻ và các ứng dụng không phải tương tác với nhau. Ngược lại, trong Windows, cần phải xử lý những thứ như bảng tạm hoặc khả năng cửa sổ của một chương trình có thể di chuyển theo kiểu che khuất tầm nhìn của người khác. Windows 95 là phiên bản Windows đầu tiên có thể khắc phục những hạn chế đó bằng cách bao gồm những thứ như hệ thống cửa sổ có thể chứa một khu vực màn hình không khả dụng trong khi mã đang cố gắng vẽ lên nó (với hiệu ứng là bản vẽ sẽ bị che đi ).


Cảm ơn đã nhắc nhở tôi về DesqView. Tôi đã từng sử dụng nó mọi lúc, nhưng đã hoàn toàn quên nó.
Emmet

3

Đa nhiệm không gì khác hơn là ảo tưởng về việc chạy các ứng dụng cùng một lúc. Nó được coi là thực thi đồng thời ở phía bạn, nhưng trên thực tế các quá trình A, B và C đang chia sẻ thời gian CPU theo thứ tự này: A, B, C, A, B, C, A, B ... chúng chỉ bật và tắt rất nhanh. Không có hai quá trình đang thực sự chạy cùng một lúc.

Vì vậy, hoàn toàn có thể tạo đa nhiệm MS-DOS bằng cách làm cho nó tạm dừng một quá trình, chạy tiếp theo trong một khoảng thời gian ngắn, tạm dừng quá trình đó, quay trở lại quy trình đầu tiên, v.v.

Đa nhiệm chỉ là một tính năng thông minh được phát triển khi CPU bắt đầu đủ nhanh để tiếp tục xoay vòng qua các quy trình này và khiến nó dường như đồng thời với người dùng cuối.

Đối với những người nhớ, các trò chơi vẫn đang được chạy trên DOS4GW vì Windows quá chậm.


1
và đối với hầu hết các phần, đó vẫn là cách mọi thứ hoạt động trong các hệ điều hành cho đến ngày nay. Đó là lý do tại sao bạn có thể chạy 10 thứ "cùng một lúc" trên CPU 4 lõi chẳng hạn.
jwenting

2
Nó thực sự không phải là CPU CPU bắt đầu đủ nhanh. Có thể chạy các hệ điều hành đa tác vụ đa người dùng trên '286 (chẳng hạn như The Mark Williams Company Coherent , một hệ điều hành tốt được giới thiệu cho PC vào năm 1983). Các phiên bản MS-DOS và Windows (không phải NT) lên đến (và bao gồm cả) Mill Milliumium thực sự bị tàn phá bởi bất kỳ tiêu chuẩn khách quan nào, ngay cả các tiêu chuẩn kỹ thuật thời đó, nhưng một khi MS-DOS được IBM thiết lập làm tiêu chuẩn cho PC, Microsoft tiếp thị và động lực (không đề cập đến lạm dụng hình sự quyền lực độc quyền của họ) đã loại trừ một cách hiệu quả sự cạnh tranh tốt hơn trong một thời gian rất dài.
Emmet

2
"Đa nhiệm chỉ là một tính năng thông minh được phát triển khi CPU bắt đầu đủ nhanh ..." Ý bạn là như thế nào Máy tính hướng dẫn Apollo là một thiết kế đa tác vụ ?
một CVn

1
Khi tôi nói "CPU", tôi có nghĩa là những người sản xuất hàng loạt và khi tôi nói "đa nhiệm", tôi có nghĩa là đa nhiệm các ứng dụng PC. Và cuối cùng, bởi "người dùng cuối", ý tôi là đứa trẻ đứng sau PC, không phải phi hành gia. Tuy nhiên, danh tiếng cho nhận xét thú vị.
Dan Horvat

0

Mặc dù nó chỉ có thể tập trung vào một nhiệm vụ, nhưng những gì nó sẽ làm là một bước đơn giản để nhanh chóng đi từ việc này sang việc khác. Bằng cách này, có vẻ như nó là đa nhiệm, nhưng trên thực tế, nó chỉ tập trung vào 1, sau đó vào một cái khác, sau đó vào cái khác, v.v.


Bạn đang kết hợp đa nhiệm với máy tính đa bộ xử lý ở đó. Chuyển đổi giữa nhiều tác vụ rất nhanh là đa tác vụ, trong thế giới máy tính. Định nghĩa thông thường không yêu cầu thực hiện song song. Nhiều "phiên bản Windows cũ" khác nhau đã thực hiện đa nhiệm một cách khác nhau, phụ thuộc vào phiên bản Windows nào, chế độ chạy trong đó và liệu nó có dựa trên DOS ngay từ đầu không. (Windows NT 3.1 cũ hơn DOS + Windows 95 và có thể làm SMP.) Như tôi đã chỉ ra trong một nhận xét khác, toàn bộ sách đã được viết về điều này. Đó thực sự không phải là tóm tắt 2 câu tốt nhất.
JdeBP

@JdeBP ... Tôi biết sự khác biệt giữa đa nhiệm và đa xử lý vì tôi chủ yếu vẫn sử dụng bộ xử lý lõi đơn! Máy tính hoạt động bình thường. Song song thực sự sẽ chỉ được nhìn thấy trong điện toán lượng tử.
Thoth

0

Một điều tôi không thấy được đề cập ở đây là một điều thú vị:

Windows 3.0 không phải là một hệ thống đa nhiệm ưu tiên, nó hợp tác như tất cả các phiên bản MacOS cho đến khi OS X - Một ứng dụng phải quay lại từ một cuộc gọi trước khi bất kỳ ứng dụng nào khác có thể thực hiện bất kỳ hành động nào.

Tuy nhiên, như một nhà bình luận nhắc nhở tôi, các ứng dụng DOS là đa tác vụ. Điều này là do họ không được viết cho đa tác vụ "Hợp tác" (Điều này phải luôn được tích hợp vào các hệ thống sử dụng nó).

Vào thời điểm đó, có các chương trình được gọi là TSR (Chấm dứt cư trú) thay thế các trình điều khiển thiết bị ngày nay. Các trình điều khiển này sẽ chạy độc lập - thường là trên luồng của chính họ bằng cách chèn chính họ vào một trong các trình xử lý sự kiện của HĐH. Windows thường không biết về chúng, chúng chạy ở mức thấp hơn.

Đây không phải là các ứng dụng Windows thực sự, nhưng đó là cách tất cả các hoạt động phân luồng diễn ra trước các cửa sổ 3.1 như trình điều khiển máy in, trình điều khiển com, v.v.

Mặc dù windows 3.1 là đa tác vụ, nhưng DOS thì không, nhưng Windows 3.1 chỉ đẩy ra khỏi đường và tiếp quản khi nó khởi động (Trước đó, bạn thường khởi động windows từ dấu nhắc của DOS).


Windows 3.0 hỗ trợ đa nhiệm ưu tiên cho các ứng dụng DOS khi chạy trên bộ xử lý 386 hoặc cao hơn. Chỉ các ứng dụng Windows được đa nhiệm hợp tác.
Jules

Ồ, đúng rồi - lúc đó tôi đang mã hóa các ứng dụng windows và không thực sự nghĩ về DOS. Nó đã đối xử với các ứng dụng DOS khác nhau - cảm ơn vì đã chỉ ra điều đó.
Bill K

-8

Câu hỏi hay. Trong MS-DOS, kernel là nguyên khối, có nghĩa là nó chỉ xử lý một tác vụ tại một thời điểm, so với kernel mới, hiện đại được triển khai trong Windows 9x và phiên bản hiện tại. Bạn có thể kiểm tra thêm ở đây .


11
-1 bạn cho rằng một hệ điều hành nguyên khối không thể đa nhiệm - điều đó đã sai. linux là hạt nhân đơn nhân FAMOUSLY (đã có một cuộc tranh luận nổi tiếng giữa linus torvalds và andrew tanenbaum) nhưng linux rõ ràng có thể đa tác vụ. đây là một liên kết để cho bạn thấy linux là stackoverflow
barlop

4
Nguyên khối không có nghĩa là những gì bạn nghĩ nó làm.
Thorbjørn Ravn Andersen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.