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 |