CPU 버스트란 무엇인가? 개념부터 종류까지 총정리

링크가 복사되었습니다
조회 1

CPU 버스트(CPU burst)는 컴퓨터 과학에서 프로세스가 CPU를 사용하여 작업을 수행하는 연속적인 시간을 의미합니다. CPU 버스트는 프로세스 실행의 기본적인 구성 요소이며, CPU가 특정 작업을 완료하기 위해 필요한 시간 간격을 나타냅니다. 이러한 CPU 버스트의 특성은 운영체제의 스케줄링 알고리즘 설계에 중요한 영향을 미칩니다. 프로세스는 CPU 버스트와 I/O 버스트(입출력 작업 대기 시간)를 번갈아 가며 실행되는 것이 일반적입니다.

CPU 버스트의 특징

CPU 버스트는 일반적으로 짧거나 길 수 있으며, 그 길이는 프로세스의 종류와 수행하는 작업에 따라 달라집니다. 예를 들어, 계산 집약적인 작업은 긴 CPU 버스트를 가질 가능성이 높고, 사용자 입력이나 파일 읽기/쓰기 같은 I/O 중심적인 작업은 짧은 CPU 버스트와 긴 I/O 버스트를 번갈아 가며 가집니다. 운영체제는 이러한 CPU 버스트의 길이를 예측하여 효율적인 CPU 스케줄링을 수행하려고 노력합니다. 짧은 CPU 버스트를 가진 프로세스를 먼저 처리하는 '선점형 스케줄링' 방식은 시스템의 응답성을 높이는 데 기여할 수 있습니다.

CPU 버스트의 종류

CPU 버스트는 크게 두 가지 종류로 나눌 수 있습니다. 첫째, '대화형 버스트(Interactive Burst)'는 사용자 입력과 같은 짧고 빈번한 CPU 사용을 특징으로 합니다. 웹 브라우징, 문서 편집 등 사용자와 직접 상호작용하는 프로그램들이 이러한 버스트를 많이 가집니다. 둘째, '배치 버스트(Batch Burst)'는 대규모 데이터 처리나 복잡한 계산과 같이 길고 연속적인 CPU 사용을 특징으로 합니다. 과학 계산, 데이터 분석 등 백그라운드에서 실행되는 작업들이 이에 해당합니다.

CPU 버스트와 스케줄링

운영체제의 CPU 스케줄링 알고리즘은 CPU 버스트의 특성을 고려하여 설계됩니다. 예를 들어, '최소 작업 우선(Shortest Job First, SJF)' 스케줄링은 다음 CPU 버스트가 가장 짧을 것으로 예상되는 프로세스를 먼저 실행하여 평균 대기 시간을 줄이는 것을 목표로 합니다. 또한, '라운드 로빈(Round Robin)' 스케줄링은 각 프로세스에게 짧은 시간 할당량(Time Slice)을 주고 순서대로 CPU를 할당하여, 모든 프로세스가 공평하게 CPU를 사용할 수 있도록 합니다. 이는 대화형 버스트를 가진 프로세스들의 응답성을 향상시키는 데 효과적입니다.

CPU 버스트 길이 예측의 중요성

CPU 버스트의 길이를 정확하게 예측하는 것은 시스템 성능 최적화에 매우 중요합니다. 예측이 정확하면 운영체제는 CPU 자원을 보다 효율적으로 배분할 수 있습니다. 예를 들어, 짧은 CPU 버스트를 예상하고 프로세스를 빨리 종료시키면 다른 프로세스에게 CPU를 더 빨리 넘겨줄 수 있어 전체적인 처리량이 향상됩니다. 반대로, 긴 CPU 버스트를 예상하고 프로세스를 오래 실행시키면 다른 준비된 프로세스들이 CPU를 기다리느라 불필요한 지연이 발생할 수 있습니다. 이를 위해 운영체제는 과거 실행 기록을 바탕으로 다음 CPU 버스트 길이를 통계적으로 예측하는 기법을 사용하기도 합니다.

CPU 버스트와 I/O 버스트의 상호작용

프로세스는 CPU를 사용하는 CPU 버스트와 입출력 장치를 기다리는 I/O 버스트를 반복합니다. CPU 버스트가 끝나면 프로세스는 보통 I/O 작업을 요청하고 I/O 버스트 상태로 전환됩니다. I/O 작업이 완료되면 다시 CPU를 사용할 수 있는 준비 상태(Ready State)로 돌아와 다음 CPU 버스트를 기다립니다. 이러한 CPU 버스트와 I/O 버스트의 전환은 프로세스 생명 주기의 자연스러운 과정이며, 운영체제는 이 전환을 효율적으로 관리하여 시스템의 전반적인 성능을 극대화합니다. CPU가 유휴 상태로 있는 시간을 최소화하고, 프로세스들이 CPU와 I/O 장치를 최대한 활용하도록 스케줄링하는 것이 핵심입니다.

이 글이 도움이 되셨나요?← 홈으로