2025-09-11 23:39

  • 시분할 시스템은 하나의 컴퓨터를 여러 사용자가 동시에 사용하는 것처럼 느끼게 만드는 운영체제 기술이다.

  • CPU 사용 시간을 매우 짧은 단위로 쪼개 여러 작업에 번갈아 할당하는 원리로 동작한다.

  • 현대 모든 다중 작업 운영체제(Windows, macOS, Linux)의 근간이 되는 핵심 개념이다.

당신이 쓰는 모든 OS의 조상 시분할 시스템 완벽 핸드북

지금 당신이 컴퓨터로 이 글을 읽는 동시에 음악을 듣고, 백그라운드에서는 파일을 다운로드하고 있다고 상상해 보자. 이 모든 작업이 매끄럽게 동시에 이루어지는 것은 너무나 당연하게 느껴진다. 하지만 컴퓨터의 중앙 처리 장치(CPU)는 근본적으로 한 번에 하나의 작업만 처리할 수 있다. 어떻게 이런 마법 같은 일이 가능할까? 그 비밀의 열쇠가 바로 **시분할 시스템 (Time-Sharing System, TSS)**에 있다.

시분할 시스템은 단순히 기술적인 발전을 넘어, 컴퓨터와 인간의 상호작용 방식을 근본적으로 바꾼 혁명적인 개념이다. 이 핸드북은 시분할 시스템이 왜 탄생했는지부터, 어떤 원리로 동작하며, 현대 기술에 어떤 유산을 남겼는지까지 깊이 있게 탐구한다.

1. 탄생 배경 - 왜 시분할 시스템이 필요했는가?

시분할 시스템의 가치를 이해하려면, 그 이전 시대의 컴퓨터 사용 환경을 먼저 알아야 한다.

1.1. 시분할 이전의 시대: 일괄 처리 시스템 (Batch Processing System)

1950년대와 60년대 초반, 컴퓨터는 거대하고 비쌌으며, 전문가들만이 다룰 수 있는 특별한 기계였다. 당시의 지배적인 방식은 일괄 처리 시스템이었다.

  • 작동 방식: 사용자는 자신의 프로그램과 데이터를 천공 카드나 자기 테이프에 담아 컴퓨터 운영자에게 제출한다. 운영자는 비슷한 종류의 작업(Job)들을 모아 ‘일괄(Batch)‘로 묶은 뒤, 한 번에 처리했다.

  • 비유: 세탁소에서 흰옷, 색깔 옷을 각각 모았다가 한 번에 세탁하는 것과 같다. 내 양말 한 켤레를 빨기 위해 다른 사람들의 흰옷이 다 모일 때까지 기다려야 하는 것이다.

이 방식은 몇 가지 치명적인 문제를 안고 있었다.

  1. 엄청난 대기 시간: 사용자는 작업을 제출하고 결과를 받기까지 몇 시간, 심지어 며칠을 기다려야 했다. 간단한 코드 오류 하나를 수정하기 위해 하루를 꼬박 소모하는 일이 비일비재했다.

  2. CPU의 비효율적 활용: 프로그램이 데이터를 읽거나 출력하는 입출력(I/O) 작업을 할 때, CPU는 그저 작업이 끝나기를 기다리며 아무 일도 하지 않았다. 비싼 CPU가 노는 시간이 너무 많았다.

  3. 상호작용의 부재: 프로그램이 실행되는 동안 사용자는 어떤 식으로든 개입할 수 없었다. 실행 중간에 값을 바꾸거나 잘못된 부분을 바로잡는 것은 불가능했다.

1.2. 혁신적인 아이디어의 등장

이러한 불편함 속에서 MIT의 존 매카시(John McCarthy, 인공지능 분야의 선구자)와 같은 학자들은 새로운 아이디어를 제시했다. “컴퓨터의 처리 속도는 인간의 인지 속도보다 압도적으로 빠르다. 이 빠른 속도를 이용해 여러 사용자의 작업을 아주 짧은 시간 간격으로 번갈아 가며 처리하면, 모든 사용자는 마치 자신 혼자 컴퓨터를 쓰는 것처럼 느끼지 않을까?”

이 아이디어가 바로 시분할의 시작이었다. 1961년 MIT에서 개발된 **CTSS(Compatible Time-Sharing System)**는 최초의 성공적인 시분할 시스템 중 하나로, 컴퓨터 역사에 한 획을 그었다. 이로써 컴퓨터는 단순히 계산만 하는 기계를 넘어, 인간과 실시간으로 ‘대화’할 수 있는 도구로 진화하기 시작했다.

2. 핵심 구조 - 시분할 시스템은 어떻게 동작하는가?

시분할 시스템의 핵심은 ‘CPU 시간을 잘게 나누어 여러 프로세스에 공평하게 분배하는 것’이다. 이를 위해 몇 가지 핵심적인 구성 요소와 메커니즘이 필요하다.

비유: 체스 마스터 한 명이 여러 명의 상대와 동시에 체스를 두는 장면을 상상해 보자. 마스터(CPU)는 첫 번째 상대(프로세스 A)의 판 앞에 가서 몇 초간 수를 생각하고 말을 옮긴다. 그리고 즉시 두 번째 상대(프로세스 B)의 판으로 이동해 같은 일을 반복한다. 모든 판을 순서대로 방문하고 나면 다시 첫 번째 상대로 돌아온다. 상대방 입장에서는 마스터가 계속 내 앞에 앉아 있는 것처럼 느껴질 수 있다.

2.1. 시간 조각 (Time Slice 또는 Quantum)

시간 조각은 각 프로세스가 CPU를 한 번에 사용할 수 있도록 할당된 매우 짧은 시간이다. 보통 밀리초(ms, 1/1000초) 단위로 정해진다. 이 시간이 다 되면 해당 프로세스는 강제로 CPU 점유를 포기하고 다음 프로세스에게 순서를 넘겨야 한다.

2.2. 문맥 교환 (Context Switching)

A 프로세스에서 B 프로세스로 CPU 제어권이 넘어갈 때, 운영체제는 그냥 전환하는 것이 아니다. A 프로세스가 어디까지 실행했는지 모든 상태(프로그램 카운터, 레지스터 값, 사용하던 메모리 주소 등)를 **프로세스 제어 블록(PCB, Process Control Block)**이라는 곳에 저장해야 한다. 그리고 B 프로세스를 실행하기 위해 이전에 저장해 두었던 B의 상태를 다시 불러온다.

이처럼 한 프로세스의 상태를 저장하고 다른 프로세스의 상태를 적재하는 과정을 문맥 교환이라 한다. 이는 시분할의 필수적인 과정이지만, 아무런 실질적인 작업을 하지 않는 순수한 오버헤드(Overhead)이기도 하다. 체스 마스터가 다음 판으로 이동할 때, 이전 판의 모든 상황을 기억하고 새 판의 상황을 머릿속에 떠올리는 정신적 노력과 같다.

2.3. 스케줄링과 디스패치 (Scheduling and Dispatch)

  • CPU 스케줄러: 준비 큐(Ready Queue)에 있는 여러 프로세스 중 다음에 어떤 프로세스에 CPU를 할당할지 결정하는 주체. 가장 기본적인 시분할 스케줄링 알고리즘은 **라운드 로빈(Round Robin)**으로, 모든 프로세스에게 공평하게 시간 조각을 나누어 주는 방식이다.

  • 디스패처 (Dispatcher): 스케줄러가 프로세스를 결정하면, 실제로 문맥 교환을 수행하고 선택된 프로세스에 CPU 제어권을 넘겨주는 모듈이다.

2.4. 타이머 인터럽트 (Timer Interrupt)

만약 한 프로세스가 할당된 시간 조각을 다 썼는데도 CPU를 놓아주지 않는다면 어떻게 될까? 시스템 전체가 멈출 것이다. 이를 방지하기 위해 하드웨어적으로 타이머가 존재한다.

운영체제는 프로세스에 CPU를 넘겨주기 전에 타이머에 시간 조각만큼의 시간을 설정한다. 시간이 만료되면 타이머는 CPU에 인터럽트(Interrupt) 신호를 보낸다. 이 신호를 받은 CPU는 하던 일을 강제로 멈추고 운영체제에게 제어권을 넘겨, 다음 프로세스로 전환할 수 있게 한다. 이것은 독점적인 프로세스로부터 시스템을 보호하는 매우 중요한 안전장치다.

2.5. 메모리 관리 (Memory Management)

여러 사용자 프로세스를 동시에 처리하려면 이들을 모두 주기억장치(RAM)에 올려두어야 한다. 하지만 초창기 컴퓨터의 메모리는 매우 작고 비쌌다. 시분할 시스템은 이 문제를 해결하기 위해 **스와핑(Swapping)**이나 가상 메모리(Virtual Memory) 같은 기법을 도입했다.

  • 스와핑: 당장 실행되지 않는 프로세스를 보조기억장치(하드 디스크 등)로 잠시 내려보내고(swap-out), 실행할 프로세스를 메모리로 가져오는(swap-in) 기법.

  • 가상 메모리: 프로세스 전체가 아닌, 당장 필요한 부분만 메모리에 올려 실행하는 기법. 이는 후에 모든 현대 운영체제의 표준적인 메모리 관리 기법이 된다.

3. 사용법과 장점 - 시분할 시스템이 가져온 변화

시분할 시스템의 등장은 컴퓨터 사용의 패러다임을 완전히 바꾸었다.

  1. 대화형 컴퓨팅 시대의 개막: 사용자는 키보드로 명령어를 입력하고 거의 즉시 결과를 화면으로 확인할 수 있게 되었다. 이는 프로그래밍, 디버깅, 데이터 분석 등 모든 컴퓨터 작업의 생산성을 폭발적으로 증가시켰다.

  2. 자원의 효율적 공유: 고가의 메인프레임 컴퓨터 한 대를 수십 명의 사용자가 터미널을 통해 동시에 접속하여 사용할 수 있게 되었다. 이는 컴퓨팅 자원의 비용을 획기적으로 낮추고 더 많은 사람에게 컴퓨터 접근 기회를 제공했다.

  3. 응답 시간 단축: 일괄 처리에 비해 사용자가 결과를 얻기까지 기다리는 시간(응답 시간)이 극적으로 줄어들었다.

4. 심화 탐구 - 더 깊은 이해를 위하여

4.1. 최적의 시간 조각(Time Quantum) 크기는?

시간 조각의 크기는 시스템 전체 성능에 매우 중요한 영향을 미친다. 정답은 없으며, 상황에 따른 트레이드오프(Trade-off)가 존재한다.

시간 조각 크기장점단점
작음 (Small)사용자에 대한 반응성이 매우 빠름잦은 문맥 교환으로 인한 오버헤드가 커져 실제 작업 처리 효율이 떨어짐
큼 (Large)문맥 교환 오버헤드가 줄어들어 CPU 효율이 높아짐사용자에 대한 반응성이 느려지며, 일괄 처리 시스템과 비슷해짐

일반적으로 현대 운영체제는 10~100ms 범위의 시간 조각을 사용하며, 시스템 부하에 따라 동적으로 조절하기도 한다.

4.2. 스케줄링 알고리즘의 진화

단순한 라운드 로빈 방식 외에도 더 정교한 스케줄링 알고리즘들이 개발되었다. 예를 들어, **우선순위 스케줄링(Priority Scheduling)**은 중요한 시스템 프로세스나 대화형 작업을 그렇지 않은 작업보다 먼저 처리하게 해준다. **다단계 큐 스케줄링(Multilevel Queue Scheduling)**은 작업의 종류(대화형, 계산 위주, 백그라운드 등)에 따라 여러 개의 큐를 두고 각기 다른 스케줄링 방식을 적용하여 시스템의 목표(빠른 응답, 높은 처리량 등)를 동시에 만족시키려 한다.

5. 현재와 미래 - 시분할 시스템의 유산

오늘날 우리가 ‘시분할 시스템’이라는 용어를 별도로 사용하지는 않는다. 그 이유는 시분hal의 개념이 너무나 보편화되어 모든 현대 운영체제의 기본 원리가 되었기 때문이다.

  • 개인용 컴퓨터 운영체제: Windows, macOS, Linux 등은 모두 시분할의 직계 후손인 다중 작업(Multitasking) 운영체제이다. 이들은 여러 애플리케이션에 CPU 시간을 나누어 주며, 사용자가 여러 작업을 동시에 하는 경험을 제공한다.

  • 서버와 클라우드 컴퓨팅: 수천, 수만 명의 사용자가 동시에 접속하는 거대한 클라우드 서버는 시분할 개념의 궁극적인 확장판이다. 가상화 기술을 통해 하나의 물리적 서버를 여러 개의 독립적인 가상 서버(VM)로 나누고, 각 VM 내에서 다시 여러 프로세스가 시분할 방식으로 동작한다.

결론: 세상을 바꾼 시간의 마법

시분할 시스템은 단순히 CPU 시간을 나누는 기술을 넘어, 컴퓨터를 소수의 전문가를 위한 계산기에서 다수의 사용자를 위한 실시간 상호작용 도구로 탈바꿈시킨 위대한 발명이다. 일괄 처리의 긴 기다림을 끝내고, 인간과 기계가 실시간으로 소통하는 시대를 열었다.

우리가 지금 누리는 편리한 디지털 세상, 여러 창을 띄워놓고 자유롭게 넘나드는 그 모든 경험의 밑바닥에는 시간을 마법처럼 나누어 쓰는 시분할 시스템의 철학이 굳건히 자리 잡고 있다.