본문 바로가기
컴퓨터과학/Distributed System

Introduction to Distributed System

by NariNalDa 2012. 8. 23.


필수영단어

- invariance : 불변성

- sequential : 순차적인

- interact : 교류하다.

- grant : 승인하다

- locomotion : 운동

- facilitate : 가능하게 하다. 

- heterogeneous : 이종의

- accomplish : 성취하다. 

- dispersion : 확산

- aggregation : 집합, 집성

- expertise : 전문지식

- synchrony : 동기 (동의어 : synchronism)

- asynchrony : 비동기 (동의어 : asynchronism)

- autonomy : 자주권 

- constitute : ~이 되다, ~이 되는 것으로 여겨지다.



Tue/Aug/21                     Distributed System


1. Introduction

1.1 What is Distributed System? (아 분산 시스템이 머임?)


Leslie Lamport는 A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.이라고 말했단다. 분산시스템이란  니 컴퓨터를 쓸수없게 만들수 있는 심지어 존재하는지조차 몰랐던 컴퓨터의 실패란 것이다... 라는 말인데 -.-.. 사실 제대로 해석한건지 감이 잘 안온다..

그렇다면 컴퓨터시스템의 프로세서가 메인 메모리로부터 멀리 떨어져 있다면.. 입출력장치가 프로세서로부터 떨어져있다면 그것이 분산시스템인가?? 이런 물리적인 것들을 고려한다는것은 not acceptable하므로 몇 가지 기준을 바탕으로 기능상의 능력을 판단하기로 한다.

- Multiple processes : 시스템이 하나이상의 순차적인 프로세스로 이루어져야 한다. 이 프로세스들은 시스템이거나 유저프로세스들일수 있지만 각 프로세스는 모두 독립적인 컨트롤스레드를 가져야 한다.(명시적이든 암시적이든)

- Interprocess communication : 프로세스들은 유한한 시간내에 한 프로세스에서 다른 프로세스로 이동하는 메시지를 이용하여 다른 프로세스와 의사소통해야한다. 이 메시지링크들은 채널이라고도 불린다.

- Disjoint address spaces : 프로세스들은 disjoint address spaces(분할된 주소 공간)을 가져야 한다. 우린 shared-memory multiprocessors 를 고려하지 않을 것이다 (공유 메모리가 메시지를 이용하여 구현가능하지만서도 말이다)

- Collective goal : 프로세스들은 공동의 목표를 위해 서로 교류하여야 한다. 교수님이 책에 적절한 예를 실어주셔서 이를 해석해본다면 이런 것이다. P 는 주어진 x에 대하여 f(x) = x^2을 계산하는 거고 Q 는 주어진 x에 대하여 ∏를 곱하는 녀석이다. 이러면 이걸 분산 시스템이라고 부르기 힘들지만 P와 Q가 협력하여 주어진 x를 반지름으로 하는 원의 넓이를 구하는 일을 한다!! (원의 넓이는 ∏r^2 아시죠?ㅎ) 이러면 의미있는 분산 시스템의 예라 할 수 있는 것이다.


1.2 Why Distributed Systems? (분산 시스템 왜 함?)


- Geographically distributed environment : 우선, 많은 상황에서 컴퓨팅환경자체가 지리적으로 분산되어있다. 예를 들어 은행 네트워크를 생각해보면 은행들은 흩어져있는 ATM기나 내부 은행거래들을 관찰하고 업무처릴 하진 않는가? 인터넷도 그렇고.. 사용자의 활동성 또한 여기에 가미되었다.


- Speed Up : 계산의 속도를 늘릴 필요가 있다. 전통적인 uniprocessor가 빨라지는 방법은 물리적인 한계가 있다. 큰 문제를 작은 여러 문제로 나누고 각 subproblem을 다른 프로세스들이 동시에 작동하도록 하는 것은 매혹적인 계산속도 증강 방법이다. 꽤 자주 이것은 하나의 엄청 빠른 uniprocessor에 투자하는것보다 더 간단하고 경제적이다


- Resource sharing : 하드웨어나 소프트웨어 자원들을 나눌 필요가 있다.


- Fault-tolerance : 넷째로 하나의 중심적인 노드를 설계한 컴퓨팅 시스템은 그 프로세서가 망하면 완전히 쫄딱 망해버리는 경향이 있다. 많은 사용자들은 이건 너무 위험하다고 생각한다. 그래서 부분저적인 degradation(저하)가 있다고 하더라고 이를 감수하고 분산 시스템에 협력함으로써 reliability와 availability를 높이려 한다. 이를 graceful degradation (고귀한 저하, 악화??)라고 한다.


1.3 EXAMPLES OF DISTRIBUTED SYSTEMS


- World Wide Web : www는 하나의 컴퓨터가 다른 컴퓨터에 있는 문자적?(textual), 비 문자적 정보들을 참조할 수 있게 한다.


- Network file server : local-area network는 고속의 링크로 연결된 수많은 독립적인 컴퓨터로 이루어져 있다. 당신이 당신의 사무실에서 당신 컴퓨터로 로그인할때가 당신이 local-area network의 일부가 되는 때이다. 많은 local-area network에서 각각의 네트워크안의 기계들은 파일 서버의 역할을 수행한다.


- Banking network : 에이미가 300달러 필요한데 한 계좌에서 100달러밖에 못 뽑는다면 여러도시의 계좌들에서 100달러씩 뽑아 쓸 것이다. 이것은 서로 다른 세 도시에 있는 그녀의 은행계좌에 등록되고 그녀의 잔액은 다시 계산될 것이다.


- Peer-to-peer networks : Napster 시스템은 MP3 파일을 퍼뜨리기 위해 비전통적인 방법을 썼다. 중심컴퓨터에 노래들을 저장하는 대신 노래들의 사용자의 기계에 살 수 있도록 했다.


- Process control systems : 생산성과 유지를 감시하기 위해 넓게 조절장치



* 이 글의 내용은 Distributed Systems An Algorithmic Approach [Sukumar Ghosh]의 내용을 주로 번역하고 있습니다.

'컴퓨터과학 > Distributed System' 카테고리의 다른 글

3. Models of Communication  (0) 2012.08.26