Concurrent Processing vs Parallel Processing

2022. 5. 10. 15:31

Concurrent Processing은 우리 말로 '병행처리', Parallel Processing은 '병렬처리' 라고 불린다.

서로 분명 다르지만 비슷한 용어를 지닌 두 개념의 차이에 대해 알아보도록 하겠다.

 

1. Concurrent Processing(병행처리)

Von Neumann 컴퓨터 구조

우리가 일반적으로 잘 아는 본 누이만 컴퓨터 구조를 보면서 살펴보자.

program1, program2, program3가 있다고 가정해보자.

초창기 프로그램에서는 메모리 하나당, 하나의 프로그램만을 수행했다. 

따라서 program1이 I/O를 수행하는 동안, CPU는 할 일 없이 놀고 있게 된 것이다.

I/O는 기계적으로 움직이는 장치이고 cpu와 memory는 전자적으로 움직이는 장치이다.

전자적으로 움직이는 장치가 훨씬 빠르게 수행되므로 I/O를 수행할동안 CPU가 쉬고 있는 것은 큰 손실이다.

따라서 program1이 I/O를 수행하는 동안, program2를 올려서 처리하게 하는 방식을 Concurrent Processing이라고 한다. 

cpu의 time을 share하면서 여러 개의 프로그램을 수행시키고, 주어진 시간이 지나면 다음으로 넘어간다.

따라서 어떤 순간에 보면 program1, program2, program3 라는 process(disk에 있던 program이 memory로 올라가면 process)이 하나씩만 수행되지만, long term에서 보면 모든 것이 조금씩 수행되고 있는 것이다. 

이것이 Concurrent Processing, 병행 처리이다. 

 

2. Parallel Processing(병렬 처리)

이러한 병행 처리를 할 때, 진짜로 CPU가 하나씩 할당되어서 처리되는 것이 바로 병렬처리이다.

어떤 방식으로 보면 병렬처리가 병행처리 개념 안의 special case라고도 볼 수 있다.

program1, program2, program3가 진짜로 CPU가 하나씩 할당되어서 처리된다면 그것이 병렬처리이다.

 

병행처리 vs 병렬처리

이러한 병행처리와 병렬처리의 memory management, paging 기법은 운영체제 과목에서 심화하여 배운다.

'Computer Base' 카테고리의 다른 글

Framework vs Library  (0) 2023.03.17
캐싱, 웹캐싱, 쿠키  (0) 2023.03.13
Forward Proxy & Reverse Proxy  (0) 2023.03.13
[Computer Architecture] Multilevel Cache & Virtual Memory  (0) 2022.07.05
Compiler vs Interpreter  (0) 2022.03.22

BELATED ARTICLES

more