Batch OS
컴퓨터의 idle time을 줄여 활용률을 향상시키기 위해서 Batch OS가 개발되었다. Batch는 개발자가 작성한 punched card(천공 카드)의 한 묶음을 의미하는데, batch 하나가 일종의 프로그램인 셈이다.
이런 일련의 batch들을 한꺼번에 실행하되, 한번에 한개씩 순서대로 처리한다. 이것을 batch processing(배치 처리)라고 함.
즉, 하나의 프로그램이 완전히 끝나야 다음 프로그램 실행으로 넘어갈 수 있다.
다중 프로그래밍(multi-programming)
컴퓨터의 throughput(처리율)을 높이기 위해 CPU를 효율적으로 사용하기 위해 고안한 방법.
CPU가 쉬지 못하게 하는게 목적이다. I/O작업시에는 CPU가 일을 하지 않는데, I/O작업시에도 CPU가 일을 하도록 하는게 다중 프로그래밍 기법이다.
프로그램 A, B, C가 메모리에 적재되었고, 실행한다고 가정한다면, 프로그램 A가 실행되고 I/O작업을 시작할 때, 프로그램 B가 실행된다. 또 프로그램 B가 실행되고 I/O작업시에 프로그램 C가 실행된다. 그리고 다시 A가 실행되는게 반복된다.
그렇다면, 어떤 작업이 먼저 처리될 것이냐?(스케줄링) 에 대해서는 당시에 batch processing에 익숙해져있던 상황을 고려할 때, 먼저 온 작업을 먼저 처리하는게 옳다.
즉, 다중 프로그래밍은 여러개의 프로그램을 동시에 조금씩(I/O 작업시간을 이용) 실행 시킨다.
시분할 다중 프로그래밍(time sharing multi-programming)
I/O 작업시에 다른 프로그램을 실행시키는 다중 프로그래밍과는 달리, 여러 프로그램을 시간 단위로 나누어 번갈아 실행시키는 다중 프로그래밍 기법이다.
예를 들어, 단위 시간을 100ms라고 가정하면 프로그램 A, B, C에게 CPU를 사용할 수 있는 권리를 100ms씩 준다. 프로그램들이 돌아가면서 100ms씩 실행한다. 만약, 100ms이상의 시간이 필요할 경우 다음의 자기 차례에 마저 실행한다.
시분할 OS에서 각 프로그램에게 동일한 시간 할당량만큼씩 번갈아 실행시키는 스케줄링 기법을 round-robin 이라고 부른다.
공통점
다중 프로그래밍, 시분할 시스템 둘 다 CPU를 효율적으로 사용하기 위해서 고안되었다. 하지만, 시분할 시스템은 짧은 단위 시간을 각각의 터미널에게 할당하므로, CPU를 사용하고자 하는 각각의 사용자가 터미널에서 CPU를 혼자 사용하는 것 같은 느낌을 준다.
'컴퓨터 공학(Computer Science) > OS' 카테고리의 다른 글
OS와 인터럽트 (0) | 2024.03.30 |
---|---|
Kernel의 실체 (0) | 2024.03.26 |
Kernel, user mode, kernel mode (0) | 2024.03.26 |
커널과 시스템 호출 (0) | 2024.03.25 |