본문 바로가기

반응형

컴퓨터공학/분산시스템

(12)
분산시스템의 결함 허용 (Fault Tolerance) Fault Tolerance Basic Concepts ○ Fault Tolerance: 분산시스템상 어느 정도 Fault가 발생해도 시스템이 Crash 되지 않음 ○ Fault Tolerance의 Dependability (Fault Tolerance의 요소) - 가용성(Availability) - 신뢰성(Reliability) - 안정성(Safety) - 유지보수성(Maintenance) Failure Models ○ Failure의 유형 - CrashFailure: 한 시스템 또는 전체가 중단됨 - OmissionFailure: 생략, 요청에 대한 응답 실패 • Receive Omission: 메시지 수신 실패 • Send Omission: 메시지 전송 실패 - Timing Failure: 시간 초..
분산시스템의 일관성 및 복제(Consistency & Replication) 복제 이유 (신뢰성/성능) 시스템의 신뢰성을 높이기 위해 데이터가 복제됩니다. (백업) 성능을위한 복제 (병렬처리) - 숫자의 크기 조정 - 지리적 영역의 확장 (거리가 먼 경우 근거리에 복제해서 해시처럼 사용) 경고 -실적 향상 -복제 유지 비용 증가 대역폭 단, 갱신이나 업데이트가 되면 일관성의 문제가 된다. ○ Replication(복제): 분산시스템에서 성능(Performance)과 신뢰성(Reliability)을 확보하는 방법 - 성능: 병렬처리, Caching, 지리적 한계 탈피 - 신뢰성: 자료의 Backup ○ 복제의 문제점 - 데이터의Consistency(일관성)이깨질수있음 - 시스템 운영/관리비용의 증가 ○ Consistency Model(일관성 유지 모델) - Data-Centric(..
분산시스템의 동기화(synchronization) 컴퓨터 또는 시스템간 동기가 필요하다. 서로 다른 프로그램 (컴파일러와 에디터)끼리의 로컬클록이 다르기에 동기가 필요하다. 컴파일러를 (A)머신, 에디터를 (B)머신에서 동작한다고 한다 A와 B머신의 로컬클럭은 2초차이가 난다. A의 로컬클럭은 2144 , 2145, 2146... B의 로컬클럭은 2142, 2143, 2144... A가 2초 늦다. B의 컴퓨터에서 2143초에 에디터를 사용하였다. 2143= B의 로컬클록 A는 2144에서 아웃풋을 하지만 되지 않는데. 2144초로써 더 이전이기 때문이다. ○ 시간(Clock or Time)의 중요성 - 컴퓨터에서 일어난 이벤트 발생시간 파악 - Data Consistency 유지 등 각종 시스템 알고리즘 구현에 이벤트 시간이 중요 ○ Clock Syn..
분산시스템의 네이밍 Names, Identifiers, and Addresses ○ Name(이름) - 임의의 실체(Entity, Object 등)에 부여 - 실체를 구분하고 원하는 대상을 찾기 위함 ○ Identifier(ID, 식별자) - 동일한 이름을 가지는 실체를 구분 - 식별자와 실체는 1:1 관계 - 동일한 식별자는 항상 동일한 실체를 가리켜야 함 ○ Address(주소) - 실체에 Access 하는 방법 - Access Point Naming 방법 ○ Flat - Forwarding Pointer - HBA(Home-Based Address) - DHT(Distributed Hash Table) - HA(Hierarchical Approach) ○ Structured - NS(Name Space): File S..
분산시스템의 커뮤니케이션 프로세서간의 커뮤니케이션(통신모델)이 필요하다. 통신모델 ○ RPC(Remote Procedure Call): 원격 프로시저 호출 ○ MoM(Message Oriented Middleware): 메신저 ○ Streaming: Audio, Video 전송/처리 ○ MC(Multi Casting) Layered Protocols ○ OSI 7 Layer - 통신모델의 표준으로 채택 - 동등한 레벨끼리 통신 - 실제에서는 사용하지 않음 - 다른 모델의 참고(Reference) 모델 ▲ 7계층의 헤더 (식별필요) Encapsulation - 통신모델의 각 Layer별 데이터 구분/처리를 위해 Header 사용 - Header에서 가장 중요한 정보는 주소 - DataLink 계층은 데이터 오류검출을 위해 Trai..
분산시스템에서의 프로세스 Process는 분산시스템에서 중요환 관점이 될 수 있다. 클라이언트/서버 구조를 효율적으로 구현하기 위해서는 3가지 관점에서 보아야한다. 1. thread 2. 가상화 3. Client-Server 구성 Thread Usage in Non-distributed Systems ▲ 비분산시스템에서의 쓰레드사용 (Thread Usage in Non-distributed Systems) -A에서 작업하던 단일코어가 B로 할당: A에서 작업을 하다가 B로 넘어가기전 기존 A Context를 스택에 저장. 나중에 사용할 때 Restore 기존 프로세스는 서로 다른 Process간 전환 시(또는 정보교환시) Context Switching Overhead가 발생한다. Process 전환에 따른 PCB의 Load/S..
분산시스템의 구조 (ARCHITECTURES) 분산시스템의 구조는 크게보면 논리적구조(S/W) 그리고 물리적구조(시스템) 으로 나뉜다. 분산 시스템을 위한 중요한 아키텍처 스타일 (논리적구조) - Layered architectures 계층화 된 아키텍처 (네트워크 OSI 7계층 또는 인터넷의 5계층 구조) - Object-based architectures 객체 기반 아키텍처 - Data-centered architectures 데이터 중심 아키텍처 (pubsub방식: publish subscribe 방식) - Event-based 이벤트 기반 아키텍처 (pubsub방식: publish subscribe 방식) (a) 는 계층화된 구조로써, 위쪽으로는 User층 밑으로 갈 수록 Systems층을 이루고있다. 대표적으로 OSI 7layer 또는 TC..
분산시스템 유형(DCS/DIS/DES)과 예 분산시스템의 유형 DCS : Distributed Computing System – 컴퓨팅 파워를 분산하여 어떻게 태스크를 수용할 것인가. (DCS예: Cluster, Grid) DIS: Distributed Information System – 데이터 분산 (DIS예: TPS, EIA) DES: Distributed Embedded System – 사물인식 (DES예: Sensor Network) ▲ DCS: 클러스터 컴퓨팅 시스템의 예 클러스터특징: MASTER(마스터노드) 와 SLAVE(컴퓨터노드) 서버로 구성된다. 동일 기종, 동일 OS를 사용항여 구성한다. 평행하게 (Parallel) 연산할 수 있다. 마스터노드가 컴퓨터노드에게 태스크를 나눠준다. ▲ DCS: 그리드 컴퓨팅 시스템의 예 그리드미..

반응형