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 Show Chọn kiểu trích dẫn Sao chép trích dẫnChia 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ồiCả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
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ẫnChia 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ệmPhản hồiTrang 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ồiCả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
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ụcNgườ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
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ìnhTrong 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ácKhi 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ựcMộ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ồngKhi đ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ớ ảoBộ 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ệmCá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 |