태스크(컴퓨팅)

Task (computing)
"작업 단위"라는 의미의 대기 태스크(파란색) 및 완료된 태스크(노란색)의 태스크 큐가 있는 샘플 스레드 풀(녹색 상자)입니다.

컴퓨팅에서 태스크는 실행 단위 또는 작업 단위입니다.이 용어는 모호합니다.정확한 대체 용어에는 프로세스, 경량 프로세스, 스레드(실행용), 스텝, 요청 또는 쿼리(작업용)가 포함됩니다.다음 그림에는 들어오는 작업 및 나가는 완료된 작업의 대기열과 이 작업을 수행하기 위한 스레드 풀이 있습니다.작업 유닛 자체 또는 작업을 수행하는 스레드를 "태스크"라고 할 수 있으며, 이들은 각각 요청/응답/스레드, 수신 태스크/완료 태스크/스레드(그림 참조), 요청/응답/태스크라고 할 수 있습니다.

용어.

"실행 단위"라는 의미에서 일부 운영 체제에서 태스크는 프로세스[citation needed] 동의어이고 다른 운영 체제에서는 스레드[citation needed] 동의어입니다.비대화형 실행(배치 처리)에서 태스크는 작업 [1][2]의 실행 단위이며 일반적으로 태스크 자체가 프로세스입니다.'멀티태스킹'이란 주로 동시에 실행되는 여러 태스크의 처리감(processing sense)을 의미하지만 동시에 실행되는 여러 태스크의 작업감에는 미묘한 차이가 있습니다.

「작업 단위」의 의미에서, 작업(「일회성 작업물」을 의미)에서는, 태스크는 1개의 스텝(그 실행이 아닌 스텝 그 자체)에 대응할 수 있는 한편, 배치 처리에서는 개별 태스크가 1개의 아이템을 일괄 처리하는 1개의 스텝 또는 모든 아이템을 일괄 처리하는 1개의 스텝에 대응할 수 있다.온라인 시스템에서 태스크는 일반적으로 단일 요청(요청-응답 아키텍처) 또는 쿼리(정보 검색), 단일 처리 단계 또는 전체 시스템 처리에 대응합니다.

Java 프로그래밍 언어에서는 스레드와 직접 작업할 때 다음 두 가지 개념(작업 단위와 실행 단위)이 결합되지만 실행자 프레임워크에서는 명확하게 구분됩니다.

스레드로 직접 작업하는 경우Thread작업의 단위로서 기능하는 것과 동시에, 그것을 실행하기 위한 메카니즘으로서 기능합니다.실행자 프레임워크에서는 작업 단위와 실행 메커니즘이 분리된다.핵심 추상화는 작업 단위이며,[3] 이를 작업이라고 합니다.

IBM 용어

IBM 용어에서 "task"는 다음과 [4]같은 수십 가지 특정한 의미를 가지고 있지만, IBM의 용어 사용은 그 용어의 모호성을 강조하면서도 영향력을 행사하고 있습니다.

  • 프로세스의 단계 중 하나를 나타내는 작업 단위입니다.
  • 디바이스 또는 프로세스에 의해 달성되는 작업 단위.
  • 프로세스를 실행하는 프로세스 및 절차.
  • 특정 결과를 얻기 위해 설계된 일련의 작업입니다.태스크는 특정 예약에 따라 대상 집합에 대해 수행됩니다.
  • 계산 단위입니다.병렬 작업에서는 메시지 전달 및 공유 메모리를 통해 두 개 이상의 동시 태스크가 함께 작동합니다.물리 프로세서 또는 논리 프로세서마다 하나의 태스크를 할당하는 것이 일반적이지만, "태스크"와 "프로세서"라는 용어는 서로 바꿀 수 없습니다.
  • 사용자가 시작하고 소프트웨어에 의해 수행되는 비즈니스 가치가 있는 활동입니다.

특히 z/OS에서는 다음과 [5]같이 정확하게 정의됩니다.

  • "멀티프로그래밍 또는 멀티프로세서 환경에서 제어 프로그램에 의해 컴퓨터가 수행해야 할 작업의 요소로서 처리되는 하나 이상의 명령 시퀀스입니다."

OS/360에서 z/OS까지의 태스크라는 용어는 경량 프로세스와 거의 동일합니다. 작업 단계의 태스크는 주소 공간을 공유합니다.그러나 MVS/ESA에서 z/OS를 통해 작업 또는 서비스 요청 블록(SRB)이 액세스 목록을 통해 다른 주소 공간에 액세스할 수 있습니다.

Linux 커널

task라는 용어는 Linux 커널(최소한 v2.6.[6]13 이후, v4.8까지[7] 포함)에서 실행 단위를 가리키기 위해 사용되며, 시스템 상의 다른 태스크와 다양한 시스템 리소스를 공유할 수 있습니다.공유 수준에 따라 작업은 일반적인 스레드 또는 프로세스로 간주될 수 있습니다.태스크는 다음 명령어를 사용하여clone()사용자가 원하는 [8]자원 공유 수준을 지정할 수 있는 시스템콜

역사

작업의 일부에 대한 태스크라는 용어는 1961년부터의 다음 예시와 같이 1960년대 초반의 멀티프로그래밍으로 거슬러 올라간다.

직렬 모델은 IBM 709[9]기능과 유사한 방식으로 한 작업의 작업을 처리할 수 있습니다.

이 용어는 OS/360(1964년 발표)의 도입으로 대중화되었습니다.이 OS/360은 고정 작업 수(MFT)사용한 멀티프로그래밍과 가변 작업 수(MVT)를 특징으로 했습니다.이 경우 작업은 경량 프로세스로 식별되며, 작업은 여러 작업으로 구성되며, 이후 작업은 하위 태스크(현대 용어로는 하위 프로세스)를 가질 수 있습니다.

오늘날 "과업"이라는 용어는 매우 모호하게 사용된다.예를 들어 Windows 태스크 매니저는 프로세스를 관리(실행)하지만 Windows 태스크 스케줄러는 일반적으로 작업 스케줄러로 알려진 프로그램을 나중에 실행하도록 예약하여 사용합니다..job내선 번호와는 대조적으로, "작업 대기열"이라는 용어는 "작업 단위"라는 의미로 일반적으로 사용됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "What is task? - Definition from WhatIs.com". WhatIs.com. Retrieved June 11, 2015.
  2. ^ "What are computer processes?". liutilities.com. Retrieved June 11, 2015.
  3. ^ Bloch, Joshua. Effective Java (Third ed.). p. p. 272, Item 68.
  4. ^ IBM 용어:T.
  5. ^ z/OS 용어 약어:T.
  6. ^ "include/linux/sched.h". GitHub.com. Linus Torvalds. August 29, 2005.
  7. ^ "include/linux/sched.h". GitHub.com. Linus Torvalds. October 3, 2016.
  8. ^ "clone, __clone2 - create a child process". Linux Programmer's Manual. July 17, 2016. Retrieved November 6, 2016.
  9. ^ James Larrimore McKenney (1961). Simultaneous multiprogramming of electronic computers. p. 154.