Coding, Filming, and Nothing
article thumbnail

1. 

Computer System Architecture

 

  • 종류)
    • Single processor sys
    • Multi-processor sys
    • Clustered sys

 

#필기

  1. 보통 CPU = processor의 개념이 있음
  2. 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(기타 주변의)을 가지고 있음
  • 대게, 멀티프로세서 시스템은 멀티코어 시스템을 내포하기도 함 
    • 코어 : 지역적으로 레지스터에 데이터를 저장하고, 명령어를 실행하는 컴포넌트 

 

#필기

  1. 멀티프로세서에서 중요한 점은 Clustered sys와 구분을 지어한다.
    ex) 한 컴퓨터에 2개의 프로세서를 가지고 있는 것과 두개의 컴퓨터가 합쳐져 있는 것을 어떻게 구분할 것인가?
  2. "컴퓨터 한 대"의 기준은 중요한 구성 요소를 한 개 소유/공유 하고 있다
    ex) BUS, CPU clk, memory space(with bus, 개념적), other devices 

 

4.

Multi-Processor 종류 

Symmetric(위) / Asymmetirc(아래)

  • Symmetric multiprocessing(SMP)
    • 모든 프로세서가 동등한 것(보통의 경우)
  • Asymmetric multiprocesing
    • Master-Salve의 관계
      -> 마스터가 스케쥴을 구성하고 노예(...)들에게 일을 할당시킨다. 

 

#필기 

  1. Symmetric은 대칭이란 뜻을 가지고 있는데, 이는 컴퓨터 내부에서는 동등하다는 뜻으로 통용됨 
  2. 또한, Asymmetric의 경우 중요하지 않은 어떤 일을 할 때만 slaves에게 Task를 배분해줌 

 

 

 

5.

NUMA System

  • Non-uniform memory access

#필기

  1. 한 프로세서에서 각각의 메모리마다 접근 시간이 다른 구조를 나타냄

 

 

 

 

6.

Multi-Processor Systems

멀티 프로세서 시스템의 장점

  • Increased throughput
    • N개의 프로세서 -> N배의 속도 증가(이상적인 것으로, 실제로는 오버헤드 덕에 더 느리다)
    • 성능 향상이 병렬화와 연관이 되어 있음
  • 경제적인 스케일 (<-> 클러스터 시스템과의 비교)
    • 메모리와 그 외 주변 장치들이 공유가 가능한 장점

 

#필기

  1. 멀티프로세서의 성능향상은 일처리의 양을 증가시킴으로 성능향상이 일어나는 것이다. 이것은 일처리 속도를 증가시키는 것이 아니다. 즉 단위 시간 동안 처리할 수 있는 "양"을 높인 것이다. 
  2. 때문에 성능 향상 자체는 병렬처리가 가능한 일과 병렬처리의 구조를 가졌을 때 나타난다.
  3. Throughput의 증가는 싱글코어 시스템 대비의 장점이고, 경제적인 스케일은 클러스터 시스템 대비 장점이다. 

 

7.

클러스터 시스템 

같이 일하는 다중시스템

  • Loosely coupled system을 의미하는데, 이는 독립적인 컴퓨터를 묶어놓은 것을 의미한다. 
  • 대부분 storage-area network를 통해 storage를 공유를 한다. 
    • SAN
       블록레벨의 데이터 저장소가 통합되어 엑세스를 제공하는 전용 네트워크 시스템 
      -> 호스트 들로 구성이 되어 있고, 저장장치 요소들을 스위칭 한다.
  • 일부는 distributed lock manager(DML)이 있어 동시쓰기의 충돌을 방지한다. 

 

#필기

  1. Q.  그냥 컴퓨터 2대를 붙여놓은 것과 클러스터 시스템을 어떻게 구분할 것인가?
    A. 클러스터 시스템은 반드시 공유를 해야한다. 즉, 공통적인 무언가가 있어야 클러스터 시스템이라고 할 수 있는데, 보통 데이터를 공유한다. 
  2. SAN에 각각의 컴퓨터가 동시에 쓰기작업을 수행하면 데이터 충돌의 문제가 발생하는데 이때 Locking 기술을 도입하여서 동시쓰기의 문제를 해결한다. 

 

8.

클러스터 시스템의 목적 

  • 높은 가용성(availability)를 실패 속에서도 제공을 해야한다. 
    • Asymmetric 클러스팅 방식이 있고, 해당 방식은 hot-standby mode라고도 한다.
    • Symmetric 클러스팅 방식도 있고, 해당 방식은 어플리케이션을 다중 노드에서 돌리고, 각각이 서로 모니터링을 수행한다.
    • 신뢰성(reliability)의 증가
      • Graceful degradation 
         살아남은 하드웨어들로 서비스를 계속할 수 있는 능력(글이 뭔가 애매함.. 필기 참고)
      • Fault tolerant
         죽어버리는 이벤트가 발생하면, 나머지 시스템들이 그를 나누어서 서비스를 지속함 
  • 일부 클러스터 시스템은 고성능 계산을 목적으로 존재한다.
    • 물론, 어플리케이션은 반드시 병렬화를 사용해서 작성되어야 한다.

 

#필기

  1. 클러스터 시스템의 대부분은 빠른 속도보다 중요하게 생각하는 것이 안정성이다.
    ex) 죽지 않는 시스템 -> 여러 대의 시스템을 준비하고 각 시스템을 교대가 가능하게 구성을 한다. 
  2. 가용성(availability)라는 것은 컴퓨터 혹은 시스템이 계속해서 서비스 되고 있는 정도를 말한다. 즉 시스템이 안전하다고 할 수 있는 지표를 나타낸다. 
  3. Asymmetric 동작의 예는, 메인서버가 서비스를 지속하고 나머지는 메인서버를 모니터링을 한다. 메인서버가 실패이벤트로 죽어버리면 그때 모니터링하고 있었던 다른 서버가 교대를 수행한다. 
  4. Symmetric 동작은 asym 에서 놀고 있는 시스템의 효율을 높이기 위하혀어 생성되었다. 하나의 서비스를 여러대가 나누어서 하며, 어떠한 한 서버가 죽어버리면 그 늘어난 일만큼 다시 나누어 일을 한다. symmetric에는 어떠한 워크로드를 분배해주는 리퀘스트 분배 서버가 따로 존재한다. 
  5. reliability가 고려되지 않으면, 하나가 죽어버리면 다른 시스템도 모두 죽어버리는 경우가 발생할 수 있다. 
  6. Graceful degradation은 모듈화로 인해서 모듈만 고장나면, 나머지는 정상적으로 동작을 수행하는 것이다.
  7. Fault tolerant는 모듈화와 동시에 어떠한 한 모듈이 죽어버리면 죽은 모듈의 몫도 일을 나눠서 하는 방식이다.
  8. 고성능 클라우드 시스템 같은 경우에는 어떻게든 병렬처리를 통해 한가지의 일보다는 여러개의 작업을 동시에 하는데 초점이 맞춰져 있다.

 

profile

Coding, Filming, and Nothing

@_안쑤

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!