728x90

13.1 분산 운영체제의 개요

13.1.1 분산 시스템

  • 분산 시스템의 정의
    • 현대의 분산 시스템은 복수의 컴퓨터가 각각의 프로세서를 가지고 네트워크로 연결됨
    • 사용할 수 있는 자원의 구분
      • 로컬 자원 : 자신의 컴퓨터에 속한 자원
      • 원격 자원 : 네트워크로 연결된 컴퓨터에 속한 자원
      • 원격 자원을 로컬 자원처럼 쉽게 사용할 수 있는 방법을 제공해야 함
  • 서버/클라이언트 모델
    • 서버 : 자원을 제공하는 쪽
    • 클라이언트 : 자월을 이용하는 쪽
  • 분산 시스템의 장점
    • 자원 공유 : 각 컴퓨터의 자원을 네트워크로 연결된 컴퓨터가 공유
    • 성능 향상 : 여러 대의 프로세서에 작업을 분할하여 병렬적으로 동시 수행
    • 신뢰성 향상 : 한 대가 고장나더라도 다른 컴퓨터가 작업을 계속 수헹
    • 통신의 편리성 : 단일 시스템 내부에서 동자갛는 서비스와 같은 서븨스 제공
  • 네트워크의 구성 형태 및 고려사항
    • 구성 형태 : 트리형, 스타형, 링형, 버스형 등
    • 고려사항 : 망 구축비용, 통신비용, 신뢰성 등

      13.1.2 분산 운영체제

  • 분산 운영체제
    • 분산 시스템을 관리하기 위한 운영체제
    • 투명성 제공 : 로컬 자원과 원격 자원의 구분을 없애 줌
      • 데이터 이주 : 원격 데이터를 로컬로 전송해 와서 사용하는 방식
      • 계산 이주 : 원격 프로시저 호출을 통해 계산을 원격지에서 처리하고 결과를 전송받는 방식
      • 프로세스 이주 : 프로세스 자체를 원격지로 이주시키는 방식

13.2 분산 파일 시스템

  • 분산 파일 시스템의 개요
    • 원격 파일을 로컬 파일처럼 사용하게 해 줌
    • 일반적인 사용자는 원격 파일과 로컬 파일을 구별할 필요가 없음
    • UNIX에서는 마운트(mount)를 이용하여 파일 시스템을 사용할 수 있으며, 네트워크로 연결된 파일 시스템도 사용 가능함
    • 네트워크 사용이 많아지면 성능이 떨어질 수 있으므로 캐시를 사용함

13.3 분산 메모리

13.3.1 원격 메모리

  • 원격 메모리
    • 가상 메모리는 로컬 메모리와 보조기억장치를 합친 형태로 제공됨
    • 원격 메모리는 API를 사용하여 클라이언트/서버 형태로 구성됨

13.3.2 분산 공유 메모리

  • 분산 공유 메모리

    • 물리적으로 분리된 메모리들이 하나의 주소공간으로 접근하게 해 줌
    • 장점
      • 노드의 개수가 늘어나도 잘 확장됨
      • 프로그래머는 실제로 메모리를 공유하기 위해 할 일들에 신경 쓸 필요가 없음
      • 복잡하고 큰 데이터 처리에 유리함
      • 멀티프로세서 시스템에 비해 저렴하게 구현 가능
      • 큰 가상 메모리 공간 제공
    • 단점
      • 접근속도가 느림
      • 공유 메모리에 동시에 둘 이상이 접근할 때 보호 메커니즘 필요
      • 성능이 떨어질 수 있음
      • 프로그래머가 분산 공유 메모리를 직접 제어하는 것이 쉽지 않음

    13.4 원격 프로시저 호출

    • 원격 프로시저 호출(Remote Procedure Call : RPC)
      • 프로세스가 네트워크로 연결된 다른 컴퓨터에 있는 프로시저를 실행시키는 일
        • 마치 같은 컴퓨터에 있는 것처럼 이용할 수 있게 함

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

  • RPC의 동작
    • RPC를 사용하려는 클라이언트는 같은 주소공간에 있는 프로시저를 일단 호출함
    • 호출된 프로시저는 전달받은 매개변수를 메시지로 포장하여, 네트워크를 이용하여 대기하고 있는 특정 서버의 프로세스에 전달하고 결과를 기다림
    • 메시지를 받은 프로세스는 이를 해당 프로시저에 전달하여 실행시킴
    • 실행결과는 다시 메시지로 포장되어 결과를 기다리고 있는 프로시저에 전달됨
    • 메시지를 해석하여 원격 프로시저의 실행결과를 얻어 내고, 이를 리턴함

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

  • RPC 구현의 고려사항
    • RPC의 사용과 로컬 프로시저의 사용이 이상적으로는 구별되지 않아야 함
    • 서로 다른 주소공간에 속하기 때문에 메모리 주소를 리턴하는 참조 호출은 의미가 없음
    • RPC의 수신자는 호출된 곳과 유사한 환경에서 실행해야 함

참고 문헌 : 김진욱·이인복. 운영체제 워크북. 한국방송통신대학교출판문화원, 2023.

728x90

+ Recent posts