task/multitasking – 태스크/멀티태스킹
컴퓨터 프로그래밍에서, 태스크란 운영체계가 제어하는 프로그램의 기본 단위를 말한다.
운영체계를 설계할때, 태스크를 어떻게 정의하느냐에 따라, 단위 프로그램이란 전체 프로그램이 될 수도 있고, 또는 계속되는 프로그램의 호출이 될 수도 있다.
한 프로그램이 여러 개의 다른 유틸리티 프로그램들에게 요구를 할 수 있기 때문에, 유틸리티 프로그램들 또한 태스크(또는 서브 태스크)라고 간주할 수 있다.
오늘날 광범위하게 사용되는 대부분의 운영체계들이 멀티태스킹을 지원하는데, 이는 여러 개의 태스크를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있게 한다.
멀티스레딩과 멀티태스킹은 비슷하여 종종 혼동된다.
멀티스레딩은 같은 프로그램 여러 개를 동시에 사용하도록 관리하는 것이다.
요즘 대부분의 운영체계와 컴퓨터 프로그램 언어들이 멀티스레딩도 지원한다.
선점형 멀티태스킹에서, 각 태스크는 상대적 중요도, 자원 소모량 및 기타 다른 요인들에 따라 우선 순위가 매겨질 수 있다.
운영체계는 우선 순위가 낮은 값을 갖는 작업의 실행을 막음으로써, 우선 순위가 높은 작업에 기회가 가도록 조치한다.
OS/2, 윈도우NT, 리눅스 등이 선점형 멀티태스킹을 사용하는 운영체계의 예이다.
협력적 멀티태스킹은 동시에 응용프로그램들과 같은 여러 개의 태스크를 관리하기 위한 운영체계의 능력이지만, 필수적으로 그것들을 선점하는 능력은 없다.