본문 바로가기
CS 지식/분산시스템과 컴퓨팅

분산시스템의 아키텍처와 운영체제의 종류

by 코딩하는 동현 2025. 3. 16.

분산 시스템을 구축하는 이유

  1. 리소스 공유 (Resource Sharing)
    • 여러 사용자가 하나의 자원을 공유하여 활용 가능
    • 예: 네트워크 프린터, 파일 공유 시스템
  2. 컴퓨테이션 속도 향상 (Computation Speed Up)
    • 여러 노드에서 병렬로 작업을 수행하여 성능 향상
    • 예: 분산 컴퓨팅, 클러스터 시스템, 병렬 처리
  3. 안정성 (Reliability)
    • 중요한 데이터를 여러 곳에 복제하여 장애 발생 시 복구 가능
    • 예: 데이터센터 내 복제본 저장, MBC M드라이브와 같이 죽으면 안되는 시스템들
  4. 소통 (Communication)
    • 여러 노드 간의 효율적인 데이터 교환 및 협업 가능
    • 예: P2P 네트워크, 분산 메시징 시스템

분산 시스템의 목표 (Goals of Distributed Systems)

  1. 이질성 (Heterogeneity)
    • 서로 다른 회사 및 운영체제 간 표준화가 되어 있지 않음
    • 예: IoT, 항공기 시스템 등 SoS(System of Systems) 환경에서 중요
  2. 투명성 (Transparency)
    • 사용자의 편리성을 위해 네트워크 구조를 감춤
    • 예: 각기 다른 IP를 사용하지 않고 하나의 시스템처럼 동작
  3. 재사용성 (Reusability)
    • 반복적으로 사용되는 기능을 미들웨어로 제공
    • 예: AUTOSAR와 같은 표준화된 미들웨어 사용
  4. 개방성 (Openness)
    • 표준 컴포넌트를 만들어 다양한 환경에서 활용 가능하게 함
  5. 동시성 (Concurrency)
    • 여러 사용자가 동시에 시스템을 사용할 수 있도록 지원
  6. 보안 (Security)
    • 데이터 보호 및 인증을 통해 안전한 시스템 운영 보장
  7. 확장성 (Scalability)
    • 시스템 규모를 유연하게 확장할 수 있도록 설계
  8. 장애 복원력 (Resilience to Failure)
    • 장애 발생 시에도 정상적인 서비스 제공 가능
    • 예: 이중화, 복구 메커니즘 활용

분산 시스템의 정의

“A collection of independent network computers that appears to its users as a single coherent system.”

(사용자에게 하나의 일관된 시스템처럼 보이지만, 독립적인 네트워크 컴퓨터들의 모음)

두 가지 측면

  1. 하드웨어 측면 (Hardware Aspect)
    • 각 기기는 독립적인 컴퓨터 (Autonomous Machines)
  2. 소프트웨어 측면 (Software Aspect)
    • 단일 시스템 이미지 (Single System Image) 제공

자율성에서의 도전 과제

  1. 여러 개의 독립적인 컴퓨터가 네트워크로 연결됨
  2. 공유 메모리 또는 공통된 클럭(CPU)이 없음
  3. 메시지 전달(Message Passing)을 통한 프로세서 간 통신
  4. 각 컴퓨터가 자체 메모리를 가지고 있으며 자체 운영체제를 실행

결합도의 정도

하드웨어 개념에서의 결합도

  • 인트라프로세스(Intraprocess) 통신인터프로세스(Interprocess) 통신 속도가 비슷하면 결합도가 높음 (Tightly Coupled)
  • 두 속도의 차이가 크면 결합도가 낮음 (Loosely Coupled)

인트라프로세스(Intraprocess) vs 인터프로세스(Interprocess) 통신

  1. 인트라프로세스(Intraprocess) 통신
    • 하나의 프로세스 내에서 이루어지는 통신
    • 같은 주소 공간을 공유하므로 메모리 접근 속도가 빠름
    • 예: 함수 호출, 스레드 간 통신 (Shared Memory, Semaphore 등)
  2. 인터프로세스(Interprocess) 통신
    • 서로 다른 프로세스 간의 통신
    • 주소 공간이 다르므로 별도의 데이터 교환 메커니즘이 필요
    • 예: 메시지 큐(Message Queue), 소켓(Socket), 파이프(Pipe)

결합도의 분류

  1. 강한 결합 (Tightly Coupled)
    • 프로세서 간 통신 오버헤드가 프로세서 내부 통신 시간과 비슷한 수준
    • 빠른 데이터 교환 가능
    • 예: 멀티프로세서 시스템(공유 메모리를 이용한 병렬 처리)
  2. 약한 결합 (Loosely Coupled)
    • 프로세서 간 통신 오버헤드가 매우 큼
    • 독립적인 시스템으로 동작하며, 메시지 전달을 통한 통신이 필요
    • 예: 분산 시스템(네트워크를 통한 메시지 전달)

분산 시스템을 위한 컴퓨터 아키텍처의 종류

멀티프로세서 (Multiprocessors)

  1. 버스 기반 멀티프로세서 (Bus-based Multiprocessor)
    • 여러 프로세서가 하나의 공용 버스를 통해 메모리에 접근하는 구조
  2. 크로스바 스위치 (Crossbar Switch)
    • 다수의 프로세서와 메모리 모듈을 연결하는 스위치
    • 데이터 충돌을 방지하고 동시 접근을 가능하게 함
  3. 오메가 스위칭 네트워크 (Omega Switching Network)
    • 다단계 스위칭 네트워크를 활용하여 프로세서 간 연결을 최적화

버스 기반 멀티프로세서
크로스바 스위치
오메가 스위치 네트워크


동질 멀티컴퓨터 시스템 (Homogeneous Multicomputer Systems)

  1. 그리드 (Grid, 2D Mesh)
    • 프로세서가 2차원 격자 형태로 연결된 구조
    • 인접한 노드 간의 데이터 교환이 용이
  2. 하이퍼큐브 (Hypercube)
    • 각 노드가 다차원 공간에서 여러 다른 노드와 연결된 구조
    • 높은 확장성과 낮은 통신 지연을 제공

그리드 방식이 더욱 효율적이라고 결론지어졌다.


단일 시스템 이미지에서의 도전 과제

  • 단일 시스템 이미지를 제공하기 위해 미들웨어가 애플리케이션과 API를 통해 통신
  • 분산된 환경에서도 사용자가 하나의 시스템처럼 인식할 수 있도록 유지하는 것이 핵심

분산 시스템에서의 투명성

  • 분산 시스템에서 제공해야 하는 다양한 형태의 투명성
  • 사용자는 시스템이 분산되어 있다는 사실을 인지하지 않고 사용할 수 있어야 함
투명성 유형 설명
접근 투명성 (Access) 데이터 표현 방식과 자원 접근 방식의 차이를 숨김
위치 투명성 (Location) 자원이 어디에 위치하는지 숨김
이동 투명성 (Migration) 자원이 다른 위치로 이동할 수 있음을 숨김
재배치 투명성 (Relocation) 사용 중에도 자원이 다른 위치로 이동할 수 있음을 숨김
복제 투명성 (Replication) 자원이 여러 사용자에게 공유될 수 있음을 숨김
동시성 투명성 (Concurrency) 자원이 여러 경쟁 사용자에게 공유될 수 있음을 숨김
장애 투명성 (Failure) 자원의 장애 및 복구 과정을 숨김
지속성 투명성 (Persistence) 자원이 메모리에 있는지 또는 영구 저장되는지 숨김

소프트웨어 관점에서의 결합도의 정도

강한 결합 (Tightly Coupled)

  • 글로벌 정보를 활용하며 중앙 집중적인 소프트웨어 아키텍처
  • 마스터-슬레이브(Master-Slave) 방식으로 운영
  • 예: 하둡(Hadoop)처럼 계층적 구조를 가짐
  • 중앙 제어 소프트웨어가 전체 시스템을 관리

약한 결합 (Loosely Coupled)

  • P2P(Peer-to-Peer)처럼 계층 구조 없이 평등한(flat) 구조
  • 각 노드가 독립적으로 운영되며, 중앙 제어 없이 자율적으로 통신
  • 글로벌 정보 공유가 적고, 개별 노드의 자율성이 높음

HW, SW의 결합도의 정도에 따른 분류

오른쪽으로 갈수록 결합도(coupling)의 종류가 줄어든다.


분산 시스템을 위한 운영체제의 종류

  1. 분산 운영체제 (Distributed Operating System, DOS)
    • 하드웨어 리소스를 추상화하여 사용자에게 단일 시스템처럼 보이도록 함
  2. 네트워크 운영체제 (Network Operating System, NOS)
    • 네트워크에 연결된 독립적인 시스템 간에 프린터 및 파일 등의 자원을 공유
  3. 미들웨어 기반 시스템 (Middleware-based System)
    • 하둡(Hadoop)과 같은 미들웨어를 통해 분산 환경에서 효율적인 데이터 처리 제공

단일 프로세서 운영체제 (Uniprocessor Operating Systems)

1세대 운영체제 (1960-1970)

  • 중앙 집중식 운영체제 (Centralized OS)
  • 목표: 자원 관리, 가상 머신 개념 도입 (Extended Machine, Virtuality)
  • 특징: 프로세스 관리, 메모리 관리, 입출력 관리, 파일 시스템 관리

네트워크 운영체제 (Network Operating System, NOS)

  • 네트워크가 운영체제의 커널 레벨에서 동작하며 독립된 네트워크 시스템을 유지
  • 프린터 및 네트워크 리소스를 공유 가능
  • 이기종 시스템(heterogeneous systems)에서도 운영 가능

2세대 운영체제 (1980년대)

  • 목표: 네트워크 환경에서 자원 공유 (Interoperability)
  • 특징:
    • 리소스 접근 (Resource Access)
    • 정보 교환 (Information Exchange)
    • 네트워크 브라우징 (Network Browsing)

클라이언트/서버 모델 (Client/Server)

  • 네트워크 운영체제에서 클라이언트-서버 방식으로 서비스 제공
  • 예: FTP 프로토콜을 이용한 파일 리소스 공유

원격 마운트 (Remote Mount)

  • 글로벌 파일 시스템 개념을 도입하여 네트워크 내에서 파일 시스템을 공유
  • 각 클라이언트가 서버의 파일 시스템을 서로 다른 경로에 마운트 가능
  • 파일 시스템을 하나로 묶는 유니온 마운트(Union Mount) 개념 적용


분산 운영체제 (Distributed Operating Systems, DOS)

  • 일반적인 구조: 모든 시스템이 동일한 유형(homogeneous)으로 구성됨
  • 목표: 여러 개의 컴퓨터 시스템을 하나의 단일 컴퓨터처럼 보이도록 제공

3세대 운영체제 (1990년대)

  • 네트워크 운영체제(Network OS)
  • 목표: 다수의 컴퓨터 시스템을 하나의 단일 컴퓨터처럼 보이게 함 (Single Computer View)
  • 특징:
    • 전역 파일 시스템(Global View of File System)
    • 단일 네임스페이스(Single Name Space)
    • 시간 동기화(Time Synchronization)
    • 확장 가능한 연산 능력(Scalable Computational Power)
    • 보안(Security)

최적의 해결책?

  • DOS: 시스템 유형이 동일해야 하므로 유연성이 부족함
  • NOS: 최소한의 공통 기능만 제공하므로 기능이 제한적이며 다양성이 너무 큼
  • 미들웨어(Middleware): 두 운영체제의 장점을 결합한 최적의 절충안

미들웨어의 역할

  • NOS + 추가 소프트웨어 계층
  • NOS의 기본 기능에 미들웨어를 추가하여 이기종 시스템 간의 상호 운용성을 높임

미들웨어의 위치

  • 분산 시스템에서 미들웨어는 애플리케이션과 운영체제 사이에 위치
  • 다양한 하드웨어 및 운영체제 환경에서 애플리케이션이 원활하게 동작할 수 있도록 지원

미들웨어와 개방성 (Openness)

  • 개방형 미들웨어 기반 분산 시스템에서는 모든 미들웨어 계층이 동일한 프로토콜을 사용해야 함
  • 애플리케이션에 제공하는 인터페이스도 동일해야 함
  • 이는 네트워크 운영체제(NOS)에서 사용하는 소켓 API보다 훨씬 높은 수준의 추상화 제공

DOS, NOS, 미들웨어 기반 운영체제 비교

 

비고 특징 멀티프로세서 DOS
(Multiprocessor OS) 
멀티컴퓨터 DOS
(Multicomputer OS) 
네트워크 NOS
(Network OS) 
미들웨어 기반 DS
(Middleware-based DS)
투명성 정도 매우 높음 (Very High) 높음 (High) 낮음 (Low) 높음 (High)
모든 노드에서 동일한 OS 사용 예 (Yes) 예 (Yes) 아니오 (No) 아니오 (No)
OS 복사본 개수 1 N N N
통신 방식 공유 메모리 (Shared Memory) 메시지 전달 (Messages) 파일 기반 (Files) 특정 모델 기반 (Model Specific)
자원 관리 글로벌, 중앙 집중식 관리 글로벌, 분산 관리 개별 노드에서 관리 개별 노드에서 관리
확장성 없음 (No) 중간 (Moderately) 높음 (Yes) 상황에 따라 다름 (Varies)
개방성 폐쇄형 (Closed) 폐쇄형 (Closed) 개방형 (Open) 개방형 (Open)

 

반응형

댓글