2 분 소요

1. 분산 운영체제 개요

분산 시스템

분산 시스템이란, 통신 네트워크를 통해 서로 약하게 결합된 프로세서들의 집합이다. 각 프로세서는 메모리와 클럭을 공유하지 않는다. 또한 각 프로세서는 자신의 로컬 메모리를 가지며 LAN 또는 WAN과 같은 네트워크를 통해 통신한다. 분산 시스템 내에 하나의 프로세서의 관점에서 자신이 가지고 있는 자원을 로컬이라고 하고, 그 프로세서 외의 나머지 프로세서들과 그들의 자원을 원격이라고 한다.

분산 시스템 내의 프로세서들은 시스템 환경에 따라 사이트, 노드, 컴퓨터, 기계, 호스트 등 여러 용어로 불린다. 프로세서의 위치를 강조하기 위해 사이트 라는 용어를 사용하며, 사이트에 있는 특정 시스템을 나타내기 위해 호스트 라는 용어를 사용한다. 또한 한 사이트의 호스트 자원을 다른 사이트가 사용한다고 할 때 자원을 가진쪽을 서버라고 하며, 그 자원을 이용하는 쪽을 클라이언트, 혹은 사용자 라고 한다.

분산 시스템의 개괄적 구축 모델

분산 시스템을 구축하는 목적은 일반적으로 다음과 같다.

  • 자원 공유
  • 연산속도 향상
  • 신뢰성 향상
  • 통신의 용이성

분산 시스템의 네트워크 구성은 물리적 형태에 따라 다양한 연결 방법이 존재한다. 또한 각 노드끼리 간선의 구성 형태에 따라 구축비용, 통신비용, 가용성이 각각 달라진다. 구축비용은 말 그대로 사이트들이 얼마나 물리적으로 밀도있게 연결되어 있는지에 따라 달라진다. 통신비용은 사이트 별 데이트를 통신하는데 얼마나 많은 노드를 거쳐야하는지로 정해진다. 가용성은 링크나 사이트가 고장나도 데이터에 접근할 수 있는지의 여부에 따라 달라진다.

분산 시스템의 네트워크 구성

네트워크에는 기본적으로 근거리 통신망(Local-Area Network, LAN) **과 **원거리 통신망(Wide-Area Network, WAN) 두 가지 형태가 있으며, 주된 차이점은 지리적인 분산 형태이다. LAN은 하나의 빌딩 또는 인접한 빌딩 등과 같이 좁은 지역에 분산된 프로세서들로 구성된다. 반면 WAN은 도시나 국가 등 넓은 지역에 분포된 프로세서들로 구성된다.

분산 운영체제

분산 운영체제에서 사용자는 로컬 자원을 사용하는 것과 동일하게 원격 자원을 사용할 수 있다. 이를 위해 운영체제에 적용할 수 있는 기본적인 방법들은 다음과 같은 것들이 있다.

  1. 데이터 이주
  2. 계산 이주 (원격 프로시저 호출 RPC)
  3. 프로세스 이주

2. 분산 파일 시스템

분산 파일 시스템(Distributed File System, DFS)은 클라이언트가 서버에 저장된 파일을 마치 로컬 파일처럼 사용할 수 있는 클라이언트/서버 기반 파일 시스템이다.

3. 분산 메모리

원격 메모리

  • 전역 주소공간에 매핑된 로컬 주소공간의 이름을 통해 원격 메모리를 참조한다.
  • 데이터 일관성은 프로그래머의 책임이다.

분산 공유 메모리

  • 가상 메모리 인터페이스를 이용하여 네트워크 메모리를 구현한다.
  • 데이터 일관성은 운영체제의 책임이다.

4. 원격 프로시저 호출

원격 프로시저 호출(Remote Procedure Call, RPC)은 한 컴퓨터에서 작동하고 있는 애플리케이션이 다른 컴퓨터에 있는 프로시저를 호출하는 클라이언트-서버 매커니즘이다.

RPC를 사용하는 클라이언트는 로컬 프로시저를 호출한다. 이를 스텁(stub) 루틴이라고 한다. 이를 RPC 프로시저가 가로채어 원격지 컴퓨터로 전달한다. 그 후 클라이언트 측의 스텁 루틴은 실행을 중단한 채 차단된다. 서버는 전달된 메세지를 보고 적절한 프로시저를 호출한 뒤 결과를 다시 메시지로 만들어서 클라이언트의 스텁 루틴에게 반환한다. 그 후 스텁루틴의 수행이 재개되어 RPC의 결과메시지를 호출자에게 돌려준다.

원격 프로세서 호출은 분산처리에는 유용하지만 병렬 처리에는 유용하지 못하다. 호출자가 원격 프로시저를 호출했을 때, 호출자는 해당 프로시저가 실행되는 동안 일시정지 하기 때문이다.