Ảo tưởng đa nhiệm trên một bộ xử lý luồng đơn?


-2

Lời giải thích chính thức cho cái đó là gì? Tôi dường như luôn quên.


3
Bạn có thể nói rõ hơn một chút về ý nghĩa của bạn trên "trái đất đa nhiệm" không? Chỉ vì bộ xử lý là một luồng không có nghĩa là bạn không thể "đa nhiệm" trừ khi bạn sẽ rất hàn lâm về ý nghĩa của từ này.
Shinrai

Câu trả lời:


4

Đa tác vụ hoặc đa luồng trên một bộ xử lý cũng được gọi là đa luồng nhận thức. Rõ ràng với một CPU, không thể thực thi các lệnh đồng thời. Thay vào đó, chúng tôi xen kẽ các quá trình, tạo ảo giác về đa luồng.

Như @JTHERman Geek đã thêm, điều này sử dụng quyền ưu tiên. Đây là nơi chúng ta có một số loại cấu trúc (nghĩ một hàng đợi) nơi các chương trình được lưu trữ và mỗi quy trình có rất nhiều chu kỳ để thực hiện. Sau đó, chương trình hiện đang chạy được ưu tiên (hoặc hoán đổi với chương trình khác) và sau đó chương trình đó chạy. Có nhiều chiến lược để xác định chương trình nào thực thi khi nào. Chúng tôi có thể hoàn toàn công bằng (ví dụ: Round Robin) và mỗi chương trình nhận được một lượng tử thời gian nhất định hoặc chúng tôi có thể phân tách các chương trình theo mức độ ưu tiên và chỉ thực hiện chương trình ưu tiên thấp hơn khi không có chương trình ưu tiên cao hơn để thực hiện (ví dụ: Ưu tiên Xếp hàng).

Điều này hữu ích khi nói rằng bạn đang viết một ứng dụng GUI và chạy một tác vụ nền dài. Nếu điều này được viết dưới dạng một ứng dụng luồng đơn, mặt trước của GUI sẽ bị đóng băng. Tuy nhiên, với hai luồng, GUI vẫn đáp ứng. Ngay cả khi chỉ có một CPU, việc xen kẽ các quy trình có nghĩa là GUI vẫn phản hồi trong khi quá trình nền vẫn tiếp tục chạy và đạt được tiến bộ.


GUI có thể vẫn phản hồi vì đầu vào của người dùng tạo ra một ngắt mà từ đó HĐH có thể gọi một trình xử lý cụ thể trong ứng dụng để thực hiện công việc GUI và trình xử lý đó có thể quay lại tác vụ nền. Tương tự, I / O không đồng bộ cho phép (ví dụ) truy cập đĩa mà không bị đình trệ. Ngoài chức năng hẹn giờ và ngắt I / O, các cuộc gọi hệ thống cũng tạo cơ hội cho HĐH thực hiện lập lịch.
Paul A. Clayton

2

siêu phân luồng rất có thể, với các hệ thống hiện đại - nói ngắn gọn là một phần, nhưng không phải toàn bộ lõi được sao chép để có thể chạy nhiều luồng hơn, trên mỗi lõi


Tôi biết về siêu phân luồng, đó là lý do tại sao tôi hỏi cụ thể về các bộ xử lý luồng đơn, Giống như Pentium 4 trước HT, chạy một số ứng dụng được cho là cùng một lúc.
enon

oh, ý bạn là đa nhiệm trước hay hợp tác?
Journeyman Geek

Heh, đó là vấn đề, tôi thực sự không biết. Có lẽ đó là những điều khoản tôi đang tìm kiếm. Bạn có thể giải thích những người trong câu trả lời của bạn?
enon

Chris và john dường như đã có.
Journeyman Geek

1

Về cơ bản, hệ điều hành lần lượt lấy từng ứng dụng (và từng luồng trong mỗi ứng dụng) và chạy nó trong một vài chu kỳ CPU. Vì vậy, nếu bạn có 10 ứng dụng đang chạy, trong khoảng thời gian 10 giây, mỗi ứng dụng sẽ có thời gian thực sự chạy 1 giây.

Điều đó có nghĩa là mỗi ứng dụng chạy chậm hơn so với nếu đó là ứng dụng duy nhất chạy trên máy tính - nhưng đối với phần lớn các ứng dụng, phần lớn thời gian của chúng là dành cho người dùng nhập liệu.

Xem Wikipedia để biết thêm thông tin.


1

Tôi không chắc chắn những gì bạn có trong đầu, nhưng nó mang đến cho người dùng nhận thức rằng các ứng dụng đang chạy song song. Hiệu ứng này đạt được bằng cách xen kẽ các yêu cầu của các quy trình đồng thời với tốc độ giống như mọi, hoặc ít nhất, các quy trình đang chạy cùng một lúc.

Ngẫu nhiên, theo cách nói của Unix, trọng tâm chuyển sang nhận thức rằng hệ thống xuất hiện dành riêng cho từng yêu cầu của người dùng. Chúng tôi gọi nó đơn giản là "nhiều người dùng."


-1

Về cơ bản khi bạn chạy nhiều ứng dụng trên một cpu luồng đơn, hệ điều hành sẽ chuyển đổi cpu giữa ứng dụng. Điều này được thực hiện nhanh đến mức tạo ra ảo ảnh về đa nhiệm được tạo ra. Vì vậy, về cơ bản những gì xảy ra là cpu cung cấp chu kỳ của nó cho ứng dụng cần thiết và sau đó chuyển sang ứng dụng khác và sau đó quay lại ứng dụng đầu tiên. Tất cả điều này được thực hiện bởi hệ điều hành. Khi cpu chuyển sang một ứng dụng khác đang chạy đồng thời, trạng thái của ứng dụng phổ biến được lưu lại để khi cpu trở lại ứng dụng đó, nó sẽ nhớ trạng thái của ứng dụng nơi nó còn lại.

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.