Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

시분할 시스템 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 21:44

시분할 시스템

이름

시분할 시스템

영문명

Time-sharing System

분류

컴퓨터 기술, 운영 체제 기술

목적

단일 컴퓨터 자원을 다수의 사용자에게 동시에 공유 제공

핵심 개념

CPU 시간을 작은 조각(타임 슬라이스)으로 나누어 교대로 할당

주요 이점

자원 활용률 향상, 사용자 간 상호작용성 제공, 비용 효율성

등장 시기

1960년대

초기 구현 시스템

CTSS, Multics

기술 상세 정보

동작 원리

멀티태스킹과 스케줄링 알고리즘을 통해 각 사용자 프로세스에 짧은 CPU 시간을 순차적으로 할당. 사용자는 자신이 시스템을 독점하는 것처럼 느낌.

주요 구성 요소

시분할 운영 체제, 터미널, 중앙 처리 장치(CPU), 메모리 관리 장치(MMU)

스케줄링 방식

라운드 로빈(Round-robin), 우선순위 기반 스케줄링(Priority-based Scheduling)

발전 역사

1960년대 MIT, 벨 연구소, 제너럴 일렉트릭이 협력한 Multics 프로젝트에서 본격화. 이후 유닉스(UNIX) 운영 체제의 기반이 됨.

현대적 영향

현대 다중 사용자 운영 체제(Linux, 유닉스 계열), 클라우드 컴퓨팅의 가상화 및 자원 공유 개념의 선구자 역할.

한계점

과도한 사용자 수 증가 시 응답 시간 저하(스래싱), 동기화 및 상호 배제 문제 해결 필요.

관련 기술

멀티프로그래밍, 실시간 시스템, 가상 머신(VM), 클라우드 서비스

대표적 연구자/기관

존 매카시(John McCarthy), 페르난도 코르바토(Fernando Corbató, CTSS 개발), MIT, 벨 연구소

1. 개요

시분할 시스템은 하나의 중앙 처리 장치를 짧은 시간 단위로 나누어 여러 사용자나 작업이 번갈아 가며 사용하는 컴퓨터 운영 방식이다. 이 방식은 각 사용자에게 독립된 터미널을 통해 컴퓨터에 접근할 수 있는 환경을 제공하며, 사용자 입장에서는 시스템을 혼자 사용하는 것처럼 느끼게 한다.

핵심 목표는 컴퓨터 자원, 특히 중앙 처리 장치의 유휴 시간을 최소화하고 활용도를 극대화하는 것이다. 단일 사용자 일괄 처리 시스템에서는 한 프로그램의 입출력 작업 대기 시간 동안 CPU가 놀게 되지만, 시분할 시스템에서는 그 시간에 다른 사용자의 프로그램을 실행함으로써 자원을 효율적으로 사용한다.

이 시스템은 다중 프로그래밍 기술을 기반으로 한다. 여러 사용자의 프로그램이 주기억장치에 동시에 상주하며, 운영체제의 스케줄러가 미리 정의된 시간 할당량에 따라 CPU 사용권을 빠르게 전환한다. 이로 인해 사용자는 상호작용식 컴퓨팅 환경에서 실시간으로 응답을 받을 수 있다.

시분할 시스템의 등장은 컴퓨터 사용 방식을 근본적으로 바꾸었다. 고가의 대형 컴퓨터를 여러 사람이 공유하여 비용을 절감할 수 있게 했으며, 시간과 공간의 제약 없이 원격 접근이 가능한 현대적인 다중 사용자 시스템의 토대를 마련했다.

2. 역사와 발전 과정

시분할 시스템의 역사는 1950년대 후반, 고가의 컴퓨터 자원을 보다 효율적으로 활용하고자 하는 필요성에서 시작되었다. 초기 메인프레임 컴퓨터는 한 번에 하나의 작업만 수행하는 일괄 처리 시스템 방식을 사용했는데, 이는 중앙처리장치가 입출력 작업을 기다리는 동안 유휴 상태로 머무르는 시간이 많아 자원 활용도가 낮았다. 이러한 문제를 해결하기 위해 여러 사용자가 터미널을 통해 동시에 컴퓨터에 접속하여 각자 독립된 작업을 수행할 수 있는 개념이 등장했다. 1959년 존 매카시는 이 개념을 공식적으로 제안했으며, 1961년 MIT에서 개발된 호환 시분할 시스템은 최초의 실험적 시분할 시스템 중 하나로 기록된다[1].

1960년대 중반에는 이러한 개념이 본격적인 시스템으로 구현되었다. MIT, 벨 연구소, 제너럴 일렉트릭이 공동 개발한 Multics는 시분할, 가상 메모리, 다중 사용자 지원 등 현대 운영체제의 핵심 개념을 대부분 포함한 야심찬 프로젝트였다. 그러나 그 복잡성과 과도한 자원 요구로 인해 상업적 성공은 거두지 못했다. 그러나 Multics 프로젝트에 참여했던 켄 톰슨과 데니스 리치는 그 경험을 바탕으로 보다 간결하고 실용적인 시스템을 만들고자 했다. 그 결과 탄생한 것이 유닉스 운영체제이다.

유닉스는 시분할 시스템의 철학을 계승하면서도 설계의 단순성과 이식성, 모듈화에 중점을 두었다. 특히 C 언어로 다시 작성되며 다양한 하드웨어 플랫폼으로 빠르게 확산되었다. 유닉스의 성공은 시분할 시스템이 연구실이나 특수 목적을 넘어 학계와 산업계 전반에 보편적으로 자리 잡는 데 결정적인 역할을 했다. 이후 등장한 BSD, 리눅스를 포함한 대부분의 다중 사용자 운영체제는 유닉스의 직접적이거나 간접적인 영향을 받으며 발전해 나갔다.

2.1. 초기 개념과 실험

시분할 시스템의 초기 개념은 1950년대 후반부터 등장하기 시작했다. 당시 메인프레임 컴퓨터는 일괄 처리 시스템 방식을 사용하여 한 번에 하나의 작업만을 수행했는데, 이는 자원 활용도가 낮고 사용자 대기 시간이 길다는 단점이 있었다. 이러한 비효율성을 해결하기 위해 여러 사용자가 동시에 단일 컴퓨터를 사용할 수 있는 아이디어가 제안되었다. 초기 논의는 크리스토퍼 스트레이치와 같은 학자들에 의해 이루어졌으며, 1959년 MIT에서 열린 유네스코 정보 처리 회의에서 '시분할'이라는 용어가 처음 공식적으로 제시되었다[2].

초기 실험적 시스템은 1960년대 초반에 구축되기 시작했다. 1961년 MIT에서 개발된 CTSS는 최초의 실용적인 시분할 시스템으로 널리 인정받는다. 이 시스템은 IBM 709 메인프레임을 개조하여 사용했으며, 최대 3명의 사용자가 동시에 대화형 처리를 할 수 있도록 했다. 거의 동시에, GE와 다트머스 대학교는 DTSS를 개발했고, SDC에서는 AN/FSQ-32 컴퓨터를 기반으로 한 시스템을 구축했다. 이러한 초기 실험들은 중앙 처리 장치의 시간을 작은 조각으로 나누어 여러 사용자 터미널에 할당하는 기본 모델을 확립하는 데 기여했다.

초기 시스템들은 하드웨어와 소프트웨어 양쪽에서 도전에 직면했다. 하드웨어 측면에서는 인터럽트와 타이머 장치를 활용하여 강제로 문맥 교환을 수행해야 했고, 메모리 보호 메커니즘도 필요했다. 소프트웨어 측면에서는 운영 체제 커널이 여러 사용자 작업을 관리하고, 가상 메모리 개념의 초기 형태를 구현해야 하는 복잡함이 있었다. 이러한 실험들을 통해 얻은 경험과 교훈은 이후 멀틱스와 유닉스와 같은 보다 정교한 시스템의 개발 토대가 되었다.

2.2. CTSS와 Multics

CTSS(Compatible Time-Sharing System)는 1961년 MIT에서 개발된 최초의 실용적인 시분할 시스템이다. 페르난도 코르바토가 이끄는 팀이 IBM 709 메인프레임을 개조하여 구현했으며, 최대 3명의 사용자가 동시에 시스템을 사용할 수 있었다[3]. CTSS는 사용자에게 개별적인 가상 머신 환경을 제공했으며, 대화형 명령어를 통해 파일 편집, 프로그램 컴파일, 작업 실행 등을 가능하게 했다. 이 시스템은 컴퓨터 자원의 효율적 공유와 빠른 응답 시간을 증명하며, 이후 시분할 시스템 연구의 초석을 마련했다.

CTSS의 성공을 바탕으로, 더욱 진보된 범용 시분할 시스템을 구축하려는 노력이 Multics(MULTiplexed Information and Computing Service) 프로젝트로 이어졌다. 1964년부터 MIT, 벨 연구소, 제너럴 일렉트릭(GE)이 공동으로 개발한 Multics는 높은 수준의 보안, 대용량 정보 공유, 지속적인 가용성 등을 핵심 목표로 삼았다. 이 시스템은 계층적 파일 시스템, 동적 링킹, 메모리 맵 파일 등 현대 운영체제의 많은 개념을 선구적으로 도입했다.

시스템

개발 시기

주요 기여 기관

핵심 특징

CTSS

1961년

MIT

최초의 실용적 시분할 시스템, 대화형 컴퓨팅 환경 증명

Multics

1964년~

MIT, 벨 연구소, GE

고급 보안, 다중 접근 파일 시스템, 현대 OS 개념 다수 선도

그러나 Multics는 지나치게 복잡하고 야심찬 설계로 인해 상업적 성공을 거두지는 못했다. 이 프로젝트에 참여했던 벨 연구소의 켄 톰슨과 데니스 리치는 Multics의 복잡성에 환멸을 느끼고, 그 경험을 바탕으로 보다 단순하고 우아한 새로운 시스템을 구상하게 된다. 이렇게 탄생한 것이 유닉스 운영체제이며, Multics는 실패한 프로젝트가 아니라 현대 운영체제 발전에 지대한 영향을 미친 중요한 실험으로 평가받는다.

2.3. UNIX의 등장과 영향

UNIX는 1969년 벨 연구소의 켄 톰슨과 데니스 리치가 개발한 운영 체제이다. 이 시스템은 시분할 시스템의 철학과 기술을 대중화하고 표준화하는 데 결정적인 역할을 했다. 초기 UNIX는 멀틱스 프로젝트에서 벗어나 간결함과 실용성에 중점을 두어 설계되었다. 그 결과, 강력한 시분할 기능을 유지하면서도 소형 컴퓨터에서도 효율적으로 실행될 수 있는 시스템이 탄생했다.

UNIX의 영향력은 몇 가지 핵심 설계 원칙에서 비롯된다. 첫째, "모든 것은 파일이다"라는 철학으로 장치와 프로세스 간 통신을 단순화했다. 둘째, 작고 단일 목적의 도구들을 파이프라인으로 연결해 복잡한 작업을 수행하는 유닉스 철학을 정립했다. 셋째, C 언어로 재작성되어 이식성이 극대화되었고, 이는 다양한 하드웨어 플랫폼으로의 빠른 확산을 가능하게 했다. 이러한 특징들은 시분할 환경에서의 프로그래밍과 시스템 관리를 혁신적으로 변화시켰다.

UNIX의 등장은 학계와 산업계에 광범위한 영향을 미쳤다. 대학과 연구 기관에 저렴하거나 무료로 라이선스가 제공되면서, 운영 체제 설계와 시분할 이론에 대한 교육과 실험의 장이 열렸다. 이로 인해 수많은 변종과 파생 시스템(예: BSD, 솔라리스, 리눅스)이 생겨났다. 또한, 네트워크 기능과 다중 사용자 지원이 강화되면서, UNIX는 인터넷 서버와 워크스테이션의 표준 플랫폼으로 자리 잡게 되었다.

시스템/프로젝트

개발 시기

주요 특징

UNIX에 미친 영향

CTSS

1961년

최초의 실용적 시분할 시스템

시분할 인터랙티브 환경의 개념 정립

멀틱스

1960년대 중반

대규모 시분할 시스템 시도

복잡성에 대한 반성, UNIX의 간결함 설계 동기

UNIX (초기)

1969년

간결함, 이식성, 유닉스 철학

현대 시분할 시스템의 디자인 표준 확립

3. 기본 원리와 구성 요소

시분할 시스템의 핵심은 단일 중앙 처리 장치를 짧은 시간 단위로 나누어 여러 사용자나 작업이 번갈아 사용하게 하는 것이다. 이는 각 사용자에게 독립된 가상 머신이 존재하는 것 같은 착각을 제공하며, 시스템의 효율성을 극대화한다. 기본 구성 요소로는 시간을 할당하는 스케줄러, 작업의 상태를 관리하는 프로세스 제어 블록, 그리고 작업 간 전환을 처리하는 문맥 교환 메커니즘이 필수적이다.

시간 할당 방식은 시간 할당량이라는 개념을 중심으로 작동한다. 각 프로세스는 정해진 시간 슬라이스(예: 수십 밀리초) 동안만 CPU를 점유할 수 있다. 시간이 만료되거나 프로세스가 입출력 작업을 위해 대기 상태로 들어가면, 시스템은 다른 프로세스로 전환한다. 이 전환 과정에서 현재 실행 중인 프로세스의 상태(레지스터 값, 프로그램 카운터 등)를 저장하고 다음 프로세스의 상태를 복원하는 문맥 교환이 발생한다[4].

메모리 관리 또한 중요한 구성 요소이다. 여러 프로세스가 동시에 주기억장치에 상주해야 하므로, 메모리 보호와 가상 메모리 기술이 동반되어 발전했다. 각 프로세스는 자신에게 할당된 메모리 공간 안에서만 동작하도록 격리되어, 한 프로세스의 오류가 전체 시스템을 중단시키는 것을 방지한다. 스케줄링과 메모리 관리는 상호 의존적으로 작동하여 시스템의 안정성과 반응성을 보장한다.

3.1. 시간 할당 방식

시분할 시스템의 핵심은 CPU 시간을 매우 짧은 단위로 분할하여 여러 사용자나 작업이 번갈아 가며 사용하도록 하는 것이다. 이 방식은 사용자에게는 시스템을 독점하는 것 같은 착각을 일으키면서, 시스템 전체의 자원 활용도를 극대화한다.

시간 할당의 기본 단위는 타임 슬라이스 또는 퀀텀이라고 불리는 매우 짧은 시간 간격이다. 각 작업은 이 정해진 시간 동안만 CPU를 사용할 권한을 가진다. 타임 슬라이스가 끝나면, 운영 체제의 스케줄러가 개입하여 현재 실행 중인 작업의 상태(레지스터 값, 프로그램 카운터 등)를 저장하고, 다음 차례의 작업 상태를 복원하여 실행을 이어가게 한다. 이 과정을 문맥 교환이라고 한다.

할당 방식의 주요 변수는 타임 슬라이스의 길이이다. 너무 길면 사용자 간의 상호작용 응답이 느려져 일괄 처리 시스템과 유사해지고, 너무 짧으면 문맥 교환에 소요되는 오버헤드가 전체 성능을 저하시킨다. 따라서 시스템은 일반적으로 밀리초(ms) 단위의 적절한 길이를 설정하여 응답성과 처리 효율 사이의 균형을 찾는다.

특징

설명

타임 슬라이스

각 작업에 할당되는 CPU 시간의 기본 단위.

문맥 교환

한 작업에서 다른 작업으로 CPU 제어권을 넘기는 과정.

스케줄러

다음에 실행할 작업과 타임 슬라이스 길이를 결정하는 운영 체제 구성 요소.

목표

다중 사용자 지원, 높은 자원 활용도, 짧은 응답 시간 확보.

이러한 시간 할당 방식을 통해 단일 컴퓨터 시스템이 다수의 사용자에게 동시에 서비스를 제공하는 다중 사용자 환경이 가능해졌다. 각 사용자는 자신만의 가상 머신을 사용하는 것 같은 경험을 하게 된다.

3.2. 프로세스 스케줄링

프로세스 스케줄링은 시분할 시스템의 핵심 메커니즘으로, CPU 시간을 여러 프로세스 사이에 효율적으로 분배하는 작업을 말한다. 스케줄러는 준비 큐에 대기 중인 프로세스들 중에서 다음에 실행할 프로세스를 선택하고 CPU를 할당한다. 이 과정은 매우 짧은 시간 간격으로 반복되어 사용자에게는 여러 작업이 동시에 실행되는 것처럼 보이게 한다.

주요 스케줄링 방식은 선점형과 비선점형으로 나뉜다. 시분할 시스템은 대부분 선점형 스케줄링을 사용한다. 이 방식에서는 실행 중인 프로세스가 할당된 시간 슬라이스를 모두 사용하거나 입출력 작업을 위해 대기 상태로 들어가면, 운영체제가 CPU 사용권을 강제로 회수하여 다른 프로세스에게 넘겨준다. 이는 한 프로세스가 CPU를 독점하는 것을 방지하고 모든 프로세스에 공정하게 응답 시간을 제공하는 데 필수적이다.

스케줄링의 목표는 시스템의 성능 지표를 최적화하는 것이다. 주요 목표는 다음과 같다.

목표

설명

응답 시간 단축

사용자 입력에 대한 시스템의 반응 속도를 빠르게 한다.

처리량 극대화

단위 시간당 완료하는 프로세스의 수를 늘린다.

CPU 이용률 향상

CPU가 유휴 상태로 있는 시간을 최소화한다.

공정성 유지

모든 프로세스가 합리적인 시간 내에 CPU를 사용할 수 있게 한다.

이러한 목표들은 서로 상충될 수 있어, 시스템의 용도에 따라 적절한 스케줄링 알고리즘을 선택해야 한다. 예를 들어, 대화형 시스템은 응답 시간을 최소화하는 것이 중요하며, 일괄 처리 시스템은 처리량을 극대화하는 데 중점을 둔다.

3.3. 메모리 관리

시분할 시스템에서 메모리 관리는 여러 사용자 프로세스가 제한된 물리적 메모리를 효율적으로 공유하면서 동시에 실행될 수 있도록 보장하는 핵심 기능이다. 각 프로세스는 독립된 주소 공간을 필요로 하며, 운영체제는 이들을 물리 메모리에 할당하고 보호하는 역할을 담당한다. 초기 시스템에서는 고정 분할 할당 방식이 널리 사용되었는데, 이는 메모리를 미리 고정된 크기의 영역으로 나누어 각 영역에 하나의 프로세스를 적재하는 방식이다. 그러나 이 방식은 내부 단편화로 인해 메모리 활용도가 낮아지는 문제가 있었다.

이를 극복하기 위해 가상 메모리 기술과 페이징 기법이 도입되었다. 가상 메모리는 프로세스가 필요로 하는 전체 주소 공간을 물리 메모리와 보조 기억장치(예: 하드 디스크)를 결합해 제공하는 추상화 계층이다. 페이징 기법에서는 프로세스의 주소 공간과 물리 메모리를 동일한 크기의 블록(페이지)으로 나누어, 프로세스 실행에 필요한 페이지만 물리 메모리에 적재한다. 이를 통해 물리 메모리 크기보다 큰 프로세스를 실행할 수 있으며, 여러 프로세스의 메모리 요구를 유연하게 수용할 수 있다.

메모리 관리의 또 다른 중요한 과제는 보호와 공유이다. 한 프로세스가 다른 프로세스의 메모리 영역을 침범하지 못하도록 메모리 보호 기법(예: 베이스-리미트 레지스터, 페이지 테이블 접근 권한 비트)이 사용된다. 동시에, 여러 프로세스가 공통으로 사용하는 코드(예: C 표준 라이브러리)는 물리 메모리의 동일한 페이지에 매핑하여 메모리 사용을 절약하는 메모리 공유가 이루어진다.

시분할 환경에서 메모리 관리자의 성능은 전체 시스템 반응성에 직접적인 영향을 미친다. 자주 접근되지 않는 페이지를 디스크로 내보내는 페이지 교체 알고리즘(예: LRU)의 효율성, 그리고 페이지 폴트 발생 시 발생하는 오버헤드는 시스템의 처리량과 사용자 경험을 결정하는 핵심 요소이다.

4. 스케줄링 알고리즘

시분할 시스템의 핵심은 CPU 시간을 여러 프로세스 사이에 효율적으로 나누어 할당하는 것이다. 이를 구현하기 위해 다양한 스케줄링 알고리즘이 개발되었다. 각 알고리즘은 처리량, 응답 시간, 공정성, 오버헤드 등 서로 다른 목표와 특성을 가진다.

가장 기본적인 알고리즘 중 하나는 라운드 로빈이다. 이 방식은 준비 완료된 모든 프로세스에 고정된 시간 할당량(타임 슬라이스 또는 퀀텀)을 순차적으로 부여한다. 프로세스가 할당된 시간 내에 실행을 완료하지 못하면 CPU를 선점당하고 준비 큐의 맨 뒤로 이동한다. 이 방법은 모든 프로세스에 공평하게 CPU 시간을 배분하여 응답 시간을 예측 가능하게 만드는 장점이 있다. 그러나 타임 슬라이스의 길이는 성능에 큰 영향을 미치는데, 너무 짧으면 문맥 교환 오버헤드가 커지고, 너무 길면 대화형 시스템에서 응답성이 나빠질 수 있다.

보다 복잡한 요구 사항을 처리하기 위해 우선순위 기반 스케줄링이 사용된다. 이 알고리즘은 각 프로세스에 우선순위를 부여하고, 가장 높은 우선순위를 가진 프로세스가 항상 먼저 실행된다. 우선순위는 프로세스의 중요도, 예상 실행 시간, 자원 요구량 등에 따라 정적 또는 동적으로 결정될 수 있다. 주요 문제는 기아 상태가 발생할 수 있다는 점이다. 즉, 낮은 우선순위 프로세스가 무기한 실행되지 못할 수 있다. 이를 완화하기 위해 에이징 기법이 사용되며, 오랫동안 대기한 프로세스의 우선순위를 점진적으로 높여준다.

실제 시스템에서는 단일 알고리즘만으로는 다양한 종류의 작업(예: 대화형, 배치, 실시간)을 효율적으로 처리하기 어렵다. 따라서 다단계 큐 스케줄링이 종종 채택된다. 이 방식은 프로세스를 특성에 따라 여러 개의 별도 준비 큐로 분류한다. 각 큐는 자신만의 스케줄링 알고리즘(예: 대화형 작업 큐에는 라운드 로빈, 배치 작업 큐에는 FCFS)을 가질 수 있다. 큐 사이에도 우선순위가 존재하여, 높은 우선순위 큐의 모든 작업이 실행된 후에야 낮은 우선순위 큐의 작업이 실행된다. 더 발전된 형태인 다단계 피드백 큐는 프로세스가 큐 사이를 이동할 수 있도록 하여 동적으로 행동에 따른 스케줄링이 이루어지게 한다.

알고리즘

주요 특징

장점

단점

라운드 로빈

고정 타임 슬라이스, 순환 할당

공정성, 응답 시간 예측 가능

타임 슬라이스 길이에 민감

우선순위 기반

정적/동적 우선순위 할당

중요 작업 우선 처리

기아 상태 가능성

다단계 큐

작업 유형별 별도 큐 운영

다양한 작업 혼합 처리에 적합

설정과 튜닝이 복잡

4.1. 라운드 로빈

라운드 로빈 스케줄링은 시분할 시스템에서 가장 기본적이고 널리 사용되는 스케줄링 알고리즘 중 하나이다. 이 방식은 모든 프로세스에 공정하게 균등한 실행 시간을 할당하는 것을 핵심 원리로 삼는다.

구체적인 동작 방식은 다음과 같다. 시스템은 준비 상태의 모든 프로세스를 순환 큐에 넣는다. 그런 다음 미리 정해진 시간 할당량, 즉 타임 퀀텀 동안 큐의 맨 앞에 있는 프로세스를 실행한다. 프로세스가 타임 퀀텀을 모두 사용하기 전에 입출력 작업 등으로 인해 자발적으로 CPU를 양도하면, 다음 프로세스로 바로 전환된다. 만약 타임 퀀텀이 만료될 때까지 프로세스가 실행을 계속하면, CPU는 강제로 선점되어 해당 프로세스는 큐의 맨 뒤로 이동하고, 큐의 다음 프로세스가 같은 시간만큼 CPU를 할당받는다. 이 과정이 모든 프로세스에 대해 순환적으로 반복된다.

라운드 로빈의 성능은 타임 퀀텀의 크기에 크게 의존한다. 타임 퀀텀이 지나치게 크면 선입 선처리 방식과 유사해져 응답 시간이 길어질 수 있다. 반대로 타임 퀀텀이 지나치게 작으면 문맥 교환이 빈번하게 발생하여 시스템 오버헤드가 증가하고 실제 처리 효율이 떨어진다[5]. 따라서 적절한 타임 퀀텀을 설정하는 것이 시스템 튜닝의 중요한 요소가 된다. 이 알고리즘은 구현이 비교적 간단하고 모든 프로세스에 공정한 기회를 부여하여 기아 상태를 방지할 수 있다는 장점이 있다. 그러나 프로세스의 우선순위나 실행 시간을 고려하지 않기 때문에, 짧은 작업의 응답 시간이 길어지거나 중요한 작업이 지연될 수 있는 단점도 존재한다.

4.2. 우선순위 기반 스케줄링

우선순위 기반 스케줄링은 각 프로세스에 우선순위를 할당하고, 준비 큐에서 가장 높은 우선순위를 가진 프로세스를 먼저 실행하는 방식이다. 우선순위는 정수 값으로 표현되며, 일반적으로 숫자가 작을수록 높은 우선순위를 의미하는 경우가 많다. 이 방식의 핵심 목적은 중요한 작업이나 긴급한 요청을 일반적인 작업보다 먼저 처리하여 시스템의 전체적인 효율성이나 특정 서비스 품질을 높이는 데 있다.

우선순위는 정적(Static) 또는 동적(Dynamic)으로 부여될 수 있다. 정적 우선순위는 프로세스가 생성될 때 결정되어 실행 중에 변경되지 않는다. 이는 구현이 간단하지만, 시스템 환경 변화에 유연하게 대응하지 못할 수 있다. 반면, 동적 우선순위는 프로세스의 실행 특성(예: 대기 시간, 입출력 빈도, 실제 사용된 CPU 시간)에 따라 실행 중에 조정된다. 예를 들어, 오랫동안 대기한 프로세스의 우선순위를 점진적으로 높여 기아 상태를 방지하는 에이징(Aging) 기법이 동적 우선순위 조정의 대표적인 예이다.

이 스케줄링 방식은 몇 가지 중요한 고려 사항을 안고 있다. 가장 큰 문제는 우선순위가 낮은 프로세스가 무한정 CPU를 할당받지 못하는 기아 상태에 빠질 수 있다는 점이다. 이를 해결하기 위해 에이징 기법을 적용하거나, 우선순위가 높은 프로세스의 실행 시간을 제한하는 방법이 사용된다. 또한, 우선순위의 기준을 어떻게 설정하느냐에 따라 시스템의 성격이 달라진다. 예를 들어, 실시간 시스템에서는 작업의 마감 시한(Deadline)이 우선순위의 주요 기준이 되는 반면, 일반적인 시분할 시스템에서는 사용자 인터랙션의 응답성을 높이기 위해 입출력 중심 작업에 높은 우선순위를 부여하기도 한다.

우선순위 부여 방식

설명

장점

단점

정적 우선순위

프로세스 생성 시 한 번 결정, 변경 없음

구현이 단순하고 예측 가능함

시스템 부하 변화에 유연하지 못함, 기아 상태 발생 가능성 높음

동적 우선순위

프로세스 실행 중 특성에 따라 지속적으로 조정됨

시스템 상태에 적응적이며, 기아 상태 완화 가능

구현이 복잡하고, 스케줄링 오버헤드가 증가할 수 있음

4.3. 다단계 큐 스케줄링

다단계 큐 스케줄링은 서로 다른 특성을 가진 프로세스들을 여러 개의 독립적인 준비 큐로 분류하여 관리하는 스케줄링 알고리즘이다. 각 큐는 고유한 스케줄링 정책(예: 라운드 로빈, 우선순위 기반 스케줄링)과 타임 슬라이스를 가질 수 있다. 이 방식의 핵심은 프로세스를 시스템 프로세스, 대화형 프로세스, 배치 처리 프로세스 등과 같이 그 성격에 따라 구분하여, 각 유형에 가장 적합한 스케줄링 방식을 적용한다는 점이다.

큐 간의 스케줄링은 일반적으로 고정 우선순위 방식이나 시간 할당 비율 방식으로 이루어진다. 고정 우선순위 방식에서는 높은 우선순위의 큐에 있는 모든 프로세스가 실행을 완료할 때까지 낮은 우선순위 큐의 프로세스는 대기해야 한다. 반면, 시간 할당 비율 방식은 각 큐에 CPU 시간의 일정 비율을 할당하여, 특정 큐가 전체 시스템 자원을 독점하는 것을 방지한다. 또한, 큐 간 이동을 허용하는 다단계 피드백 큐 스케줄링도 널리 사용되는데, 이는 프로세스의 행동 변화(예: 대화형 프로세스가 CPU 집중 작업으로 변함)에 따라 프로세스가 다른 큐로 이동할 수 있게 한다.

다단계 큐 스케줄링의 주요 장점은 시스템의 유연성과 효율성 향상이다. 대화형 작업은 짧은 타임 슬라이스를 가진 라운드 로빈 큐에 배치하여 빠른 응답 시간을 보장하고, 배치 작업은 긴 타임 슬라이스를 가진 FCFS 큐에 배치하여 처리량을 높일 수 있다. 그러나 설계가 복잡하고, 큐 간의 불공정한 자원 배분으로 인해 기아 상태가 발생할 수 있는 단점도 존재한다. 특히 고정 우선순위 방식을 사용할 경우, 낮은 우선순위 큐의 프로세스는 영원히 실행되지 못할 위험이 있다.

5. 장점과 한계

시분할 시스템의 가장 큰 장점은 컴퓨터 자원의 활용도를 극대화하는 것이다. 단일 사용자 시스템에서는 사용자의 입력 대기 시간 동안 중앙 처리 장치가 놀게 되지만, 시분할 시스템은 여러 사용자 또는 프로세스에게 짧은 시간 조각을 순차적으로 할당하여 이러한 유휴 시간을 줄인다. 이로 인해 시스템 전체의 처리량이 증가하고, 다수의 사용자가 동시에 하나의 컴퓨터를 사용할 수 있는 환경을 제공한다. 사용자 관점에서는 각자 시스템을 독점하는 것처럼 느껴지는 빠른 응답 시간을 얻을 수 있다.

그러나 이러한 이점은 필연적으로 시스템 오버헤드를 동반한다. 문맥 교환이 빈번하게 발생하면 프로세스 간 전환에 소요되는 시간이 전체 실행 시간에서 차지하는 비율이 커진다. 또한 메모리 관리가 복잡해지고, 디스크 스케줄링과 같은 보조 기억장치 접근에 대한 고려도 필요해진다. 공정성 역시 중요한 문제로, 모든 프로세스에 균등한 시간을 할당하는 라운드 로빈 방식은 긴 작업의 완료 시간을 지연시킬 수 있으며, 우선순위 기반 스케줄링은 우선순위가 낮은 프로세스의 기아 상태를 유발할 위험이 있다.

시분할 시스템의 성능은 응답 시간과 처리량 사이의 균형에 달려 있다. 너무 짧은 시간 할당량을 설정하면 문맥 교환 오버헤드가 과도해져 처리량이 떨어질 수 있다. 반대로 시간 할당량이 너무 길면 사용자 대화형 시스템에서 요구하는 빠른 응답성을 보장하기 어렵다. 따라서 시스템의 용도와 사용자 요구에 따라 적절한 스케줄링 정책과 시간 할당량을 선택하는 것이 중요하다.

5.1. 자원 활용도 향상

시분할 시스템의 핵심 장점은 컴퓨터 자원의 활용도를 극대화하는 데 있다. 단일 사용자 시스템에서는 사용자의 입력 대기 시간 동안 CPU가 유휴 상태로 머무르는 경우가 많다. 시분할 시스템은 여러 사용자 또는 프로세스에게 CPU 시간을 매우 짧은 간격(일반적으로 밀리초 단위)으로 나누어 할당함으로써, 한 프로세스가 입출력을 기다리는 동안 다른 프로세스가 CPU를 사용하게 한다. 이로 인해 CPU의 유휴 시간이 현저히 줄어들고, 주어진 시간 동안 더 많은 작업을 처리할 수 있게 된다.

이러한 활용도 향상은 메모리와 같은 다른 자원에도 적용된다. 다수의 사용자 프로그램이 메모리에 동시에 상주하며, 시스템은 필요에 따라 메모리 공간을 교체하거나 공유한다. 결과적으로 값비싼 컴퓨터 하드웨어 자원을 더 많은 사용자가 공동으로 효율적으로 사용할 수 있게 되어, 전체적인 시스템의 처리량이 증가한다. 이는 특히 초기 대형 컴퓨터 시대에 컴퓨팅 비용을 분담하고 접근성을 높이는 데 결정적인 역할을 했다.

자원 활용도의 정량적 향상은 다음과 같은 지표로 측정될 수 있다.

지표

설명

시분할 시스템의 영향

CPU 이용률

CPU가 유휴 상태가 아닌 비율

입출력 대기 시간을 다른 프로세스의 실행으로 채워 크게 향상시킴

처리량

단위 시간당 완료하는 프로세스 수

다중 프로세스의 동시 실행으로 증가시킴

자원 점유 시간

단일 작업이 전체 자원을 독점하는 시간

여러 작업이 자원을 시간적으로 공유하므로 대폭 감소시킴

이러한 효율성 증대는 궁극적으로 사용자에게 더 빠른 응답 시간과 더 낮은 컴퓨팅 비용으로 이어졌다. 한 사용자의 관점에서는 시스템이 자신의 작업만을 수행하는 것처럼 느껴지지만, 실제로는 시스템은 백그라운드에서 다른 모든 사용자의 작업을 인터리빙 방식으로 처리하여 자원의 공백을 최소화한다.

5.2. 응답 시간과 처리량

응답 시간은 사용자가 시스템에 요청을 보낸 시점부터 첫 번째 출력을 받을 때까지 걸리는 시간을 의미한다. 시분할 시스템은 여러 사용자가 터미널을 통해 동시에 상호작용하며 작업을 수행할 수 있도록 설계되었기 때문에, 적절한 응답 시간을 유지하는 것이 핵심 목표 중 하나이다. 일반적으로 응답 시간이 짧을수록 사용자는 시스템이 자신의 명령에 즉각 반응한다고 느끼며, 이는 사용자 경험을 크게 향상시킨다. 시스템의 부하가 증가하면 응답 시간도 함께 증가하는 경향을 보인다.

처리량은 단위 시간당 시스템이 완료할 수 있는 작업의 수를 나타낸다. 시분할 시스템의 목표는 높은 처리량을 유지하면서도 각 사용자에게 만족스러운 응답 시간을 제공하는 것이다. 그러나 이 두 요소는 종종 상충 관계에 있다. 예를 들어, 프로세스 스케줄링에서 각 작업에 할당하는 시간 할당량을 매우 짧게 설정하면 응답 시간은 개선될 수 있지만, 문맥 교환 오버헤드가 증가하여 전체 처리량은 오히려 떨어질 수 있다[6].

따라서 시스템 설계자는 응답 시간과 처리량 사이에서 균형을 찾아야 한다. 다양한 스케줄링 알고리즘은 이 균형을 달성하기 위해 개발되었다. 라운드 로빈 스케줄링은 모든 프로세스에 공평한 시간을 할당하여 응답 시간을 예측 가능하게 하지만, 긴 작업의 완료 시간은 지연될 수 있다. 반면, 처리량을 최대화하기 위해 짧은 작업을 우선 처리하는 알고리즘은 일부 긴 작업의 응답 시간을 희생할 수 있다.

5.3. 오버헤드와 공정성 문제

시분할 시스템은 여러 사용자에게 컴퓨팅 자원을 공유하는 효율적인 방식을 제공하지만, 컨텍스트 스위칭과 같은 운영체제의 관리 작업으로 인해 필연적으로 오버헤드가 발생합니다. 프로세스 간 전환이 빈번하게 일어날 때마다 CPU의 상태를 저장하고 복원하는 데 시간과 자원이 소모되며, 이는 전체 시스템의 처리량을 감소시키는 요인이 됩니다. 특히 프로세스 수가 많거나 스케줄링 시간 할당량이 매우 짧을 경우, 실제 유용한 작업보다 시스템 관리에 더 많은 시간이 할당될 수 있습니다.

공정성 문제는 스케줄링 정책에 따라 발생할 수 있는 중요한 이슈입니다. 예를 들어, 라운드 로빈 방식은 모든 프로세스에 균등한 시간을 할당하지만, 입출력 중심 작업과 계산 중심 작업이 혼재되어 있을 때는 비효율적일 수 있습니다. 우선순위 기반 스케줄링은 중요한 작업을 빠르게 처리할 수 있도록 하지만, 낮은 우선순위를 가진 프로세스는 자원을 오랫동안 할당받지 못하는 기아 상태에 빠질 위험이 있습니다.

이러한 문제를 완화하기 위해 다단계 큐 스케줄링이나 다단계 피드백 큐와 같은 고급 알고리즘이 개발되었습니다. 이러한 방식은 프로세스의 행동 패턴(예: CPU 버스트 시간)에 따라 대기 큐를 이동시키며, 오버헤드와 공정성 사이의 균형을 찾으려고 시도합니다. 그러나 어떤 알고리즘도 오버헤드를 완전히 제거하거나 모든 상황에서 절대적인 공정성을 보장할 수는 없습니다. 시스템 설계자는 응답 시간, 처리량, 공정성이라는 상충되는 목표 사이에서 주어진 환경에 가장 적합한 절충점을 선택해야 합니다.

6. 현대 시스템에서의 적용

시분할 시스템은 초기 메인프레임 컴퓨터에서 다중 사용자 환경을 지원하기 위해 개발되었지만, 그 기본 원리는 현대의 서버, 클라우드 컴퓨팅 환경, 심지어 데스크톱 및 모바일 운영 체제의 핵심에도 깊이 자리 잡고 있다. 현대 시스템에서는 순수한 시분할이라는 용어보다는 멀티태스킹이나 멀티프로세싱과 같은 개념으로 더 널리 알려져 있으며, CPU 시간을 여러 작업 사이에 공정하고 효율적으로 분배하는 스케줄링 메커니즘의 기초를 제공한다.

서버와 클라우드 환경에서는 수천 개의 가상 또는 물리적 서버 인스턴스가 제한된 하드웨어 자원을 공유한다. 가상화 기술과 컨테이너 기술은 시분할의 개념을 시스템 전체 수준으로 확장하여, 단일 물리적 서버가 여러 가상 머신이나 컨테이너를 동시에 실행할 수 있게 한다. 이때 하이퍼바이저나 컨테이너 런타임은 각 가상 환경에 CPU 시간을 할당하는 스케줄러 역할을 수행하며, 이는 본질적으로 고도로 발전된 시분할 시스템이다. 클라우드 제공자는 이러한 방식을 통해 자원 활용도를 극대화하고 비용을 절감한다.

환경

적용 방식

주요 특징

서버/클라우드

가상 머신 및 컨테이너 스케줄링

물리적 코어를 여러 가상 인스턴스에 시간 할당, 자원 풀링 및 탄력적 확장

데스크톱/모바일

대화형 멀티태스킹

전경 응용 프로그램에 높은 응답성 부여, 백그라운드 작업은 여유 자원 활용

실시간 시스템

엄격한 시간 제약 준수

데드라인 보장이 최우선, 예측 가능한 실행 시간이 핵심

시분할 시스템은 일반적으로 응답 시간과 공정성을 중시하는 반면, 실시간 운영 체제는 작업 완료의 예측 가능성과 데드라인(마감 시간) 준수를 최우선 목표로 한다. 실시간 시스템은 경성 실시간 시스템과 연성 실시간 시스템으로 구분되는데, 경성 실시간 시스템에서는 데드라인을 절대적으로 지켜야 하므로 고정된 우선순위 기반 스케줄링을 주로 사용한다. 이는 시분할 시스템의 라운드 로빈 방식과는 목적이 근본적으로 다르다. 그러나 연성 실시간 시스템이나 일반 운영 체제의 멀티미디어 처리 등에서는 두 접근법이 혼합되어 사용되기도 한다.

6.1. 서버와 클라우드 환경

시분할 시스템의 기본 원리는 현대의 서버와 클라우드 컴퓨팅 환경에서도 핵심적인 역할을 한다. 서버는 다수의 사용자나 클라이언트 프로그램에게 서비스를 제공해야 하며, 이는 본질적으로 하나의 중앙 처리 장치를 여러 작업 사이에 시간을 나누어 할당하는 시분할의 개념과 일치한다. 특히 웹 서버나 데이터베이스 서버는 수천 개의 동시 연결 요청을 처리해야 하는데, 운영 체제의 프로세스 스케줄링과 스레드 관리 메커니즘을 통해 이러한 동시성을 실현한다.

클라우드 환경에서는 이 개념이 물리적 서버 자원을 가상화하여 여러 테넌트에게 분배하는 형태로 확장 적용된다. 가상 머신이나 컨테이너는 각각 독립적인 운영 체제 인스턴스 또는 애플리케이션 환경을 갖추지만, 실제 물리적인 CPU 코어는 하이퍼바이저나 컨테이너 오케스트레이터에 의해 이러한 가상 단위들 사이에 시분할 방식으로 할당된다. 이는 단일 컴퓨터에서 여러 사용자를 지원하는 초기 시분할 시스템과 유사한 패턴이지만, 규모와 유연성 측면에서 훨씬 발전된 형태이다.

자원 활용도 최적화는 서버와 클라우드의 경제적 핵심 가치이며, 시분할은 이를 위한 기본 메커니즘을 제공한다. 서버의 자원 사용률이 낮으면 비용 대비 효율이 떨어지는데, 시분할을 통한 멀티태스킹과 가상화 기술은 하나의 물리 서버에서 여러 워크로드를 효율적으로 혼합 실행함으로써 자원 낭비를 줄인다. 클라우드 제공업체는 이러한 원리를 기반으로 수많은 고객의 변동하는 수요에 맞춰 동적으로 자원을 할당하고 재배분하는 탄력적 컴퓨팅을 구현한다.

환경

시분할 적용 형태

주요 목표

전통적 서버

OS 수준의 프로세스/스레드 스케줄링

다중 연결 처리, 서비스 가용성 유지

가상화 서버

하이퍼바이저에 의한 가상 CPU 시간 할당

물리 서버 통합, 자원 격리

퍼블릭 클라우드

다수 테넌트 간 물리 자원의 공유 및 분배

대규모 자원 풀의 효율적 운영, 비용 절감

이러한 환경에서의 도전 과제는 공정한 스케줄링과 성능 예측 가능성을 보장하는 것이다. 특히 멀티테넌시 환경에서 한 테넶트의 과도한 자원 사용이 다른 테넶트의 성능에 영향을 주지 않도록 하는 자원 격리는 현대 시분할 시스템 설계의 중요한 고려 사항이다.

6.2. 실시간 시스템과의 비교

시분할 시스템은 일반적으로 대화형 처리를 목표로 하여, 여러 사용자에게 컴퓨팅 자원을 공정하게 나누어 주고 적절한 응답 시간을 제공하는 데 중점을 둔다. 반면, 실시간 시스템은 작업이 정해진 시간 제약 내에 반드시 완료되는 것을 보장하는 데 주안점을 둔다. 이 시간 제약을 지키지 못하면 시스템 전체의 실패로 이어질 수 있다. 따라서 실시간 시스템의 스케줄링은 예측 가능성과 시간적 결정론을 최우선으로 한다.

두 시스템의 핵심 차이는 스케줄링의 목표와 성능 평가 기준에 있다. 시분할 시스템의 성능은 평균 응답 시간, 처리량, 자원 활용도 같은 지표로 평가된다. 실시간 시스템은 작업의 마감 시한을 얼마나 잘 지키는지, 즉 마감 시한 준수율이 가장 중요한 성능 척도이다. 실시간 시스템은 다시 경성 실시간 시스템과 연성 실시간 시스템으로 구분되는데, 경성 실시간 시스템에서는 마감 시한을 절대 위반해서는 안 된다.

다음 표는 두 시스템의 주요 특징을 비교한 것이다.

비교 항목

시분할 시스템

실시간 시스템

주요 목표

공정한 자원 분배와 좋은 평균 응답 시간

작업의 마감 시한 보장

성능 척도

처리량, 평균 응답 시간, 자원 활용도

마감 시한 준수율

스케줄링 기준

공정성, 효율성

시간 제약의 중요도(데드라인)

결정론적 특성

비결정론적 응답 시간 가능

높은 수준의 시간적 결정론 요구

주요 적용 분야

범용 컴퓨팅, 서버, 개인용 컴퓨터

산업 제어, 의료 장비, 항공 전자 시스템

현대 시스템에서는 이 두 개념의 경계가 모호해지는 경우도 있다. 예를 들어, 일부 실시간 운영 체제는 시분할 기능을 포함하여 여러 작업을 처리할 수 있으며, 반대로 고성능 시분할 시스템도 특정 실시간 태스크를 위한 마감 시한 인식 스케줄링을 지원하기도 한다[7]. 그러나 근본적인 설계 철학과 최우선 목표는 여전히 명확히 구분된다.

7. 관련 기술 및 개념

시분할 시스템은 멀티태스킹을 구현하는 핵심 기술 중 하나이다. 멀티태스킹은 단일 프로세서가 여러 작업을 동시에 처리하는 것처럼 보이게 하는 광범위한 개념이며, 시분할은 이를 가능하게 하는 구체적인 자원 할당 방식이다. 시분할 시스템은 각 작업에 짧은 시간 조각(타임 슬라이스)을 순차적으로 할당하여 사용자에게는 모든 작업이 동시에 진행되는 듯한 경험을 제공한다. 이는 단일 사용자가 여러 프로그램을 동시에 실행하는 데 사용되기도 하고, 다중 사용자가 단일 컴퓨터를 공유하는 환경의 기반이 되기도 한다.

가상화 기술은 시분할 개념을 하드웨어 자원 전체로 확장한 것으로 볼 수 있다. 시분할 시스템이 단일 CPU를 여러 프로세스에 나누어 주듯, 가상화는 단일 물리적 서버의 CPU, 메모리, 저장장치 등의 자원을 논리적으로 분할하여 여러 독립적인 가상 머신을 생성하고 실행한다. 각 가상 머신은 자체 운영체제를 실행할 수 있으며, 하이퍼바이저라는 소프트웨어 계층이 물리적 자원을 관리하고 각 가상 머신에 시분할 방식으로 할당한다. 이는 클라우드 컴퓨팅 인프라의 근간을 이루는 기술이다.

시분할 시스템과 대비되는 개념으로 실시간 운영체제가 있다. 시분할 시스템이 사용자 상호작용과 전체 시스템 처리량을 최적화하는 데 중점을 둔다면, 실시간 시스템은 각 작업이 엄격한 시간 제약 내에 완료되는 것을 보장하는 데 중점을 둔다. 실시간 시스템의 스케줄링은 데드라인을 기준으로 하며, 시분할 시스템에서 일반적으로 사용되는 라운드 로빈 방식과는 목적과 동작 방식에서 차이가 있다.

관련 개념

핵심 목표

주요 스케줄링 특징

주요 적용 분야

시분할 시스템

다중 사용자/작업 지원, 응답 시간 최소화, 공평한 자원 분배

타임 슬라이스 기반 순환 할당 (예: 라운드 로빈)

범용 멀티유저 시스템, 서버, 개인용 컴퓨터

멀티태스킹

단일 사용자 환경에서 여러 프로그램의 동시 실행

선점형 또는 협력형 작업 전환

데스크톱 운영체제, 스마트폰

가상화 기술

단일 물리 하드웨어에서 여러 독립적인 운영 환경 제공

물리 자원의 논리적 분할 및 할당

클라우드 컴퓨팅, 데이터센터, 서버 통합

실시간 운영체제

작업의 예측 가능하고 엄격한 시간 내 완료 보장

데드라인 또는 우선순위 기반의 결정론적 스케줄링

산업 제어, 의료 장비, 항공 전자 시스템

7.1. 멀티태스킹

멀티태스킹은 단일 중앙 처리 장치가 여러 작업을 동시에 처리하는 것처럼 보이게 하는 기술이다. 이는 시분할 시스템의 핵심 원리를 기반으로 하여, 운영 체제가 매우 짧은 시간 간격으로 실행 중인 여러 프로세스나 스레드 사이에서 CPU 시간을 빠르게 전환함으로써 구현된다. 사용자 관점에서는 여러 응용 프로그램이 동시에 실행되는 것처럼 인식되지만, 실제로는 CPU가 순차적으로 각 작업의 일부를 처리하는 것이다.

멀티태스킹은 크게 선점형과 비선점형으로 구분된다. 선점형 멀티태스킹에서는 운영 체제가 시스템 타이머 인터럽트 등을 이용해 실행 제어권을 강제로 회수하여 다른 작업에 할당할 수 있다. 이 방식은 하나의 작업이 시스템을 독점하는 것을 방지하고 더 공정한 응답 시간을 보장한다. 반면, 비선점형 멀티태스킹에서는 실행 중인 작업이 자발적으로 제어권을 운영 체제에 반환할 때까지 기다려야 하므로, 한 작업의 지연이 전체 시스템의 반응성을 떨어뜨릴 수 있다. 현대의 대부분의 운영 체제는 선점형 방식을 채택하고 있다.

멀티태스킹의 구현은 프로세스 스케줄링 알고리즘과 밀접한 관계가 있다. 운영 체제는 준비 큐에 대기 중인 여러 작업 중 다음에 실행할 작업을 결정해야 한다. 이 결정은 라운드 로빈, 우선순위 기반 스케줄링, 다단계 피드백 큐 등 다양한 스케줄링 정책에 따라 이루어진다. 또한, 문맥 교환 과정에서 현재 실행 중인 작업의 상태(레지스터 값, 프로그램 카운터 등)를 저장하고 새 작업의 상태를 복원하는 오버헤드가 발생한다.

멀티태스킹은 단일 사용자 데스크톱 환경에서 여러 응용 프로그램을 동시에 사용할 수 있는 기반이 되었으며, 서버 환경에서는 수많은 클라이언트 요청을 동시에 처리하는 것을 가능하게 했다. 이 개념은 이후 다중 처리 (멀티프로세싱, 여러 CPU 코어를 사용한 진정한 병렬 처리) 및 하이퍼스레딩 같은 기술과 결합되어 컴퓨터 시스템의 성능과 효율성을 지속적으로 향상시키는 토대를 제공했다.

7.2. 가상화 기술

시분할 시스템은 단일 하드웨어 자원을 여러 사용자나 작업이 번갈아 가며 사용하는 방식으로, 이 개념은 현대 가상화 기술의 기초가 되었다. 가상화 기술은 물리적 자원을 논리적으로 분할하거나 추상화하여 여러 독립적인 가상 환경을 생성하는 기술이다. 시분할이 CPU 시간을 공유하는 데 초점을 맞췄다면, 가상화는 CPU, 메모리, 저장장치, 네트워크 등 시스템 전체 자원을 통합적으로 가상 인스턴스로 제공한다.

가상화는 크게 시스템 가상화와 컨테이너 기반 가상화로 나눌 수 있다. 시스템 가상화(또는 하드웨어 가상화)는 하이퍼바이저를 사용하여 물리적 머신 위에 여러 개의 완전한 가상 머신을 구동한다. 각 가상 머신은 독립된 운영 체제를 실행한다. 반면, 컨테이너 기반 가상화는 호스트 운영 체제의 커널을 공유하며, 애플리케이션과 그 실행 환경을 격리된 패키지로 만든다. 이는 Docker나 Kubernetes와 같은 플랫폼에서 널리 사용된다.

가상화 유형

주요 기술/예시

격리 수준

오버헤드

시작 속도

시스템 가상화

VMware, Hyper-V, KVM

하드웨어 수준

높음

느림

컨테이너 가상화

Docker, LXC, Kubernetes

운영체제(프로세스) 수준

낮음

빠름

이 기술들은 클라우드 컴퓨팅의 핵심을 이룬다. 아마존 웹 서비스, 마이크로소프트 애저, 구글 클라우드 플랫폼과 같은 공용 클라우드는 물리적 인프라 위에 수많은 가상 서버 인스턴스를 제공하여 자원의 탄력적 할당과 높은 활용도를 가능하게 한다. 또한, 개발과 테스트 환경 구축, 서버 통합, 재해 복구 등 다양한 분야에 응용된다. 시분할이 컴퓨팅 자원의 민주화를 시작했다면, 가상화는 이를 확장하여 전체 IT 인프라의 효율성과 유연성을 혁신적으로 높였다.

8. 여담

시분할 시스템의 발전은 컴퓨터 사용 방식에 혁명을 가져왔지만, 그 과정에는 여러 흥미로운 일화와 예상치 못한 결과들이 존재한다.

초기 시분할 시스템을 개발한 연구자들은 단순히 자원 활용도를 높이는 기술적 도전 이상의 목표를 가지고 있었다. 그들은 컴퓨터를 단일 사용자 배치 처리 장치가 아닌, 다수의 사용자가 동시에 대화형으로 접근할 수 있는 도구로 변화시키고자 했다. 이 비전은 결국 개인용 컴퓨터와 현대의 클라우드 컴퓨팅 환경으로 이어지는 길을 열었다. 일부 초기 시스템은 사용자들이 터미널을 통해 실시간으로 채팅하거나 간단한 게임을 즐길 수 있는 사회적 공간의 역할도 했다.

한편, 시분할의 개념은 컴퓨터 과학 외부에서도 비유적으로 널리 사용된다. 예를 들어, 한 명의 강사가 여러 학생을 가르치는 교실 수업, 또는 한 명의 요리사가 여러 테이블의 주문을 순차적으로 처리하는 레스토랑의 주방은 인간에 의한 시분할의 일종으로 볼 수 있다. 또한, UNIX 철학의 핵심인 "한 가지 일을 잘 하는 도구들을 조합하라"는 사상은 시분할 환경에서 효율적으로 협력하는 작은 프로세스들의 모델에서 영감을 받은 측면이 있다.

9. 관련 문서

  • Wikipedia - 시분할 시스템

  • Wikipedia - Time-sharing

  • Namu Wiki - 시분할 시스템

  • ScienceAll - 시분할 시스템(Time Sharing System)이란?

  • 한국전자통신연구원 - 컴퓨터 시스템 구조 용어 해설: 시분할 시스템

  • Google Scholar - Time-Sharing Computer Systems

  • Britannica - Time-sharing

리비전 정보

버전r1
수정일2026.02.14 21:44
편집자unisquads
편집 요약AI 자동 생성