Task (khoa học máy tính) – Wikipedia tiếng Việt

Task Queue) (màu tím) và các task đã hoàn thành được minh họa trong Completed Tasks (màu vàng), theo nghĩa task là là một “đơn vị công việc”.Hình minh họa cho một thread pool đang giải quyết và xử lý những task. Các task chờ thực thi sẽ ở trong hàng đợi task ( ) ( màu tím ) và những task đã triển khai xong được minh họa trong ( màu vàng ), theo nghĩa task là là một ” đơn vị chức năng việc làm ” .Trong khoa học máy tính, một task là một đơn vị chức năng thực thi ( unit of execution ) hoặc một đơn vị chức năng việc làm ( unit of work ). Khái niệm task thường mang đặc thù khá chung chung, vì đối tượng người dùng đúng chuẩn được hướng đến khi dùng khái niệm task thường là tiến trình ( process ), tiến trình nhẹ ( light-weight process ), luồng ( thread ), bước ( step ), nhu yếu ( request ) hoặc nhu yếu truy vấn ( query ). Hình bên minh họa một hàng đợi ( queue ) được dùng cho những task sẽ thực thi ( task queue, màu xanh trong hình ), một thread pool ( màu xanh ) dành cho những luồng ( thread ) để thực thi những task đó và những task đã triển khai xong ( completed tasks, màu vàng ). Hình ảnh này mình họa cho khái niệm task là một đơn vị chức năng việc làm .
Với khái niệm ” đơn vị chức năng thực thi ” ( unit of execution ), trong một số ít hệ điều hành quản lý, task tương tự với một tiến trình ( process ). Trong thực thi không tương tác ( batch processing ), một task là một đơn vị chức năng thực thi trong một job ( việc làm ), [ 1 ] [ 2 ] với bản thân một task là một tiến trình. Thuật ngữ ” multitasking ” ( đa nhiệm ) được dùng để chỉ việc giải quyết và xử lý nhiều tác vụ cùng một lúc, dưới góc dộ giải quyết và xử lý tiến trình, đồng thời cũng để chỉ việc thực thi nhiều tác vụ cùng lúc .

Với khái niệm “đơn vị công việc” (unit of work), trong một công việc (có nghĩa là “công việc một lần”), một task có thể tương đương với một bước duy nhất (bản thân bước đó, chứ không phải việc thực hiện nó), trong khi việc xử lý hàng loạt các task riêng lẻ có thể tương ứng với một bước xử lý một đơn vị trong batch, hoặc một bước xử lý tất cả các đơn vị trong batch. Trong các hệ thống trực tuyến (kết nối Internet), các task thường tương ứng với một yêu cầu (request) duy nhất (trong kiến trúc response-request) như một HTTP request và response, hoặc một câu lênh truy vấn (trong truy xuất thông tin), một giai đoạn hoặc toàn bộ quá trình xử lý của hệ thống.

Trong ngôn từ lập trình Java, hai khái niệm đơn vị chức năng việc làm và đơn vị chức năng thực thi được gộp chung khi thao tác trực tiếp với những thread ( luồng ), nhưng được phân biệt rõ ràng trong Executor framework : [ 3 ] ( Bản gốc tài liệu )

When you work directly with threads, a Thread serves as both a unit of work and the mechanism for executing it. In the executor framework, the unit of work and the execution mechanism are separate. The key abstraction is the unit of work, which is called a task. [ 4 ]

Thuật ngữ của IBM[sửa|sửa mã nguồn]

Việc IBM sử dụng thuật ngữ “task” đã có ảnh hưởng lớn, mặc dù đã nhấn mạnh sự mơ hồ của thuật ngữ này. Trong thuật ngữ của IBM, task có nhiều định nghĩa cụ thể, bao gồm:[5]

  • Một đơn vị công việc đại diện cho một trong các bước trong một tiến trình.
  • Một đơn vị công việc được thực hiện bởi một thiết bị hoặc tiến trình.
  • Một tiến trình và các thủ tục để chạy tiến trình đó.
  • Một tập hợp các hành động được thiết kế để đạt được một kết quả cụ thể. Một task được thực hiện trên một tập hợp các mục tiêu trên một lịch trình cụ thể.
  • Một đơn vị tính toán. Trong một công việc song song, hai hoặc nhiều task đồng thời hoạt động cùng nhau thông qua truyền tin nhắn và chia sẻ bộ nhớ. Mặc dù một tác vụ thường được phân bổ cho mỗi bộ xử lý vật lý (physical processor) hoặc logic (logical processor), thuật ngữ “task” và “bộ xử lý” (processor) không thể hoán đổi cho nhau.
  • Một hoạt động có giá trị do người dùng khởi xướng và được thực hiện bằng phần mềm.

Đặc biệt trong z/OS, nó được định nghĩa chính xác là:[6]

  • “Trong môi trường đa chương (multiprogramming) hoặc đa xử lý (multiprocessing), một hoặc nhiều chuỗi lệnh (instructions) được chương trình điều khiển coi như là một phần của công việc được máy tính thực hiện.”

Khái niệm ” task ” trong OS / 360 trải qua z / OS gần tương tự với tiến trình nhẹ ( light-weight process ) ; những task trong một bước việc làm ( job step ) san sẻ cùng một địa chỉ trong bộ nhớ. Tuy nhiên, trong MVS / ESA trải qua z / OS, một task hoặc Service Request Block ( SRB ) ( Khối Yêu cầu Dịch Vụ Thương Mại ) hoàn toàn có thể có quyền truy vấn vào những vùng địa chỉ khác trải qua list truy vấn của nó .

Thuật ngữ task được sử dụng trong nhân Linux (ít nhất là kể từ v2.6.13,[7] và ở các phiên bản sau và bao gồm v4.8[8]) để chỉ một đơn vị thực thi, đơn vị này có thể chia sẻ nhiều tài nguyên hệ thống với các task khác trên hệ thống. Tùy thuộc vào mức độ chia sẻ, một task có thể được coi là một chuỗi hoặc tiến trình thông thường. Các task được thực hiện bằng dùng clone() trong system call,[9] nơi người dùng có thể chỉ định mức chia sẻ tài nguyên mong muốn.

Thuật ngữ task bắt đầu được sử dụng cho khái niệm đa chương (multiprogramming) vào đầu những năm 1960, như trong ví dụ này từ năm 1961: (Bản gốc tài liệu)

The serial Mã Sản Phẩm has the ability to process tasks of one job in an independent manner similar to the functioning of the IBM 709. [ 10 ]

Thuật ngữ này được thông dụng với sự sinh ra của OS / 360 ( công bố năm 1964 ), có tính năng Multiprogramming with a Fixed number of Tasks ( MFT ) ( tạm dịch : Đa chương trình với một số ít trách nhiệm cố định và thắt chặt ) và Multiprogramming with a Variable number of Tasks ( MVT ) ( Tạm dịch : Đa chương trình với 1 số ít việc làm biến hóa ). Trong trường hợp này, những task được xác lập bằng những tiến trình nhẹ ( light-weight process ), một việc làm gồm có 1 số ít task và những task con được phát sinh sau đó ( sub-task hay child processes theo thuật ngữ tân tiến ) .

Ngày nay thuật ngữ “task” đang được sử dụng rất mơ hồ. Ví dụ: như chương trình Windows Task Manager trên hệ điều hành Windows, dùng để quản lý các tasks đang chạy trên hệ thống, trong khi chương trình Windows Task Scheduler lên lịch cho các chương trình để thực thi trong tương lai, công việc được gọi là job scheduler với phần mở rộng tập tin là .job. Ngược lại, thuật ngữ task queue (hàng đợi task) thường được sử dụng theo nghĩa “đơn vị công việc”.

5/5 - (2 votes)

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments