멀티태스킹, 멀티스레딩, 멀티프로세싱
- 업데이트 날짜:2025-08-27
- 2분 (읽기 시간)
멀티태스킹은 OS가 진행 중인 여러 작업 사이를 신속하게 오고 가며 작업을 하여, 마치 여러 작업을 동시에 실행하는 것처럼 보이는 것을 의미합니다. 예를 들어, Windows 3.1에서 일반적으로 작업은 Microsoft Word, Microsoft Excel, 또는 LabVIEW와 같은 전체 어플리케이션입니다. 각 어플리케이션은 다음 어플리케이션이 실행되기 전까지 짧은 시간동안 실행됩니다. Windows 3.1은 협력형 멀티태스킹으로 알려진 기술을 사용합니다. 즉, OS는 실행 중인 어플리케이션에 의존하여 프로세서의 컨트롤을 정기적으로 OS에게 넘겨줍니다. Windows는 선점형 멀티태스킹에 의존합니다. 즉, 현재 실행되는 어플리케이션의 상태와 관계 없이 OS가 언제나 프로세서의 컨트롤을 가져올 수 있습니다. 선점형 멀티태스킹을 사용하면 사용자와 많은 데이터 처리량에 보다 잘 대응할 수 있습니다.
멀티스레딩은 멀티태스킹의 개념을 어플리케이션까지 확대한 것으로, 단일 어플리케이션 내의 특정 작업을 개별적인 스레드로 나눌 수 있어, 여러 작업이 이론적으로 병렬 실행될 수 있습니다. 그 후, OS는 서로 다른 어플리케이션 뿐만 아니라 한 어플리케이션 내의 각 스레드 사이에도 처리 시간을 나눌 수 있습니다. 예를 들면, LabVIEW 멀티스레드 프로그램에서 어플리케이션은 세 스레드로 나뉠 수 있습니다 ― 사용자 인터페이스 스레드, 데이터 수집 스레드, 인스트루먼트 컨트롤 스레드 ― 각 스레드는 우선순위가 지정될 수 있으며 독립적으로 작동할 수 있습니다. 그러므로, 멀티스레드 어플리케이션에는 다른 어플리케이션과 병렬로 진행되는 여러 태스크가 있을 수 있습니다.
멀티프로세싱(또는 멀티코어 프로그래밍)은 한 컴퓨터에 두 개 또는 이상의 프로세서가 있어서 각각 별도의 스레드를 동시에 실행할 수 있음을 의미합니다. 그러므로 싱글 스레드 어플리케이션은 한 번에 한 프로세서만 실행할 수 있습니다. 멀티스레드 어플리케이션에서는 여러 스레드가 여러 프로세서에서 동시에 실행될 수 있습니다. LabVIEW 멀티스레드 예제에서, 사용자 인터페이스 스레드가 한 프로세서에서 실행되는 동안 데이터 수집 스레드가 다른 프로세서에서 실행될 수 있습니다. 단일 스레드 어플리케이션은 시스템 성능에 심각한 영향을 미칠 수 있습니다.