본문 바로가기
운영체제

운영체제 멀티프로그래밍, 멀티프로세싱, 멀티태스킹이란?

by PudgeKim 2020. 11. 19.

이번 글에서는 햇갈릴만한 용어를 정리해보려고 한다.

 

멀티 태스킹이란?

우선 시간을 좀 거슬러 올라가보면 예전에는 배치처리시스템이란 방식으로 컴퓨터를 사용했다. 배치처리시스템이란 일종의 큐 같은 구조로 프로그램을 사용하는 것인데 먼저 들어온 프로그램부터 다 처리를 하고 그 다음 프로그램을 처리하는 형태이다. 아래 그림을 보자.

위와 같이 application1과 2가 있을 때 각각 1시간, 30분씩 걸린다고 하면 application2를 실행하기 위해서는 1시간을 기다린 후에나 실행할 수 있었다. 이걸 보완하기 위해 나온게 멀티태스킹인데 아래 그림을 참고하자.

멀티태스킹이란 단일 CPU를 기준으로 위처럼 여러 프로그램을 번갈아가면서 실행하는 것이다. 각 프로그램을 ms단위로 실행하게 되면(1초보다 낮은 단위) 우리의 눈에는 여러 프로그램이 동시에 실행되는 것처럼 보인다.

 

멀티 프로세싱이란?

예전에는 컴퓨터마다 CPU를 1개로 돌렸지만 요즘은 4코어가 기본이다. 즉 CPU가 많아져서 이에 따라 프로그램을 조금 더 빨리 돌리기위한 방법이 나왔다.

위처럼 다수의 CPU가 프로그램을 병렬적으로 처리하는 것을 멀티 프로세싱이라고 한다.

 

멀티 프로그래밍이란?

멀티 프로그래밍은 CPU의 활용도를 최대한 높이기 위해 등장했다.

프로그램을 실행하다보면 CPU말고 다른 작업도 중간에 해주어야 하는 경우가 많은데 이 때 다른작업들의 속도와 CPU의 속도가 차이가 많이 난다. 이해하기 쉽게 아래 예시를 보자.

어떤 프로그램이 있는데 중간에 파일을 읽어야 다음 코드로 넘어갈 수 있다고 하자. 그럼 CPU는 막 연산을 하다가 파일을 읽어야 하는 코드를 만나게 된다. 파일을 읽기 위해서는 하드웨어에 접근해서 읽어와야하는데 
CPU와 RAM 그리고 하드디스크(or SSD)간의 속도 차이가 많이난다. 이게 무슨 뜻이냐면 하드웨어에 접근해서 파일을 읽은 다음에 CPU에 갖다 줄때까지 CPU는 할일이 없어진다.

그래서 이렇게 CPU가 노는 시간에 놀지말고 다른 application들을 연산하는데 CPU를 이용할 수 있게 만든 기법을      멀티 프로그래밍이라고 한다.

'운영체제' 카테고리의 다른 글

운영체제 인터럽트란?  (0) 2020.11.24
운영체제 프로세스의 상태  (0) 2020.11.21
운영체제 라운드로빈 스케쥴러  (0) 2020.11.20
운영체제 커널모드란?  (0) 2020.11.17
운영체제 시스템 콜이란?  (0) 2020.11.16