WIPIVERSE

분산 운영체제

분산 운영체제(Distributed Operating System, DOS)는 네트워크로 연결되어 통신하며 물리적으로 분리된 계산 노드(컴퓨터)들의 집합 위에서 동작하는 시스템 소프트웨어이다. 여러 개의 CPU가 협력하여 작업을 처리하며, 각 개별 노드는 전체 통합 운영체제의 특정 소프트웨어 하위 집합을 보유한다. 사용자와 응용 프로그램의 관점에서는 여러 노드로 구성되어 있음에도 불구하고 하나의 단일 컴퓨터처럼 인식된다. 이러한 특성을 투명성(transparency) 또는 단일 시스템 이미지(single system image)라고 부른다.

구조

분산 운영체제의 각 노드는 두 가지 계층으로 구성된다. 첫째는 해당 노드의 하드웨어를 직접 제어하는 마이크로커널(microkernel)로, 최소한의 주소 공간 관리, 스레드 관리, 프로세스 간 통신(IPC) 기능을 제공한다. 둘째는 노드의 개별 활동과 공동 활동을 조정하는 상위 수준의 시스템 관리 구성 요소 모음이다. 이 구성 요소들은 마이크로커널의 기능을 추상화하고 사용자 응용 프로그램을 지원한다. 이러한 구조는 "메커니즘(무엇이 수행되는지)과 정책(어떻게 수행되는지)의 분리"를 가능하게 하여 유연성과 확장성을 향상시킨다.

주요 설계 고려 사항

분산 운영체제는 다음과 같은 설계 요소를 고려한다.

  • 투명성: 위치 투명성, 접근 투명성, 마이그레이션 투명성, 복제 투명성, 동시성 투명성, 장애 투명성, 성능 투명성, 규모 투명성 등 여러 영역에서 사용자가 분산 환경의 세부 사항을 인식하지 못하도록 한다.
  • 프로세스 간 통신(IPC): 노드 내부 및 노드 간 통신을 위한 저수준 메커니즘을 제공한다.
  • 프로세스 관리: 분산 프로세스 간의 자원 공유를 위한 정책과 메커니즘을 제공하며, 부하 균형(load balancing) 등의 기능을 수행한다.
  • 자원 관리: 메모리, 파일, 장치 등 시스템 자원을 노드 전체에 분산하여 관리한다.
  • 신뢰성(Reliability): 장애 회피(fault avoidance), 장애 허용(fault tolerance), 장애 탐지 및 복구 기능을 통해 시스템의 신뢰성을 확보한다.
  • 가용성(Availability): 시스템이 요청에 응답할 수 있는 시간의 비율을 높게 유지한다.
  • 동기화(Synchronization): 협력하는 동시 프로세스들 간의 올바른 실행 순서와 일관성을 보장한다.

역사

분산 운영체제에 대한 연구와 실험은 1970년대부터 본격적으로 시작되어 1990년대까지 이어졌으며, 관심은 1980년대 후반에 가장 집중되었다. 그러나 상업적으로 성공한 구현은 매우 드물었다.

초기 분산 컴퓨팅 개념의 선구적 구현은 1950년대 초반으로 거슬러 올라간다. 1954년 미국 국립표준국(NBS)의 연구자 앨런 라이너(Alan L. Leiner)가 발표한 DYSEAC는 최초의 분산 제어 컴퓨터 중 하나로, 여러 컴퓨터가 상호 협력하여 공동 작업을 수행할 수 있는 구조를 제시하였다. 같은 시기 링컨 TX-2는 모듈식 설계와 다중 프로그래밍을 지원하는 실험적 입출력 시스템이었다.

1970~1980년대에는 Amoeba(1974), Sprite(1985) 등의 프로젝트에서 프로세스와 파일 시스템을 네트워크 전역에 걸쳐 투명하게 제공하는 것을 목표로 한 연구가 진행되었다. 1990년대에는 벨 연구소의 Plan 9 from Bell Labs와 Inferno가 등장하면서 분산 운영체제의 설계 원칙이 보다 체계화되었다. 이후 멀티프로세서 및 멀티코어 프로세서 시스템의 확산과 함께 분산 운영체제 개념에 대한 관심이 다시 증가하였다.

대표적인 예시

  • Amoeba: 네덜란드 암스테르담 자유 대학교(Vrije Universiteit)에서 앤드루 타넨바움(Andrew S. Tanenbaum)이 주도하여 개발한 분산 운영체제.
  • Plan 9 from Bell Labs: 벨 연구소에서 1980년대 중반부터 2002년까지 유닉스 연구의 후속으로 개발된 분산 운영체제.
  • Inferno: Plan 9의 설계 원칙을 계승한 분산 운영체제.
  • MINIX: 타넨바움이 교육용으로 개발한 운영체제로, 분산 운영체제 연구에도 활용되었다.
  • ChorusOS: 마이크로커널 기반의 분산 운영체제.
  • HarmonyOS: 화웨이(Huawei)가 개발한 분산 운영체제.
  • OpenHarmony: 오픈소스 분산 운영체제 프로젝트.

한계와 과제

분산 운영체제는 본질적으로 매우 높은 복잡성을 수반한다. 설계와 개발의 초기 단계에서부터 전체 아키텍처와 설계 세부 사항에 대한 깊은 이해가 요구되며, 다양한 설계 고려 사항들이 서로에게 중대한 영향을 미칠 수 있다. 이러한 복잡성으로 인해 상업적 성공 사례는 제한적이며, 대부분의 구현은 연구 목적에 머물렀다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기