Simple Batch System
일련의 프로그램을 순서대로 진행하는 시스템
Uni programming
하나의 프로그램에 대해서 모두 처리한 후에, 다른 프로그램을 실행하는 과정을 의미합니다.
지금부터 많은 예를 들 때, 은행 창구를 예로 들어보겠습니다. uni programming은 직원 한명에 의자가 딱 하나 있는 것입니다.
여기에서 직원은 CPU를 의미하고, 의자는 메인 메모리라고 생각해봅시다. 이렇게 되면 고객 한 명밖에 처리하지 못하는데, 고객이 어떤 서류를 작성해야한다면 그러한 순간에 직원은 고객이 모든 서류 작성을 마칠 때까지 기다리게됩니다.
이러한 순간은 굉장한 낭비가 됩니다. CPU가 일을 처리하는 시간보다 입출력을 기다리는 시간이 더 많은 비율을 차지하게 되기 때문이죠.(보통 입출력은 많은 시간이 소모됩니다.)
Multi programming
그래서 등장한 것이, multi programming입니다.
이 방법은 의자가 1개가 아닌 3개가 있는 것입니다. 하지만 직원은 한명만 있다고 해봅시다.
이 때는, 직원이 한 고객의 일을 처리하고 그 고객이 서류를 작성하게 되면 다른 고객을 처리하면서 진행하게 됩니다. 이렇게 되면 고객이 서류를 작성하는 시간동안 직원은 다른 고객을 처리하게 되므로, uni programming보다 더 직원이 일을 많이 하게 됩니다.
그렇다면 의자를 무수히 많이 놓음으로써, 일의 처리를 빨라지게 하면 될텐데 왜 그러지 못할까요??
-> 의자가 너무 많아지면 은행이 커야하니까.. (그러니까 메모리의 크기가 더욱 커져야하기 때문입니다.)
Process Scheduling
직원은 아무 기준없이, 어떤 고객을 처리할 지 진행하지 않습니다. scheduling 기법을 통해서, 어떤 고객을 먼저 처리해야할 지 결정하고 다음 순서에 해당 고객을 처리하게 됩니다. 이후에 이 부분에 대해서는 더 자세하게 다룹니다.
우리는 이러한 기법은 Process Scheduling, Job Scheduling, CPU Scheduling이라고 합니다.
'CS > OS' 카테고리의 다른 글
[운영체제] 2-2. 프로세스 정의 (0) | 2023.09.11 |
---|---|
[운영체제] 2-1. 커널 구조 (1) | 2023.09.11 |
[운영체제] 1-3. 타임 쉐어링 (0) | 2023.09.10 |
[운영체제] 1-1. 운영체제 개요 (0) | 2023.09.10 |
[UTM] 로컬과 가상머신 파일 및 폴더 공유하기 (0) | 2023.09.07 |