📂 목차
- 1.10.1 Traditional Computing
- 1.10.2 Mobile Computing
- 1.10.3 Client-Server Computing
- 1.10.4 Peer-to-Peer Computing
- 1.10.6 Real-Time Embedded Systems
📚 본문
10.3 이후로 보기를 권장한다.
1.10.1 Traditional Computing
과거의 컴퓨팅 환경은 PC, 서버, 제한적인 원격 접근, 노트북을 통한 휴대성 등으로 명확하게 구분되었지만 웹 기술의 발전과 WAN 대역폭의 증가는 이러한 전통적인 경계를 허물고 있다.
사무실 환경의 변화
- 기업들은 내부 서버에 대한 웹 접근성을 제공하는 포털을 구축
- 보안 및 유지보수가 용이한 네트워크 컴퓨터(씬 클라이언트)가 전통적인 워크스테이션을 대체
- 모바일 컴퓨터와 장치들은 PC와 동기화되거나 무선/셀룰러 네트워크를 통해 회사 정보 및 웹 리소스에 접근하며 휴대성과 연결성을 극대화
가정 환경의 변화
- 느린 모뎀으로 한정되었던 가정 내 인터넷 연결은 고속 광대역망이 보편화되면서 데이터 접근성이 크게 향상
- 웹 서버 혹은 프린터 및 클라이언트 PC를 포함하는 홈 네트워크 구축까지 가능하며, 방화벽을 통해 보안을 강화
컴퓨팅 자원 활용 방식의 변화
- 20세기 후반에는 컴퓨팅 자원이 부족하여 배치(Batch) 시스템과 상호작용(Interactive) 시분할(Time-sharing) 시스템이 주를 이룸.
- 오늘날 전통적인 다중 사용자 시분할 시스템은 드물어졌지만, 시분할 스케줄링 기술 자체는 여전히 데스크톱, 노트북, 서버, 모바일 컴퓨터 등 다양한 장치에서 여전히 활용 됨.
결론적으로, 컴퓨팅은 중앙 집중적이고 분리된 환경에서 벗어나, 웹 기술, 고속 네트워크, 모바일 장치를 통해 더욱 유연하고 상호 연결된 분산 환경으로 진화했으며, 과거의 자원 활용 기술은 현대에서 다중 작업 환경을 지원하는 방식으로 적용됨.
1.10.2 Mobile Computing
모바일 컴퓨팅은 스마트폰과 태블릿 같은 휴대용 기기를 중심으로 빠르게 발전했다. 과거에는 데스크톱이나 노트북에 비해 화면 크기, 메모리, 기능 면에서 제약이 있었지만, 이제는 그 차이가 거의 사라져 노트북과 태블릿의 기능 구분이 어려워졌다. 오히려 모바일 기기만이 제공할 수 있는 고유한 기능들도 생겨났다(다양한 하드웨어의 embedding).
주요 변화
- 기능 확장 - 이메일, 웹 브라우징을 넘어 음악, 비디오 재생, 전자책 읽기, 사진 촬영, 고화질 비디오 편집 등 다양한 용도로 활용
- 고유 센서 활용 - GPS 칩, 가속도계, 자이로스코프 같은 내장 센서 덕분에 내비게이션, 증강 현실(AR), 모션 기반 게임 등 데스크톱/노트북에서는 구현하기 어렵거나 불가능한 애플리케이션이 등장
- 연결성 - 주로 Wi-Fi(802.11) 또는 셀룰러 데이터 네트워크를 통해 온라인 서비스에 접속
남아있는 한계
- 하드웨어 제약: 여전히 데스크톱/노트북에 비해 메모리 용량과 처리 속도(더 작고 느린 프로세서, 적은 코어)는 제한적이며 이는 전력 소비를 최소화하기 위한 설계 때문이다.
주요 운영체제
- 현재 모바일 컴퓨팅 시장은 Apple iOS와 Google Android 두 운영체제가 주축
모바일 컴퓨팅은 단순히 휴대 가능한 기기를 넘어, 독자적인 기능과 생태계를 구축되었다.
1.10.3 Client-Server Computing
클라이언트-서버 시스템은 주로 두 가지가 사용된다:
-
Compute-server system: 서버는 클라이언트가 작업을 수행하도록 요청(예: 데이터 읽기)을 보낼 수 있는 인터페이스를 제공한다. 이에 응답하여 서버는 해당 작업을 실행하고 그 결과를 클라이언트에게 전송한다.
-
File-server system: 클라이언트가 파일을 CRUD 할 수 있는 파일 시스템 인터페이스를 제공한다. 파일의 실제 내용은 전통적인 웹 페이지부터 고화질 비디오와 같은 풍부한 멀티미디어 콘텐츠에 이르기까지 매우 다양하다.
1.10.4 Peer-to-Peer Computing
시스템 내의 모든 노드(피어)가 동등하게 여겨지며, 각 피어는 서비스를 요청하는지 제공하는지에 따라 클라이언트 또는 서버 역할을 모두 수행할 수 있다(분산 시스템임). 전통적인 클라이언트-서버 시스템에서 서버가 병목 현상을 일으킬 수 있는 반면, P2P 시스템에서는 서비스가 네트워크 전체에 분산된 여러 노드에 의해 제공될 수 있다는 장점이 있다.
P2P 네트워크 참여 및 서비스 검색 방식
P2P 시스템에 참여하려면 노드는 먼저 피어 네트워크에 합류해야 하며, 네트워크에 합류한 노드는 다른 노드에 서비스를 제공하고 요청할 수 있다. 서비스 가용성을 확인하는 방법은 크게 두 가지가 있다:
-
중앙 집중식 조회 서비스 이용 - 노드가 네트워크에 참여할 때 자신의 서비스를 중앙 집중식 조회 서비스에 등록한다. 특정 서비스를 원하는 노드는 먼저 이 중앙 조회 서비스에 접속하여 해당 서비스를 제공하는 노드를 확인하고, 클라이언트와 서비스 제공자 간의 통신이 직접 이루어진다.
-
분산된 서비스 검색(브로드캐스팅) - 중앙 집중식 조회 서비스 없이, 클라이언트 역할을 하는 피어가 원하는 서비스를 제공하는 노드를 찾기 위해 네트워크의 다른 모든 노드에 요청을 브로드캐스팅 후 해당 서비스를 제공하는 노드(들)는 요청을 보낸 피어에게 직접 응답한다. 이러한 접근 방식을 지원하기 위해 피어들이 네트워크 내의 다른 피어가 제공하는 서비스를 발견할 수 있도록 발견 프로토콜(Discovery Protocol)이 필요하다.
1.10.5 Cloud Computing
클라우드 컴퓨팅은 컴퓨팅 자원, 저장 공간, 심지어 애플리케이션까지도 네트워크를 통해 서비스 형태로 제공하는 방식이다. 이는 가상화 기술을 기반으로 하며, Amazon EC2와 같이 수많은 서버와 방대한 저장 공간을 인터넷을 통해 제공하고 사용량에 따라 요금을 부과하는 것이 대표적인 예시다.
클라우드 컴퓨팅의 주요 유형
클라우드 컴퓨팅은 여러 가지 형태로 분류할 수 있으며, 복합적으로 활용될 수 있다:
- 퍼블릭 클라우드(Public Cloud) - 인터넷을 통해 누구나 비용을 지불하고 사용할 수 있는 클라우드
- 프라이빗 클라우드(Private Cloud) - 특정 기업이 자체적인 용도로 운영하는 클라우드
- 하이브리드 클라우드(Hybrid Cloud) - 퍼블릭 클라우드와 프라이빗 클라우드 구성 요소를 모두 포함하는 형태
- SaaS(Software as a Service) - 워드 프로세서나 스프레드시트 같은 하나 이상의 애플리케이션을 인터넷을 통해 서비스로 제공
- PaaS(Platform as a Service) - 애플리케이션 사용을 위한 소프트웨어 스택(예: 데이터베이스 서버)을 인터넷을 통해 즉시 사용할 수 있도록 제공
- IaaS(Infrastructure as a Service) - 서버나 저장 공간(예: 백업 데이터 저장 공간)과 같은 컴퓨팅 인프라를 인터넷을 통해 제공
클라우드 인프라의 관리
클라우드 인프라 내부에는 전통적인 운영체제들이 존재하며, 그 위에는 가상 머신(VM)을 관리하는 VMM(Virtual Machine Monitor)이 있다. 더 나아가, VMM 자체는 VMware vCloud Director나 오픈 소스 Eucalyptus와 같은 클라우드 관리 도구에 의해 관리되며, 이 도구들은 클라우드 내의 자원을 관리하고 클라우드 구성 요소에 대한 인터페이스를 제공하여, 사실상 새로운 유형의 운영체제로 간주될 수 있다.
참고로 퍼블릭 클라우드에서 IaaS를 제공하는 경우, 클라우드 서비스와 사용자 인터페이스는 방화벽으로 보호된다.
1.10.6 Real-Time Embedded Systems
임베디드 컴퓨터(Embedded computers)는 매우 특정하고 제한적인 작업을 수행하기 위해 만들어진 시스템이며, 주로 하드웨어 장치를 모니터링하고 관리하는 데 시간을 보낸다(주로 상호작용하는 사용자의 비중이 상대적으로 없음). 따라서 사용자 인터페이스가 거의 없는 경우가 많고, 실행되는 시스템과 운영체제도 제한된 기능을 제공하는 원시적인 형태이다.
임베디드 시스템의 다양한 형태와 확장성
임베디드 시스템은 매우 다양하게 존재:
- 주로 리눅스와 같은 표준 운영체제에서 특정 목적의 애플리케이션을 실행하는 범용 컴퓨터
- 다른 일부는 특정 목적의 임베디드 운영체제를 탑재한 하드웨어 장치
- 운영체제 없이 태스크를 수행하는 ASIC(Application-Specific Integrated Circuits)으로 구현된 하드웨어 장치
로 나눌 수 있다.
실시간 운영체제(Real-time Operating Systems)의 중요성
임베디드 시스템은 거의 항상 실시간 운영체제(Real-time Operating Systems, RTOS)를 사용하며, 실시간 시스템은 프로세서 작동이나 데이터 흐름에 엄격한 시간 제약 조건(strictly time constraints)이 부여될 때 사용되어 전용 애플리케이션에서 제어 장치로 자주 활용된다. 일반화 된 예시로 센서가 데이터를 컴퓨터에 전달하면, 데이터를 분석하고 센서 입력을 수정하기 위해 제어 장치를 조정해야 할 때 사용한다.
실시간 시스템은 정확한 결과뿐만 아니라 정해진 시간 제약 조건 내에서 결과를 반환해야만 한다.
예시 과학 실험 제어 시스템, 의료 영상 시스템, 산업 제어 시스템, 특정 디스플레이 시스템, 자동차 엔진 연료 분사 시스템, 가전제품 컨트롤러, 무기 시스템
✒️ 용어
발견 프로토콜
발견 프로토콜은 네트워크 내에서 서비스나 자원을 찾아내는 데 사용되는 통신 규약을 말하며, 특히 P2P 시스템이나 분산 환경에서 특정 서비스를 제공하는 노드가 어디에 있는지, 또는 어떤 자원이 사용 가능한지 알 수 없을 때 이 프로토콜이 핵심적인 역할을 한다.
- 브로드캐스트(Broadcasting) 기반
서비스를 찾는 노드가 네트워크의 모든 다른 노드에게 요청을 널리 알리는(브로드캐스트) 방식
과정
- 서비스를 찾는 노드(클라이언트 역할)는 특정 서비스 요청 메시지를 네트워크 전체에 전송
- 이 요청을 받은 노드 중 해당 서비스를 제공하는 노드(서버 역할)는 요청을 보낸 노드에게 직접 응답
- 이후 클라이언트는 응답한 서비스 제공자 노드와 직접 통신을 시작
장점으로 중앙 집중식 서버가 필요 없어 진정한 의미의 분산 시스템을 구현 가능하다.
단점으로 네트워크 트래픽이 많아질 수 있고, 대규모 네트워크에서는 비효율적이다.
- 멀티캐스트(Multicasting) 기반
브로드캐스트와 유사하지만, 모든 노드가 아닌 특정 그룹의 노드에게만 요청을 전송하는 방식이다. 장점으로 브로드캐스트보다 효율적이며, 네트워크 트래픽을 줄일 수 있다.
- DHT(Distributed Hash Table) 기반 (구조화된 P2P 네트워크)
분산 해시 테이블은 각 노드가 특정 데이터나 서비스의 위치 정보를 분산된 방식으로 저장하고 관리하는 고급 형태의 발견 프로토콜
과정
- 데이터나 서비스에 고유한 키를 부여하고
- 이 키를 해싱하여 네트워크의 특정 노드에 매핑
- 데이터를 찾는 노드는 DHT 프로토콜에 따라 해당 키에 해당하는 노드를 찾아간다.
장점으로 대규모 네트워크에서 효율적인 검색이 가능하고, 확장성이 뛰어나다.
단점으로 구현이 복잡하며, 네트워크 변화에 따른 DHT 구조 유지에 오버헤드가 발생할 수 있다.
예시 제로콘프(Zeroconf) / 봉쥬르(Bonjour) / UPnP(Universal Plug and Play): 네트워크 프린터, 스마트 TV, 미디어 서버 등 홈 네트워크 장치들이 서로를 자동으로 찾아 연결하는 데 사용 BitTorrent: 파일 조각을 가진 피어들을 찾아 연결하는 데 사용 블록체인 네트워크 (예: 비트코인, 이더리움): 새로운 노드가 네트워크에 참여할 때 다른 노드들을 발견하고 블록체인 데이터를 동기화하는 데 사용 IoT(사물 인터넷) 장치: 스마트 홈 기기들이 허브나 다른 기기들을 찾아 연결하는 데 발견 프로토콜이 활용
Strictly Time Constraints
엄격한 시간 제약 조건이란, 시스템의 특정 연산이나 태스크가 미리 정의된 마감 시간(deadline) 내에 반드시 완료되어야 하며, 이를 지키지 못할 경우 시스템의 기능적 오류나 재앙적인 결과가 발생하는 조건을 의미한다.