https://youtu.be/qnVKEwjG_gM?si=1ZZhH-It9rEgZvDF
CPU(Central Processing Unit) : 프로세스의 명령어를 해석하고 실행하는 장치
버스트(Burst) : 어떤 현상이 짧은 시간 안에 집중적으로 일어나는 일
CPU 버스트 : 프로세스가 CPI에서 한 번에 연속적으로 실행되는 시간
IO 버스트 : 프로세스가 IO 작업을 요청하고 결과를 기다리는 시간
프로세스의 인생은 CPU 버스트와 IO 버스트의 연속
CPU bound 프로세스 : CPU burst가 많은 프로세스(예 : 동영상 편집 프로그램, 머신러닝 프로그램)
IO bound 프로세스 : IO burst가 많은 프로세스(예 : (일반적인) 백엔드 API 서버)
CPU bound 프로그램에서 적절한 스레드 수는 number of CPUs + 1
- 컨텍스트 스위칭은 불필요한 오버헤드이므로
IO bound 프로그램은 스레드 몇 개가 적절할까? => 여러 상황에 맞춰서 적절한 스레드 수를 찾아야...