[CS] OS / Network 아키텍쳐 (Multiprocessors vs Multicomputers, DOS/NOS/Middleware)
Multiprocessors vs Multicomputers
Shared Memory(Multiprocessors)
Shared Memory 아키텍처는 여러 프로세스 또는 스레드가 단일 공유 메모리에 접근하는 컴퓨팅 시스템.
모든 프로세서가 동일한 주소 공간에 접근할 수 있으며, 데이터 공유 및 통신이 용이하다.
동시에 공유 메모리에 접근하는 경우 경쟁 조건과 동기화 문제가 발생할 수 있음.
Private Memory(Multicomputer)
각 프로세서가 자체 독립적인 메모리를 가지고 있으며, 데이터 공유와 프로세서 간의 통신은 네트워크를 통해 이루어진다.
확장성과 동기화 문제가 감소한다.
Bus-based Architecture
프로세서 및 메모리 간의 통신에 Bus(공유 데이터 경로)를 사용.
버스는 모든 프로세서와 메모리에 연결되어 있으며, 한 번에 하나의 데이터 전송만 허용. 이로 인해 Bottleneck이 발생할 수 있음
Switch-based Architecture
네트워크 스위치를 사용하여 프로세서와 메모리 간의 통신을 라우팅한다.
이로 인해 Bottleneck을 감소시키고 더 높은 Scalablitiy와 Performance를 제공할 수 있다.
분산 시스템에서의 Network
분산 시스템의 Transparency한 성질로 아래의 Heterogeneity(이질성)을 숨긴다.
- High degree Node heterogeneity(높은 수준의 노드 이질성)
- 고성능 병럴처리, 고급형 서버, 간단한 네트워크 컴퓨터 등 간의 차이
- High degree Network heterogeneity(높은 수준의 네트워크 이질성)
- 근거리 네트워크, 무선 연결, 장거리, 대기 시간이 긴 연결 등 간의 차이
분산 운영 체제(DOS, Distributed Operation System)
OS(Kernel)을 따로 둠. 각각의 컴퓨터의 OS는 일반적으로 동일하고 서비스는 Transparently하게 여러 컴퓨터에 분산됨
네트워크 운영 체제(NOS, Network Operation System)
DOS에서 네트워크 OS 기능까지 각 컴퓨터로 분산한다. 서비스는 개별 노드에 연결된다.
미들웨어(Middleware)
Middleware는 소프트웨어 응용 프로그램 및 시스템 간에 통신, 상호 작용 및 데이터 공유를 지원하는 중간 소프트웨어 계층이다.
서로 다른 소프트웨어 컴포넌트 또는 시스템 간의 통합을 단순화하고 표준화하여 애플리케이션 간의 상호 작용을 가능하게 한다.
가장 좋은 분산환경, 이질적(Heterogenius)인 환경들을 모두 숨김 → 각 컴퓨터의 OS는 다른 컴퓨터에 대해 알 필요 없음, OS가 동일할 필요 없음, 서비스는 여러 노드에 Transparently하게 분산됨
각 노드의 네트워크, 운영체제는 다 이질적일 수 있다.
- OS와 분산 애플리케이션 사이단에 위치한 계층
- 분산 시스템의 Complexity(복잡성)과 Heterogeneity(이질성)을 Hide(숨김)
- Low-level OS ↔ 추상화된 프로그래밍 언어 간의 Gap 사이를 매꿔줌
- 분산 애플리케이션을 위한 프로그래밍 추상화 및 인프라 제공
- 이질성을 줄여주어, 네트워크 하드웨어 OS… 등 신경써야 할 것들을 Mask(숨겨) 개발자들의 부담을 감소시킴
- Higher-level의 프로그래밍 추상화 제공 (Socket보다 High level)
- 개발자들의 개발 부담을 줄이고 Transparencies라고 불림
- 운영체제 → 하드웨어를 사용 가능하게 만드는 소프트웨어
- 미들웨어 → 분산 시스템을 프로그래밍 및 관리 가능하게 만듬
Content / Image Reference (CC License)
Tannenbaum and Van Steen :: Distributed Systems: Principles and Paradigms (PDF)
'CS > 아키텍쳐 & 분산시스템' 카테고리의 다른 글
[CS] 분산 상호 배제 (Distributed Mutual Exclusion) (1) | 2024.01.05 |
---|---|
[CS] 동기화(Syncronization)와 Clock (1) | 2024.01.05 |
[CS] 분산 시스템 간의 Communication과 RPC(Remote Procedure Call) (1) | 2024.01.05 |
[CS] 아키텍쳐 설계 패러다임 (Client-Server, EDA, MSA, Serverless..) (0) | 2023.11.02 |
[CS] Distributed System, 분산 시스템의 정의와 목표 (0) | 2023.10.31 |