Computer Science/운영체제

[운영체제] 시분할 시스템

웅지니어링 2022. 12. 24. 01:52

* 시분할 시스템의 개념

1960년 후반에 컴퓨터의 크기가 작아지고 계산 능력이 향상되었다. 하지만 허가받은 몇몇 사용자만 사용할 수 있는 데다 고가였다. 값비싼 기계로 한 번에 하나의 작업만 수행하는 것은 낭비라 효율적으로 사용하기 위한 연구가 진행된 결과 다중 프로그래밍(Muitiprogramming) 기술이 개발되었다. 다중 프로그래밍은 하나의 CPU로 여러 작업을 동시에 실행하는 기술로, 한 번에 하나의 작업만 가능한 일괄 작업 시스템에 비해 효율성이 뛰어났다. 그런데 다중 프로그래밍은 컴퓨터 내부에서 어떻게 구현되는 것일까? 여러 작업이 하나의 CPU를 공동으로 사용하면 작업이 끊겨 보일텐데 다중 프로그래밍 시스템에서는 여러 작업이 동시에 실행되는 것처럼 보인다. 이는 시간을 분할하는 방법 때문이다. 예를 들어, 영화 필름을 생각해보자. 영화 필름은 한 장 한 장 정지된 사진이지만 이를 빠른 속도로 재생하면 움직이는 것처럼 보인다.

 

* 다중 프로그래밍 시스템의 시간 분배

이처럼 여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는 것을 시분할 시스템(Time Sharing System)이라고 한다. 다중 작업 시스템(Multitasking)이라고도 불리는 시분할 시스템에서는 CPU 사용 시간을 잘게 쪼개어 작업들에 나누어줌으로써 모든 작업이 동시에 처리되는 것처럼 보인다. 이 때 잘게 나뉜 시간 한 조각을 타임 슬라이스(Time Slice) 또는 타임 퀀텀(Time Quantum)이라고 한다. 시분할 시스템의 단점은 여러 작업을 동시에 처리하기 위한 추가 작업이 필요하다는 것이다. 또한 시스템 내에 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간 안에 끝나는 것을 보장하지 못한다. 예를 들어 원자력이나 미사일을 제어하는 시스템은 중요한 작업이 일정 시간 안에 끝나지 않으면 심각한 문제가 발생할 수도 있으므로, 시분할 시스템을 사용하지 않고 특정 시스템에서 일정 시간 안에 작업이 처리되도록 보장하는 실시간 시스템(Real-time-system)을 사용한다.

 

* 다중 사용자 시스템

시분할 시스템에서 동시에 실행되는 작업의 개수를 멀티 프로그래밍 수준 또는 멀티 프로그래밍 정도라고 한다. 일괄 작업 시스템은 멀티 프로그래밍 수준이 1이고, 동시에 실행되는 작업이 3개라면 멀티 프로그래밍 수준은 3이다. 시분할 시스템에서 여러 작업을 동시에 실행할 수 있다는 것은 한 사람이 여러 프로그램을 동시에 실행할 수 있다는 의미이기도 하고, 여러 사람이 동시에 작업할 수 있다는 의미이기도 하다. 즉 시분할 시스템은 하나의 컴퓨터에서 여러 명이 작업할 수 있는 다중 사용자 시스템(Multi-user System)을 가능하게 했다. 값비싼 컴퓨터를 한 사람 또는 하나의 작업이 독점하는 것이 아니라 여러 사람이 동시에 사용할 수 있는 환경이 만들어진 것이다.