병렬 (Parallel) vs 병행 (Concurrent)
- 순차 처리 (Sequential)
복수의 업무를 순차적으로 처리한다.
- 병렬 처리 (Parallel)
복수의 업무를 동시에 처리 한다.
- 병행 처리 (Concurrent)
하나의 작업을 작은 단위로 분할하여 처리한다.
싱글코어CPU 에서는 순차로 처리되며,
멀티코어CPU 에서는 각 CPU 끼리 병렬로 처리되며, CPU에 할당된 작업들끼리 순차처리된다.
프로세스의 스레드의 수를 높인다고 업무처리량이 2배가 되는것은 아니다
오히려 문맥교환의 비용이 더 발생하겠다.
하드웨어 제약이 없다고 가정하여 여러 스레드가 병렬처리되어도
스레드간 mutual exclusion(Mutex, 상호배제, 공유자원에 대한 임계구역 배제)를 수행하기 위해 오버헤드가 발생한다.