1.
Computer System Architecture
- 종류)
- Single processor sys
- Multi-processor sys
- Clustered sys
#필기
- 보통 CPU = processor의 개념이 있음
- Q.Multi core processor는 어디에 해당하는가?
-> Multi processor에 해당.
2.
Single-Processor system
(교수님께서도 저렴하고, 단순하다 정도로 뭐가 좋은지 잘 모르겠다라고 말씀하시면서 건너 뛰심)
3.
Multi-Processor Systems

- 2개 혹은 그 이상의 프로세서들이 close communication을 갖는 것
- Tightly-coupled sys라고 부르기도 한다. 이들은 shared bus, clock, memory, peripheral(기타 주변의)을 가지고 있음
- 대게, 멀티프로세서 시스템은 멀티코어 시스템을 내포하기도 함
- 코어 : 지역적으로 레지스터에 데이터를 저장하고, 명령어를 실행하는 컴포넌트
#필기
- 멀티프로세서에서 중요한 점은 Clustered sys와 구분을 지어한다.
ex) 한 컴퓨터에 2개의 프로세서를 가지고 있는 것과 두개의 컴퓨터가 합쳐져 있는 것을 어떻게 구분할 것인가? - "컴퓨터 한 대"의 기준은 중요한 구성 요소를 한 개 소유/공유 하고 있다
ex) BUS, CPU clk, memory space(with bus, 개념적), other devices
4.
Multi-Processor 종류

- Symmetric multiprocessing(SMP)
- 모든 프로세서가 동등한 것(보통의 경우)
- Asymmetric multiprocesing
- Master-Salve의 관계
-> 마스터가 스케쥴을 구성하고 노예(...)들에게 일을 할당시킨다.
- Master-Salve의 관계
#필기
- Symmetric은 대칭이란 뜻을 가지고 있는데, 이는 컴퓨터 내부에서는 동등하다는 뜻으로 통용됨
- 또한, Asymmetric의 경우 중요하지 않은 어떤 일을 할 때만 slaves에게 Task를 배분해줌
5.
NUMA System

- Non-uniform memory access
#필기
- 한 프로세서에서 각각의 메모리마다 접근 시간이 다른 구조를 나타냄
6.
Multi-Processor Systems
멀티 프로세서 시스템의 장점
- Increased throughput
- N개의 프로세서 -> N배의 속도 증가(이상적인 것으로, 실제로는 오버헤드 덕에 더 느리다)
- 성능 향상이 병렬화와 연관이 되어 있음
- 경제적인 스케일 (<-> 클러스터 시스템과의 비교)
- 메모리와 그 외 주변 장치들이 공유가 가능한 장점
#필기
- 멀티프로세서의 성능향상은 일처리의 양을 증가시킴으로 성능향상이 일어나는 것이다. 이것은 일처리 속도를 증가시키는 것이 아니다. 즉 단위 시간 동안 처리할 수 있는 "양"을 높인 것이다.
- 때문에 성능 향상 자체는 병렬처리가 가능한 일과 병렬처리의 구조를 가졌을 때 나타난다.
- Throughput의 증가는 싱글코어 시스템 대비의 장점이고, 경제적인 스케일은 클러스터 시스템 대비 장점이다.
7.
클러스터 시스템
같이 일하는 다중시스템

- Loosely coupled system을 의미하는데, 이는 독립적인 컴퓨터를 묶어놓은 것을 의미한다.
- 대부분 storage-area network를 통해 storage를 공유를 한다.
- SAN
블록레벨의 데이터 저장소가 통합되어 엑세스를 제공하는 전용 네트워크 시스템
-> 호스트 들로 구성이 되어 있고, 저장장치 요소들을 스위칭 한다.
- SAN
- 일부는 distributed lock manager(DML)이 있어 동시쓰기의 충돌을 방지한다.
#필기
- Q. 그냥 컴퓨터 2대를 붙여놓은 것과 클러스터 시스템을 어떻게 구분할 것인가?
A. 클러스터 시스템은 반드시 공유를 해야한다. 즉, 공통적인 무언가가 있어야 클러스터 시스템이라고 할 수 있는데, 보통 데이터를 공유한다. - SAN에 각각의 컴퓨터가 동시에 쓰기작업을 수행하면 데이터 충돌의 문제가 발생하는데 이때 Locking 기술을 도입하여서 동시쓰기의 문제를 해결한다.
8.
클러스터 시스템의 목적
- 높은 가용성(availability)를 실패 속에서도 제공을 해야한다.
- Asymmetric 클러스팅 방식이 있고, 해당 방식은 hot-standby mode라고도 한다.
- Symmetric 클러스팅 방식도 있고, 해당 방식은 어플리케이션을 다중 노드에서 돌리고, 각각이 서로 모니터링을 수행한다.
- 신뢰성(reliability)의 증가
- Graceful degradation
살아남은 하드웨어들로 서비스를 계속할 수 있는 능력(글이 뭔가 애매함.. 필기 참고) - Fault tolerant
죽어버리는 이벤트가 발생하면, 나머지 시스템들이 그를 나누어서 서비스를 지속함
- Graceful degradation
- 일부 클러스터 시스템은 고성능 계산을 목적으로 존재한다.
- 물론, 어플리케이션은 반드시 병렬화를 사용해서 작성되어야 한다.
#필기
- 클러스터 시스템의 대부분은 빠른 속도보다 중요하게 생각하는 것이 안정성이다.
ex) 죽지 않는 시스템 -> 여러 대의 시스템을 준비하고 각 시스템을 교대가 가능하게 구성을 한다. - 가용성(availability)라는 것은 컴퓨터 혹은 시스템이 계속해서 서비스 되고 있는 정도를 말한다. 즉 시스템이 안전하다고 할 수 있는 지표를 나타낸다.
- Asymmetric 동작의 예는, 메인서버가 서비스를 지속하고 나머지는 메인서버를 모니터링을 한다. 메인서버가 실패이벤트로 죽어버리면 그때 모니터링하고 있었던 다른 서버가 교대를 수행한다.
- Symmetric 동작은 asym 에서 놀고 있는 시스템의 효율을 높이기 위하혀어 생성되었다. 하나의 서비스를 여러대가 나누어서 하며, 어떠한 한 서버가 죽어버리면 그 늘어난 일만큼 다시 나누어 일을 한다. symmetric에는 어떠한 워크로드를 분배해주는 리퀘스트 분배 서버가 따로 존재한다.
- reliability가 고려되지 않으면, 하나가 죽어버리면 다른 시스템도 모두 죽어버리는 경우가 발생할 수 있다.
- Graceful degradation은 모듈화로 인해서 모듈만 고장나면, 나머지는 정상적으로 동작을 수행하는 것이다.
- Fault tolerant는 모듈화와 동시에 어떠한 한 모듈이 죽어버리면 죽은 모듈의 몫도 일을 나눠서 하는 방식이다.
- 고성능 클라우드 시스템 같은 경우에는 어떻게든 병렬처리를 통해 한가지의 일보다는 여러개의 작업을 동시에 하는데 초점이 맞춰져 있다.
'무제 메모장' 카테고리의 다른 글
1.5 Core components of OS (0) | 2021.04.11 |
---|---|
1.4 Operating System Structure and Operation (0) | 2021.04.11 |
1.1 Chain of Responsibility Pattern (0) | 2021.04.06 |
4.1 Socket Communication Test (0) | 2021.04.06 |
1.2 Computer system organization and operation (0) | 2021.03.16 |