Computer Basis/OS

운영체제(OS) - 9. Distributed System (분산시스템)

DevPing9_ 2020. 12. 7. 00:30

# Distributed System

 

컴퓨터 간 서로 데이터를 교환하여 처리할 수 있도록

네트워크로 상호연결한 시스템

 

메모리와 클록을 공유하지 않고, 지역 메모리를 유지하여

서로 독자적으로 동작

 

# 다중처리 시스템(병렬처리 시스템)

 

컴퓨터 간 서로 데이터를 교환하여 처리할 수 있도록

네트워크로 상호연결한 시스템

 

또는

CPU가 여러개인 단일컴퓨터 시스템

 

여러개의 프로세서(CPU)들이

메모리를 공유하는 시스템

 


# 네트워크로 연결된 시스템의 종류

 

1. Tightly Coupled System

 

프로세서(CPU)들이 메모리를 공유하는

다중처리 시스템

 

공유 메모리를 통하여 통신

 

2. Loosely Coupled System

 

둘 이상의 독립된 시스템이

통신선(네트워크)로 연결된 시스템

 

통신선(네트워크)을 통하여

메시지, 원격 프로시저 호출로 통신

 

하나의 시스템에서 장애가 발생해도

다른 시스템의 CPU가 독립적으로 수행가능하여

치명적 시스템 장애를 회피

 


# 네트워크 구조(topology)

 

노드 = 컴퓨터

링크, 엣지 = 통신선

 

1. 망(Mesh)

 

각 노드를 시스템의 모든 노드와 직접연결

(fully connected)

 

초기 설치비용이 많이 든다.

(모든 두 노드간 통신선이 필요)

 

많은 엣지가 고장이나야

시스템이 분할되므로 신뢰성이 높다

 

2. 트리(Tree, Hierarchy)

 

 

시스템의 노드들이 트리구조로 연결

 

비용은 망(mash) 보다 저렴

 

3. 성(Star)

 

모든 노드가 하나의 중앙노드에 연결된 구조

 

중앙 노드가 메시지 교환 담당

 

병목현상 발생시 성능저하

 

중앙 노드 장애시, 전체 시스템 마비

 

집중제어로 유지보수 간편, 비용이 매우 저렴

(비용은 노드 수에 비례)

 

4. Ring

 

원형으로 연결

 

단방향은 1개 노드나 엣지가 고장나면 네트워크 분할 필요

 

양방향은 2개의 연결이 고장나면 네트워크 분할 필요

 

5. Bus

 

네트워크 버스 케이블 하나에 모든 노드를 연결하는 방법

 

각 노드의 고장이 나머지 노드 간 통신에 영향을 주지 않아 신뢰성이 높고

 

노드 추가,변경,제거가 비교적 쉬워 확장성이 좋다.


# RPC

(Remote Procedure Call)

 

원격지 컴퓨터의 프로그램을 호출

(통신 신뢰성, 보안, 전역변수의 미지원 등의 이슈가 있음)

 

# Stub

 

RPC와 지역 프로세스 호출을 같도록 만드는 모듈

 

ex) 데이터 형태의 변환

 

# Marshalling

 

원격 프로시저에 전달된 인자들이 포함되는 과정

(인자에는 호출자와 피호출자의 정보가 포함)

 


# 분산시스템의 장점

 

➊ 자원공유 용이

(하드웨어를 한몸처럼!)

➋ 연산속도 향상

(각 노드에 업무 분산!)

➌ 신뢰성 향상

(일부 노드가 고장나도 전체 시스템은 작동!)

➍통신 가능

(지역적으로 멀어도 같이 작업가능!)

 

 

# 분산시스템의 목적

 

사용자가 하나의 컴퓨터 시스템으로 인식할 수 있도록

분산을 감추어 완전한 투명성(transparency)을 제공하는 것

 

# 투명성(transparency)종류

 

➊ access transparency

서로 다른 컴퓨터 구조와 언어 사이에서 교류 가능

 

➋ location transparency

자원 및 컴포넌트 위치 몰라도 교류가능

ex) NFS(Network File System), 웹페이지

 

➌ failure transparency

오류나도 교류가능

ex) DBMS

 

➍ replication transparency

복제된 자원이 하나만 있다고 인식하게함

ex) 분산 DBMS, 웹페이지 미러링

 

➎ migration transparency

자원이 다른 노드로 이동해도 인식불가

ex) 웹페이지, NFS

 

➏ permanence transparency

자원 저장 위치 모름

 

➐ resource transparency

자원 배당 및 해제 정보 감춤

 

➑ transaction transparency

데이터 무결성과 일관성 확보

(트랜잭션&자원집합 결합 숨김)

 

➒ reassginment transparency

재배치 감춤

 

➓ scale transparency

Scale up, down 감춤

 

⓫ concurrency(병행) transparency

서로 간섭없이 공유데이터에 동시 액세스가능

ex) NFS, ATM 네트워크

 


# 네트워크 운영체제 (NOS)

 

독립된 시스템들을 서로 연결하려고 개발함

(단일 사용자환경의 시스템 + 네트워크기능)

 

사용자는 네트워크에 다수의 독립된 컴퓨터가 있다는 사실을 인식함

(투명성이 없음, 위치투명성은 제공)

 

NOS는 실질적인 OS가 아님

(각 노드의 운영체제는 독립적)

(서로를 연결하는 소프트웨어)

 

각 사용자마다 동질성이 부족하므로, 가능한 표준을 유지하는 구조여야 함

 

▶ 분산 운영체제(DOS)는 OS와 사용자가

연결된 모든 노드의 자원을 지역자원으로 공유하는 것


# NOS 주요기능

 

➊자원공유

➋액세스 권한 부여

➌파일 전송

➍데이터 보호

➎오류 관리 제어

 


# NOS 운용 방법

➊ P2P(PeerToPeer)

 

각 노드가 서버 및 클라이언트가 됨

 

적은 초기 비용, 자원 활용 극대화가 장점

 

자원의 분산(not centralized), 보안이 단점

 

➋Client/Server

 

자원은 서버가 제어

 

막대한 비용, NOS 소프트웨어 필요, 서버 의존성, 유지보수가 단점

 

중앙집중식으로 인한 보안, 자원의 집중, 새로운기술의 확장(유연성), 접근성이 장점


# 분산 운영체제

(DOS, Distributed OS)

 

시스템자원을 전역적으로 제어하고 관리하기 위해 등장

 

프로세스나 객체를 기반으로 나누어 구현


# DOS의 migration 종류

 

➊ Data Migration

파일전체 전송, 일부분 전송

➋ Computation Migration

데이터가 아닌 연산을 전송

➌ Process Migration

프로세스의 전체나 일부를 전송

(적합한 하드웨어를 가진 노드가 해당 프로세스를 실행)

(분산작업으로 인한 장점도 여전히 가짐)


 

 

 

 

 

 

 

 

 

 

728x90