[OS] 분산 처리 시스템

sky·2022년 6월 14일
0

정리

목록 보기
13/13
post-thumbnail

[1] 개요


  • 데이터 처리장치 및 DB가 지역적으로 분산돼 있으면서 정보교환을 위해 네트워크로 상호 결합된 시스템이다.
  • 분산 노드는 기능을 노드 별로 분담하여 수행하고, 이들이 네트워크로 연결되어 중앙의 대형 컴퓨터보다 많은 일을 효율적으로 처리할 수 있다.

특징

  • 사용자에게 할당될 수 있는 자원은 각 노드에 분산될 수 있고, 이들은 메시지를 주고 받으면서 정보를 교환한다.
  • 노드들은 각기 어느 정도의 자율성(autonomy)을 가진다.
  • 사용자는 특정 자원의 물리적 위치를 몰라도 그 자원을 사용할 수 있어야 한다.
  • 시스템 전체의 정책을 결정하는 통합적인 제어 기능이 있어야 한다.

개발 이유
인터넷이 개발되기 전에 개발된 것으로 오래전에 나왔다.

1. Resource Sharing

  • 서로 다른 기능 및 자원을 가지는 여러 개의 노드가 연결되어 있다면, 한 노드에 있는 사용자가 다른 노드의 자원을 사용 가능하다.
  • 특수 목적의 하드웨어 사용, 원거리 노드의 파일 공유, 분산 DB내에서의 정보처리, 원거리 노드의 파일 인쇄 등이 가능하다.

2. Computation SpeedUp

  • 특정 연산을 동시에 수행이 가능한 여러 개의 부분 연산으로 분할하여 여러 개의 노드에서 수행이 가능하다.
  • 특정 노드의 Overload(과부하)에 대하여 Load Balancing(부하 균등화)이 가능하다.

3. Reliability

  • 일부 노드가 고장 나더라도 다른 노드가 그 노드의 기능을 수행함으로써 전체 시스템은 계속 동작 가능하다.
  • 어느 한 노드에서 고장이 발생하더라도 나머지 노드는 영향을 받지 않는다.

4. Communication

  • 여러 사이트들이 통신 네트워크를 통해 서로 연결돼 있을 때, 다른 사이트에 있는 사용자들 간에 정보 교환이 가능하다.
  • 지역적으로 떨어진 사이트에 있는 두 사람 간의 공동 작업이 가능하다.

기타

  • 기존의 대형 메인프레임(컴퓨터)을 네트워크로 연결된 소형 워크스테이션 또는 개인용 컴퓨터로 대체하는 Downsizing을 가능하게 한다.
  • 저비용 고성능, 확장성이 높고, 손쉬운 유지보수가 가능하다.

[2] 분산 처리 시스템 형태


네트워크 위상(Topology)에 따른 구분

노드(컴퓨터)들의 물리적인 연결 형태에 따른 구분으로, 위상 형태에 따른 각 노드들 간의 연결에서 고려해야 할 사항들이 있다.

  • 기본비용 : 시스템 내의 노드들을 연결하는데 드는 비용
  • 통신비용 : 한 노드로부터 다른 노드에게로 메시지를 전달하는데 걸리는 시간 및 비용
  • 신뢰성 : 시스템 내의 통신 회선이나 노드 중 하나가 고장이 발생하더라도 나머지 노드들이 계속 통신할 수 있는지의 여부

1. Fully Connected(완전 연결 구조)

  • 각 노드가 시스템 내의 다른 모든 노드와 직접 연결된 구조이다.
  • 기본비용은 노드 숫자의 제곱에 비례한다. -> (n x (n - 1)) / 2

장점

  • 임의의 두 노드만을 연결하는 하나의 전용 회선을 사용하므로 메시지 전송 속도가 매우 빠르다.
  • 모든 노드와 연결되기 때문에 통신비용이 매우 낮다. (통신비용 모두 1이다.)
  • 신뢰성이 매우 높다.

단점

  • 기본비용이 매우 높다.

2. Partially Connected(부분 연결 구조)

모든 노드 쌍에 대해서 직접 연결이 존재하는 형태가 아닌 일부 연결만 임의적으로 존재한다.

실제로 잘 쓰이진 않음

장점

  • 기본비용은 완전 연결 네트워크보다 낮다.

단점

  • 통신비용이 높고, 통신 속도가 늦다.
  • 완전 연결 네트워크보다 신뢰성은 떨어진다.

3. Hierarchy(계층 구조)

  • 각 노드들이 Tree형태로 연결되어 있는 구조로, 회사 네트워크의 일반적인 구조이다.
  • 형제 중 하나가 다른 형제에게 메시지를 전달하려면 부모까지 올라가야 한다.

장점

  • 기본비용은 보통 낮다.

단점

  • 만일 하나의 부모 사이트에 고장이 발생하면, 그 사이트의 자식들은 더 이상 다른 프로세스와 통신이 불가하다.
  • 통신비용이 높다.
  • 신뢰성은 떨어진다.

4. Star(성형 구조)

  • 임의의 중심 노드가 다른 모든 노드와 완전 연결되어 있는 반면, 중심 노드를 제외한 노드들은 모두 서로 연결되어 있지 않은 구조다.
  • 많은 성형 구조 시스템에서 중심 노드는 연산이 아닌 메시지 교환 작업만을 담당한다.

장점

  • 기본비용이 낮다. (항상 n-1의 기본비용이 발생)
  • 통신 비용이 낮다. (모든 노드들의 통신 비용이 2이다.)
  • 구조가 심플하다.

단점

  • 중심 노드가 통신과 책임이 따르고 있어 부담을 받아 병목 현상이 발생할 수 있다.(속도 저하)

5. Ring(환형 구조)

  • 단 방향과 양 방향의 두 가지 통신 방법이 존재한다.
  • 단 방향 통신 구조에서 모든 노드는 같은 같은 방향으로만 정보를 전달한다.
  • 양 방향 구조에서의 한 노드는 양쪽 이웃 모두에게 정보를 전달한다.

장점

  • 기본비용은 노드 수에 비례하므로 낮다.

단점

  • 통신비용은 상당히 높다.

단일 연결의 단점을 해결하기 위해 개선한 것이다. 링을 더 만들어서 통신비용을 줄인다.


6. Multiaccess Bus(다중 접근 버스 구조)

공유되는 하나의 버스가 존재한다. (ex : Ethernet)

버스를 까는 비용은 들지 않는다.

장점

  • 통신 회선이 병목 현상을 일으키지 않는 한 통신비용은 낮다. (모두 1)
  • 한 노드의 고장이 다른 노드에 영향을 미치지 않아 신뢰성이 높다.
  • 기본 비용은 노드 수에 비례해 낮다.

단점

  • 버스 회선이 고장 나면 네트워크가 완전히 분할된다.

7. Hybrid(혼성) Network

  • 서로 다른 유형의 네트워크들이 상호 연결되어 있는 형태이다.
  • 통신은 상호 간에 다중 프로토콜을 번역해야 하고 데이터에 대한 경로 배정이 복잡하기 때문에 다소 어렵다.

네트워크 분산 범위에 따른 구분

WAN(Wide Area Network)

  • 넓은 지역에 걸쳐 광범위하게 위치하는 자율성을 가지는 많은 수의 프로세서들의 네트워크(원거리 통신망)
  • 통신 회선들은 특정 통신 프로세서들에 의해 조정되며, 통신 프로세서는 여러 노드간의 정보 전송을 관리한다.
  • 네트워크상의 전송 오류가 많고, 전송 지연 시간도 매우 크며 불규칙적이다.
  • 메시지 전송 비용은 메시지의 크기와 에러율에 비례하다.
    (but, 과거에는 그랬지만 요즘은 인프라가 좋아서 위와 같은 문제가 발생하진 않는다.)

LAN(Local Area Network)

  • 한 빌딩 또는 몇 개의 인접된 빌딩과 같은 비교적 가까운 지역에 적용된다.
  • 서로 근접해 있기 때문에 통신 링크는 일반적인 컴퓨터 네트워크보다 속도가 빠르고 오류 발생률이 낮다. (네트워크 거리가 길수록 오류 발생률은 높아진다.)
  • 일반적인 네트워크 구성 형태는 다중 접근 버스, 링, 성형 네트워크 방식이다.
  • 보다 빠른 속도와 신뢰성을 얻을 수 있고 양질의 값비싼 케이블을 필요로 한다.

근거리 네트워크 구성 예제

[3] 분산 시스템 구조


Network OS(NOS)

  • 통신 기능이 네트워크 OS내에 존재하므로 각 노드의 자율성은 최대로 보장되나, 자원에 대한 공유는 제한된다. (각자의 로컬 OS를 가지기 때문)
  • 각 노드는 다른 노드와 무관한 독자적인 OS를 지니며, 네트워크로 연결돼 있다.
  • 원격 로그인 및 원격 파일 전송 기능을 제공한다.
  • Local OS + Network OS로 구성된다.


분산 OS

  • 분산 시스템 내에 하나의 분산 OS가 존재한다.
  • 네트워크 OS보다 훨씬 복잡하고 많은 노력이 요구된다. (만들기 어려움)
  • 전체 시스템에 대한 일관성 있는 설계가 가능하므로 네트워크의 이해, 유지, 수정 등을 용이하게 한다.
  • 통신 기능도 하나의 OS내에 존재하므로 자원들을 광역적으로 관리할 수 있다.

특징

자료(데이터) 이주 가능
한 사이트에서 다른 사이트로 데이터를 전송하고, 전체 파일을 전송하거나 파일의 실제 필요한 부분만 전송할 수 있다.

연산 이주 가능
연산을 전송하고, 자료를 전송하는 시간이 원격 명령을 실행하는 시간보다 길다면, 원격 명령을 사용한다.

프로세스 이주 가능

  • 전체 프로세스 또는 그것의 일부분이 다른 사이트에서 실행될 때 가능하다.
  • 부하 균등화(Load Balancing) : 어떤 프로세서(CPU)에 과다한 작업부하가 걸렸 있을 때 가능하다.
  • 연산 속도 향상 : 어떤 프로세스가 다른 사이트에서 병행처리가 가능할 때 가능하다.

통신 관점에서 분산 OS와 NOS에서의 네트워크 비교

분산 운영체제 : 통신 기능을 미리 염두에 두고 OS를 설계한다.
네트쿼크 운영체제 : 기존의 개별 OS위에 통신기능을 추가한 것이다.

[4] Cloud Computing


  • 분산 처리 시스템의 일종으로 파생된 것이다.
  • 인터넷을 이용한 IT 자원의 주문형 아웃 소싱 서비스이다.
  • 컴퓨터, 스토리지, 소프트웨어와 같은 IT자원들을 인터넷을 통해 필요한 만큼 빌려 쓰고 사용한 만큼 비용을 지불하는 서비스이다.

Cloud

  • 컴퓨터 통신망이 구름 같은 것에 싸여 안이 보이지 않는다는 의미를 담고 있다.
  • 사용자는 복잡한 구름(클라우드) 내부를 굳이 알 필요가 없다.
  • 사용자는 언제 어디에서나 이 클라우드 속으로 손을 집어넣어 자기가 원하는 것을 수행할 수 있다.
  • 클라우드에 대한 인터넷 연결은 반드시 필요하다.
  • 컴퓨터 리소스(자원)을 추상화하기 위한 *가상화 기술도 필요하다.
*가상화 : 물리적으로 분산되어 있는 여러 컴퓨터들의 리소스(자원)을 내가 사용하는 하나의 컴퓨터 리소스로 보이게 함

클라우드 컴퓨팅 서비스 모델

Iaas(Infrastructure as a Service)
물리적 서버(CPU, Memory, O/S), 스토리지, 네트워크를 가상화하여 다수의 고객에게 유연하게 제공하는 인프라 서비스이다.

PaaS(Platform as a Service)
Web기반의 서비스 또는 어플리케이션 등의 개발 및 실행을 위한 표준 플랫폼 환경을 서비스 형태로 제공한다. (개발 환경, DBMS 등)

SaaS(Software as a Service)
구글의 Gmail이나 MS Office 365와 같이 어플리케이션(Software)을 인터넷 및 웹브라우저를 통해 서비스로 제공한다.


클라우드 컴퓨팅 서비스 유형

  • 리소스의 배치방식 또는 소유방식에 따라 Private, Public, Hybrid 클라우드로 구분한다.
  • 기업 상황에 따라 적절한 서비스 유형을 선택한다.


Private Cloud
기업 내에 클라우드 데이터 센터를 운영하면서 내부 사원들이 개인 컴퓨터로 클라우드 데이터 센터의 자원을 사용하도록 하는 개념을 말한다.
EX : VMWare 등을 이용하여 구축

Public Cloud
클라우드 서비스 제공자는 사용자에게 상업적인 클라우드 인프라를 제공한다.
EX : AWS, Google App Engine, IBM Blue Cloud 등

Hybrid Cloud
개인과 공공 클라우드 컴퓨팅의 기능이 조합된 것이다.


클라우드 컴퓨팅의 장점


클라우드 컴퓨팅의 단점

profile
개발자가 되고 싶은 1人

0개의 댓글