티스토리 뷰
1950년대
ENIAC(Electronic Numerical Integrator And Computer, 전자식 숫자 적분 및 계산기)
- 최초의 컴퓨터
- 운영체제가 존재하지 않음
- 1개의 응용 프로그램을 실행시키기도 바빴기 때문
- 응용 프로그램이 직접 시스템 자원을 제어했음
1960년대
초반 : 프로그램 종류 및 사용자가 많아지기 시작함
배치 처리 시스템(Batch Processing System)
- 여러 응용프로그램을 등록시켜 놓으면 순차적으로 실행하여 자료를 처리하는 방식.
- 순서를 어떻게 등록하느냐에 따라 실행시간이 다를 수 있음
- 순서 포함 등록
- 첫번째 순서부터 실행
- 실행이 끝나면 다음 응용프로그램 실행
배치 처리 시스템을 기반으로 운영체제 출현
후반 : 새로운 개념이 제안됨 → 그러나 운영체제로 구현되지는 않음
멀티 태스킹(Multi Tasking, 다중작업)
- 단일 CPU에서 마치 동시에 실행되는 것처럼, 여러 응용 프로그램의 병렬 실행을 하는 것과 같은 환경을 제공하는 것
- 운영체제가 멀티 태스킹을 할 때 시분할, 멀티 프로그래밍 같은 스케줄링 방식 중 하나를 채택함
시분할 시스템(Time Sharing System)
- 응용 프로그램이 CPU를 사용하는 시간을 잘게 쪼개서, 여러 응용프로그램을 동시에 실행하는 기법
- 다중 사용자를 지원
- 컴퓨터 응답시간 최소화함
멀티 프로그래밍(Multi Programing)
- 최대한 CPU를 많이 활용하도록 하는 시스템(시간 대비 CPU 활용도를 높이자) → 사용률 극대화
- 현재 실행되고 있는 태스크는 다른 외부 이벤트를 기다려야 하는 상황이 되거나, 컴퓨터의 스케줄러가 강제로 실행 중인 태스크를 중단시킬 때까지 계속 진행됨
배치 처리 시스템 단점
1. 컴퓨터 응답시간(Response time)이 오래 걸릴 수 있다 (실행시간이 많이 필요로하는 응용 프로그램이 앞에 실행될 경우)
2. 실행 시간도 오래 걸릴 수 있음. (CPU가 필요 없어도 응용 프로그램이 CPU를 점유 할 수 있기 때문)
이 것을 극복 하기 위한 것...
사용자가 느낄 때, 여러 응용 프로그램이 동시에 실행되는 것 처럼 보임 → 멀티태스킹
응답시간 단축, 다중사용자 지원 → 시분할 시스템
전체 실행시간 단축 → 멀티 프로그래밍
1970년대
제대로된 운영체제의 출현(운영체제의 중요성 부각)
UNIX OS
- 미국 AT&T사 벨연구소의 켄톰슨, 데니스리치(C언어 개발)이 개발
- 현대 운영체제의 기본 기술을 모두 갖춘 최초의 운영체제
- 멀티태스킹, 시분할 시스템, 멀티 프로그래밍
- 다중 사용자 지원
운영체제 개발에 C언어가 필요했던 이유
1970년대 이전 : 어셈블리어로 소프트웨어 개발했기 때문에 CPU(명령어), Memory(주소)를 직접입력 해야했음. 때문에 컴퓨터마다 각각 다시 개발해줘야하는 단점이 있었음 → 프로그래밍 복잡도가 높음
1970년대 C언어가 개발된 후 : 컴파일러가 해당컴퓨터에 맞게 기계어로 변환해주었기 때문에 한번 개발하면 다시 작성할 필요가 없음 → 복잡도가 비교적 낮음
1980년대
개인용 컴퓨터의 시대
PC 보급 및 대중화
- 80년대 이전에는 대형컴퓨터에 여러 사람이 접속해서 사용(UNIX)
GUI 환경 제공
- 80년대 초반까지는 터미널을 이용한 CLI환경
- 80년대 중후반 매킨토시가 최초로 GUI 환경 제공 → 마우스의 등장
GUI(Graphical User Interface)
사용자가 알기 쉽도록 기능을 아이콘 등 그래픽으로 표현함
주로 마우스를 이용하여 그래픽을 조작하는 방식으로 사용함
CLI(Command Line Interface)
터미널을 통해 명령어를 입력하여 컴퓨터와 상호작용함
1990년대
응용프로그램의 시대
- GUI환경, PC 보급으로 사용자 증대
- 엑셀, 워드 프로세서 등 응용프로그램 출시 → Windows 95 운영체제가 대중화됨(일종의 Killer Application)
네트워크 기술 발전
- WWW(World Wide Web)의 대중화
오픈소스 운동 활성화 시작
- UNIX OS 개발 시 기술 공유가 되지 않음
- UNIX 계열 운영체제와 응용프로그램 자체개발하고 소스를 오픈함 → LINUX OS
2000년대 이후
오픈소스 활성화
- LINUX OS
- Apache(웹서버)
- MySQL(데이터베이스)
- 이 외에 안드로이드, 딥러닝, 데이터사이언스, IoT 등 다양한 오픈 소스 존재
가상머신, 대용량 병렬처리 등 활성화
- 빅데이터 처리를 위한 다양한 기술들 활성화
참고 | Wikipedia, Fast campus 컴퓨터 공학 전공 필수
'컴퓨터공학' 카테고리의 다른 글
[운영체제] 프로세스 스케줄링 (0) | 2019.11.05 |
---|---|
[운영체제] 운영체제 구조 (0) | 2019.11.05 |
[운영체제] 응용 프로그램 (0) | 2019.10.20 |
[운영체제] 운영체제란 (0) | 2019.10.20 |
[자료구조] 라빈 카프 문자열 매칭 (0) | 2019.10.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 시분할시스템
- 배치처리시스템
- 컴퓨터공학
- sort()
- Typescript
- 운영체제
- 알고리즘
- js
- 웹팩
- sort
- 타입스크립트
- 리액트
- Webpack
- Array
- 멀티프로그래밍
- 프로그래머스
- 구간합
- Props
- 자바스크립트
- 1day1algorithm
- greedyAlgorithm
- 우아한테크러닝
- OS
- redux-saga
- 배열
- React
- 자료구조
- reduce()
- Algorithm
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함