운영체제

멀티 프로그래밍

Tae4an 2024. 4. 20. 18:11

멀티 프로그래밍의 정의

정의:

  • 메모리에 한 개 이상의 사용자 프로그램(작업)이 존재/적재되어 있는 상태.
  • 여러 사용자 프로그램이 메모리에 동시에 존재하며 CPU가 한 작업을 수행하는 동안 다른 작업은 대기하며 순서를 기다림.

내용:

  • 메모리 관리 기법이 복잡해짐.
  • '작업 풀(Job Pool)' 개념이 강화됨, 이는 시스템이 더 많은 작업을 관리하고 효율적으로 자원을 할당하기 위해 사용됨.
  • 디스크 I/O 작업을 줄임으로써, 스풀링을 통해 하나의 작업이 CPU를 사용하는 동안 다른 작업을 메모리로 적재하여 CPU의 유휴 시간을 최소화함.
  • 결과적으로 시스템의 처리량과 효율성이 향상됨.

 

멀티 프로그래밍의 목적

  • CPU 쉬는 시간(CPU idle time) 감소
    • CPU가 놀지 않고 지속적으로 작업을 처리하여 자원 활용도 증가.
  • 작업 전환 시간(job transition time) 감소
    • 작업 사이 전환 시 발생하는 시간을 최소화하여 시스템 효율성 향상.
  • CPU와 I/O 장치 사이 시간 차 감소
    • CPU와 I/O 장치 간 속도 차를 줄여 더욱 빠른 데이터 처리 및 반응속도 향상.

 

멀티 프로그래밍의 문제점

  • 프로그램 내부에서 I/O를 요청하면 CPU idle(쉬는 시간)이 발생한다.

 

단일 사용자와 다중 사용자

  • 단일 사용자 (Single User)
    • 한 명의 사용자가 모든 하드웨어 자원을 사용.
    • 예: 개인용 컴퓨터, 노트북.
    • 대표 운영체제: 윈도우 운영체제.
  • 다중 사용자 (Multi User)
    • 여러 명의 사용자가 하나의 컴퓨터의 하드웨어 자원을 공유.
    • 예: 서버 컴퓨터.
    • 대표 운영체제: 윈도우 서버, 리눅스 운영체제.
    • 예시 애플리케이션: 수강신청 서버, 이메일 서버 등.