[Distributed Systems] 분산처리 정의, 특성, 사용하는 motivation

퐁퐁이·2021년 12월 29일
0

Distributed Systems

목록 보기
1/5

이 블로그는 단국대학교 김승훈 교수님 수업을 토대로 작성되었습니다.
저작권 문제가 될 수 있는 강의자료는 되도록 지우고 작성하였습니다.

[1] 분산처리 정의 (3~)

정의

HW나 SW컴포넌트들이 NW으로 연결된 컴퓨터 상에서 돌아가는 것
→ 서로 관계가 있기때문에 Communicate 하거나 Coordinate를해야함

→ 그 방법은 message를 전달하는 방법만이 필요한 내용을 전달하고 coordination

컴퓨터 network vs 분산시스템 차이

→ 설치되어 있는 OS나 여러가지 서버를 or 서로 다른 컴퓨터를 의식하며 file을 전송한다거나.. 이렇게 사용하면 computer network, 의식하지 않고 사용하면 분산시스템

-Computer network: autonomous computers are explicitly visible

-Distributed system: 여러 개의 autonomous한 컴퓨터(서버가 있고 client가 있고.. server는 OS가 어떻게 구성이됐고..)가 있다고 해도 transparent 하게

→ 서버가 있고 OS는 리눅스고 이런식으로 생각하면 explicitly visible

→ transparent는 제일 중요한 단어 → 우리가 느끼지 못하게 라는 의미

[2]분산처리 특성 (4~5)

concurrency of components

-실행을 여러 프로세스들이 동시에 함(concurrent)

-서로 무관한 것이 아니고 어떤 resource(데이터..)를 공유하는 프로그램들 동시에 실행(coordination)할 때 필요로 한 이런 것들의 가장 중요한 특성이 concurrency

independent failures of components

-component들이 고장날 때 각자 독립적으로 고장나는거지 서로 영향을 주지 않음 → 즉, 다른 component들은 계속 동작을 함

-특히 network가 고장(failure)이 났다? 컴퓨터끼리 단절(isolation)됨→컴퓨터가 고장난 것은 아님. 계속 running함, network가 단절되었기 때문에 서로 고립되었을 뿐

-그래서 제일 큰 문제 중 하나가 우리가 이런 컴퓨터에 고장이 났든 or 프로그램 컴퓨터는 괜찮지만 그 안에 들어가는 process가 어떤 비정상적인 상태로 termination(crash)이 됐든 or network 자체가 죽었든, 이런 모든 것들을 우리가 즉각 알 수 없다

→ 여러 component가 구성돼있는데 failure(고장)가 나는. 굉장히 서로 indepent함. 고장이 동시에 나는 것도 아니고..

→ 예) 상대편과 전화 중, 무슨 이유로 상대편과 전화가 갑자기 끊어질 때(엘리베이터, 폰문제), 우리는 상대편이 전화를 안하고 있다는 것을 모름 . 언제 끊어졌는지 알 수 없으므로 rollback해서 다시시작 → 컴퓨터는 상대편 process와 어디서부터 동기를 마쳐야하나... 등의문제가생김

lack of global clock

-불행히도 global한 시계는 없음. 어느정도 정밀도에서 차이가 나는 시계는 있을 지언정 아주 정확한 global clock이 없다

→혼자가 아닌 여럿이서 실행의 action을 순서를 맡는다던가, 동시에 한다던가 등을 하려면 시계가 있어야 함

[3] 분산처리 사용하는 motivation (6~7)

Shared resources (자원을 share)

-disk와 pinter 같은 하드웨어 component들 공유

→ 예) 컴퓨터들이 프린터를 공유 / 가까이 달린 하드디스크 용량이 작으면 대용량하드디스크를 사무실에 두고 하드웨어공유(File System)

분산시스템 사용 이유

(1) functional distribution

→ 각자의 기능적으로 봤을 때 역할이 다르므로 분산 시스템이 자연발생적으로 생겼다. 컴퓨터들이 기능적으로 다 똑같지 않음

-client/server (누구는 client, 즉 서비스를 요청하고 그 요청된 서비스를 제공하는 server.. 기능적으로 다름)

-Data gathering/data processing (데이터 모음 데이터 가공)

-Sharing of resources with specific functionalities

(2) load distribution / balancing

→ 일 분배 적절히. load balancing

(3) replication of processing power

→ processing 파워를 중복하자

(4) economics

→ 큰 슈퍼 컴퓨터 한 대 보다는 작은 컴퓨터를 더 많이 사용하는 게 효율이 높다. 이러한 경제성의 논리 때문에 processing power도 중복하게 됨

profile
코딩하는 에디

0개의 댓글