CPU bound, IO bound

지식저장공간·2023년 2월 20일
0

운영체제

목록 보기
4/15

CPU bound, IO bound

CPU : 중앙처리장치, 프로세스의 명령어를 해석하고 실행하는 장치

I/O(Input/Output) : 파일을 읽고 쓰거나, 네트워크 이단가와 데이터를 주고 받는것, 입출력 장치와 데이터를 주고 받는것

버스트(Burst) : 어떤 현상이 짧은 시간안에 집중적으로 일어나는일

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

IO 버스트 : 프로세스가 IO 작업을 요청하고 결과를 기다리는 시간

프로세스는 CPU 버스트와 IO버스트의 반복
CPU에서 연속적으로 실행되다가 IO 작업 시 IO 버스트, IO 작업 종료 시 CPU 버스트

대부분의 프로세스는 0~8 milliseconds사이의 CPU 버스트를 가진다.

CPU bound

CPU bound process

IO burst가 적고 CPU busrt가 많은 프로세스
예) 동영상 편집 프로그램, 머신러닝, 딥러닝 프로그램

IO bound

IO bound process

IO burst가 많은 프로세스
예) (일반적인)백엔드 API 서버(HTTP request - DB or Memory - HTTP response)

퀴즈

내 생각) 1개 why? CPU bound 프로그램은 CPU 사용시간이 길기 때문에 하나의 스레드만을 사용하여 core를 1:1로 사용하게 한 후 나머지 core는 다른 프로세스를 처리하도록 한다.

Goetz씨 가 발표한 논문 CPU bound 프로그램에서 적절한 스레드 수는 CPU의 수(core의 수) +1개 즉, 듀얼코어이면 스레드 3개로 프로그램을 구현한다.

예시)

  1. 듀얼 코어에서 스레드가 4개인 프로세스 작업

코어 한개당 스레드 2개를 담당하여 처리, 하지만 스레드1과 2는 동시에 처리되는게 아닌 스레드1의 timeslice 후 스레드2가 처리된다. 스레드1과 스레드2 처리 중간에 스레드 컨텍스트 스위칭이 발생한다.

  1. 듀얼 코어에서 스레드가 2개인 프로세스 작업

컨텍스트 스위칭이 발생하지 않아서 오버헤드, 불필요한 비용이 발생하지 않는다.


★백엔드 개발자가 개발하는 서버는 IO Bound 프로세스!!!

고려 대상 :
1. 하드웨어 스펙
2. 애플리케이션의 IO burst
3. 예상되는 트래픽 및 패턴

출처 : 쉬운코드 유튜브

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글