02. History로 이해하는 운영체제
1950년대
ENIAC: 첫 번째 컴퓨터
운영체제가 없었음.
1개의 응용 프로그램만 실행
응용 프로그램이 시스템 자원을 직접 제어
1960년대 초기
실행할 프로그램, 사용자가 많아짐
배치 처리 시스템(batch processing system) 출현
배치 처리 시스템(batch processing system)
여러 응용 프로그램을 등록 시켜 놓으면, 순차적으로 실행하는 시스템
배치 처리 시스템을 기반으로 운영체제가 출현
1960년대 후반
새로운 개념이 제안 됨
시 분할 시스템 (Time Sharing System)
멀티 태스킹 (Multi Tasking)
실제 구현은 1970년대에 진행됨
시분할 시스템과 멀티 태스킹
응용 프로그램이 CPU를 사용하는 시간을 잘개 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법
시분할 시스템: 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템
멀티 태스킹: 단일 CPU에서, 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템
보통은 시분할 시스템 = 멀티 태스킹
멀티 프로그래밍: 최대한 CPU를 많이 활용하도록 하는 시스템
배치 처리 시스템의 단점
컴퓨터 응답 시간 (response time)이 오래 걸릴 수 있다. (앞 단에 실행 시간이 많이 필요로 하는 응용 프로그램이 실행될 경우)
실행 시간도 오래 걸릴 수 있다. (CPU가 필요 없음에도 응용 프로그램이 CPU를 점유할 수 있기 때문.)
시분할 시스템과 배치 처리 시스템
시분할 시스템/멀티 태스킹
핵심 기술: 시간을 잘게 쪼개서, 여러 응용 프로그램을 실행
컴퓨터 응답 시간을 줄일 수 있음 (시분할 시스템, 다중 사용자를 지원)
전체 응용 프로그램의 실행 시간도 줄일 수 있음(멀티 프로그래밍)
결과적으로, 사용자가 느낄 때에는, 여러 응용 프로그램이 동시에 실행되는 것처럼 보인다. (멀티 태스킹)
1970년대
제대로된 운영체제가 나왔다
UNIX (유닉스) OS
미국 AT&T 사의 벨 연구소
켄톰슨, 데니스 리치
데니스 리치: C언어를 개발
쉬어가기: 운영체제 개발에 C 언어가 필요했던 이유
1970년대 이전: Assembly 언어로 소프트웨어 개발
CPU(명령어), Memory(주소) 직접 작성
컴퓨터마다 각각 다시 개발해줘야 하는 단점
프로그래밍 복잡도가 높음
1970년대 C언어가 개발된 후:
컴파일러: 컴퓨터별로 다시 작성할 필요가 없음
프로그래밍 복잡도는 낮음
C 언어를 기반으로 운영체제를 개발했다
UNIX 특징
현대 운영체제의 기본 기술을 모두 포함한 최초의 운영체제
멀티 태스킹, 시분할 시스템, 멀티 프로그래밍
다중 사용자 지원
1980년대
개인용 컴퓨터 시대
1980년대 이전: 대형 컴퓨터를 여러 명이 접속해서 사용 (UNIX)
1980년대 ~: Personal Computer (PC)
용어 이해: CLI와 GUI
CLI (Command Line Interface): 터미널 환경
GUI (Graphical User Interface): GUI 환경
CLI vs GUI
CLI: 키보드, 검은 화면
GUI: 마우스
1980년대: 인터페이스 변화(CLI --> GUI)
1980년대 초반: 아직 터미널 환경
1980년대 중후반: GUI 환경 (마우스)
1990년대
응용 프로그램 시대 by GUI 환경, 개인용 컴퓨터 (사용자 증대)
엑셀, 워드 프로세서 등등
Windows OS 대중화
참고 (쉬어가기) :Killer Application 1. 위닝(축구 게임) 게임 프로그램을 위해 플레이스테이션 기기를 구매 2. 엑셀 프로그래밍을 사용하기 위해, Windows 컴퓨터를 구매.
네트워크 기술 발전 - 월드와이드웹(WWW) 인터넷 대중화
오픈 소스 운동 활성화 시작
UNIX 계열 OS + 응용 프로그램 자체 개발, 소스 오픈
LINUX (리눅스) 운영체제, 소스 오픈, 무료
2000년대 이후
오픈 소스 활성화
LINUX (리눅스) 운영체제
Apache (아파치, 웹서버)
MySQL (데이터베이스)
요즘... 안드로이드, 딥러닝, 데이터사이언스, IoT 관련
가상 머신, 대용량 병렬 처리 등 활성화
정리1
1950년대: 운영체제 없음 (프로그램이 시스템 자원 직접 제어)
1960년대: 배치 처리 시스템
1970년대: 시분할 시스템/멀티 태스킹 시스템 - UNIX OS (C 언어)
1980년대: GUI, 개인용 컴퓨터
1990년대: 다양한 응용 프로그램, 인터넷 발달, 오픈 소스 운동 활성화
2000년대: 오픈 소스 활성화, 가상 머신, 대용량 병렬 처리 등
정리2
운영체제는 응용 프로그램과 시스템 자원을 제어하고, 관리한다.
응용 프로그램(Application) 용어 이해
배치 처리 시스템, 시분할 시스템, 멀티 태스킹 개념
CLI(터미널) vs GUI 환경 용어 이해
History 전반은 가볍게만 알아두기
Last updated