본문 바로가기

공부 기록/OS

[OS/공룡책] Chapter 1. 서론 - 컴퓨터 시스템 구조

컴퓨터 시스템 구조

단일 처리기 시스템

- 코어는 명령을 실행하고 로컬로 데이터를 저장하기 위한 레지스터를 포함하는 구성요소이다.

- 코어를 가진 하나의 메인 CPU는 프로세스의 명령어를 포함하여 범용 명령어 세트를 실행할 수 있다.

- 단일 처리 코어를 가진 범용 CPU가 하나만 있는 경우 시스템은 단일 프로세서 시스템이다.

다중 처리기 시스템

- 일반적으로 각각 단일 코어 CPU가 있는 두 개 이상의 프로세서가 있다.

- 주요 장점은 처리량 증가 => 그러나 N 프로세서의 속도 향상 비율은 N이 아니다. => 오버헤드가 발생하므로

- 가장 일반적인 다중 처리기 시스템은 각 피어 CPU 프로세서가 운영체제 기능 및 사용자 프로세스를 포함한 모든 작업을 수행하는 SMP(Symmetric multiprocessing)를 사용한다. => 각 CPU가 독립적이기 때문에 하나는 유휴 상태이고 다른 하나는 과부하가 걸려 비효율적일 수 있다. => 프로세서가 특정 자료구조를 공유하는 형식의 시스템을 사용하면 다양한 프로세서 간에 동적으로 메모리와 같은 자원을 공유할 수 있으며 프로세서 간의 작업 부하 분산을 낮출 수 있다.

- 다중 코어 시스템은 단일 코어를 가지는 여러 칩보다 효율적일 수 있으며(칩 내 통신이 칩 간 통신보다 빠름), 훨씬 적은 전력을 사용한다.

 

컴퓨터 시스템 구성요소의 정의

- CPU : 명령을 실행하는 하드웨어

- 프로세서 : 하나 이상의 CPU를 포함하는 물리적 칩

- 코어 : CPU의 기본 계산 단위

- 다중 코어 : 동일한 CPU에 여러 컴퓨팅 코어를 포함함

- 다중 처리기 : 여러 프로세서를 포함함

 

-  NUMA(Non-uniform memory access) : 각 CPU(또는 CPU 그룹(에 작고 빠른 로컬 버스를 통해 액세스되는 자체 로컬 메모리를 제공한다. 모든 CPU가 공유 시스템 연결로 연결되어 하나의 물리 주소 공간을 공유한다. 더 많은 프로세서가 추가될수록 더 효과적으로 확장할 수 있다.

- 블레이드 서버 : 다수의 처리기 보드 및 입출력 보드, 네트워킹 보드들이 하나의 섀시 안에 장착되는 형태를 가진다. 근본적으로 여러 독립적인 다중 처리기 시스템으로 구성된다.

 

클러스터형 시스템

- 클러스터 시스템은 둘 이상의 독자적 시스템 또는 노드들을 연결하여 구성한다.

- 클러스터 컴퓨터는 저장장치를 공유하고 근거리 통신망(LAN)이나 InfiniBand와 같은 고속의 상호 연결망으로 연결된다.

- 클러스터링은 통상 높은 가용성을 제공하기 위해 사용된다.

- 우아한 성능 저하 : 남아 있는 하드웨어 수준에 비례하여 서비스를 계속 제공하는 기능. 결함허용 시스템

 

- 비대칭형 클러스터링 : 다른 컴퓨터들이 응용 프로그램을 실행하는 동안 한 컴퓨터는 긴급 대기 모드, 활성 서버들을 감시

- 대칭형 클러스터링 : 둘 이상의 호스트들이 응용 프로그램을 실행하고 서로를 감시 => 가용한 하드웨어를 모두 사용하기 때문에 더 효율적

 

- 병렬 클러스터 : 여러 호스트가 공유 저장장치 상의 동일한 데이터에 접근할 수 있게 한다.

- 분산 잠금 관리자(DLM) : 접근 간의 충돌이 발생하지 않는 것을 보장하기 위하여 접근 제어와 잠금 기법을 제공

- 스토리지 전용 네트워크(SAN)에 의해 어떤 클러스터 제품은 수 킬로미터 떨어진 클러스터 노드들 뿐만 아니라 한 클러스터 안에서 수천 개의 노드를 지원한다.