운영체제 | 스케줄링

Faithful Dev·2025년 1월 25일

컴퓨터 공학

목록 보기
21/81

시분할 시스템 (Time-Sharing System)

정의

  • 시분할 시스템은 CPU의 시간을 분할하여 여러 사용자 또는 프로세스가 동시에 시스템을 사용하는 것처럼 보이도록 하는 운영체제 기술이다.
  • 각 사용자나 프로세스는 짧은 시간 동안 CPU를 사용하며, 빠르게 전환되므로 동시에 실행되는 것처럼 보인다.

특징

  • 빠른 전환: CPU는 여러 프로세스 간에 빠르게 전환한다.
  • 응답 시간 보장: 사용자 요청에 대한 응답 시간이 짧아 사용자 경험이 향상된다.
  • 공유 자원: 여러 사용자가 동일한 자원(CPU, 메모리 등)을 효율적으로 공유한다.

예시

  • UNIX, Linux 등의 운영체제가 시분할 방식을 사용.
  • 다중 사용자 시스템에서 터미널을 통해 여러 사람이 동시에 작업.

멀티태스킹 (Multitasking)

정의

  • 멀티태스킹은 하나의 CPU에서 여러 작업(Task)을 동시에 실행하는 것처럼 보이게 하는 기술이다.
  • 시분할 시스템의 개념을 확장한 것으로, 단일 사용자가 여러 응용프로그램(프로세스 또는 스레드)을 동시에 실행할 수 있게 한다.

특징

  • 협력적 멀티태스킹: 각 작업이 스스로 CPU를 반환.
  • 선점형 멀티태스킹: 운영체제가 작업 간 전환을 제어(현대 운영체제에서 일반적).

예시

  • 음악을 들으면서 문서 작성(텍스트 편집기)과 인터넷 검색(웹 브라우저)을 동시에 수행.

멀티프로그래밍 (Multiprogramming)

정의

  • 멀티프로그래밍은 하나의 메모리 공간에 여러 프로그램을 로드하여 동시에 실행할 수 있도록 하는 기술이다.
  • CPU가 항상 작업을 수행하도록 하여 자원 사용률을 극대화하는 것이 목표이다.

특징

  • I/O와 CPU 병렬 사용: 한 작업이 I/O 작업을 수행하는 동안 다른 작업이 CPU를 사용할 수 있다.
  • 효율성: 자원의 낭비를 줄이고 시스템 처리량(Throughput)을 증가시킨다.
  • 선점 없음: 초기 멀티프로그래밍 시스템에서는 선점형 스케줄링이 아닌, 프로세스가 CPU를 스스로 반환.

예시

  • 대형 메인프레임 컴퓨터에서 사용되며, 다양한 작업(예: 데이터 입력, 계산)을 동시에 처리.

wait (대기 상태)

정의

  • wait는 프로세스가 특정 조건이나 이벤트가 발생하기를 기다리는 상태 또는 명령어이다.
  • 주로 입출력(I/O) 작업이 완료되거나 특정 신호를 수신할 때까지 프로세스가 대기 상태로 들어간다.

특징

  • CPU는 이 상태의 프로세스를 처리하지 않고, 다른 프로세스에 할당.
  • 대기 상태가 끝나면 프로세스는 준비 상태(Ready)로 전환되어 다시 CPU를 요청.

예시

  • 입출력 작업 완료를 기다리는 상태.
  • 다중 프로세스 환경에서 부모 프로세스가 자식 프로세스 종료를 기다릴 때 사용되는 wait() 시스템 호출.

멀티태스킹과 멀티프로세싱

멀티태스킹(Multitasking)

  • 정의: 단일 CPU에서 여러 작업(프로세스/스레드)을 동시에 수행하는 것처럼 보이게 하는 기술.
  • 특징:
    • CPU 시간 분할을 통해 다수의 작업을 처리.
    • 단일 CPU 환경에서 실행.

멀티프로세싱 (Multiprocessing)

  • 정의: 여러 개의 CPU 또는 코어를 사용하여 다수의 작업을 병렬로 처리하는 기술.
  • 특징:
    • 진정한 병렬성: 여러 CPU가 동시에 독립적으로 작업을 수행.
    • 하나의 작업을 여러 CPU가 나누어 처리하거나, 여러 작업을 각각 다른 CPU가 처리.
    • SMP(대칭 멀티프로세싱)와 AMP(비대칭 멀티프로세싱)가 존재.

비교

특성멀티태스킹멀티프로세싱
CPU 수단일 CPU여러 CPU 또는 코어
병렬 처리시분할 방식(동시성이지만 병렬은 아님)진정한 병렬 처리 가능
복잡성상대적으로 간단하드웨어 및 소프트웨어 복잡도 증가
사용 사례데스크톱 OS(Windows, Linux, macOS 등)서버, 고성능 컴퓨팅(HPC), 데이터 센터

정리

  • 시분할 시스템: CPU 시간을 분할하여 여러 작업이 동시에 실행되는 것처럼 보이게 함.
  • 멀티태스킹: 단일 CPU에서 여러 작업을 동시에 실행.
  • 멀티프로그래밍: 여러 프로그램을 메모리에 로드하여 CPU 자원을 효율적으로 활용.
  • wait: 특정 작업이나 이벤트를 기다리는 프로세스의 상태.
  • 멀티태스킹 vs. 멀티프로세싱: 전자는 단일 CPU를 기반으로 한 동시성, 후자는 여러 CPU를 이용한 병렬 처리.
profile
Turning Vision into Reality.

0개의 댓글