파게로그
컴퓨터 시스템 아키텍쳐 본문
1.3 Computer-System Architecture
1.3.1 Single-Processor Systems
싱글 프로세서 시스템에는 general-purpose instruction set을 실행할 수 있는 CPU가 하나 있고, 대부분 이러한 시스템에는 특수 목적의 프로세서를 별도로 가지고 있다. 그것은 디스크, 키보드, 그래픽 컨트롤러의 device-specific한 프로세로서이다. mainframe에서는 보다 general-purpose processors의 형태인데 I/O processor와 같은 것이다.
이러한 프로세서는 운영체제에 의해 관리되기도 하고, 그렇지 않기도 한다. 이 때 관리라는 것은 운영체제가 정보를 보내거나, 다음 작업을 알려주거나, 상태를 감시하는 것을 말한다. 또 어떤 프로세서는 하드웨어에 부착된 low-level의 special-purpose processors로서 운영체제와 의사소통이 불가능하며, 자동적으로 그들의 일을 수행하도록 되어 있다.
이러한 special-purpose microporcessors가 있다고 해서 multiprocessor system이 되는 건 아니고, general-puropse processor의 개수에 따라 좌우된다.
1.3.2 Multiprocessor Systems
multiprocessor systems(parallel systems, multicore systems)는 밀접한 의사소통 내에 두 개 이상의 프로세서를 가지고 있으며, 컴퓨터 버스를 공유하며, 때때로 clock, memory, 주변부 기기를 공유하기도 한다.
멀티프로세서 시스템의 장점
- 향상된 throughput
- N개의 프로세서가 있다고 해서 속도가 증가하는 비율은 N인 것은 아니라, N보다는 작다. 여러 개의 프로세서가 하나의 작업에 대해 협력할 때, 모든 부분이 정확히 작동하도록 하는 데에도 일정량의 오버헤드가 부과된다. 이러한 오버헤드, 그리고 공유된 자원에 대한 경쟁은 부가적인 프로세서로부터 기대되는 성능을 낮춘다.
규모의 경제
- peripherals, mass storage, power supplies 등을 공유하기에 단일한 멀티프로세서 시스템이 다수의 싱글프로세서 시스템보다 저렴하다. 즉 동일한 데이터 셋을 조작하는 프로그램 여러개가 작동한다면 멀티프로세서 시스템이 우위에 있다.
신뢰성의 증가
- 여러 개의 프로세서에 기능들이 적절히 분배된다면, 하나의 프로세서의 오류만으로 시스템이 중단되지 않고 느려지는 데 그치게 할 수 있다. the level of surviving hardware에 비례하는 서비스를 제공할 수 있는 능력을 graceful degradation이라 한다. graceful degradation을 넘은 시스템은 fault tolerant라 불리는데, 단일 구성요소에서 결함이 있어도 작동을 계속할 수 있다. fault tolerance는 failure에 대한 탐지, 진단, 가능하다면 정정까지도 가능한 메커니즘을 요구한다.
asymmetric multiprocessing
- 각 프로세서가 특정 작업에 할당되어 있다.
- boss-worker 관계로서 boss processor가 스케줄링하고 worker processor에게 일을 할당한다.
- boss processor가 시스템을 통제한다.
- 다른 프로세서는 instruction을 받고자 boss를 기다리거나, 미리 정의된 작업을 가지고 있다.
SMP(symmetric multiprocessing)
- 모든 프로세서가 동료의 관계이다.
- 각 프로세서가 작동하는 시스템 내에서 모든 작업을 수행한다.
- 각 프로세서가 각자의 레지스터와 private 또는 local cache를 가지고 있다.
- 모든 프로세서가 물리적 메모리는 공유한다.
- 많은 프로세서는 많은 프로세스를 동시에 실행할 수 있다. (N개의 프로세서 - N개의 프로세스)
- I/O를 잘 통제하여 데이터가 적절한 프로세서에 도달할 수 있도록 해야 한다.
- CPU가 분리되어 있기에 하나가 overloaded된 동안 하나는 idle할 수 있다.
멀티프로세싱과 CPU 성능
- 멀티프로세싱을 통해 CPU의 컴퓨팅 파워를 끌어올릴 수 있다. CPU가 통합된 메모리 컨트롤러를 가진다면, CPU를 더하는 것은 시스템의 addressable한 메모리를 증가시킬 수 있다.
- 어느 쪽이든, 멀티프로세싱은 시스템이 메모리 접근 모델을 UMA에서 NUMA로 바꾸는 결과를 초래할 수 있다. 운영체제는 자원 관리를 통해 NUMA penalty를 최소화할 수 있다.
멀티코어
- single chip 위 다수의 computing core
- on-chip communication이 between-chip communication보다 빠르다.
따라서 multicore가 multiple chips with single cores보다 효율적이다. - 전력 소모량에서도 효율적이다.
1.3.3 Clustered Systems
다수의 CPU를 모은 시스템
- 2개 이상의 개별적인 시스템이나 노드가 합쳐졌다는 점에서 멀티프로세서 시스템과 다르다.
- 이러한 시스템은 느슨하게 결합(loosely coupled)되어 있다. 각 노드는 싱글 프로세서 시스템 또는 멀티코어 시스템이다.
- clustered라는 것은 엄밀한 개념이 아니다.
- 일반적으로 clustered computers란 저장소를 공유하며 local-area 네트워크인 랜 또는 InfiniBand처럼 보다 빠른 interconnect로 비교적 가깝게 연결된 것을 의미한다.
- 주로 high-availability service에 이용되는데, 하나 또는 그 이상의 시스템이 죽어도 서비스는 지속되는 것을 말한다. 각 노드는 서로를 감시하다가 만약 어떤 노드가 불능이 되면, 그것을 감시하던 모니터가 그 저장소의 ownership을 얻고 해당 머신에서 실행 중이던 프로그램을 재실행한다. 이렇게 하면 application의 user와 clients는 서비스에서 아주 짧은 중단을 경험하는 데 그친다.
- (asymmetric clustering, symmetric clustering)
- high-performance computing 환경 제공을 위해서도 clusters는 사용됨
- 동시에 모든 컴퓨터에서 하나의 어플리케이션을 실행할 수 있으므로 월등히 빠르지만, 어플리케이션 자체가 이러한 클러스터의 이득을 취할 수 있도록 작성되어 있어야 한다. 이는 parallelization이라는 기술을 포함하는데, 클러스터 내 개별 컴퓨터에서 병렬적으로 실행될 수 있는 별개의 컴포넌트로 프로그램을 분할하는 것을 의미한다.
- 전형적으로, 이러한 어플리케이션은 클러스터 내 각각의 computing node가 문제의 부분을 푼다면, 모든 노드로부터의 결과가 최종 솔루션으로 합쳐지는 것을 의미한다.
- (parallel clusters, clustering over a wide-area network, and DLM(distributed lock manager))
- (BEOWULF CLUSTERS)
- (storage-area networks(SANs)
* 용어
UMA
uniform memory access
the situation in which access to any RAM from any CPU takes the same amount of time(p.16)
NUMA
non-uniform memory access
with NUMA, some parts of memory may take longer to access than other parts, creating a performance penalty.