멀티태스킹과 멀티스레드의 차이점


윈도우는 멀티 태스킹 시스템입니다.

여러 개의 프로세스(프로그램이 실행되어 메모리에 상주된 형태)를 동시에 실행시킬 수 있는 시스템이라는 뜻입니다.

그러나 실제로 CPU 가 동시에 여러 개의 프로세스를 실행하는 것은 아닙니다.

짧은 시간을 쪼개고 쪼개서 일정한 단위시간을 정하여 (시분할 방식, time-division)

CPU 가 돌아가면서 여러 개의 프로그램을 하나씩 실행시키는 형태이지요.

CPU 는 어떤 순간에나 하나의 프로세스만을 수행하고 있지만,

시간간격이 워낙 짧은 관계로

사용자의 눈에는 여러 개의 프로세스가 동시에 실행되는 것처럼 보일 뿐입니다.

 

하나의 프로그램은 하나의 프로세스로 전환되어 실행될 수도 있지만,

여러 개의 프로세스로 나누어 동시에 실행되게 할 수도 있습니다.

이 때, 어떤 프로그램의 주 프로세스와 함께 동시에 실행되는 부수적인 프로세스들을 스레드라고 합니다.

 

멀티 태스킹과 멀티 스레드는 모두,

아주 짧은 시간 간격을 두고 여러 개의 프로세스를 번갈아 실행됨으로써

동시에 여러 개의 프로세스가 실행되는 것처럼 보이게 한다는 점은 같습니다.

 

차이점은

멀티 태스킹은 동시에 여러 개의 프로그램을 실행시키는 것이고,

멀티 스레드는 하나의 프로그램을 여러 개의 기능으로 나누어 이를 동시에 실행시킨다는 점입니다.

 

멀티 태스킹은 운영체제가 알아서 처리해줍니다.

멀티 스레드는 프로그래머가 프로그램 설계시에 직접 구현을 해 주어야 합니다.

 

우리가 사용하는 MP3 음악플레이어(저는 푸바를 사용합니다)도

멀티 스레드 프로그래밍의 한 형태입니다.

MP3 파일은 기본적으로 압축된 음성 데이터 파일입니다.

푸바는 MP3 파일의 데이터 압축을 해제하면서

동시에 사운드카드를 통해 스피커로 음악을 올려보내는 일을 해주지요.

이 글을 공유하기

댓글

Designed by JB FACTORY