본문 바로가기
Computer Science/컴퓨터 구조

[컴퓨터 구조] 추가지식2) SMP, 클러스터, NUMA, 클라우드 컴퓨팅

by 클레어몬트 2024. 3. 2.

[병렬 프로세서 시스템의 유형]

- 단일 명령어 + 단일 데이터 스트림: SISD(Single Instruction Single Data) - 단일 프로세서

- 단일 명령어 + 다중 데이터 스트림: SIMD(Single Instruction Multiple Data) - 벡터, 배열 프로세서

- 다중 명령어 + 단일 데이터 스트림: MISD(Multiple Instruction Single Data) - 거의 사용 x

- 다중 명령어 + 다중 데이터 스트림: MIMD(Multiple Instruction Multiple Data) - 메모리 공유: SMP, NUMA 시스템 / 분산된 메모리: 클러스터

 

 

thread: segment of process

task: Linux에서 칭하는 process 또는 thread

job: task가 모인 집합체

 

 

ㅇSMP(Symmetric Multi Processing): 여러 개의 프로세서가 하나의 공유된 메모리를 사용

 

다수의 프로세서를 하나의 운영체제의 관리하에 두고 두 개 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처. 각 프로세서에 개별 레지스터 또는 개별 캐시가 존재하며 메인 메모리는 시스템 버스를 통해 공유한다

한 번의 한 개의 프로세서만이 메모리에 접근할 수 있다. 보통 2개 또는 4개 정도의 프로세서를 쓰는 작은 서버는 이런 구조로 동작한다

(멀티코어 프로세서와는 다르다, 멀티코어 프로세서는 어쨌든 하나의 CPU 내에서 연산이 이뤄지기 때문이다)

 

SMP -> Multicore -> Many-core

 

 

 

ㅇ클러스터(cluster): 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합

이때 클러스터의 각 컴퓨터들을 노드(node)라 부른다

(42서울에서는 컴퓨터가 모여있는 공간을 클러스터라 칭한다)

 

 

 

 

SMP에서 프로세서를 너무 많이 추가하면 시스템 버스에서 병목 현상이 일어나 성능이 저하된다 이를 해결하기 위해 각각의 프로세서에 자체 메모리를 두는 NUMA가 고려되었다 (SMP와 클러스터의 대안)

ㅇNUMA(Non-uniform memory access): 불균일 기억장치 액세스

 

NUMA는 모든 프로세서가 공유 시스템으로 연결되어 있으면서 각각의 프로세서가 로컬 메모리를 가지는 컴퓨터 아키텍처이다

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

ㅇ클라우드 컴퓨팅 - 3가지 서비스 모델

미국의 표준기술연구소인 NIST(National Institute of Standards and Technology)가 정의한 3가지 서비스 모델

 

①SaaS(Software as a Service)

소프트웨어 서비스 제공 e.g. slack, Google Docs

 

+ STaaS(STorage as a Service): 스토리지 서비스 제공 e.g. iCloud, Onedrive, 드롭박스

(STaaS는 OTT 구상의 핵심 기술)

 

②PaaS(Platform as a Service)

플랫폼 서비스(API) 제공 e.g. 구글 colab, Firebase

 

③IaaS(Infrastructure as a Service)

가상화된 컴퓨팅 리소스 인프라 서비스 제공(가상머신, 스토리지, 네트워크, 운영 체제 등을 관리) e.g. AWS, Microsoft Azure, GCP(Google Cloud Platform)

 

 

 

 

 

 

 

 

 

 

참고 및 출처: 컴퓨터시스템구조론(William Stallings), Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham)