큐 (Queue)
- 대기 행렬
- 동작 원리 : FIFO (First In First Out. 선입선출)
큐가 사용되는 곳
- CPU 처리를 기라리고 있는 프로세스/스레드 행렬
- 하드디스크 등의 저장소 읽기 처리를 기다리고 있는 I/O 요구 행렬
- 네트워크 접속 성립을 기다리고 있는 접속 요구 행렬
런큐 (Run-queue)
- CPU를 기다리고 있는 프로세스 행렬
- (런큐에 쌓인 프로세스 수) ÷ (코어 수) = 1 : 문제 없음
- CPU에서 처리중인 프로세스를 런큐로 인식할지는 OS 종류마다 다름
- 런큐 관리 (행렬 정리) : OS 커널의 프로세스 스케줄러 기능
CPU 처리를 기다리는 프로세스/스레드 수 확인 방법
- 유닉스 계열 OS : vmstat의 r열
- 윈도우즈 : 성능 모니터의 Processor Queue Length
- ex) if r=10, 2코어 1CPU
⇒ 1코어당 5개의 프로세스/스레드가 대기중인 상태
⇒ 처리 지연 가능성 有
큐를 사용하면 좋은 경우
- 순서대로 처리하고 싶은 경우
- 행렬이 생기는 경우
- 복수의 처리가 동시에 진행되는 부분 (ex. CPU, 저장소 등)
메시지 큐 사용 장점
1) 애플리케이션 간 상호 운용성↑ → 시스템 전체 안정성↑ (어딘가 멈춤 ≠ 시스템 전체 멈춤)
2) '대기 시간' 절약이나 버퍼링용 리소스 절약 등에 의해 성능↑ (ex. 이메일)
출처 : 야마자키 야스시 외 3, 「그림으로 공부하는 IT 인프라 구조」, 제이펍