-
OS - 멀티 프로세서CS 2024. 3. 10. 23:51
컴퓨터 시스템은 사용중인 프로세서의 수에 다라 분류 가능한 다양한 방식이 존재한다.
본 포스팅에서는 Multi-Processor에 대해 공부한다.
읽기 앞서 Process 와 Processor 그리고 CPU 등의 용어 정리를 간단하게 정리한다.
- CPU : 명령을 처리하는 하드웨어
- Processor : 하나 이상의 CPU를 포함하는 물리적인 칩
- Process : 메인 메모리위에 load 되어 실행중인 프로그램 인스턴스를 의미
- multi-core : 동일한 CPU에 여러개의 컴퓨팅 코어
- multi-processor : 여러 프로세서를 포함하는 시스템
즉, CPU는 하나 혹은 그 이상의 코어를 포함하고 있는 하드웨어이고
프로세서는 그러한 CPU를 의미하며 멀티 프로세서는 여러 프로세스 즉, 하나의 시스템이 여러 CPU를 포함하는 것을 의미한다.
Multi-Processor
일반적으로 Multi-Processor 단일 코어를 갖고 있는 두 개 이상의 프로세서를 포함한다.
Single-Processor 때 보다 단순하게 Processor가 증가 했으므로 처리량 증가의 이득은 볼 수 있지만
N개의 프로세스가 증가 했다고 해서 N배 증가하진 않는다.
왜냐하면 두 프로세서가 하나의 작업에 협력할 때
모든 프로세스가 올바르게 작동하게 만들고, 공유 자원에 대한 질서를 맞추기 위하여 오버헤드가 발생하기 때문이다.
위의 Multi-Processor 시스템의 가장 일반적인 형태는 SMT이다.
SMT
Multi-Processor에서 각 프로세서가 운영체제 영역과 사용자 영역을 포함한 모든 명령을 처리하는 시스템을 SMT(Symmetric Multi-Processing) 이라고 한다.
여기서 각 프로세서의 CPU는 개별 캐시 메모리와 개별 레지스터를 갖고 있으며, 버스를 통해 메인 메모리를 공유한다.
여러 프로세서를 갖고 있기 때문에, 여러개의 프로세스를 동시에 처리할 수 있다.
하지만 이런 SMT시스템은 각각의 CPU가 독립적으로 프로세스를 처리하기 때문에
한쪽의 CPU가 유휴 상태이며 반대쪽 CPU가 과부하가 걸릴 위험이 있다.
따라서 부하 분산에 있어서 신중하게 설정해야 한다.
Multi-core
시간이 지남에 따라 하나의 프로세서 내 하나의 코어를 갖는 시스템에서
단일 Processor 내 여러 코어를 가지는 Mutli-core 시스템으로 발전하게 된다.
위의 Multi Processor 시스템은 Multi-core 시스템을 포함한다.
보통 멀티 코어 시스템은 하나의 Processor 속 두 개 이상의 코어로 이루어져 있으며
기존의 SMT시스템에서 각 Processor가 독립적으로 프로세스를 처리하기 위해 레지스터와 캐시를 갖고 있엇다면
Multi-core 시스템에서는 보통 각 코어가 레지스터 및 캐시(L1)를 갖고 있으며
위의 각 코어가 가진 캐시메모리 보다 용량이 더 큰 캐시인 공유 캐시(L2)가 있다.
'CS' 카테고리의 다른 글
OS - 다중모드 운용과 타이머 (0) 2024.03.12 OS - 멀티 프로그래밍과 멀티태스킹 (0) 2024.03.11 OS - 메인 메모리와 입출력 장치 (0) 2024.03.10 OS - OS가 할일, 컴퓨터 시스템구성 (1) 2024.03.05