1. 운영체제 (OS, Operating System)
: 일반 컴퓨터, 노트북, 스마트폰의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어
ex. PC 운영체제 (윈도우, Mac OS, 유닉스, 리눅스 등) , 모바일 운영체제 (iOS, 안드로이드 등)
임베디드 운영체제: CPU 의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제,
임베디드 운영체제가 있는 기계는 기능을 계속 향상할 수 있음
Q. 운영체제가 없으면 컴퓨터는 작동할 수 있을까? A. 작동은 가능하지만 기능에 제약이 있다.
Q. 운영체제가 있는 기계와 없는 기계의 차이? A. 운영체제가 있는 기계는 다양한 응용프로그램을 설치하여 사용이 가능, 성능 향상을 위한 새로운 기능 쉽게 추가 가능 , 자원을 관리하고 사용자에게 편리한 인터페이스 환경 제공
Q. 운영체제는 자원을 어떻게 관리할까? A. 사용자가 직접 자원에 접근하는 걸 막음으로써 컴퓨터 자원을 보호
Q. 그럼 사용자는 숨어있는 자원을 어떻게 관리? A. 운영체제가 제공하는 사용자 인터페이스와 하드웨어 인터페이스를 이용하여 자원에 접근!
레스토랑에 비유한 운영체제 : 손님이 주방에 들어가서 직접 조리하거나 주방 기구를 만지지 않는 것처럼 운영체제가 컴퓨터 자원을 직접 관리하고 그 결과만을 사용자에게 알려줌으로써 자원을 보호함
2. 운영체제의 정의
- 응용 프로그램이나 사용자에게 컴퓨터 자원을 사용할 수 있는 인터페이스를 제공하고 그 결과를 돌려주는 시스템 소프트웨어
- 응용 프로그램이나 사용자에게 모든 컴퓨터 자원을 숨기고 정해진 방법으로만 컴퓨터 자원을 사용할 수 있도록 제한
3. 운영체제의 역할
1) 자원 관리: 컴퓨터 시스템의 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 함
자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원원을 회수하여 다른 응용 프로그램에 나누어줌 (효율성)
2) 자원 보호: 비정상적인 작업으로부터 컴퓨터 자원을 보호 (안정성)
3)하드웨어 인터페스 제공: 사용자가 복잡한 과정 없이 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스 제공 , CPU, 메모리, 키보드, 마우스와 같은 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원 (확장성)
4) 사용자 인터페이스 제공: 사용자가 운영체제를 편리하게 사용하도록 지원(ex. 윈도우의 그래픽 사용자 인터페이스 GUI ) (편리성)
4. 운영체제의 역사
1. 일괄처리 (batch processing) 시스템
2. 다중 프로그래밍 (multi programming) 시스템
3. 온라인 (Online processing) 시스템
4. 시분할 처리 (time-sharing processing) 시스템
5. 실시간 처리 (real time processing) 시스템
6. 다중 모드처리(multi mode processing) 시스템
7. 분산 처리(distributed processing) 시스템
8. 병렬 처리(parallel processing) 시스템
1940 . 초창기 컴퓨터 : 에니악
에니악 : 백열전구 같은 모양의 진공관이라는 소자를 사용하여 진공관이 켜지면 1, 꺼지면 0 이라고 판단
전선을 연결하여 논리회로를 구성하는 '하드와이어링' 방식으로 동작 ,운영체제 없음
아타나소프사가 자신들이 개발한 아타나소프-베리 컴퓨터(ABC)가 최초의 컴퓨터라며 이의를 제기 했고, 1973년 10월 19일 미국 법원에서 "인류 최초의 계산기는 ABC다"라고 판결하였고 아타나소프사가 승소했다. 하지만 대영제국이 발명하고, 발명 사실을 비밀로 한 콜로서스라는 컴퓨터가 최초라고 하는 사람들도 많다. 그러나 아직 대중 사이에서는 에니악이 최초의 컴퓨터라고 알려져 있다.
1950. 일괄 작업 시스템 (= 일괄 처리 시스템)
천공카드 시스템: 천공카드 리더를 입력장치로, 라인 프린터를 출력장치로 사용
프로그램을 구성한 후 카드에 구멍을 뚫어 컴퓨터에 입력하면 프로그램이 실행되는 구조로서 프로그램의 실행 결과가 라인 프린터를 통해 출력
일괄 처리 시스템: 작업 준비 시간을 줄이기 위해 요구 사항이 비슷한 여러 개의 작업을 모아 한꺼번에 처리하는 것
모든 작업을 한꺼번에 처리하기 때문에 프로그램 실행 중간에 사용자가 데이터를 입력하거나 수정하는 것이 불가능
운영체제 사용 (메인메모리가 운영체제의 상주 영역과 사용자 영역으로 나뉨 )
상주모니터(Resident Monitor) : 최초의 운영체제로 자동 작업 순서에서 하나의 작업에서 다른 작업으로 진행을 자동 제어하는 프로그램
1960. 대화형 시스템
키보드와 모니터의 등장: 프로그램이 진행되는 도중에 사용자로부터 입력을 받을 수 있어 입력값에 따라 작업의 흐름을 바꾸는 것이 가능한 시스템 (=온라인 시스템) , 문서 편집기 , 게임과 같은 다양한 종류의 응용프로그램 만들 수 있게 됨
- 다중 프로그래밍 시스템 : CPU가 항상 수행할 작업을 가지도록 하여 프로세서 이용률을 극대화 하려는 방법
ex. 실행되던 프로그램이 입출력 작업시 그 동안 CPU 는 유휴 상태가 됨
-> 여러 개의 프로그램을 동시에 기억 장치에 적재시켜 CPU가 다른 프로그램을 수행할 수 있게 함으로써 CPU 유휴 시간(idle, 쉬는 시간)을 줄이고 처리량 극대화
-> 이를 구현하기 위해 기억 장치 관리 기법이나 CPU 스케줄링 기법 필요
다중 프로그래밍은 어떤 하나의 프로그램의 실행 성능을 향상시키지는 못하지만 전반적인 시스템 성능은 향상
- 시분할 시스템(time sharing) : cpu 사용시간을 잘게 쪼개어 작업들에 나누어줌으로써 모든 작업이 동시에 처리되는 것 처럼 보임, 잘게 나뉜 한 조각을 타임슬라이스 또는 타임 퀀텀이라고 함
시분할 시스템의 목적은 응답 시간을 최소화하고 , 각 사용자로 하여금 자신만이 컴퓨터 시스템을 독점하여 사용하는 듯이 느끼게 만드는 것 , 오늘날 컴퓨터 대부분이 시분할 시스템이 사용됨
- 실시간 시스템 (Real-Time System): 단말기나 제어 대상으로부터 처리를 요구하는 자료가 발생할 때마다 즉시 처리하여 제한 시간안에 응답하는 방식, 대개 은행, 공장, 기차 , 비행기 좌석 예약 등 특수 목적 외에 멀티미디어 로봇 제어 , 가상현실 등의 응용 분야에의 제어 장치로 사용
1970. 분산 시스템
개인용 컴퓨터와 인터넷이 보급되면서 값이 싸고 크기가 작은 컴픁퓨터를 나로 묶어서 대형 컴퓨터의 능력에 버금가는 시스템을 만들 수 있게 됨
네트워크상에 분산되어 있는 여러 컴퓨터로 자작업을 처리하고 그 결과를 상호 교환하도록 구성한 시스템
1990년대 ~ 현재. 서버/ 클라이언트 시스템
서버/ 클라이언트 시스템 : 작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중구조로 나뉨 , 웹 시스템이 보급된 이후 일반인들에게 알려짐
2000년대 초반 ~현재 . P2P 시스템
P2P 시스템: 클라이언언트/ 서버 구조의 단점인 서버 과부하를 해결하기 위해 만든 시스템,
를 거치지 않고 사용자와 사용자를 직접 연결, 냅스터(mp3 공유 시스템) 에서 시작하여 현재는 메신저, 토렌트 시스템에서 사용
ex. 메신저 , 파일공유
그리드 컴퓨팅: 필요한 기간만큼만 컴퓨터를 사용하고 사용한 금액만큼만 돈을 지불할 수 있는 컴퓨팅 환경
서로 다른 기종의 컴퓨터들을 묶어 대용량의 컴퓨터 풀을 구성하고 이를 원격지와 연결하여 대용량 연산을 수행하는 컴퓨팅 환경 , 하드웨어적인 컴퓨팅 환경의 통합 ,
SaaS (Software as a Sercvice) 는 사용자가 필요한 소프트웨어 기능만을 필요할 때 이용하고, 이용한 기능만큼 비용을 지불하는 개념
클라우드 컴퓨팅:
언제 어디서나 응용 프로그램과 데이터를 자유롭게 사용할 수 있는 컴퓨팅 환경으로 그리드 컴퓨팅 + SaaS
클라우드 컴퓨팅은 PC, 스마트 기기 등을 통하여 인터넷을 접속하고, 다양한 작업을 수행하며, 데이터 또한 기기들 사이에서 자유롭게 이동이 가능한 컴퓨팅 환경
하드웨어를 포함한 시스템이 구름에 가려진 것처럼 사용자에게 보이지 않는 컴퓨팅 환경 이라는 의미
Infrastructure as a Service(IaaS)
IaaS는 IT 리소스에 대한 최고 수준의 유연성과 관리 제어 기능을 제공합니다. 이는 많은 IT 부서 및 개발자에게 익숙한 기존 IT 리소스와 가장 유사합니다.
Platform as a Service(PaaS)
PaaS를 사용하면 기본 인프라(일반적으로 하드웨어와 운영 체제)를 관리할 필요가 없어 애플리케이션 개발과 관리에 집중할 수 있습니다. 즉, 애플리케이션 실행과 관련된 리소스 구매, 용량 계획, 소프트웨어 유지 관리, 패치 작업 또는 다른 모든 획일적인 작업에 대한 부담 없이 더욱 효율적으로 운영할 수 있습니다.
Software as a Service(SaaS)
SaaS는 서비스 공급자에 의해 실행되고 관리되는 완전한 제품을 제공합니다. 대부분의 경우 SaaS라고 하면 웹 기반 이메일과 같은 최종 사용자 애플리케이션을 말합니다. SaaS 오퍼링의 경우 서비스를 유지 관리하는 방법이나 기본 인프라를 관리하는 방법에 대해 생각할 필요가 없습니다. 특정 소프트웨어를 어떻게 사용할지만 생각하면 됩니다.
사물인터넷 (Internet of Thing : IoT)
: 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술
'Hello World! > 공부' 카테고리의 다른 글
네트워크 기초 TCP/IP, IPv4 와 IPv6 (0) | 2020.10.06 |
---|---|
알고리즘의 성능을 나타내는 복잡도 (0) | 2020.09.07 |
WAS 와 Web server 의 차이점 (0) | 2020.09.02 |
http 와 https 의 차이 (0) | 2020.07.22 |
MVC 패턴이란? (0) | 2020.07.10 |