⚙️ [운영체제] 초기 운영체제 (Batch Systems)
1️⃣ 운영체제 개요 - 운영체제의 역사와 발전 과정
📌 초기 운영체제: 배치 처리 시스템 (Batch Systems)
운영체제의 역사는 컴퓨터의 발전과 함께 진화해 왔으며, 초기 운영체제는 지금과 달리 직접적인 사용자 인터페이스 없이 단순한 작업을 자동화하는 기능을 제공했습니다.
초기 운영체제의 대표적인 형태는 배치 처리 시스템(Batch Processing System)으로, 1950년대부터 1960년대까지 사용되던 운영 방식입니다.
배치 시스템은 사용자가 프로그램을 직접 실행하는 것이 아니라, 여러 개의 작업(Job)을 모아서 한 번에 처리하는 방식을 사용했습니다.
이 방식은 컴퓨터의 사용 효율을 극대화하는데 기여했으며, 이후의 운영체제 발전의 기반이 되었습니다.
1️⃣ 배치 처리 시스템(Batch Systems)이란?
배치 처리 시스템은 일련의 작업(Job)을 모아서 순차적으로 실행하는 방식의 초기 운영체제 개념입니다.
1950년대 컴퓨터는 매우 비싸고, 한 번에 하나의 프로그램만 실행할 수 있었기 때문에 CPU와 기타 하드웨어 자원을 최대한 효율적으로 사용하기 위한 해결책으로 배치 처리 시스템이 개발되었습니다.
🔹 배치 처리 시스템의 특징
- 사용자가 직접 프로그램을 실행하는 방식이 아님
- 사용자는 자신의 작업(Job)을 천공 카드(Punched Card) 또는 자기 테이프(Magnetic Tape)에 기록하여 운영자(Operator)에게 전달
- 운영자가 여러 사용자의 작업을 모아서 한 번에 실행하도록 시스템을 설정
- 작업(Job) 단위로 프로그램을 실행
- 여러 개의 작업(Job)을 배치(Batch, 묶음)로 처리하며, 실행 순서는 운영자가 정함
- 작업이 끝난 후 결과를 사용자에게 출력
- CPU 활용도를 극대화하려는 초기 개념
- 작업을 수동으로 실행하는 대신 자동으로 순차 실행하여 CPU의 유휴 시간을 줄이는 것이 목표
- 입출력과 CPU 실행이 분리됨
- CPU가 작업을 실행하는 동안, 다음 작업의 데이터를 준비하여 CPU가 최대한 쉬지 않고 동작하도록 설계됨
2️⃣ 배치 처리 시스템의 동작 과정
배치 처리 시스템의 일반적인 실행 과정은 다음과 같습니다.
✅ 1. 사용자 작업 제출 (Job Submission)
- 사용자는 프로그램과 데이터를 천공 카드(Punched Card) 또는 자기 테이프(Magnetic Tape)에 입력
- 작업(Job)을 모아 운영자(Operator)에게 제출
✅ 2. 작업 대기열 생성 (Job Queueing)
- 운영자는 여러 사용자의 작업을 일괄적으로 모아서 작업 큐(Job Queue)에 등록
- 작업들은 처리 우선순위 또는 실행 시간이 유사한 것끼리 그룹화(Batching)됨
✅ 3. 작업 실행 (Job Execution - CPU & I/O Scheduling)
- 운영체제는 배치된 작업을 순차적으로 실행
- CPU가 유휴 상태가 되지 않도록 다음 작업을 미리 준비하여 처리 속도를 최적화
✅ 4. 출력 및 결과 전달 (Output & Completion)
- 모든 작업이 완료되면 결과를 출력 장치(프린터, 종이 테이프, 디스크 등)에 저장
- 사용자는 작업이 끝난 후 결과를 확인할 수 있음 (즉시 결과 확인 불가능)
3️⃣ 배치 처리 시스템의 장점과 단점
배치 처리 시스템은 초창기 운영체제에서 중요한 역할을 했지만, 여러 가지 한계를 가지고 있었습니다.
🔹 배치 처리 시스템의 장점
- CPU 활용률 증가
- 작업을 연속적으로 실행하기 때문에 CPU가 유휴 상태에 머무르는 시간이 최소화됨
- 초창기 컴퓨터는 운영 비용이 매우 높았기 때문에, CPU 시간을 최대한 활용하는 것이 중요했음
- 반복적인 작업 자동화 가능
- 급여 계산(Payroll), 통계 분석, 데이터 정렬(Sorting)과 같은 반복적인 작업을 자동으로 처리할 수 있었음
- 기업 및 정부 기관에서 대량 데이터 처리 작업에 유용
- 작업의 효율적인 그룹화(Batching)
- 유사한 작업을 묶어서 실행하므로 디스크 접근 및 입출력 작업이 최적화됨
🔹 배치 처리 시스템의 단점
- 실시간 처리 불가능 (Real-Time Processing이 아님)
- 사용자는 프로그램을 실행한 후 즉시 결과를 받을 수 없었음
- 작업이 실행되기 전까지 대기해야 하며, 결과를 받기까지 오랜 시간이 걸림
- 디버깅(Debugging)이 어려움
- 프로그램이 실행되는 동안 오류가 발생해도 즉시 수정할 수 없으며, 작업이 끝날 때까지 기다려야 했음
- 작은 오류 하나로 인해 전체 작업이 실패하는 경우가 많음
- 작업 간 우선순위 조정 어려움
- 작업이 배치되면 순차적으로 실행되므로, 급하게 실행해야 하는 작업(예: 긴급 보고서 출력)이 있어도 대기해야 함
4️⃣ 대표적인 배치 처리 시스템 예시
배치 처리 시스템은 초기 컴퓨터에서 사용된 주요 운영 방식이었으며, 대표적인 사례로 다음과 같은 시스템이 있습니다.
✅ 1. IBM 701과 FORTRAN Monitor System (FMS)
- 1950년대 IBM이 개발한 배치 처리 운영체제
- 초기 과학 계산 및 공학 계산 작업을 자동화하기 위해 사용됨
✅ 2. IBM 1401과 GM-NAA I/O System
- 제너럴 모터스(General Motors)가 IBM 1401을 기반으로 개발한 초기 운영체제
- 자동차 생산 관련 데이터를 처리하기 위해 배치 처리 시스템을 사용
✅ 3. OS/360 (IBM System/360 운영체제)
- 1960년대에 등장한 IBM의 메인프레임 운영체제
- 배치 처리 시스템과 다중 작업을 결합한 초기 운영체제의 발전된 형태
5️⃣ 배치 처리 시스템에서 다중 프로그래밍 시스템으로 발전
배치 처리 시스템은 CPU의 활용도를 높이고, 반복적인 작업을 자동화하는 데 기여했지만, 실시간 처리가 어렵다는 단점이 있었습니다.
이후 컴퓨터 기술이 발전하면서 다중 프로그래밍 시스템(Multiprogramming Systems)이 등장하였으며, 이는 현대 운영체제의 기초가 되었습니다.
배치 처리 시스템에서 다중 프로그래밍 운영체제로 발전하는 과정은 다음과 같습니다.
- 단순한 일괄 처리(Batch Processing) → 다중 프로그래밍(Multiprogramming)
- 배치 처리 시스템에서는 하나의 작업이 끝난 후 다음 작업이 실행되었지만,
- 다중 프로그래밍 시스템에서는 여러 개의 작업을 동시에 메모리에 적재하여 CPU를 효율적으로 활용
- 실시간 처리(Real-Time Processing)와 대화형 시스템(Interactive Systems) 도입
- 사용자가 즉시 응답을 받을 수 있는 방식으로 발전 (예: 터미널 기반 명령어 입력)
- 시분할 시스템(Time-Sharing System)으로 발전
- 여러 사용자가 동시에 컴퓨터를 사용할 수 있도록, CPU 시간을 일정 간격(Time Slice)으로 나누어 할당
📌 결론: 배치 처리 시스템은 현대 운영체제의 기초를 마련한 개념
배치 처리 시스템은 1950년대와 1960년대의 컴퓨터 운영 방식으로, 반복적인 작업을 자동화하고, CPU 활용률을 극대화하는 중요한 개념이었습니다.
비록 단점이 있었지만, 배치 처리 시스템을 통해 멀티태스킹, 실시간 운영체제, 시분할 시스템 등의 개념이 발전할 수 있는 계기가 마련되었습니다.
현대 운영체제에서도 대량 데이터 처리, 서버 관리, 백그라운드 작업 등에서 여전히 배치 처리 방식이 활용되고 있습니다.
예를 들어 데이터베이스 백업, 로그 분석, 자동화된 소프트웨어 빌드 과정 등은 배치 시스템의 개념을 활용한 것입니다.