1950년대
- ENIAC : 운영체제가 없기 때문에 응용 프로그램이 직접 시스템 자원을 제어하였다.
1960년대 초기
- 프로그램 A(예상 실행 시간 12시간), 프로그램 B(예상 실행 시간 1분) 일 때
A --> B를 실행하고자 하면 A가 무조건 끝난 뒤에 B를 실행시킬 수 있었다.
시스템에 A와 B를 실행할 것이라고 입력해두면 시스템이 자동으로 실행하도록 하는데
배치 처리 시스템(Batch Processing system) 이라고 한다.
이를 기반으로 운영체제가 출현하게 된다.
1960년대 후반
응용 프로그램이 CPU 를 사용하는 시간을 쪼개서 여러개의 응용 프로그램을 동시에 실행하는 새로운 개념이 제안되었다.
1 ) 시분할 시스템(Time Sharing System) : 다중 사용자를 지원하고 컴퓨터 응답 시간을 최소화하는 시스템
: 위의 A, B 프로그램을 수행한다고 하면 동시에 A,B가 진행되므로 B는 1시간 이내에 수행이 완료된다.
2 ) 멀티 태스킹 (Multi-Tasking) : 단일 CPU에서 여러 응용 프로그램의 병렬 실행을 가능하게 하는 시스템( 마치 동시에 실행하는 것 처럼 보임 )
1970년대
[ UNIX OS ]
- 벨 연구소
- 켄톰슨, 데니스 리치(C언어 개발)
운영체제 개발에 C언어가 필요했떤 이유
- 1970년대 이전에 assembly 언어로 소프트웨어 개발을 하였는데 CPU, Memory에 대해 컴퓨터마다 각각 다시 개발해줘야 하는 단점이 있고, 프로그래밍 복잡도가 높다.
- C언어 개발 이후, 컴파일러를 통해 assembly 언어로 바꿔주었다. 비교적 프로그래밍 복잡도가 낮았다.
: 현대 운영체제의 기분 기술을 모두 포함한 최초의 운영체제
멀티 태스킹, 시분할 시스템, 멀티 프로그래밍, 다중 사용자 지원 등의 기술을 지원한다.
1980년대
개인용 컴퓨터 시대, CLI ==> GUI 가 등장한다.
CLI : Command Line Interface
GUI : Graphical User Interface ( 마우스 사용 )
1990년대
응용 프로그램 시대 by GUI 환경
네트워크 기술 발전 - WWW 대중화
오픈 소스 운동 활성화 시작
2000년대 이후
오픈 소스 활성화 - LINUX(OS), Apache(웹서버), MySQL(DB), Android, Deep-Learning, IoT, DataScience 등
가상 머신, 대용량 병렬 처리 등 활성화