Đa nhiệm máy tính

Thực thi đồng thời nhiều tác vụ (trong điện toán)

Trong điện toán, đa nhiệm là việc thực thi đồng thời nhiều tác vụ (còn được gọi là các tiến trình) trong một khoảng thời gian nhất định. Nhiệm vụ mới có thể làm gián đoạn những nhiệm vụ đã bắt đầu trước khi chúng kết thúc, thay vì chờ chúng kết thúc. Kết quả là, một máy tính thực thi các phân đoạn của nhiều tác vụ theo cách xen kẽ, trong khi các tác vụ chia sẻ các tài nguyên xử lý chung như các đơn vị xử lý trung tâm (CPU) và bộ nhớ chính. Đa nhiệm tự động làm gián đoạn chương trình đang chạy, lưu trạng thái của nó (kết quả một phần, nội dung bộ nhớ và nội dung thanh ghi máy tính) và tải trạng thái đã lưu của chương trình khác và chuyển điều khiển sang chương trình đó."Công tắc ngữ cảnh"này có thể được bắt đầu định kỳ chia theo các khoảng thời gian cố định (đa nhiệm ưu tiên) hoặc chương trình đang chạy có thể được mã hóa để báo hiệu cho phần mềm giám sát khi mà nó có thể ngừng chạy để chuyển sang chương trình khác (đa nhiệm hợp tác).

Các hệ điều hành máy tính để bàn hiện đại có khả năng xử lý số lượng lớn các quy trình khác nhau cùng một lúc. Ảnh chụp màn hình này cho thấy Linux Mint chạy đồng thời môi trường máy tính để bàn Xfce, Firefox, chương trình máy tính, lịch tích hợp, Vim, GIMPtrình phát phương tiện VLC.

Đa nhiệm không yêu cầu thực hiện song song nhiều tác vụ cùng một lúc; thay vào đó, nó cho phép nhiều hơn một nhiệm vụ được xử lý trong một khoảng thời gian nhất định.[1] Ngay cả trên các máy tính đa bộ xử lý, đa nhiệm cho phép chạy nhiều tác vụ hơn so với số lượng CPU.

Đa nhiệm là một tính năng phổ biến của các hệ điều hành máy tính. Nó cho phép sử dụng hiệu quả hơn phần cứng máy tính; trong đó một chương trình đang chờ một số sự kiện bên ngoài như đầu vào của người dùng hoặc chuyển giao đầu vào / đầu ra với một thiết bị ngoại vi để hoàn thành, bộ xử lý trung tâm vẫn có thể được sử dụng với một chương trình khác. Trong một hệ thống chia sẻ thời gian, nhiều nhà khai thác con người sử dụng cùng một bộ xử lý như thể nó được dành riêng cho việc sử dụng của họ, trong khi đằng sau hậu trường, máy tính đang phục vụ nhiều người dùng bằng cách đa nhiệm các chương trình riêng lẻ của họ. Trong các hệ thống đa chương trình, một tác vụ sẽ chạy cho đến khi nó phải chờ một sự kiện bên ngoài hoặc cho đến khi bộ lập lịch của hệ điều hành buộc phải hoán đổi tác vụ đang chạy ra khỏi CPU. Các hệ thống thời gian thực như các hệ thống được thiết kế để điều khiển robot công nghiệp, yêu cầu xử lý kịp thời; một bộ xử lý có thể được chia sẻ giữa các tính toán về chuyển động của máy, giao tiếp và giao diện người dùng.[2]

Thông thường các hệ điều hành đa nhiệm bao gồm các biện pháp thay đổi mức độ ưu tiên của các tác vụ riêng lẻ, để các công việc quan trọng nhận được nhiều thời gian xử lý hơn các công việc được coi là ít quan trọng hơn. Tùy thuộc vào hệ điều hành, một tác vụ có thể lớn bằng toàn bộ chương trình ứng dụng hoặc có thể được tạo thành từ các luồng nhỏ hơn thực hiện các phần của chương trình tổng thể.

Bộ xử lý dành cho sử dụng với các hệ điều hành đa nhiệm có thể bao gồm phần cứng đặc biệt để hỗ trợ an toàn cho nhiều tác vụ, như bảo vệ bộ nhớvòng bảo vệ để đảm bảo phần mềm giám sát không thể bị hỏng hoặc bị phá vỡ do lỗi chương trình ở chế độ người dùng.

Thuật ngữ "đa nhiệm" (multitasking) đã trở thành một thuật ngữ quốc tế, vì cùng một từ được sử dụng trong nhiều ngôn ngữ khác như tiếng Đức, tiếng Ý, tiếng Hà Lan, tiếng Đan Mạchtiếng Na Uy.

Tham khảo sửa

  1. ^ “Concurrency vs Parallelism, Concurrent Programming vs Parallel Programming”. Oracle. Bản gốc lưu trữ ngày 7 tháng 4 năm 2016. Truy cập ngày 23 tháng 3 năm 2016.
  2. ^ Anthony Ralston, Edwin D. Reilly (ed),Encyclopedia of Computer Science Third Edition, Van Nostrand Reinhold, 1993, ISBN 0-442-27679-6, articles"Multitasking"and"Multiprogramming"