Làm thế nào để một CPU đa tác vụ?

Mặc dù mọi nỗ lực đã được thực hiện để tuân theo các quy tắc về kiểu trích dẫn, nhưng có thể có một số khác biệt. Vui lòng tham khảo hướng dẫn sử dụng phong cách phù hợp hoặc các nguồn khác nếu bạn có bất kỳ câu hỏi nào

Chọn kiểu trích dẫn

Sao chép trích dẫn

Chia sẻ

Chia sẻ

Chia sẻ lên mạng xã hội

Facebook Twitter

URL

https. //www. người Anh. com/công nghệ/đa nhiệm

Đưa ra phản hồi

Trang web bên ngoài

Phản hồi

Đính chính?

Loại phản hồi

Phản hồi của bạn Gửi phản hồi

Cảm ơn phản hôi của bạn

Các biên tập viên của chúng tôi sẽ xem xét những gì bạn đã gửi và xác định xem có nên sửa lại bài viết hay không

Trang web bên ngoài

  • Computer Hope - Đa nhiệm

In trích dẫn

đã xác minhCite

Mặc dù mọi nỗ lực đã được thực hiện để tuân theo các quy tắc về kiểu trích dẫn, nhưng có thể có một số khác biệt. Vui lòng tham khảo hướng dẫn sử dụng phong cách phù hợp hoặc các nguồn khác nếu bạn có bất kỳ câu hỏi nào

Chọn kiểu trích dẫn

Sao chép trích dẫn

Chia sẻ

Chia sẻ

Chia sẻ lên mạng xã hội

Facebook Twitter

URL

https. //www. người Anh. com/công nghệ/đa nhiệm

Phản hồi

Trang web bên ngoài

Phản hồi

Đính chính?

Loại phản hồi

Phản hồi của bạn Gửi phản hồi

Cảm ơn phản hôi của bạn

Các biên tập viên của chúng tôi sẽ xem xét những gì bạn đã gửi và xác định xem có nên sửa lại bài viết hay không

Trang web bên ngoài

  • Computer Hope - Đa nhiệm

tiêu đề thay thế. đa chương trình

Bởi Các biên tập viên của Encyclopaedia Britannica

Mục lục

Người chủ chốt. Edgar Frank Codd . (Hiển thị thêm)Chủ đề liên quan. máy tính đa xử lý tín hiệu ngắt . (Hiển thị thêm)

Xem tất cả nội dung liên quan →

đa nhiệm, chạy nhiều chương trình (bộ hướng dẫn) trong một máy tính cùng một lúc. Đa nhiệm được sử dụng để giữ cho tất cả các tài nguyên của máy tính hoạt động trong nhiều thời gian nhất có thể. Nó được điều khiển bởi hệ điều hành, tải các chương trình vào máy tính để xử lý và giám sát việc thực hiện chúng cho đến khi chúng kết thúc

Đa nhiệm liên quan đến việc chồng chéo và xen kẽ việc thực hiện một số chương trình. Điều này thường đạt được bằng cách tận dụng sự khác biệt giữa khả năng xử lý nhanh của máy tính và tốc độ chậm hơn của các thiết bị đầu vào/đầu ra của nó. Chẳng hạn, trong khi máy tính đang đọc dữ liệu từ đĩa với tốc độ khá hạn chế, bộ xử lý trung tâm mạnh mẽ của nó có thể thực thi ở tốc độ cao một chương trình khác liên quan đến các phép tính mở rộng nhưng rất ít đầu vào. Các hệ điều hành phối hợp các nhu cầu cạnh tranh của các chương trình khác nhau theo nhiều cách khác nhau. Nhiều chương trình có thể được thực thi trên một máy tính sử dụng hệ thống nền trước/nền, trong đó máy tính chỉ thực hiện các hướng dẫn của một chương trình trong khoảng thời gian nó dành để chạy các chương trình khác có mức độ ưu tiên cao hơn. Một hệ thống như vậy sử dụng thời gian nhàn rỗi trong một số tác vụ, chẳng hạn như độ trễ phút giữa các lần nhập bàn phím, để thực hiện các lệnh trong chương trình nền. Trong nhiều hoạt động đa nhiệm, bộ vi xử lý của máy tính chuyển sự chú ý của chúng qua lại giữa các chương trình khác nhau chỉ trong vài giây

Trong điện toán, đa nhiệm là một phương pháp trong đó nhiều tác vụ, còn được gọi là các quy trình, chia sẻ các tài nguyên xử lý chung như CPU. Trong trường hợp máy tính có một CPU, chỉ có một tác vụ được cho là đang chạy tại bất kỳ thời điểm nào, nghĩa là CPU đang tích cực thực hiện các hướng dẫn cho tác vụ đó. Đa nhiệm giải quyết vấn đề bằng cách lên lịch tác vụ nào có thể là tác vụ đang chạy vào bất kỳ thời điểm nào và khi một tác vụ đang chờ khác đến lượt. Hành động gán lại CPU từ tác vụ này sang tác vụ khác được gọi là chuyển ngữ cảnh. Khi chuyển đổi ngữ cảnh xảy ra đủ thường xuyên, ảo giác về sự đồng thời đạt được. Ngay cả trên các máy tính có nhiều CPU (được gọi là máy đa bộ xử lý), tính năng đa nhiệm cho phép chạy nhiều tác vụ hơn so với số lượng CPU

Các hệ điều hành có thể áp dụng một trong nhiều chiến lược lập lịch khác nhau, thường thuộc các loại sau

  • Trong các hệ thống đa chương trình, tác vụ đang chạy tiếp tục chạy cho đến khi nó thực hiện một thao tác yêu cầu đợi một sự kiện bên ngoài (e. g. đọc từ băng). Các hệ thống đa chương trình được thiết kế để tối đa hóa việc sử dụng CPU
  • Trong các hệ thống chia sẻ thời gian, tác vụ đang chạy được yêu cầu phải từ bỏ CPU, một cách tự nguyện hoặc do một sự kiện bên ngoài chẳng hạn như ngắt phần cứng. Hệ thống chia sẻ thời gian được thiết kế để cho phép một số chương trình thực hiện đồng thời
  • Trong các hệ thống thời gian thực, một số tác vụ chờ được đảm bảo sẽ được cung cấp cho CPU khi một sự kiện bên ngoài xảy ra. Các hệ thống thời gian thực được thiết kế để điều khiển các thiết bị cơ khí như robot công nghiệp, cần xử lý kịp thời

Ngày nay, thuật ngữ chia sẻ thời gian hiếm khi được sử dụng, được thay thế bằng thuật ngữ đa nhiệm đơn giản

đa chương trình

Trong những ngày đầu của máy tính, thời gian của CPU rất đắt và các thiết bị ngoại vi rất chậm. Khi máy tính chạy một chương trình cần truy cập vào thiết bị ngoại vi, CPU sẽ phải dừng thực hiện các lệnh của chương trình trong khi thiết bị ngoại vi xử lý dữ liệu. Điều này được coi là rất không hiệu quả

Những nỗ lực đầu tiên để tạo ra các hệ thống đa chương trình diễn ra vào những năm 1960. Một số chương trình khác nhau đã được tải vào bộ nhớ máy tính và chương trình đầu tiên bắt đầu chạy. Khi chương trình đầu tiên đạt được lệnh chờ thiết bị ngoại vi, ngữ cảnh của chương trình này được lưu trữ và chương trình thứ hai trong bộ nhớ có cơ hội chạy. Quá trình tiếp tục cho đến khi tất cả các chương trình chạy xong

Đa chương trình không đảm bảo rằng một chương trình sẽ chạy kịp thời. Thật vậy, chương trình đầu tiên có thể chạy rất tốt trong nhiều giờ mà không cần truy cập vào thiết bị ngoại vi. Vì không có người dùng nào đang đợi tại một thiết bị đầu cuối tương tác nên đây không phải là vấn đề. người dùng đưa một bộ thẻ đục lỗ cho người điều hành và quay lại sau vài giờ để nhận kết quả được in. Đa chương trình làm giảm đáng kể thời gian chờ đợi

đa nhiệm hợp tác

Khi việc sử dụng máy tính phát triển từ chế độ hàng loạt sang chế độ tương tác, đa chương trình không còn là một cách tiếp cận phù hợp. Mỗi người dùng muốn xem chương trình của mình chạy như thể đó là chương trình duy nhất trong máy tính. Chia sẻ thời gian phải được sử dụng

Các hệ thống đa nhiệm ban đầu bao gồm các bộ ứng dụng liên quan tự nguyện nhường thời gian cho nhau. Cách tiếp cận này, cuối cùng đã được hỗ trợ bởi nhiều hệ điều hành máy tính, ngày nay được gọi là đa nhiệm hợp tác. Mặc dù hiếm khi được sử dụng trong các hệ thống lớn hơn, Microsoft Windows trước Windows 95 và Mac OS trước Mac OS X đều sử dụng đa nhiệm hợp tác để cho phép chạy nhiều ứng dụng đồng thời

Hợp tác đa nhiệm còn nhiều bất cập. Đầu tiên, một hệ thống đa nhiệm hợp tác phải dựa vào từng quy trình để thường xuyên dành thời gian cho các quy trình khác trên hệ thống. Một chương trình được thiết kế kém hoặc quy trình "treo" có thể khiến hệ thống ngừng hoạt động một cách hiệu quả. Các yêu cầu thiết kế của một chương trình đa nhiệm hợp tác cũng có thể gây khó khăn cho một số mục đích và có thể dẫn đến việc sử dụng tài nguyên hệ thống không thường xuyên (hoặc không hiệu quả).

ưu tiên đa nhiệm

Để khắc phục tình trạng này, hầu hết các hệ thống chia sẻ thời gian đã nhanh chóng phát triển một cách tiếp cận tiên tiến hơn được gọi là đa nhiệm ưu tiên. Trên một hệ thống như vậy, một hệ thống phần cứng (không có trên nhiều máy đời đầu) có thể "ngắt" một quy trình đang chạy và chỉ đạo bộ xử lý thực thi một đoạn mã khác. Một hệ thống được thiết kế để tận dụng tính năng này không cần dựa vào việc tự nguyện nhường thời gian của bộ xử lý theo các quy trình riêng lẻ. Thay vào đó, hệ thống ngắt phần cứng có thể được đặt thành "preempt" một quy trình đang chạy và trao quyền kiểm soát lại cho phần mềm hệ điều hành, phần mềm này sau đó có thể khôi phục quy trình được ưu tiên tại chính xác điểm mà nó bị gián đoạn. Các chương trình "được ưu tiên" theo cách như vậy không cần phải dành thời gian rõ ràng cho các quy trình khác;

Đa nhiệm ưu tiên cho phép hệ thống máy tính đảm bảo đáng tin cậy hơn cho mỗi quy trình một "lát cắt" thời gian hoạt động đều đặn. Nó cũng cho phép hệ thống xử lý nhanh chóng các sự kiện bên ngoài quan trọng như dữ liệu đến, có thể yêu cầu sự chú ý ngay lập tức của quy trình này hoặc quy trình khác

Tại bất kỳ thời điểm cụ thể nào, các quy trình có thể được nhóm thành hai loại. những thứ đang chờ đầu vào hoặc đầu ra (được gọi là "I/O ràng buộc") và những thứ đang sử dụng hết CPU ("CPU ràng buộc"). Trong các hệ thống ban đầu, các quy trình thường "thăm dò ý kiến" hoặc "busywait" trong khi chờ đầu vào được yêu cầu (chẳng hạn như đầu vào đĩa, bàn phím hoặc mạng). Trong thời gian này, quá trình không thực hiện công việc hữu ích, nhưng vẫn duy trì quyền kiểm soát hoàn toàn đối với CPU. Với sự ra đời của các ngắt và ưu tiên đa nhiệm, các quy trình liên kết I/O này có thể bị "chặn" hoặc tạm dừng, chờ dữ liệu cần thiết đến, cho phép các quy trình khác sử dụng CPU. Vì sự xuất hiện của dữ liệu được yêu cầu sẽ tạo ra một gián đoạn, các quy trình bị chặn có thể được đảm bảo quay trở lại thực thi kịp thời

Mặc dù các kỹ thuật đa nhiệm ban đầu được phát triển để cho phép nhiều người dùng chia sẻ một máy, nhưng rõ ràng là đa nhiệm hữu ích bất kể số lượng người dùng là bao nhiêu. Nhiều hệ điều hành, từ máy tính lớn cho đến máy tính cá nhân một người dùng, đã nhận ra tính hữu ích của hỗ trợ đa nhiệm vì nhiều lý do. Đa nhiệm giúp một người dùng có thể chạy nhiều ứng dụng cùng lúc hoặc chạy các quy trình "nền" trong khi vẫn giữ quyền kiểm soát máy tính

Nói một cách đơn giản. Đa nhiệm ưu tiên liên quan đến việc sử dụng bộ lập lịch phân bổ thời gian CPU cho các quy trình khác nhau để chúng có thể được thực hiện đồng thời. Do đó, tất cả các quy trình sẽ nhận được một lượng thời gian CPU tại bất kỳ thời điểm nào

Thời gian thực

Một lý do khác cho đa nhiệm là trong thiết kế hệ thống máy tính thời gian thực, trong đó một số hoạt động bên ngoài có thể không liên quan cần được điều khiển bởi một hệ thống xử lý duy nhất. Trong các hệ thống như vậy, một hệ thống ngắt phân cấp được kết hợp với ưu tiên quy trình để đảm bảo rằng các hoạt động chính được dành nhiều thời gian xử lý hơn.

đa luồng

Khi đa nhiệm cải thiện đáng kể thông lượng của máy tính, các lập trình viên bắt đầu triển khai các ứng dụng dưới dạng tập hợp các quy trình hợp tác (e. g. một tiến trình thu thập dữ liệu đầu vào, một tiến trình xử lý dữ liệu đầu vào, một tiến trình ghi kết quả ra đĩa. ) Tuy nhiên, điều này yêu cầu một số công cụ để cho phép các quy trình trao đổi dữ liệu hiệu quả

Các luồng được sinh ra từ ý tưởng rằng cách hiệu quả nhất để hợp tác các quá trình trao đổi dữ liệu là chia sẻ toàn bộ không gian bộ nhớ của chúng. Do đó, các luồng về cơ bản là các quy trình chạy trong cùng một bối cảnh bộ nhớ. Các luồng được mô tả là nhẹ vì chuyển đổi giữa các luồng không liên quan đến việc thay đổi bối cảnh bộ nhớ

Trong khi các luồng được lên lịch trước, một số hệ điều hành cung cấp một biến thể cho các luồng, được gọi là sợi, được lên lịch hợp tác. Sử dụng sợi thậm chí còn nhẹ hơn luồng và dễ lập trình hơn một chút

Bảo vệ bộ nhớ

Khi có nhiều chương trình trong bộ nhớ, một chương trình hoạt động kém có thể (vô tình hoặc cố ý) ghi đè lên bộ nhớ của một chương trình khác hoặc thậm chí là của chính hệ điều hành

Do đó, hệ điều hành hạn chế bộ nhớ có thể truy cập vào chương trình đang chạy. Một chương trình đang cố truy cập bộ nhớ nằm ngoài phạm vi cho phép của nó sẽ bị dừng ngay lập tức trước khi nó có thể thực hiện bất kỳ thay đổi nào đối với bộ nhớ thuộc một số quy trình khác

Một đổi mới quan trọng khác là ý tưởng về các mức đặc quyền. Các tác vụ đặc quyền thấp không được phép truy cập một số loại bộ nhớ và không được phép thực hiện một số lệnh nhất định. Khi một tác vụ cố gắng thực hiện một thao tác không có đặc quyền, bẫy sẽ xảy ra và chương trình giám sát đang chạy ở cấp cao hơn được phép quyết định cách phản hồi. Điều này tạo ra khả năng ảo hóa toàn bộ hệ thống, bao gồm cả các thiết bị ngoại vi ảo. Mô phỏng như vậy được gọi là hệ điều hành máy ảo. Các hệ thống máy ảo ban đầu không có bộ nhớ ảo, nhưng cả hai đều phổ biến ngày nay

Bộ nhớ ảo

Bộ nhớ ảo là một cách để hệ điều hành cung cấp nhiều bộ nhớ hơn so với khả dụng về mặt vật lý (về mặt kỹ thuật, nó chỉ tạo ấn tượng rằng có nhiều bộ nhớ hơn, do đó có tên là ảo), bằng cách giữ các phần bộ nhớ trên đĩa cứng. Mặc dù đa nhiệm và bộ nhớ ảo là hai kỹ thuật hoàn toàn không liên quan, nhưng chúng thường được sử dụng cùng nhau, vì bộ nhớ ảo cho phép tải nhiều tác vụ hơn cùng một lúc và đa nhiệm cho phép một quy trình khác chạy khi quy trình đang chạy đạt đến điểm mà một số phần của

Lập trình trong môi trường đa nhiệm

Các tiến trình hoàn toàn độc lập không khó lập trình. Hầu hết sự phức tạp trong các hệ thống đa nhiệm xuất phát từ nhu cầu chia sẻ tài nguyên máy tính giữa các tác vụ và đồng bộ hóa hoạt động của các tác vụ cùng hoạt động.

Các hệ thống máy tính lớn đôi khi được xây dựng với bộ xử lý trung tâm và một số bộ xử lý I/O, một loại đa xử lý không đối xứng. Một cách sử dụng ngắt là cho phép một bộ xử lý đơn giản hơn mô phỏng các bộ xử lý I/O chuyên dụng mà nó không có.

Trong những năm qua, các hệ thống đa nhiệm đã được cải tiến. Các hệ điều hành hiện đại thường bao gồm các cơ chế chi tiết để sắp xếp thứ tự ưu tiên cho các quy trình, trong khi đa xử lý đối xứng đã đưa ra các khả năng và độ phức tạp mới. cs. Đa nhiệm. Đa nhiệm. Đa nhiệm. đa năng fi. moniajo fr. Multitèche hu. T�bbfeladatos nó. Đa nhiệm. マルチタスク nl. đa nhiệm. Wielozadaniowość pt. Multitarefa sv. đa điểm