이번 글에서는 컴퓨터 시스템의 2가지 구조(단일 처리기 시스템, 다중 처리기 시스템)를 다루겠습니다.
우선 처리기(Processor)라는 개념을 이해해야 합니다. 처리기란 메모리를 통해 전달되는 외부 데이터와 관련된 연산을 수행하기 위한 전자 회로를 의미합니다. 흔히 컴퓨터 시스템에서 CPU라고도 불립니다. 처리기의 역할은 프로세스(Process)를 수행하는 것입니다. 프로세스(Process)란 메모리에 적재되어 있고, 실행되고 있는 프로그램입니다.
단일 처리기 시스템(Single-Processor Systems)은 하나의 범용 CPU를 가진 컴퓨터 시스템입니다. 단일 처리기 시스템은 범용 CPU를 제외한 특수 목적의 전용 처리기를 가질 수 있습니다. 이 전용 처리기에는 디스크나 키보드 또는 그래픽 제어기와 같은 특정 장치 처리기가 있습니다.
반면, 다중 처리기 시스템(Multi-Processor Systems)은 매우 밀접한 통신을 하는 여러 개의 CPU로 구성된 시스템입니다. 그리고 다중 처리기 시스템은 단일 처리기 시스템과 비교하면 3가지 장점을 갖습니다.
첫째, 성능 향상
- 처리기의 수가 N개가 되면 처리 속도가 N배가 되지는 않지만 증가합니다. 즉, 컴퓨터의 성능이 향상됩니다. 이 때, 처리 속도가 N배가 되지 않는 이유는 다수의 처리기가 하나의 태스크를 위해 협력할 때, 약간의 오버헤드(overhead)가 발생하기 때문입니다.
둘째, 비용 효율
- 다중 처리기 시스템은 주변 장치, 대용량 저장 장치, 전원 공급 장치 등을 공유하기 때문에, 더 비용 효율적입니다.
셋째, 신뢰성 향상
- 다중 처리기 시스템은 하나의 처리기가 고정나더라도 시스템이 정지하지 않고, 단지 처리 속도만 느려지게 됩니다. 예를 들어, 하나의 작업을 10개의 처리기가 나눠서 할 때, 이 중 1개의 처리기가 고장난다면 전체 시스템이 고장나는 것이 아니라 단지 처리 속도가 10%정도 느려지게 됩니다.
신뢰성은 컴퓨터 시스템의 매우 중요한 부분입니다. 따라서 어떤 시스템이 어느 한 구성 요소의 고장에도 불구하고 동작을 계속할 수 있는 것을 결함 허용(fault tolerant)라고 합니다.
또한 다중 처리기 시스템(Multi-Processor Systems)은 2가지 형태로 분류되는데 바로 대칭적 다중 처리(symmetric multiprocessing)와 비대칭적 다중 처리(asymmetric multiprocessing)입니다.
대칭적 다중 처리 시스템은 각 처리기가 대등하며, 운영체제 내의 모든 작업을 수행하는 시스템입니다. 각 처리기는 자신의 레지스터(register) 집합과 캐시(cache)를 갖지만, 모든 처리기는 메모리를 공유합니다.
레지스터는 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소입니다. 캐시는 컴퓨터의 프로세서 내에서 데이터나 값을 미리 복사해놓는 임시 장소입니다.
대칭적 다중 처리의 장점은 중대한 성능 저하를 일으키지 않고 많은 프로세스들이 동시에 수행될 수 있다는 점입니다. 다만,데이터가 해당 처리기로 올바로 전달될 수 있도록 반드시 조심스럽게 입출력을 제어해야 하며, 특정 CPU는 쉬고 있는데 다른 CPU는 부하가 과다해지는 비효율을 주의해야 합니다.
반면, 비대칭적 다중 처리 시스템은 하나의 주 처리기가 시스템을 제어하며, 다른 처리기들은 주 처리기의 명령을 수행하거나 미리 정의된 태스크를 수행하는 시스템입니다. 즉, 주 처리기는 작업을 스케줄하고 종속 처리기에 작업을 할당하는 역할을 합니다.
Q1. 프로세스란 무엇인가? 프로세스가 의미하는 바는 무엇인가?
Q2. 프로세스는 왜 메모리에 '적재'되어 있는가?
Q3. 처리기의 역할은 프로세스(Process)를 수행하는 것인가?
Q4. 결함 허용(fault tolerant)이라는 개념은 어떻게 이해될 수 있는가?
그 개념이 왜 중요한가? 그 개념이 중요하다는 예시(example)는 무엇인가?
Q5. 레지스터와 캐시 그리고 메모리 의 차이는 무엇인가?
Q6. 왜 대칭적 다중 처리 시스템에서 각각의 프로세서는 레지스터 집합과 캐시를 갖지만, 메모리는 공유하는가?
이 글의 내용은 다음 운영체제 책(https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=46380306)을 참조했습니다.