컴퓨터 시스템 아키텍처

단일 프로세서 시스템

구조 개요

  • CPU 한 개가 메모리와 I/O 장치를 독점적으로 제어

  • 모든 프로그램이 CPU를 차례로 사용

  • 운영체제는 이 순차적 실행을 멀티프로그래밍과 **타임쉐어링(멀티태스킹)**으로 보이게 만들어, 마치 여러 프로그램이 동시에 실행되는 것처럼 사용자에게 투명하게 제공

운영체제 과제

  • 스케줄링: 어떤 프로세스에 CPU를 언제, 얼마나 할당할 것인가

  • 컨텍스트 스위칭: 프로세스 전환 시 레지스터·프로그램 카운터 등 상태 저장과 복원

  • 응답성: 대화형 시스템의 반응 지연 최소화


대칭형 다중 프로세서

구조 개요

  • **여러 개의 CPU(코어)**가 단일 메모리 영역을 공유

  • 모든 CPU가 동등한 권한으로 운영체제 코드와 사용자 코드를 실행

  • 메모리 접근·I/O 제어도 모든 CPU에서 동일하게 수행 가능

운영체제 과제와 기회

  • 병렬성 극대화: CPU 간 작업 분배 및 부하 균형(load balancing)

  • 동기화: 공유 자원(메모리, I/O 장치)에 대한 상호 배제(Mutex), 세마포어, 모니터

  • 캐시 일관성: 각 CPU의 로컬 캐시 간 데이터 동기화(Coherence Protocols, MESI 등)

  • 스케줄링: 다중 큐, CPU Affinity(특정 코어 고정)


비대칭형 다중 프로세서

구조 개요

  • 마스터/슬레이브 구조로, 특정 CPU(마스터)가 운영체제 핵심 기능(스케줄러, 인터럽트 처리 등)을 담당

  • 나머지 CPU(슬레이브)는 사용자 프로세스 실행 전용

  • 임베디드 시스템이나 실시간 OS에서 채택

운영체제 과제

  • 마스터 병목: 마스터 CPU 과부하 방지

  • 통신 오버헤드: 마스터↔슬레이브 간 메시지 교환

  • 신뢰성: 마스터 장애 시 대체 메커니즘


비균일 메모리 접근

구조 개요

  • CPU마다 자기 전용 메모리 뱅크를 갖고, 다른 CPU 뱅크는 느리게 접근

  • 대형 서버·워크스테이션에서 메모리 대역폭 확장 목적

운영체제 과제

  • 메모리 배치 최적화: 프로세스가 주로 접근하는 데이터를 해당 CPU 가까운 메모리 뱅크에 배치

  • 부하 분산: 메모리 접근 패턴 분석 후 스케줄링 조정

  • 글로벌 vs 로컬 스케줄링: CPU 전체 자원 조율


클러스터

구조 개요

  • 독립적인 다수의 노드(서버)를 네트워크로 연결

  • 각 노드가 자체 CPU·메모리·I/O를 가지며, 전체가 하나의 대형 시스템처럼 동작

운영체제 과제

  • 노드 간 통신: 메시지 패싱(MPI), 원격 프로시저 호출(RPC)

  • 분산 파일 시스템: 데이터 일관성·중복 저장(GFS, HDFS 등)

  • 자원 스케줄링: 클러스터 전체 작업 분산, 장애 복구(Failover)

  • 확장성·가용성: 노드 추가/삭제의 투명성


아키텍처별 운영체제 설계 시 고려사항

아키텍처
장점
단점 및 과제

단일 프로세서

설계 단순, 자원 관리 복잡도 낮음

멀티프로그래밍·스케줄링 오버헤드 필요

SMP

진정한 병렬 처리, 신뢰성↑

동기화·캐시 일관성 오버헤드, 스케줄링 복잡

AMP

실시간·임베디드에 유리, 제어 집중화

단일 마스터 병목, 확장성 제한

NUMA

대용량 메모리 시스템에 최적화

메모리 배치 최적화·부하 균형 어려움

클러스터

무한 확장성, 높은 가용성

네트워크 병목, 분산 관리 복잡

Last updated