1. RAM에서 데이터를 LOAD
2. 가져온 데이터를 가공/연산해서 RAM에 ADD/STORE
1. CPU가 File을 읽음(정확히는 CPU가 읽어오는건 아님 별도의 Device가 처리)
2. I/O가 발생하면서 Waiting함
- 프로세스는 CPU 명령어를 수행하다가 I/O를 만나면 대기하고 I/O 작업이 완료되면 다시 CPU작업을 수행
- 특정한 Task가 완료될 때 까지 이를 계속 반복
- 한 작업을 짧은 시간동안 집중적으로 연속해서 처리하거나 실행하는 것
- CPU를 연속적으로 사용하면서 명령어를 실행하는 구간
- 프로세스가 CPU 명령어를 실행하는데 소비하는 시간
- 프로세스의 Running 상태를 처리
- 연속적으로 I/O를 실행하는 구간으로 I/O 작업이 수행되는 동안 대기하는 구간
- 프로세스가 I/O 요청 완료를 기다리는데 걸리는 시간
- 프로세스의 Waiting 상태를 처리
LOAD/STORE I/O LOAD/STORE I/O LOAD/STORE I/O LOAD/STORE I/O
==================================================================================
CPU Burst I/O Burst CPU Burst I/O Burst CPU Burst I/O Burst CPU Burst I/O Burst
프로세스 마다 CPU Burst와 I/O Burst가 차지하는 비율은 균일하지 않음
이 비율을 기준으로 CPU Bound Process와 I/O Bound Process로 나눌 수 있음
- CPU Burst 작업이 많은 프로세스 I/O BUrst가 거의 없는 경우에 해당
- 동영상 편집, 머신러닝, 블록체인 등 CPU 연산 위주의 작업을 하는 경우에 해당
- 멀티 코어의 병렬성(Parallelism)을 최대한 활용해서 처리 성능을 극대화 하도록 스레드를 운용
- 일반적으로 CPU 코어수와 스레드 수의 비율을 비슷하게 설정
- I/O Burst가 빈번하게 발생하는 프로세스로서 CPU Burst가 매우 짦음
- 키보드, 파일, DB, 네트워크 등 외부 연결이나 입출력 장치와의 통신 작업이 많은 경우에 해당
- CPU 코어가 많을 경우 멀티 스레드의 동시성(Concurrent)을 최대한 활용하여 CPU가 Idle 상태가 되지 않도록 하고 최적화 된 스레드 수를 운영해서 CPU의 효율적인 사용을 극대화
사용자모드 & 커널모드 (0) | 2023.12.31 |
---|---|
Context Switch (1) | 2023.12.29 |
Concurrent & Parallelism (동시성, 병렬성) (0) | 2023.12.27 |
Process & Thread (1) | 2023.12.27 |
REST API에 Under_Score(_)? Hyphen(-)? (0) | 2023.05.18 |