분산 시스템 및 컴퓨팅) Introduction

나나·2022년 3월 16일
0
post-thumbnail

"분산시스템" 하면 여러 컴퓨터들로 이루어진 시스템이라는 말이 가장 먼저 떠오른다. 대충 여러 컴퓨터들로 작업을 수행하면 효율적이라는 건 알겠다. 근데, 분산시스템을 사용하는 구체적인 이유는 무엇일까? 크게 4가지가 있다.

분산시스템을 사용하는 이유

1. Resource Sharing

만약 각자의 기능을 가진 여러 가지의 사이트들이 서로 연결되어 있다고 가정한다면, 사용자는 한 사이트에서 다른 리소스를 사용할 수 있게 될 것이다. 예를 들어 A site의 사용자가 B site에 존재하는 프린터 기능을 사용할 수도 있는 거고, 반대로 B site의 사용자가 A site에 존재하는 파일들에 접근할 수도 있는 것이다.

즉, 분산 시스템의 resource sharing은 원격 사이트의 파일 공유, 분산 데이터베이스의 정보 처리, 원격 사이트의 파일 인쇄, 원격 특수 하드웨어 장치 사용 및 기타 작업을 수행하는 메커니즘을 제공한다.

한 마디로 각 시스템이 통신망을 통해 연결되어 있으므로, 유용한 자원을 공유하여 사용할 수 있다.

2. Computation Speed Up

만약 특정 연산이 동시에 실행될 수 있는 작은 연산들로 나뉠 수 있다면, 분산 시스템은 다양한 사이트들에 작은 연산들을 분산시켜줌으로써 연산 속도를 높여준다.

또한, 특정 사이트가 현재 작업들이 너무 많아 과부하가 생겼다면 그 중 일부를 부하가 적은 다른 사이트로 이동시킬 수 있으며, 이를 load sharing이라 한다.

위와 같은 작업들을 통해 성능 향상의 효과를 볼 수 있다.

3. Reliability

분산 시스템에서는 한 사이트가 다운되더라도 남은 다른 사이트들은 계속 운영되어 신뢰성을 높일 수 있다.

분산 시스템은 하드웨어와 데이터 모두에서 충분한 이중화를 통해 일부 사이트에 장애가 발생하더라도 시스템을 계속 작동할 수 있도록 한다.

또한, 사이트에 장애가 발생할 시 시스템이 바로 감지하며, 장애 복구를 위해 적절한 조치를 취한다. 이때 시스템이 장애가 발생한 사이트의 서비스를 더 이상 사용하지 않도록 한다.

그리고 만약 장애가 발생한 사이트의 기능을 다른 사이트로 인계할 수 있는 경우, 시스템에서 해당 기능을 다른 사이트로 이전하고 해당 이전 작업이 올바르게 되었는지 확인해준다.

마지막으로 장애가 발생한 사이트가 복구되었을 경우, 해당 사이트가 다시 시스템으로 성공적으로 통합될 수 있도록 메카니즘이 구성되어 있다.

4. Communication

사용자들이 지리적으로 멀리 떨어져 있더라도 통신망을 통해 연결되어 있기 때문에 정보를 교환할 수 있다.

분산시스템의 목표

  • Heterogeneity
  • Transparency: 시스템이 분산되어있다는 사실을 숨기고 하나의 시스템으로 보이도록 한다.
    - 왜? 사용자는 시스템이 분산되어있다는 사실을 알 필요가 없다.
  • Openness
  • Concurrency
  • Security
  • Scalability
  • Resilience to Failure

(↓얘가 어디 속하는지 몰라서 일단 따로 적어둠)

  • Making resources accessible: 사용자가 필요로 하는 서비스를 쉽게 accessible하게 한다.

분산시스템의 정의💯

A collection of independent computers that appears to its users as a single coherent system.

즉, 사용자가 보기에 하나의 시스템으로 보이는, 여러 개의 독립적인 컴퓨터(서버, 컴포넌트)들의 집합이다.

📌 2가지 특징

① 하드웨어의 측면에서의 특징

분산 시스템의 컴포넌트들은 자율적(Autonomous)이다.

② 소프트웨어 측면에서의 특징

서비스를 받는 사용자는 분산 시스템으로 하나의 시스템(Single System Image)으로 생각한다. (Transparency)

① Challenges in Autonomity

자치적인(각자의 OS를 갖는) 여러 컴퓨터들이 네트워크에 의해 연결되어 있고, 메모리나 클락을 공유하지 않는다. 또한 message passing인 IPC로 통신하고 있으며, 각자의 메모리를 갖기 때문에 다른 컴퓨터의 메모리를 쓸 일이 있을 경우 권한을 미리 얻어둬야 한다. 여러 컴퓨터들이 각자의 OS를 갖고 있다는 점이 분산 시스템을 만들 때의 Challenge였다.

📌 Degree of Coupling in Hardware Concept

1. Tightly Coupled

동일 운영체제 하에서 여러 개의 프로세스가 하나의 메모리를 공유하여 사용하는 시스템으로 다중(병렬)처리 시스템이라고도 한다. 서로간의 의존성이 강하다.

  • 하나의 운영체제가 모든 프로세스와 시스템 하드웨어를 제어한다. 프로세스 간의 통신은 공유메모리를 통해서 이루어진다.
  • 하나의 메모리를 사용하므로 프로세스 간의 결합력이 강하다.
  • 공유메모리를 차지하려는 프로세스 간의 경쟁을 최소화해야 한다.

2. Loosely Coupled

각 프로세스마다 독립된 메모리를 가진 시스템으로 분산처리 시스템이라고도 한다. 둘 이상의 독립된 컴퓨터시스템을 통신망(통신 링크)을 통해 연결한 시스템이다.

  • 각 시스템마다 독자적인 운영체제를 가지고 있다.
  • 각 시스템은 독립적으로 작동할 수 있고 필요한 경우에는 상호 통신을 할 수도 있다.
  • 프로세스 간의 통신은 메시지 전달이나 원격 프로시저 호출을 통해서 이루어진다.
  • 각 시스템마다 독자적인 운영이 가능하므로 프로세스 간의 결합력이 약하다.

분산시스템을 위한 컴퓨터 구조

② Challenges in Single System Image

Middleware

미들웨어란,

  1. 애플리케이션 계층과 OS 계층 사이에 위치하면서
  2. 동일한 미들웨어 내 서로 다른 애플리케이션끼리 상호작용할 수 있는 소프트웨어 계층

을 말한다. 미들웨어는 OS가 다르다는 것을 숨기면서 동일한 인터페이스를 제공한다.

  • A distributed system organized as middleware
  • Note that the middleware layer extends over multiple machines
  • Middleware = NOS + additional software layer

Transparency의 종류💯

TranparencyDescription
Access Transparency데이터 표현 방식과 리소스 접근 방식을 숨긴다(Hide differences in data representation ans how a resource is accessed)
Location Transparency리소스가 어디에 위치하고 있는지 숨긴다
Migration Transparency사용자가 리소스를 사용하지 않는 동안 리소스의 이동을 숨긴다
Relocation Transparency사용자가 리소스를 사용하는 동안 리소스의 이동을 숨긴다
Replication Transparency사용자에게 리소스의 복제를 숨긴다
Concurrency Transparency서로 다른 사용자가 리소스에 동시적으로 접근하는 것을 숨긴다
Failure Transparency리소스의 실패와 회복에 대한 사실을 숨긴다
Persistence Transparency(소프트웨어) 리소스가 메모리에 있는지 디스크에 있는지를 숨긴다

📌 Degree of Coupling in Software Concept

제어 소프트웨어가 중앙 집중화되어있고 global information(not global clock)을 쓰는 경우 Tightly Coupled, 그 외의 경우 Loosely Coupled라 한다.

clock은 logical global clock을 쓰는 경우 또한 tightly coupled

분산시스템을 위한 OS의 종류

SystemDescriptionMain Goal
DOS(분산 OS)멀티프로세서와 동종의 멀티컴퓨터를 위한 tightly-coupled OS하드웨어 리소스 숨기기 및 관리
NOS(Network OS)여러 다른 종류의 멀티 컴퓨터들을 위한 loosely-coupled OS(LAN, WAN)원격 클라이언트들에게 로컬 서비스 제공
Middleware범용 서비스를 구현하는 NOS 위에 추가 레이어분산 투명성(transparency) 제공

DOS/NOS/MiddlewareOS 비교 💯

Timeline🕑

H/D와 S/W의 결합도 감소(Loosely-coupled)

GenerationSystemGoalsCharacteristics
First(60~70)Centralized OS(Uniprocessor)리소스 관리 확장 시스템(Virtuality)프로세스 관리, 메모리 관리, 입출력 및 파일 관리
Second(80)Network OS리소스 공유(Interoperability)리소스 접근, 정보교환, 네트워크 브라우징 → Communication
Third(90)Distributed OS (Multi-processors, Homogeneous Multi-computers)멀티프로세서와 멀티컴퓨터의 단일 컴퓨터 표시(Transparency)파일 시스템의 global view, Single name space, 보안, 시간 동기화, 확장가능한 연산능력
Fourth(00)Middleware OS (Heterogeneous Multi-computers)연계(Cooperative) 작업(Autonomicity)개방적이고 연계적(Cooperative)인 분산 애플리케이션들

참고
https://padakuu.com/distributed-system-motivation-185-article
https://jess2.tistory.com/90
https://life-with-coding.tistory.com/79
https://blog.daum.net/yhedang/13630169
학교 전공 수업 자료

profile
코린이의 둥당둥당 개발일지

0개의 댓글