본문 바로가기

CS

[CS] CPU bound, IO bound

CPU

프로세스의 명령어를 해석하고 실행하는 장치

 

IO(input/output)

파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것

입출력 장치와 데이터를 주거나 받는 것

 

버스트(Burst)

어떤 현상이 짧은 시간 안에 집중적으로 일어나는 일

 

CPU 버스트

  • CPU를 사용하는 구간
  • 프로세스가 CPU에서 한번에 연속적으로 실행되는 시간
  • 즉, 메모리에 올라와 있는 프로세스가 자신의 차례가 되서 CPU에서 실행됬을 때 자신의 명령어들이 CPU에서 연속적으로 실행되는 시간이다.
  • CPU만 연속적으로 쓰면서 연산을 실행
  • 프로세스가 CPU에서 일부 코드를 실행하는 데 소비하는 시간
  • CPU burst는 프로세스의 RUNNING 상태를 처리

I/O 버스트

  • I/O를 실행하는 구간
  • 프로세스가 IO 작업을 요청하고 결과를 기다리는 시간
  • 프로그램의 수행 중, I/O작업이 수행되는 동안 block 되는 구간
  • I/O burst는 프로세스의 대기 상태를 처리

이렇듯 프로세스의 인생은 CPU 버스트와 IO 버스트의 연속이다.

대부분의 프로세스들이 CPU 작업을 수행할 때 길게하지 않고 짧게 끝난다.

 

CPU bound 프로세스

  • CPU 버스트가 많은 프로세스
  • 연산 작업이 많은 프로그램
  • 동영상 편집 프로그램, 머신러닝 프로그램
  • CPU bound 프로그램에서 적절한 스레드 수는 number of CPUs + 1

IO bound 프로세스

  • IO 버스트가 많은 프로세스
  • (일반적인) 백엔드 API 서버
  • 여러 상황에 맞춰서 적절한 스레드 수를 찾아야 한다.

 

 

 

 

 

 

 

 

 

 

'CS' 카테고리의 다른 글

[CS] 동기와 비동기  (0) 2024.12.05
[CS] 인터럽트와 시스템 콜  (1) 2024.12.03
[CS] 동기화 기법  (1) 2024.11.28
[CS] 병행성과 병렬성  (0) 2024.11.06
[CS] PCB와 TCB  (0) 2024.11.06