1950년대
ENIAC: 첫 번째 컴퓨터
운영체제는 없었어.
왜? 1개의 응용 프로그램을 실행시키기도 바빴으니까.
운영체제는 시스템의 자원을 관리한다 그랬지?
그럼 시스템 자원은 누가 관리해?
응용 프로그램이 직접 시스템 자원을 제어했어.
1960년대
초반
프로그램 종류도 많아지고, 사용자도 많아지기 시작했어.
이 때까지는 한 시점에 실행 가능한 프로그램이 1개인게 당연했어.
프로그램1 실행시간이 12시간이고
프로그램2 실행시간이 1분이라고 해보자.
프로그램2를 실행해야 되는 사람이 프로그램1이 실행되는 시간을 기다린다면 얼마나 불편했을까?
최소한 대기열에 프로그램2를 프로그램1이 끝났을 때 예약을 걸어두는 기능이라도 있으면 정말 편하지 않았을까?
그래서 출현한것이 배치처리 시스템이야.(Batch Processing System)
여러 프로그램을 등록시켜놓으면 순차적으로 실행되는 시스템이야.
이 배치 처리 시스템을 기반으로 운영체제가 출현하게 돼.
옛날에는 컴퓨터학과에 컴퓨터가 1대밖에 없었대.
배치처리 시스템을 지원했다고 해.
이 때 프로그램 과제를 내주면 후배들은 프로그램 테스트가 어려웠대.
선배님들의 프로그램이 먼저 실행되기 마련인데 그건 더 복잡하고 시간이 오래걸렸기 때문이지.
뭐 대기열에 등록되기만 했지 동시에 실행되진 않으니까 이게 배치 처리 시스템의 단점이라고 볼 수 있겠다.
후반
핵심적인 내용이 나와 집중하자!
새로운 개념이 제안돼.
하나는 시분할 시스템(Time Sharing System), 또 하나는 멀티태스킹(Multi Tasking)이야.
참고로 운영체제로 구현은 안됐다고 해.
아이디어만 제시됐는데 이 아이디어들을 살펴보자.
시분할시스템(Time Sharing System)
시간을 쪼개서 구현하는 기법이야.
12시간짜리 프로그램과 30분짜리 프로그램이 있다고 할 때, 15분씩 번갈아서 프로그램 1, 2를 돌리는거지
그럼 1시간이 지나면 30분짜리 프로그램이 무조건 끝나게 돼.
시분할 시스템은 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화해.
컴퓨터 응답시간이 뭘까?
입력과 출력 사이에 걸리는 시간을 컴퓨터 응답시간이라고 해.
철수 실행시간 8
영희 실행시간 3 => 키보드에서 입력을 받아서 응용프로그램 내 화면에 출력하는 프로그램.
준희 실행시간 2
배치처리시스템으로 위 프로그램들을 철수 영희 준희 순서대로 돌린다고 해보자.
철수 프로그램이 한창 돌아가는데 영희가 키보드에 입력을 했어. 그럼 영희 프로그램이 구동될 때까지 한참(최대8)을 기다려야 화면에 출력되겠지?
이 때 그 텀이 컴퓨터 응답시간이 되고.
이걸 시분할시스템으로 철수, 영희, 준희 순으로 1씩 돌려가며 구동한다고 해보자.
이 때 철수 프로그램이 한창 돌아가는 중에 영희가 키보드에 입력한다고 해도 그 사이의 컴퓨터 응답시간은 최대 1이 돼.
멀티태스킹(Multi Tasking)
단일 CPU에서 여러 응용프로그램의 병렬 실행을 가능케 하는 시스템.
시간을 아주 잘게 쪼개서 사람이 보기에 마치 동시에 실행되는 것처럼 보이게 하는 시스템이야.
궁극의 시분할시스템이라고 봐도 되겠지?'
실제로 동일한 것이라고 보는 사람도 많다고 해.
멀티프로그래밍이란 것도 있는데 최대한 CPU를 시간대비 많이 활용하도록 하는 시스템이야.
CPU가 저장매체에서 파일을 읽어올 때처럼 일을 안할 시점에 다른 프로그램을 구동시키는거야.
마찬가지로 시간을 잘게 쪼개서 CPU가 아직도 파일을 읽고 있어서 일 안하고 있는지, 아니면 다른 일을 하고 있는지 판단하는 시스템이야.
정리
배치 처리 시스템의 단점
컴퓨터 응답시간(responsetime)이 오래 걸릴 수 있어. 앞단에 실행시간이 오래걸리는 응용 프로그램이 실행될 경우
실행 시간도 오래 걸릴 수 있어. CPU가 필요 없음에도 응용프로그램이 CPU를 점유할 수 있기 때문이야. 멀티 프로그래밍이 이걸 해결하지.
시분할 시스템/멀티태스킹의 장점
컴퓨터 응답 시간을 줄일 수 있고(시분할 시스템, 다중 사용자를 지원)
전체 응용 프로그램의 실행 시간도 줄일 수 있어. (멀티 프로그래밍)
사용자가 느낄 때에는 여러 응용 프로그램이 동시에 실행되는 것처럼 보여(멀티 태스킹)