분산 시스템의 정의
물리적으로 분리된 상태에서 컴퓨터 통신 네트워크를 통해 약결합(Loosely Coupled)을 이루는 정보 시스템의 집합
분산 시스템의 특징
downsizing이란 새로운 산업화 경향을 이끌어냄(예: 메인 프레임을 네트워크로 연결된 워크스테이션 및 PC로 대치함으로 비용대비 성능의 급격한 향상을 가져옴)
1.
자원 공유(Resource Sharing)
다수의 사이트가 상호 연결되어 있을 경우, 한 사이트의 사용자는 타 사이트의 자원을 사용 가능할 것이다. 예) 파일 공유, 분산 데이터베이스의 정보처리, 원격 프린팅, (고속 어레이 프로세서 등의) 원격의 전용 하드웨어 이용 등.
2.
연산 속도 향상(Computing Speedup)
부하 공유(Load Sharing) : 하나의 특정 연산을 동시 처리 가능한 여러 부분 연산으로 분할할 수 있다면, 이를 분산 시스템의 여러 사이트에 분산 처리함으로 전체 처리 속도 향상을 기대할 수 있음.
3.
신뢰성(Reliability)
분산 시스템의 특정 사이트에서 결함(failure)이 발생하더라도 나머지 사이트들은 계속하여 수행할 수 있다. Fault Tolerance, High Avaliablity의 구현.
4.
통신(Communication)
다수의 사이트가 통신 네트워크를 통해 상호 연결되어 있을 때, 각 사이트의 사용자 간에 정보 교환이 가능. 또한 저수준에서는 시스템 간에 메시지가 전달됨. 또한, 사이트 간에 메시지 전달이 가능하다면 단일 시스템(standalone system)의 모든 고수준 기능이 분산 시스템에 적용이 가능할 것이며, 이에 대한 구현이 바로 파일 전송, 로그인, 메일, 웹 브라우징, RPC 등이 되겠다.
분산 시스템이 갖추어야할 특성
1.
이질성(Heterogeneity): 시스템 요소 간의 인터페이스 표준화로, 서로 다른 하드웨어, 운영체제, 프로그래밍 언어, 네트워크로 시스템 구성이 가능해야함.
2.
개방성(Openness): 다양한 공급자(vendors)로부터의 하드웨어 및 소프트웨어를 포함할 수 있어야.
3.
확장성(Scalability): H/W, S/W, 리소스의 추가 및 삭제가 용이하고 성능 손실이나 병목 현상이 발생하지 않도록 효율적이 제어가 가능한 환경을 제공해야.
4.
결함 핸들링(Failure Handling): 시스템 장애를 점검, 극복 가능해야하고, 시스템 장애 시에도 작업을 일관성있게 완료 가능해야.
5.
병렬성(Concurrency): 동시에 여러 프로세싱이 가능해야. 이를 위해 공유 자원에 대한 동기화 메커니즘이 요구됨.
6.
투명성(Transparency): 시스템 내부적 변화가 클라이언트에 제공되는 서비스에 영향을 미치지 않도록 해야.
분산 투명성의 종류
1.
위치 투명성(location Transparency): 로컬 또는 원격 서비스나 객체에 대한 위치 정보가 없이도 접근 가능함을 보장.
2.
접근 투명성(access Transparency): 서비스나 객체 등의 접근에 대해 언제나 동일한 경로를 갖도록 보장.
3.
복제 투명성(replication Transparency): 다수의 복제된 인스턴스가 운영되더라도 클라이언트에게는 단일 객체로 인식됨을 보장
4.
병렬 투명성(concurrency Transparency): 다수의 프로세스가 병렬 수행됨을 클라이언트는 그 사실과 프로세스 구분을 하지 못함을 보장.
5.
결함 투명성(failure Transparency): 시스템 내부에 오류가 발생하여도 클라이언트는 이에 상관 없이 자신의 작업을 정상적으로 완료할 수 있음을 보장
6.
이동 투명성(mobility Transparency): 시스템 내부 리소스의 위치 변경이 클라이언트의 작업 수행에 영향을 미치지 않음을 보장
7.
성능 투명성(performance Transparency): 부하 공유(load sharing)를 통한 성능 향상을 위해 시스템이 재구성이 될 수 있음을 보장
8.
확장 투명성(scaling Transparency): 시스템 구조와 애플리케이션에 영향을 주지 않고 리소스 확장이 가능함을 보장.
분산시스템의 단점
1.
복잡성(Complexity)
창발적 특성(emergent properties)을 이해하기 어렵고 시스템 검사가 어렵기에 중앙 처리 시스템보다 훨씬 복잡(예: 성능이 네트워크 대역폭이나 타 여러 컴퓨터 속도에 좌우됨, 어떤 프로세서에 어떤 자원을 둘 것인가에도 성능에 영향을 줌)
2.
보안(Security)
분산시스템은 다양한 컴퓨터로부터 접근 가능하며, 네트워크 트래픽에 쉽게 노출되므로 보안 관리가 상대적으로 어려움.
3.
관리(Manageability)
다양한 컴퓨터는 다양한 버전, OS 등으로 구성되므로 이를 모두 고려하여 관리해야 함.
4.
예측불가능(Unpredictablity)
분산 시스템의 반응(response)에 대해서는 예측이 불가능함. 시스템 부하, 시스템 구성 및 네트워크 트래픽 등의 분산시스템 환경의 특수함으로 인함.
위와 같은 단점에도 불구, 분산 시스템이 갖는 다수의 장점으로 인해 중앙 처리 시스템에서 분산 시스템으로 이주가 계속되는 실정.
References
•
Operating System Concepts 6th Ed. Silberschatz, Galvin, Gagne
•
[대학원] 분산시스템아키텍처 from 밤지기님의 블로그
•
분산 시스템 from 레포트 월드