시간 공유 기법

낚시하는 곰·2025년 4월 1일

krafton jungle

목록 보기
31/52

1960년대 초반의 시간 공유(time-sharing) 기법은 운영체제 역사에서 혁신적인 전환점이야. 지금 우리가 쓰는 현대 컴퓨터의 기반이 된 개념이라고 해.


시대 배경

  • 1950~60년대 컴퓨터는 엄청 비쌌고, 한 대의 컴퓨터를 한 번에 한 명만 쓸 수 있었어.
  • 프로그래머는 펀치카드를 들고 가서 작업을 제출하고, 한참 기다려야 결과를 받아볼 수 있었지.
  • 이걸 **batch processing (일괄 처리)**라고 불러.
    → 효율도 떨어지고, 상호작용도 없었어.

시간 공유(Time-sharing)의 등장

시간 공유 시스템이란
하나의 컴퓨터 자원을 여러 명이 동시에 사용하는 것처럼 만들어주는 운영체제 기법이야.


동작 원리

  1. 운영체제가 여러 사용자(또는 작업)를 관리해.
  2. CPU를 짧은 시간 단위(time slice or quantum)로 잘게 나눠서,
  3. 각 사용자 프로그램을 번갈아가며 실행시켜.
  4. 사용자는 자기 프로그램이 멈췄다가 다시 돌아간 걸 느끼지 못함 → 마치 동시에 돌아가는 것처럼 보여.

Flow Chart로 정리

[ 사용자 1 ]
[ 사용자 2 ]
[ 사용자 3 ]
     ↓
[ 운영체제: 시간 공유 스케줄러 ]
     ↓       ↓       ↓
[ 사용자 1의 코드 실행 - 50ms ]
[ 사용자 2의 코드 실행 - 50ms ]
[ 사용자 3의 코드 실행 - 50ms ]
     ↓       ↓       ↓
[ 다시 사용자 1로 돌아감 ] → 반복

이건 앞서 말한 동시성(concurrency)을 구현한 초창기 시스템이야!


시간 공유 기법이 중요한 이유

효과설명
사용자 인터랙션 가능사람들이 키보드로 명령어 입력하고 바로 반응을 볼 수 있게 됨
멀티태스킹 기반여러 프로그램을 동시에 돌리는 운영체제 설계의 시작
다중 사용자 시스템 탄생한 대의 컴퓨터를 여러 명이 사용할 수 있게 됨 (대학, 연구소 등)
현대 OS의 시작점UNIX, Multics 같은 초기 운영체제들이 이 모델 기반으로 개발됨
  • 시간 공유 → 동시성 기법 → 프로세스 스케줄링 → 컨텍스트 스위칭 → 가상 메모리 → 멀티태스킹 OS
  • 이 흐름이 그대로 현대 OS 구조로 이어져.

시간 공유의 도전 과제

문제설명
메모리 보호 문제한 사용자가 다른 사용자의 메모리를 침범할 수 있었음
자원 간섭파일, 장치 등의 자원을 동시에 접근하면 충돌 가능성
시스템 안정성하나의 사용자 프로그램 오류로 전체 시스템 다운 가능
보안여러 사용자가 함께 쓰는 시스템에서 보안이 매우 중요해짐

이로 인해 운영체제는 다음과 같은 기능을 발전시킴:

  • 가상 메모리(Virtual Memory): 사용자마다 독립된 주소 공간 제공
  • 프로세스 격리(Process Isolation): 하나의 프로세스가 다른 프로세스에 접근 못하도록 함
  • 파일 시스템 권한 제어: 사용자마다 접근 권한 부여
  • 커널 모드 vs 사용자 모드: 시스템 자원 보호를 위한 실행 모드 구분
profile
취업 준비생 낚곰입니다!! 반갑습니다!!

0개의 댓글