-
프로세스 Process vs 프로세서 Processor
-
싱글 프로세서 Single Processor
-
멀티 프로세서 Multi Processor
프로세스 Process vs 프로세서 Processor
시작 전 두 용어의 차이를 확실하게 구분하지 않으면 이해하는데 혼란스럽다는 것을 알게되었다.
두 용어의 차이를 간단하게 정의했다.
프로세스 (Process) : 메모리에 적재되어 실행 중이거나 대기 중인 프로그램
프로세서 (Processor) : CPU의 코어
싱글 프로세서 Single Processor
초창기 컴퓨터는 싱글 코어였기 때문에 싱글 프로세스 시스템을 사용하여 한번에 하나의 프로그램만 실행할 수 있었다.
다른 프로그램을 실행하려면 현재 프로그램을 종료해야했고, 프로그램 실행 도중 입출력과 같은 일이 생기게되면 입출력이 완료될때 까지 CPU는 대기 상태가 되버려 반응성이 떨어지고 효율적이지 못했다.
이런 싱글 프로세스의 한계를 극복하기 위해 멀티 프로그래밍
, 멀티 태스킹
이라는 방법이 나타났다.
멀티 프로그래밍 Multi Programming
여러 개의 프로그램을 동시에 실행한다는 의미로 CPU 사용률을 극대화 시키는데 목적을 두었다.
단일 프로세서이지만 여러 개의 프로세스를 메모리에 올리고 하나의 프로그램이 만약 입출력을 대기할 때 그동안 다른 프로그램을 실행하여 CPU가 대기하는 시간을 줄여 CPU의 효율성을 높혔다.
하지만 결국은 프로세스1의 CPU 사용시간이 길어지면 완료될 때 까지 다른 프로세스들은 계속 대기 상태로 실행될 기회를 못 얻게 된다는 문제점이 있다.
멀티 태스킹 Multi Tasking
각 프로세스들이 아주 짧은 시간만 CPU를 사용하도록 프로세스를 Context Switching하여 여러 프로세스를 동시에 실행하는 것처럼 보이게 해 작업의 응답 시간을 최소화 하는 개념이다.
- 장점
- 작업이 동시에 시작되는것 처럼 보여 사용자에게 빠른 반응성을 제공한다.
- 단점
- Context Switching이 자주 일어나게 될 경우 오히려 성능 이슈가 발생할 수 있다. 프로세스를 스위칭하는 작업은 생각보다 무거운 작업에 해당된다.
- 우선 순위가 낮은 작업은 계속해서 실행되지 못하는 기아 현상이 발생할 수 있다.
멀티 프로세서 Multi Processor
초기에는 단일 코어 CPU가 일반적이였지만 코어의 발열 한계로 인해 클럭을 더 높이지않고 코어의 갯수를 늘리는 방향으로 기술이 발전한다.
멀티 프로세싱
여러 개의 CPU 코어가 동시에 작업을 처리하는 것을 멀티 프로세싱 이라고하고 여러가지 종류가 있다. 여러 개의 프로세서가 병렬로 작업을 수행하기 때문에 단일 프로세서보다 빠른 처리 속도를 보장한다.
멀티 프로세싱 + 멀티 태스킹
멀티 프로세싱은 여러 개의 코어가 병렬로 작업을 처리하는 것 멀티 태스킹은 하나의 코어가 여러개의 작업을 처리하는 것
둘은 서로 다른 처리 방법이기 떄문에 둘을 조합하여 시너지를 낼 수 있다.
참고 자료