CPU bound, I/O bound

Jinhoon Yoon·2023년 8월 30일
0

운영체제

목록 보기
3/5

프로세스는 특성에 따라 CPU bound나 I/O bound로 구분된다.
각각 프로그램의 스레드 개수를 어떻게 정해야 하는지 다르다.


용어

CPU (Central Processing Unit)

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

I/O (Input/Output)

  • 파일을 읽고 쓰는 것
  • 네트워크의 어딘가와 데이터를 주고 받는 것
  • 입출력 장치와 데이터를 주고 받는 것

버스트(Burst)

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

CPU 버스트

  • 프로세스가 CPU에서 한번에 연속적으로 실행되는 시간

I/O 버스트

  • 프로세스가 I/O 작업을 요청하고 결과를 기다리는 시간

프로세스의 인생은, CPU 버스트와 I/O 버스트의 연속


CPU bound 프로세스

  • CPU burst가 많은 프로세스
    - ex1) 동영상 편집 프로그램
    - ex2) 머신러닝 프로그램 (I/O 작업이 적고, 연산 작업이 많음)
  • 적절한 스레드 수
    - (CPU 수 + 1)

I/O bound 프로세스

  • I/O burst가 많은 프로세스
    - ex1) [일반적인] 백엔드 API 서버

    HTTP 요청
    -> DB 서버 or 캐시 서버에 데이터를 요청
    -> 요청한 데이터를 가공
    -> HTTP 응답

  • 적절한 스레드 수
    - 컴퓨터 스펙, 프로그램의 특성 등등 상황을 고려해서 찾아야함

0개의 댓글