EverGiver
운영체제 발전 과정 본문
728x90
운영체제 발전 과정
- 1940년대 : 운영체제 없음 (작업별 순차 처리)
- 사용자가 기계어로 직접 프로그램 작성
- 실행하는 작업별 순차 처리 시스템 사용
- 컴퓨터에 필요한 모든 작업 프로그램에 포함
- 명령어 저장 방법, 계산 대상, 결과 저장 위치와 방법, 출력 시점, 위치 등이 프로그램에 포함
- 모든 작업을 예약으로 진행하여 문제가 발생 - 1950년대 : Batch processing system (일괄 처리 시스템)
- 작업을 올리는 시간과 해제하는 시간 줄이는 데 관심 (batch, buffering, spooling 등 방법 도입)
- Batch 처리는 직렬 처리 기술과 동일
- 작업 준비 시간을 줄이려고 데이터가 발생할 때마다 즉시 처리하지 않고 데이터를 일정 기간 또는 일정량이 될 때까지 모아 두었다가 한꺼번에 처리
- 1960년대 초반 : Interactive System (대화형 시스템)
- 모니터와 키보드의 등장
▷ 프로그램이 진행되는 도중에 사용자로부터 입력을 받을 수 있어 입력값에 따라 작업의 흐름을 바꾸는 것이 가능한 시스템
- 대화형 시스템의 등장으로 문서 편집기, 게임과 같은 다양한 종류의 응용 프로그램 등장
- 미 항공사의 SABRE 예약 시스템
▷ 멀리 떨어진 사용자가 단말기를 이용, 중앙 컴퓨터 시스템과 통신 (transaction processing system의 효시)
▷ transaction processing system : 사용자의 비교적 간단한 요구에 컴퓨터가 빠르게 응답하는 것 (on-line)
▷ Real-time과는 달리 응답 시간이 정해지지 않음 - 1960년대 후반 : Time Sharing System (시분할 시스템)
- 하나의 CPU로 여러 작업을 동시에 실행하는 기술
- CPU 사용 시간을 작은 조각으로 나누어 여러 작업에 분배
- 한 번에 하나의 작업만 가능한 일괄 작업 시스템에 비해 효율성이 뛰어남
- 여러 작업이 동시에 실행되는 것처럼 보인다.
- 장치 독립성을 이용한 편리한 하드웨어 관리 (프로세서 실행과 동시에 입출력 장치가 실행)
- 1970년대 후반 : Distributed System (분산 시스템)
- 개인용 컴퓨터와 인터넷이 보급되면서 값이 싸고 크기가 작은 컴퓨터 하나로 묶어서 대형 컴퓨터의 능력에 버금가는 시스템을 구성
- 네트워크상에 분산되어 있는 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성
- Parallel processing: time sharing이 아닌 다수의 processor를 이용한 동시 처리
- UI의 발전
▷ 1970년대 : 명령어 중심의 시스템 사용 (CLI)
▷ 1980년대 : 사용자에게 편리한 메뉴 지향적인 시스템
▷ 1990년대 : GUI (Grphical User Interface) 시스템
- 1990년대~현재 : 클라이언트/서버 시스템
- 작업을 요청하는 클라리언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중구조로 나뉜다.
- 웹 시스템이 보급된 이후 일반인들에게 알려졌다.
- 2000년대 초반~현재 : P2P 시스템
- 클라이언트/서버 구조의 단점인 서버 과부하를 해결하기 위해 만든 시스템
- 서버를 거치지 않고 사용자와 사용자를 직접 연결
- 냅스터(mp3 공유 시스템)에서 시작하여 현재는 메신저나 토렌트 시스템에서 사용
- P2P 시스템의 예 : 메신저
▷ P2P 기술은 불법 소프트웨어 기술 규제 때문에 발전하지 못하다가 메신저 프로그램에 도입되면서 큰 발전을 이룸
▷ 수만 명이 동시에 채팅을 하고 파일을 주고받는 메신저 시스템은 P2P 기술을 이용하면 서버의 부하 없이 구현할 수 있다.
- P2P 시스템의 예 : 파일 공유
▷ 10명에게 데이터를 받는다면 1명에게 데이터를 받을 때보다 속도가 10배 빠를 뿐 아니라, 데이터를 받는 도중 1~2명이 프로그램을 중단해도 다른 사람에게 나머지를 받을 수 있다.
- 2000년대 초반 ~ 현재 : Cloud computing (클라우드 컴퓨팅)
- 서버 가상화 기술 이용하여 사용자에게 컴퓨팅 자원, 스토리지, 소프트웨어 등을 서비스 형태로 제공
- Grid computing의 분산 컴퓨팅 개념, 유틸리티 컴퓨팅의 과금 모델, 서버 기반 컴퓨팅의 처리 모델을 적용하여 다음 세 가지 특징을 보인다.
▷ 클라우드 데이터 센터에서 원하는 만큼 컴퓨터 자원을 무한대로 사용
▷ 컴퓨터 자원을 원할 때 원하는 만큼 늘리거나 줄일 수 있다.
▷ 컴퓨터 자원을 사용한 만큼 사용료 지불
- Cloud computing 기술 이용 서비스
▷ IaaS (Infrastructure as a Service) : 데이터 센터에 있는 서버, 스토리지, 네트워크 등 인프라나 자원을 가상화하여 인터넷으로 제공 (아마존의 EC2(Elastic Cloud Computing)와 S3(Simple Storage Service))
▷ PaaS (Platform as a Service) : 응용 프로그램의 구축, 테스트 및 설치가 가능한 통합 개발 환경 웹으로 제공
▷ SaaS (Software as a Service) : 특정 소프트웨어를 인터넷으로 제공, 해당 소프트웨어와 관련된 데이터를 클라우드에서 관리 / 사용자는 웹 브라우저로 접속하여 소프트웨어(온디맨드) 사용
- 2000년대 초반~현재 : 사물 인터넷(Internet of Thing; IoT)
- 사물에 컴퓨터 칩과 통신 기능 내장, 인터넷에 연결
- 전철/버수의 도착 예정시간 알림, 각종 전자제품 제어
- Connected car, 스마트 그리드, 스마트 시티, 재난 방지 시스템
- 인터넷으로 연결된 사물들이 데이터를 주고받아 스스로 분석하고 학습한 정보를 사용자에게 제공하거나 새로운 서비스를 창출
- Mobile, embedded, virtualization
▷ 스마트폰이나 태블릿 같은 모바일 기기 대중화
▷ Mobile Operationg System : 모바일 장치나 기기 제어 운영체제 (안드로이드, iOS, 윈도우 등)
▷ Virtualization 기술 본격 확산 : 물리적 자원 추상화, 논리적 자원 형태로 표현하는 기술
º 처음 등장 시에는 도입 비용이 비싸고 사용 환경이 제한적이라 많이 사용되지 않음
º 기술 발달로 경제성이 높아지면서 성능, 안정성, 효율성 향샹 등 강점으로 본격적 확산
º 적용 대상에 따라 서버 가상화, 데스크톱 가상화, 스토리지 가상화, 네트워크 가상화, 소프트웨어 가상화로 구분, 이 중 운영체제와 관련된 가상화 핵심은 서버 가상화
▷ Server virtualization : 물리적 서버 하나에 가상 서버를 여러 개 구성하는 방법
º 서버 하나에서 각 응용 프로그램과 운영체제를 독립된 환경으로 사용할 수 있어 여러 운영체제가 한 시스템의 자원 공유
º 호스트기반 가상화 : 호스트 운영체제에서 가상 머신 구동
º Bare-metal 기반 가상화 : 호스트 운영체제 설치 전 가상화 솔루션을 탑재하여 가상의 CPU, 메모리, 디스크, 네트워크 카드 등 생성
728x90
'전공 > 운영체제' 카테고리의 다른 글
Process Concept (0) | 2022.03.21 |
---|---|
컴퓨터 동작 (0) | 2022.03.13 |
컴퓨터 시스템 소개 (0) | 2022.03.12 |
운영체제의 유형 (0) | 2022.03.12 |
운영체제 소개 (0) | 2022.03.06 |
Comments