📚분산 운영체제의 개요

📄분산 시스템

병렬로 문제를 풀 수 있는 컴퓨터를 만드는 방법은 강결합, 약결합 시스템으로 나눌 수 있다.

  • 강결합 시스템: 한 대의 컴퓨터에 여러 개의 프로세서를 넣어 모든 프로세서가 클러과 메모리를 공유하는 시스템.
  • 약결합 시스템: 여러 대의 컴퓨터가 각각의 프로세서를 가지고 네트워크를 통해 연결된 시스템.


분산 시스템은 자원공유, 성능 향상, 시로히성 향상, 통신의 편리선이라는 장점을 가진다.

  • 자원 공유: 각 컴퓨터의 자원을 연결된 다른 컴퓨터가 공유하여 자원을 훨씬 유용하게 사용할 수 있게 한다.
  • 성능 향상: 여러 개의 프로세서에 작업을 분할하여 동시에 많은 일을 처리하는 병렬성이 있다면 성능을 향상시킬 수 있다.
  • 신뢰성 향상: 하나의 프로세서 또는 자원에 문제가 생기더라도 대신할 수 있는 다른 프로세서 자원이 있다면 시스템 작동을 멈추지 않고 작업을 진행할 수 있다.
  • 통신의 편리성: 서로 다른 컴퓨터가 정보를 주고 받을 방법이 있어야 하는데 원격 프로시저 호출 등의 방법으로 이를 달성한다.


분산 시스템을 구축할 때 고려해야할 사항들은 아래와 같다.

  • 망 구축비용: 통신 링크를 통해 사이트들을 물리적으로 연결해서 분산 시스템을 구축하는데 드는 비용
  • 통신비용: 사이트 A에서 사이트 B로 메시지를 보내는데 필요한 비용
  • 신뢰성: 일부 링크나 사이크가 고장났을 때, 시스템이 얼마나 정상적으로 동작할 수 있는가를 측정하는 정도


링크를 많이 연결할수록 망 구축비용은 늘어나지만 통신 비용과 신뢰성은 높아진다. 여러 가지 네트워크의 구성 형태는 아래와 같다.

  • 완전연결 네트워크: 모든 노드들이 연결되어 있는 형태
  • 부분연결 네트워크: 직접 연결되지 않은 노드의 쌍이 존재하는 형태
  • 트리 구조 네트워크: 어떤 두 노드도 연결되도록 할 때 링크가 가장 적은 형태
  • 스타형 네트워크: 하나의 노드가 중심을 이루고, 다른 노드들은 모두 중심 노드에 연결된 형태
  • 링형 네트워크: 전체 노드가 큰 고리를 이루는 형태
  • 버스형 네트워크: 모든 노드가 버스라고 부르는 빠른 링크에 연결된 형태


네트워크는 크게 근거리 통신망(LAN)과 원거리 통신망(WAN)으로 나뉜다.

구분 속도 지연 혼잡 구현 및 설계 담당 면적 비용
LAN 빠름 작음 낮음 쉬움 좁음 적음
WAN 느림 높음 어려움 넓음



📄분산 운영체제

분산 시스템을 관리하기 위한 운영체제가 분산 운영체제이다. 원격 자원을 로컬 자원을 사용하는 것처럼 사용하고 구별 없이 투명성을 제공할 수 있어야 한다. 원격 자원의 접근에 필요한 일들을 분산 운영체제가 대신 해주는 것이다.

  • 데이터 이주(data migration): 원격 데이터를 전송해 와서 사용하는 방식.
  • 계산 이주(computation migration): 이주하려는 데이터의 양이 너무 많을 때 데이터를 가져오는 대신 원격 프로시저 호출을 통해 결과를 전송받는 방식.
  • 프로세스 이주(process migration): 프로세스 자체를 원격지로 이주시키는 방식.




📚분산 파일 시스템

분산 파일 시스템(DFS)은 클라이언트가 원격 파일을 로컬 파일처럼 사용할 수 있게 해준다. 사용자가 사용하는 파일이 로컬인지 원격인지 구별할 필요가 없다.

분산 시스템에 여러 파일 시스템이 있을 수 있기 때문에 다른 파일 시스템에 저장된 같은 이름을 가진 파일들을 구별할 필요가 있다.

  1. 파일에 호스트 이름과 호스트에서의 로컬 이름을 합쳐 새로운 이름을 주는 방법
  2. 원격 디렉토리를 로컬 디렉토리에 마운트하는 방법




📚분산 메모리

📄원격 메모리

로컬 메모리는 로컬 메모리와 보조기억장치를 합친 가상 메모리의 형태로 접근되고 원격 메모리는 원격 메모리 API를 이용하여 클라이언트/서버 형태로 구성된다.


📄분산 공유 메모리

분산 공유 메모리(DSM)는 물리적으로 분리된 메모리를 하나의 주소공간을 통해 접근할 수 있게 해준다. 가상 메모리 관리자가 메인 메모리, 보조기억장치 페이지 관리, 원격 메모리 서버를 관리한다. 가상 메모리 참조에서 가상주소에 실제 로컬 메모리, 보조기억장치, 원격 메모리의 물리주소가 대응된다.

분산 공유 메모리의 장점

  • 노드의 개수가 늘어나도 잘 확장된다.
  • 실제로 메모리를 공유하기 위해 해야할 일들을 프로그래머가 신경 쓸 필요가 없다.
  • 복잡하고 큰 데이터를 처리하는데 유리하다.
  • 멀티프로세서 시스템에 비해 저렴하다.
  • 큰 가상 메모리 공간을 제공한다.


분산 공유 메모리의 단점

  • 분산되지 않은 공유 메모리에 비해 접근 속도가 느리다.
  • 공유 메모리에 저장된 데이터에 대해 둘 이상의 접근이 발생할 때 추가적인 보호 메커니즘이 필요하다.
  • 프로그래머가 분산 공유 메모리를 직접 제어하는 것이 쉽지 않다.




📚원격 프로시저 호출

원격 프로시저 호출(RPC)은 프로세스가 다른 주소공간에 있는 프로시저를 실행시키는 것이다.

📄원격 프로시저 호출의 동작

전통적인 프로시저 호출은 매개변수를 스택에 넣고, 호출할 프로시저가 있는 위치로 점프한다. RPC의 경우 호출할 프로시저는 다른 주소공간에 있어 이 방법을 이용할 수 없다.


📄원격 프로시저 호출의 구현

RPC 구현 고려 사항

  1. 고급언어에서 RPC를 사용하는 것과 로컬 프로시저를 호출하는 것은 구별되지 않아야 한다.
  2. 호출하는 프로시저와 호출되는 프로시저는 서로 다른 주소공간에 속하기 때문에 참조를 하려면 네트워크에서 해당하는 자원의 이름을 이용해야 한다.
  3. RPC의 수신자는 호출이 생성된 곳과 유사한 환경에서 실행해야 한다.



Leave a comment