[OS]분산 운영체제
📚분산 운영체제의 개요
📄분산 시스템
병렬로 문제를 풀 수 있는 컴퓨터를 만드는 방법은 강결합, 약결합 시스템으로 나눌 수 있다.
- 강결합 시스템: 한 대의 컴퓨터에 여러 개의 프로세서를 넣어 모든 프로세서가 클러과 메모리를 공유하는 시스템.
- 약결합 시스템: 여러 대의 컴퓨터가 각각의 프로세서를 가지고 네트워크를 통해 연결된 시스템.
분산 시스템은 자원공유, 성능 향상, 시로히성 향상, 통신의 편리선이라는 장점을 가진다.
- 자원 공유: 각 컴퓨터의 자원을 연결된 다른 컴퓨터가 공유하여 자원을 훨씬 유용하게 사용할 수 있게 한다.
- 성능 향상: 여러 개의 프로세서에 작업을 분할하여 동시에 많은 일을 처리하는 병렬성이 있다면 성능을 향상시킬 수 있다.
- 신뢰성 향상: 하나의 프로세서 또는 자원에 문제가 생기더라도 대신할 수 있는 다른 프로세서 자원이 있다면 시스템 작동을 멈추지 않고 작업을 진행할 수 있다.
- 통신의 편리성: 서로 다른 컴퓨터가 정보를 주고 받을 방법이 있어야 하는데 원격 프로시저 호출 등의 방법으로 이를 달성한다.
분산 시스템을 구축할 때 고려해야할 사항들은 아래와 같다.
- 망 구축비용: 통신 링크를 통해 사이트들을 물리적으로 연결해서 분산 시스템을 구축하는데 드는 비용
- 통신비용: 사이트 A에서 사이트 B로 메시지를 보내는데 필요한 비용
- 신뢰성: 일부 링크나 사이크가 고장났을 때, 시스템이 얼마나 정상적으로 동작할 수 있는가를 측정하는 정도
링크를 많이 연결할수록 망 구축비용은 늘어나지만 통신 비용과 신뢰성은 높아진다. 여러 가지 네트워크의 구성 형태는 아래와 같다.
- 완전연결 네트워크: 모든 노드들이 연결되어 있는 형태
- 부분연결 네트워크: 직접 연결되지 않은 노드의 쌍이 존재하는 형태
- 트리 구조 네트워크: 어떤 두 노드도 연결되도록 할 때 링크가 가장 적은 형태
- 스타형 네트워크: 하나의 노드가 중심을 이루고, 다른 노드들은 모두 중심 노드에 연결된 형태
- 링형 네트워크: 전체 노드가 큰 고리를 이루는 형태
- 버스형 네트워크: 모든 노드가 버스라고 부르는 빠른 링크에 연결된 형태
네트워크는 크게 근거리 통신망(LAN)과 원거리 통신망(WAN)으로 나뉜다.
구분 | 속도 | 지연 | 혼잡 | 구현 및 설계 | 담당 면적 | 비용 |
---|---|---|---|---|---|---|
LAN | 빠름 | 작음 | 낮음 | 쉬움 | 좁음 | 적음 |
WAN | 느림 | 큼 | 높음 | 어려움 | 넓음 | 큼 |
📄분산 운영체제
분산 시스템을 관리하기 위한 운영체제가 분산 운영체제이다. 원격 자원을 로컬 자원을 사용하는 것처럼 사용하고 구별 없이 투명성을 제공할 수 있어야 한다. 원격 자원의 접근에 필요한 일들을 분산 운영체제가 대신 해주는 것이다.
- 데이터 이주(data migration): 원격 데이터를 전송해 와서 사용하는 방식.
- 계산 이주(computation migration): 이주하려는 데이터의 양이 너무 많을 때 데이터를 가져오는 대신 원격 프로시저 호출을 통해 결과를 전송받는 방식.
- 프로세스 이주(process migration): 프로세스 자체를 원격지로 이주시키는 방식.
📚분산 파일 시스템
분산 파일 시스템(DFS)은 클라이언트가 원격 파일을 로컬 파일처럼 사용할 수 있게 해준다. 사용자가 사용하는 파일이 로컬인지 원격인지 구별할 필요가 없다.
분산 시스템에 여러 파일 시스템이 있을 수 있기 때문에 다른 파일 시스템에 저장된 같은 이름을 가진 파일들을 구별할 필요가 있다.
- 파일에 호스트 이름과 호스트에서의 로컬 이름을 합쳐 새로운 이름을 주는 방법
- 원격 디렉토리를 로컬 디렉토리에 마운트하는 방법
📚분산 메모리
📄원격 메모리
로컬 메모리는 로컬 메모리와 보조기억장치를 합친 가상 메모리의 형태로 접근되고 원격 메모리는 원격 메모리 API를 이용하여 클라이언트/서버 형태로 구성된다.
📄분산 공유 메모리
분산 공유 메모리(DSM)는 물리적으로 분리된 메모리를 하나의 주소공간을 통해 접근할 수 있게 해준다. 가상 메모리 관리자가 메인 메모리, 보조기억장치 페이지 관리, 원격 메모리 서버를 관리한다. 가상 메모리 참조에서 가상주소에 실제 로컬 메모리, 보조기억장치, 원격 메모리의 물리주소가 대응된다.
분산 공유 메모리의 장점
- 노드의 개수가 늘어나도 잘 확장된다.
- 실제로 메모리를 공유하기 위해 해야할 일들을 프로그래머가 신경 쓸 필요가 없다.
- 복잡하고 큰 데이터를 처리하는데 유리하다.
- 멀티프로세서 시스템에 비해 저렴하다.
- 큰 가상 메모리 공간을 제공한다.
분산 공유 메모리의 단점
- 분산되지 않은 공유 메모리에 비해 접근 속도가 느리다.
- 공유 메모리에 저장된 데이터에 대해 둘 이상의 접근이 발생할 때 추가적인 보호 메커니즘이 필요하다.
- 프로그래머가 분산 공유 메모리를 직접 제어하는 것이 쉽지 않다.
📚원격 프로시저 호출
원격 프로시저 호출(RPC)은 프로세스가 다른 주소공간에 있는 프로시저를 실행시키는 것이다.
📄원격 프로시저 호출의 동작
전통적인 프로시저 호출은 매개변수를 스택에 넣고, 호출할 프로시저가 있는 위치로 점프한다. RPC의 경우 호출할 프로시저는 다른 주소공간에 있어 이 방법을 이용할 수 없다.
📄원격 프로시저 호출의 구현
RPC 구현 고려 사항
- 고급언어에서 RPC를 사용하는 것과 로컬 프로시저를 호출하는 것은 구별되지 않아야 한다.
- 호출하는 프로시저와 호출되는 프로시저는 서로 다른 주소공간에 속하기 때문에 참조를 하려면 네트워크에서 해당하는 자원의 이름을 이용해야 한다.
- RPC의 수신자는 호출이 생성된 곳과 유사한 환경에서 실행해야 한다.
Leave a comment