운영체제
멀티 프로그래밍
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)
- 여러 명의 사용자가 하나의 컴퓨터의 하드웨어 자원을 공유.
- 예: 서버 컴퓨터.
- 대표 운영체제: 윈도우 서버, 리눅스 운영체제.
- 예시 애플리케이션: 수강신청 서버, 이메일 서버 등.