Computer Science/OS

범용 처리기 수에 따른 컴퓨터 시스템 구조

TwinParadox 2017. 12. 25. 15:21
728x90

컴퓨터 시스템을 사용된 범용 처리기의 숫자에 따라 분류하면 세 가지로 분류할 수 있다.





단일 처리기 시스템(Single-Processor Systems)


가까운 과거까지는 대부분의 시스템에서는 하나의 처리기를 채택해 이를 바탕으로 범용 명령어 집합을 수행하도록 했으며 이 때 이를 수행하는 것은 하나의 메인 CPU였다. 시스템에 특수한 목적으로 설계된 전용 처리기가 존재하는데, 이 전용 처리기는 특정한 장치 처리기 형태로 제공하거나 메인프레임 같은 시스템의 구성요소 간 데이터 전송을 수행하는 입출력 처리기 형식으로 제공될 수 있다.


이 모든 전용 처리기들이 제한된 명령어를 실행하고 사용자 프로세스를 실행하지는 않고, OS에 의해 관리되는 경우가 있다. OS는 이 상황에서 다음 태스크에 대한 정보를 보내고 처리기의 상태를 감시하는 역할을 담당한다.

간단히 정리하면 범용 CPU가 하나 탑재된 시스템은 단일 처리기 시스템이라 보는 것이다.





다중 처리기 시스템(Multi-Processor Systems)


멀티 코어(Multi-Core) 시스템이 이 다중 처리기 시스템 중 하나다. 서버에서만 주로 이용되어 오다가, 현재는 보통의 데스크탑/랩탑에도 적용되어 방대해진 데이터 처리량을 2개, 4개 등 여러 대의 CPU를 이용해 처리하기 시작하면서 많이 보편화됐다. 이제는 모바일 기기도 이 환경을 사용하고 있을 정도.


하드웨어나 소프트웨어의 설계에 따라 대칭적(Symmetric Multiprocessing)으로도, 비대칭적(Asymmetric Multiprocessing)으로도 구성할 수 있다. 대중적으로 사용되는 다중 처리기 시스템은 각 처리기가 OS 내의 모든 작업을 수행하는 대칭적 다중 처리을 사용한다. 


최근 CPU 설계는 칩 하나에 코어를 여러 개 넣는(우리가 흔히 아는 그 CPU들처럼) 방법으로 코어를 설계한다. 칩 내 통신이 칩 간 통신보다 빠르고, 전력 소모 측면에서 우위를 점할 수 있다.


가장 최근에 개발된 형태는 블레이드 서버로, 다수 처리기/IO/네트워킹 보드들이 섀시 하나에 장착되는 형태로 전통적인 시스템과의 차이는 블레이드-처리기 보드는 독립적 부팅이 가능하고 자기 자신의 OS를 수행한다는 점. 해당 서버의 보드 자체가 다중 처리기로, 블레이드 서버는 여러 대의 독립적인 다중 처리기 시스템으로 구성된다고 보면 된다.





클러스터형 시스템(Clustered Systems)


여러 CPU를 가진 시스템의 또 다른 유형으로, 둘 이상의 독자적 시스템(혹은 노드)를 연결 구성하는 방법이다. 이를 구성하는 시스템은 단일 처리기거나 다중 처리기로 구성된 시스템이다. 기본적으로 클러스터링은 높은 가용성(Availability)를 지향하기 위해 사용된다. 만약 클러스터 내에서 시스템 하나가 문제가 발생해 가동이 중단된다고 하더라도 서비스는 지속될 수 있다.


기본적으로 대칭형과 비대칭형으로 구성 방법을 분류하며 대칭형 클러스터링의 경우 가용 자원을 모두 사용하기 

때문에 효율적으로 운용할 수 있다. 다만, 하나 이상의 응용프로그램들이 실행 가능하다는 전제 조건이 붙는다.


클러스터를 구성하는 기법이나 기술들은 나날이 발전해서 거리의 제한만이 아니라 클러스터를 구성하는 노드의 수도 수십 개에 달할 정도로 발전했다.

728x90
728x90