목차
1.
2.
운영체제의 발전 과정
•
1940년대: 운영체제 없음.(작업별 순차 처리)
•
1950년대: 일괄처리 시스템. 데이터를 즉시 처리하지 않고 일정량이 될때까지 모아두었다가 처리. 이를 위해 일괄처리, 버퍼링, 스풀링 등을 도입
◦
일괄처리: 작업을 모아두었다가 비슷한 유형의 작업들을 묶어서 처리.
◦
버퍼링: 입출력 장치와 프로세서의 속도 차이를 보완하기 위해 프로세서가 연산을 하는 동안 입출력 장치는 다음 레코드를 주 기억장치에 보관함으로서 CPU가 필요로 하는 레코드를 기다림 없이 전달해 줄 수 있다. 이 레코드를 저장하는 주 기억장치를 버퍼라고 부른다.
◦
스풀링: 버퍼링과 다르게 스풀링은 주기억 장치대신 디스크를 매우 큰 버퍼처럼 사용하는 것이다. 스풀링의 장점은 여러 작업의 입출력과 계산을 함께 할 수 있다는 점이다.
•
1960년대: 다중 프로그래밍, 시분할, 다중 처리, 실시간 시스템
◦
다중 프로그래밍: 여러 프로그램을 메모리에 나눠 적재한 후 프로세서를 번갈아 할당하여 프로세서 사용을 극대화 시키면서 여러 프로그램을 동시에 실행시킨다.
◦
시분할 시스템: 다중 프로그래밍 시스템에 프로세서 스케줄링이라는 개념을 더한것이다.
◦
다중 처리 시스템: 하나의 시스템에서 여러개의 프로세서를 사용하는 시스템이다.
◦
실시간 시스템: 즉시 응답하는 시스템이다.
•
1970년대 초반: 다중 모드, 범용 시스템
•
1970년대 중반 ~ 1990년대: 분산 처리 시스템, 병렬 계산과 분산 계산
•
2000년대 이후: 모바일 및 임베디드, 가상화 및 클라우드 컴퓨팅
유형
1.
일괄처리 시스템(batch processing system)
2.
다중 프로그래밍 시스템(multiprogramming system)
•
일괄처리시스템의 가장 큰 문제점인 프로세서가 작업 중일때는 입출력 작업이 불가능하여 프로세서와 메인 메모리의 활용도가 떨어진다. 그래서 프로그램의 유휴시간(idle time)동안 다른 프로그램이 프로세서를 사용하도록 해 프로세서의 효율을 극대화 시키기 위한 시스템이다.
3.
시분할 시스템(time sharing system)
•
다중 프로그래밍의 확장된 개념으로, 각 프로그램에 일정한 프로세서 사용시간 또는 규정 시간량을 할당하여 여러 사용자에게 짧은 간격으로 프로세서를 번갈아 가며 할당해 마치 한 사용자 혼자 프로세서를 독점하고 있는 듯 착각하게 해 여러 사용자가 단일 시스템을 동시에 사용할 수 있게 한다.
4.
다중 처리 시스템(multiprocessing system)
•
단일 컴퓨터에서 둘 이상의 프로세서를 사용해 동시에 둘 이상의 프로세스를 지원하는 시스템이다.
5.
실시간 처리 시스템(real time processing system)
•
사용할 수 있는 자원이 한정되어 있는 상황에서 작업 수행이 요청되었을 때, 이를 제한된 시간안에 처리해 결과를 내주는 것을 말한다.
⇒ 즉, 작업의 요청에서 수행결과를 얻기까지의 시간적인 제약이 존재하는 시스템으로 그 제약의 엄격함에 따라서 경성 실시간 시스템과 연성 실시간 시스템으로 나뉜다.
◦
경성 실시간 처리 시스템(hard real time processing system)
▪
작업의 실행 시작이나 완료에 대한 시간 제약 조건을 무조건 지켜야 하는 시스템 이다.(무기 제어, 미사일 자동 조준 등)
◦
연성 실시간 처리 시스템(soft real time processing system)
▪
작업 실행에서 시간 제약 조건은 있으나 이를 지키지 못해도 시스템에 치명적인 영향을 끼치지 않는 시스템이다.(동영상 재생 시스템 등)
6.
분산 처리 시스템(distributed processing system)
•
시스템 마다 독립적인 운영체제와 메모리로 운영하며, 필요할 때 통신하는 시스템이다.