CPU 버스트 또는 I/O 버스트

CPU 버스트 또는 I/O 버스트

현재 실행 중인 프로세스가 I/O 버스트에 직면하면 사용 가능한 다음 프로세스가 CPU 버스트를 얻거나 첫 번째 프로세스 실행을 계속하기 위해 첫 번째 프로세스의 I/O 버스트가 완료될 때까지 프로세서가 기다리게 됩니다.

또한 알고리즘이 선점형인지 비선점형인지에 따라 영향을 받나요?

감사해요!

답변1

요컨대 그렇습니다. CPU 바인딩된 작업이 I/O 제한을 받게 되면 OS는 더 많은 CPU 작업을 수행할 준비가 될 때까지 작업 일정을 다시 조정합니다. 이는 CPU가 수행할 작업이 있는 다른 프로세스가 대신 CPU에서 시간을 얻는다는 의미입니다.

더 긴 답변을 드리자면, 이러한 특정 용어를 처음 접한 것은 이번이 처음이었습니다. 이를 언급하는 페이지는 몇 개밖에 찾을 수 없었으며 이는 물리적 CPU나 운영 체제 기능보다는 최적화 전략인 것으로 보입니다. 이는 프로세스 간에 공유될 수 있는 운영 체제나 CPU의 "버스트 단계"가 아니며, 프로세스가 하나의 도메인 또는 다른 도메인에서 수행할 작업이 있을 때 단순히 프로세스가 "버스트"되는 것입니다. 한 가지 작업을 다른 작업보다 더 많이 수행하도록 워크플로를 최적화하고 다른 작업을 위해 작업을 저장함으로써 작업의 "폭주"를 더욱 효과적으로 만들 수 있습니다.

따라서 운영 체제가 선점형인지 비선점형인지는 중요하지 않습니다. 프로세스가 대기 중이거나 실행할 준비가 되었다는 사실만 알고 이에 따라 일정을 예약합니다. 프로세스가 계산을 수행하다가 갑자기 파일을 읽으려고 시도하면 프로세스가 중단되고 데이터를 사용할 수 있을 때 다시 예약됩니다.

이러한 "버스트"가 관련된 유일한 이유는 운영 체제 예약 시간 조각을 효과적으로 사용하고 있는지 확인하는 것입니다. CPU 바인딩된 작업에 많은 I/O가 산재해 있으면 해당 I/O 작업을 기다리는 예정된 시간의 일부가 지연되고 잠재적으로 손실될 수 있습니다. I/O를 "버스트"로 일괄 처리하면 프로세스가 CPU에서 시간을 더 잘 활용하고 전체 시간 조각을 얻습니다.

관련 정보