입력 큐
Input queue컴퓨터 과학에서 입력 큐는 프로그램을 실행하기 위해 메모리로 가져오기를 기다리는 스토리지 내의 프로세스 집합입니다.입력 큐는 주로 프로세스 간에 리소스를 분배하는 기술인 운영 체제 스케줄링에서 사용됩니다.입력 큐는 운영체제(OS)에만 적용되는 것이 아니라 네트워킹 디바이스 내부의 스케줄링에도 적용할 수 있습니다.스케줄링의 목적은 리소스가 공정하고 효과적으로 분배되도록 하는 것입니다.따라서 시스템의 성능을 향상시킵니다.
기본적으로 큐는 후면 위치에 데이터가 추가되고 전면 위치에서 제거되는 집합입니다.큐에는 여러 가지 유형이 있으며 동작방식은 완전히 다를 수 있습니다.
운영체제는 선착순 큐, 최단 남은 시간, 고정 우선 우선 우선 스케줄링, 라운드 로빈 스케줄링 및 멀티 레벨 큐스케줄링을 사용합니다.
네트워크 디바이스는 First-In-First-Out 큐, Weighted Fair-Out 큐, Priority 큐 및 Custom 큐를 사용합니다.
운영 체제
운영체제에서는 프로세스가 메모리에 로드되어 중앙처리장치(CPU)에 의해 실행될 차례를 기다립니다.CPU 스케줄링은 프로세스 상태를 관리하고 입력 큐를 사용하여 프로세스의 다음 실행 시기를 결정합니다.
선착순
선착순, 선착순 프로세스가 큐에서 순차적으로 꺼내지고 큐에 들어갑니다.이 방법에서는 모든 공정을 동등하게 취급합니다.priority가 다른2개의 프로세스가 있고 priority가 낮은 프로세스가 먼저 큐에 들어가면 우선 프로세스가 실행됩니다.프로세스마다 우선순위가 다를 경우, 특히 프로세스가 장시간 실행되는 경우 이 접근방식은 이상적이지 않을 수 있습니다.
최단 남은 시간
최단 남은 시간 방식은 개발의 처리 시간을 예측하여 가장 작은 처리 시간부터 가장 큰 처리 시간까지 큐에 넣습니다.이 방법은 이전 이력 기록을 바탕으로 추정 및 예측합니다.전반적으로 성능은 안정적이지 않지만 선착순보다 공정 대기 시간이 개선됩니다.
고정 우선 순위 사전 스케줄링
고정 priority 프리엠프티브스케줄링 방식은 처리시간에 따라 프로세스에 다른 priority를 할당하고 priority 순으로 큐에 배치합니다.CPU 서버 프로세스는 우선순위가 높은 프로세스에서 낮은 프로세스로, 우선순위가 같은 프로세스는 선착순으로 처리됩니다.큐에 priority가 높은 프로세스가 들어오면 CPU는 일시적으로 priority가 낮은 프로세스의 처리를 정지합니다.
라운드 로빈 스케줄링
라운드 로빈 스케줄링 방식은 각 프로세스에 동일한 시간을 부여하고 프로세스를 순환합니다.이 방법은 각 프로세스에 많은 시간이 소요됩니다.너무 짧은 시간은 프로세스를 단편화하고 너무 긴 시간은 각 프로세스가 실행될 때까지 대기하는 시간을 증가시킵니다.적절한 시간을 많이 선택하는 것이 이 방법의 기초가 됩니다.
다단계 큐 스케줄링
멀티레벨 큐스케줄링 방식에는 많은 큐가 사용되며 각 큐에는 독자적인 스케줄링 알고리즘이 있습니다.멀티레벨 큐스케줄링은 다른 방법에 비해 복잡하지만 복잡한 상황에서 OS가 다른 데이터를 처리할 수 있는 유연성을 제공합니다.
네트워킹
네트워킹에서 패킷은 스케줄링의 주요 기반입니다.네트워크 코어를 매일 이동하는 패킷의 종류는 다양하지만, 취급은 전혀 다릅니다.예를 들어, 음성 및 비디오 패킷은 일반 패킷보다 높은 priority를 가집니다.패킷을 효과적으로 관리 및 배포하기 위해 네트워크 디바이스는 입력 큐를 사용하여 어떤 패킷이 먼저 전송되는지 결정합니다.
선입선출 큐(FIFO)
이 모드에서는 패킷이 큐에서 착신하는 순서대로 큐에서 꺼집니다.모든 패킷은 같은 priority로 취급됩니다.큰 패킷 A가 작은 패킷B보다 먼저 오는 경우에도 B는 A가 완전히 처리될 때까지 기다려야 합니다.시스템이 모든 패킷을 동일하게 취급하는 경우, 음성 패킷등의 전송에 지연이 발생할 가능성이 있습니다.
Weighted Fair Queue(WFQ; 가중치 균등화 큐)
가중치 균등화 큐는 min-max-fair-share 알고리즘을 사용하여 패킷을 배포합니다.min fair-share는 네트워크 OS가 각 패킷유형에 대해 최소한의 자원을 균등하게 분배하는 것을 의미합니다.max fair-share는 네트워크 OS가 그 시점에서 대량의 날짜를 전송해야 하는 패킷에 더 많은 리소스를 제공하지만 전송 후 리소스를 다시 가져간다는 것을 의미합니다."무게 부여"는 스케줄러가 각 패킷 유형에 무게를 할당하는 것을 의미합니다.무게에 따라 패킷을 큐에 넣고 처리하는 방법이 결정됩니다.통상, 각 패킷은, 각 패킷의 IP 헤더로부터의 IP Precedence 필드에 근거해 가중치가 부여됩니다.
- 균등 할당 =(리소스 용량 - 이미 할당된 리소스)/패킷 수
priority 큐(PQ)
priority 큐는 priority가 다른4개의 서브큐로 분할됩니다.각 큐의 데이터는 priority가 높은 큐가 비어 있을 때만 처리됩니다.네트워크 OS가 우선순위가 낮은 큐의 데이터를 전송하는 동안 데이터가 우선순위가 높은 빈 큐에 들어오면 네트워크 OS는 우선순위가 낮은 큐의 데이터를 보유하고 우선 우선순위가 높은 큐의 데이터를 처리합니다.네트워크 OS는 우선순위가 낮은 큐가 다음 큐로 이동하기 전에 항상 우선순위가 높은 큐에서 우선순위가 낮은 큐로 큐를 먼저 완료하기 때문에 큐의 순서를 기다리는 시간은 고려하지 않습니다.각 큐 내에서 패킷은 First-In-First-Out 기준으로 전송됩니다.
커스텀 큐(CQ)
커스텀 큐는 17개의 다른 서브큐로 분할됩니다.첫 번째 큐(queue 0)는 네트워크 OS가 시스템패킷을 송신하기 위해서 예약되어 있습니다.다른 16개의 큐는 사용자 정의 패킷용으로 예약되어 있습니다.사용자는 다양한 중요 패킷을 정의하고 각 큐에 할당할 수 있습니다.각 큐의 크기는 제한되어 있으며, 이 제한에 도달하면 모든 착신 패킷이 폐기됩니다.각 큐는 각 큐에서 처리되는 패킷의 양에 따라 처리됩니다.이 제한이 충족되면 네트워크 OS는 현재 큐의 패킷을 보유하고 해당 큐가 비어 있거나 패킷 제한에 도달할 때까지 다음 큐를 처리합니다.1개의 큐가 비어 있는 경우 네트워크 OS는 해당 큐를 건너뛰고 다음 큐를 처리합니다.
「 」를 참조해 주세요.
레퍼런스
- Stallings, William (2003). CCIE Practical Studies Volume II. Cisco Press. ISBN 1-58705-072-2.
- 운영 체제 스케줄링
- 운영체제 - 스케줄링
- OS 스케줄링 및 버퍼링