이번 글은 운영체제 서론으로서 계산 환경(Computing Environment)에 대해서 다루겠습니다.
이 글에서 다룰 계산 환경은
- 전통적 계산(Traditional Computing)
- 이동형 컴퓨팅(Mobile Computing)
- 분산 시스템(Distributed Systems)
- 클라이언트 서버 계산(Client-Server Computing)
- 피어 간 계산(Peer-to-Peer Computing)
- 가상화(Virtualization)
- 클라우드 컴퓨팅(Cloud Computing)
- 실시간 내장형 시스템(Real-TIme Embedded Systems) 입니다.
1) 전통적 계산(Traditional Computing)
- 전형적인 사무실 환경은 네트워크에 연결된 PC들과 파일과 프린트 서비스를 제공하는 서버들로 구성되었지만, 현재의 추세는 원격 접근과 이동성이 다양하게 제공됩니다. 이의 핵심에는 웹 기술이 있다. 웹 기술은 회사들이 자신의 내부 서버에 웹 접근을 제공하는 포털(portal)을 구현합니다.
2) 이동형 컴퓨팅(Mobile Computing)
- 이동형 컴퓨팅은 휴대용 스마트폰과 태블릿 컴퓨터의 컴퓨팅을 말합니다. 오늘날 휴대용 시스템은 이메일이나 웹브라우징뿐만 아니라 음악 연주, 비디오, 디지털 책 읽기, 사진 촬영 및 고품질 비디오의 녹화 등에 사용됩니다. 따라서 이들 장치에서 수행되는 다양한 범위의 응용에서 엄청난 성장이 계속되고 있습니다.
대표적인 것이 전역 위치 시스템(GPS) 칩, 가속도계(accelerometer)와 자이로스코프(gyroscope)의 독특한 기능을 활용한 설계들입니다.
3) 분산 시스템(Distributed Systems)
- 분산 시스템은 물리적으로 떨어져 있는 이기종 컴퓨터들의 집합입니다. 분산 시스템의 컴퓨터들은 사용자가 시스템 내의 다양한 자원들을 접근할 수 있도록 네트워크로 연결되어 있습니다. 공유 자원에 대한 접근은 계산 속도와 기능, 데이터 가용성 및 신뢰성을 향상시킵니다. 데이터 가용성이란 사용자가 데이터를 사용하고자 할 때, 사용할 수 있음을 의미합니다.
네트워크는 가장 단순하게 보면 두 개 이상 시스템 간의 통신 경로입니다. 분산 시스템의 많은 기능들이 네트워킹에 의존하고 있습니다. 네트워크는 사용되는 프로토콜, 노드간의 거리, 전송 매체 따라 다르며, 가장 일반적인 네트워크 프로토콜은 TCP/IP입니다.
네트워크는 노드 간의 거리에 의해 타입이 결정됩니다. 그 종류에는 로컬 에리어 네트워크(LAN), 와이드 에리어 네트워크(WAN), 메트로폴리턴 에리어 네트워크(MAN) 등이 있습니다.
4) 클라이언트 서버 계산(Client-Server Computing)
- 오늘날의 시스템은 클라이언트 시스템에 의해 생성되는 요구를 만족시키기 위한 서버 시스템으로 동작합니다. 이런 특별한 분산 시스템을 클라이언트-서버 시스템이라고 합니다.
서버 시스템은 넓게는 계산 서버와 파일 서버로 분류 될 수 있습니다. 계산 서버는 클라이언트가 어떤 작업을 요청할 수 있는 인터페이스를 제공하며, 서버는 그 작업을 수행하고 결과를 클라이언트에게 돌려보냅니다.
파일 서버는 클라이언트가 파일을 생성, 갱신, 읽기 및 제거할 수 있는 파일 시스템 인터페이스를 제공합니다.
대표적인 시스템이 웹 브라우저 클라이언트에게 파일을 전달하는 웹 서버입니다.
5) 피어 간 계산(Peer-to-Peer Computing)
- 분산 시스템의 다른 구조는 피어 간 시스템(peer-to-peer)입니다. 이 모델에서는 클라이언트와 서버가 서로 구별되지 않습니다. 대신 시스템 상의 모든 노드가 피어로 간주되고 각 피어는 서비스를 요청하느냐 제공하느냐에 따라 클라이언트 및 서버로 동작합니다.
전통적인 클라이언트 서버 시스템에서는 서버가 병목으로 작용할 수 있습니다. 하지만 피어 간 시스템에서는 서비스가 네트워크에 분산된 여러 노드들에 의해 제공될 수 있습니다.
6) 가상화(Virtualization)
- 가상화는 운영체제가 다른 운영체제 내에서 하나의 응용처럼 수행될 수 있게 합니다. 넓게 말하면 가상화는 에뮬레이션을 포함하는 소프트웨어 집단의 한 구성원입니다. 에뮬레이션은 한 컴퓨터가 다른 컴퓨터처럼 똑같이 작동하도록 소프트웨어나 마이크로 프로그래밍은 사용하는 기법입니다.
예를 들면, 애플사가 자신의 데스크톱과 랩톱 컴퓨터의 CPU를 IBM Power CPU에서 인텔 x86 CPU로 전환했을 때 "로제타"라는 에뮬레이션 설비를 포함하여 IBM CPU용으로 컴파일 되었던 응용을 인텔 CPU에서 수행할 수 있게 하였습니다.
이러한 개념이 한 기계를 위해 작성된 전체 운영체제를 다른 기계에서 수행되도록 확장합니다.
7) 클라우드 컴퓨팅(Cloud Computing)
- 클라우드 컴퓨팅은 계산, 저장장치는 물론 응용조차도 네트워크를 통한 서비스로 제공하는 계산 유형입니다. 즉, 어떤 면에서 클라우드 컴퓨팅은 가상화를 그 기능의 기반으로 사용하기 때문에 가상화의 논리적 확장입니다. 예를 들면, 아마존의 EC2 설비는 수천의 서버, 수백만의 가상 기계 및 페타 바이트의 저장장치를 인터넷 상의 누구든지 사용할 수 있게 합니다.
많은 유형의 클라우드 하부구조 내에 전통적인 운영체제가 존재합니다. 그 위에는 사용자 프로세스가 수행되는 가상기계를 관리하는 VMM이 있습니다. 더 위로는 VwarevCloud Director나 오픈 소스인 Eucalyptus 툴 셋트와 같은 클라우드 관리 도구가 있어 VMM을 관리합니다.
이들 도구들은 주어진 클라우드의 자원을 관리하며, 클라우드 구성요소들에 대한 인터페이스를 제공하므로 이들을 새로운 유형의 운영체제로 볼 수도 있습니다.
8) 실시간 내장형 시스템(Real-Time Embedded Systems)
- 내장형 시스템은 현재 가장 유행하는 컴퓨터의 형태입니다. 이 장치들은 자동차 엔진, 공장용 로봇, VCR, 전자파 오븐 등 어느 곳에서나 볼 수 있습니다. 이 장치들은 아주 특정한 작업만을 수행하는 경향이 있습니다. 따라서 이 장치들이 수행되는 시스템은 매우 원시적이며 운영체제도 제한된 기능만을 제공합니다.
내장형 시스템의 사용은 점점 확산되고 있으며 독립적으로 동작하건 네트워크와 웹의 구성원으로 동작하건 이 장치들의 계산 능력 또한 증가 추세에 있습니다.
이 글의 내용은 다음 운영체제 책(https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=46380306)을 참조했습니다.