큐(Queue)

주영·2023년 9월 5일
0

IT Infra

목록 보기
13/16
post-thumbnail

큐 (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 인프라 구조」, 제이펍

0개의 댓글