KR20050020942A - 연속 매체 우선순위 인식 저장장치 스케줄러 - Google Patents

연속 매체 우선순위 인식 저장장치 스케줄러 Download PDF

Info

Publication number
KR20050020942A
KR20050020942A KR1020040063845A KR20040063845A KR20050020942A KR 20050020942 A KR20050020942 A KR 20050020942A KR 1020040063845 A KR1020040063845 A KR 1020040063845A KR 20040063845 A KR20040063845 A KR 20040063845A KR 20050020942 A KR20050020942 A KR 20050020942A
Authority
KR
South Korea
Prior art keywords
requests
queue
periodic
disk
scheduling
Prior art date
Application number
KR1020040063845A
Other languages
English (en)
Other versions
KR101086514B1 (ko
Inventor
헨델매튜디.
시드하르타
리우제인윈-쉬
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050020942A publication Critical patent/KR20050020942A/ko
Application granted granted Critical
Publication of KR101086514B1 publication Critical patent/KR101086514B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 예측가능하고 효율적인 방법으로 컴퓨터 저장 매체에 대한 I/O 액세스를 용이하게 하기 위한 시스템 및 방법에 관한 것이다. 데이타 액세스 요건들의 변화하는 레벨들을 고려하여 디스크 I/O에 대한 성능을 보증하기 위해 상이한 레벨들을 제공하는 문제점을 완화시키는 스케줄링 시스템이 제공된다. 일 양상에 있어서, 스케줄링 시스템은 높은 성능의 I/O 갱신들을 제공하는 알고리즘 또는 컴포넌트를 포함하는 한편, 제한된 또는 결정된 방식으로 디스크에 대한 높은 처리율을 유지한다. 이것은 I/O 액세스 시간과 대기시간을 고려하는 것과 데이타 스케줄링 요건들을 고려하는 것을 동적으로 균형맞추는 것에 의해 달성된다. 또한, 시스템은 멀티미디어 애플리케이션들에 대한 대기시간 경계를 제공하고 그외의 애플리케이션들에 대한 액세스를 관리한다.

Description

연속 매체 우선순위 인식 저장장치 스케줄러{CONTINUOUS MEDIA PRIORITY AWARE STORAGE SCHEDULER}
이 출원은 제목이 "CONTINUOUS MEDIA PRIORITY AWARE STORAGE SCHEDULER"로서, 2003년 8월 20일자로 출원된 미국 가출원 일련 번호 60,496,529를 우선권으로 주장한다.
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 보다 구체적으로는 효율적이고 제한된(bounded) 방식으로, 디스크에 대한 데이타 요청들을 스케줄링하는 것을 용이하게 하는 시스템 및 방법에 관한 것이다.
드라이브 헤드 탐색에 의해 야기된 성능 패널티를 감소시키기 위해, 오퍼레이팅 시스템 소프트웨어(및 드라이브 펌웨어)는 전통적으로 I/O 패킷들을 재순서화(reorder)하여 탐색 시간을 최소화한다. 디스크 드라이브에 대한 공정한 액세스(fair access)를 계속 유지하면서, 긴 탐색 시간을 다루기 위해 많은 연구가 이루어져 왔다. 전통적인 디스크 스케줄링 알고리즘은 일반적으로 디스크로 향하는 요청들을 재순서화하여 데이타 처리율을 최대화한다. 많은 오퍼레이팅 시스템들에 의해 구현된 하나의 공통 알고리즘은 C-LOOK 알고리즘이며, 이는 종종 C-SCAN 알고리즘으로서 부정확하게 불린다. C-LOOK 알고리즘은 임의의 수의 요청들을 재순서화하여, 디바이스에 대해 실현될 수 있는 최고의 처리율을 달성한다. 그러나, 이러한 유형의 재순서화에 있어, C-LOOK 알고리즘은 요청이 시작된 시간과 요청이 결국 완료된 시간 사이에 큰 대기시간(latency)을 야기할 수 있다.
상술한 바와 같이, 구현된 가장 일반적인 알고리즘은 C-LOOK 알고리즘이며, 이 알고리즘은, 입력/출력 동작들(I/O들)을 수행하는 디스크를 가로지르는 하나의 방향에서 디스크 헤드가 스위프한 다음, 추가적인 I/O들을 수행하기 위해 디스크의 다른 측 방향으로 디스크 헤드가 복귀하기 위해 순서로 요청들을 순서화한다. 이는 종종 논리적 블럭 어드레스 순서화(ordering) 또는 LBA 순서화로 불린다. 유감스럽게도, 전통적인 디스크 스케줄링 알고리즘들은 단일 FIFO(first-in-first-out) 큐잉에 걸쳐 더 긴 액세스 시간(또는 대기시간)동안, 디스크로의 더 높은 처리율을 트레이드-오프한다. 이는 더 나은 처리율을 제공하지만, I/O 요청들에 대해 잠재적이고 극적으로 더 높은 대기시간이 필요하게 된다. 전통적인 오퍼레이팅 시스템에 있어서는, 이러한 트레이드-오프가 비용적인 면에서 충분히 가치가 있다. 일 예에 있어서, 청각적-시각적 스트리밍 애플리케이션을 지원하는데 필요한 보다 새로운 시스템에 있어서는, 단순히 대기시간을 처리율과 교환하는 것은 수락될 수 없다.
많은 대안적인 디스크-스케줄링 알고리즘들이 구현되어 왔다. 특히, FCFS(first-come-first-serve, 가끔은 FIFO로 불리기도 함) 알고리즘 및 EDF(earliest-deadline-first) 알고리즘은 멀티미디어 애플리케이션에서의 스케줄링을 위해 각각 제안되어 왔다. FCFS 알고리즘은 현재의 큐 길이의 함수로서 I/O을 수행하기 위해 시간을 제한하고, EDF 알고리즘은 더 늦은 데드라인을 갖는 요청 이전에 더 이른 데드라인을 갖는 요청들이 실행되도록 보장한다.
유감스럽게도, FCFS 및 EDF 알고리즘 모두 열악한 I/O 처리율로부터 손해를 입는다. 특수한 목적 및 실-시간 오퍼레이팅 시스템에 있어서, 이러한 디스크의 열악한 사용 효율은 결점이 아닐 수도 있지만, 멀티미디어 애플리케이션들을 호스트하는 일반적 목적의 오퍼레이팅 시스템에 있어서는, 예를 들어, I/O 요청을 수행하기 위한 대기시간을 제한하는 처리율이 상당히 감소하는 것은 일반적으로 수락될 수 없다.
다음은 본 발명의 임의의 양상의 기본적이 이해를 제공하기 위해, 본 발명의 간략화된 요약을 제시한다. 이 요약은 본 발명의 광범위한 개요는 아니다. 이는 본 발명의 주요한 구성 요소들을 식별하는 것이 아니며 또는 본 발명의 범주를 서술하기 위한 것이 아니다. 그것의 유일한 목적은 후술되는 보다 상세한 설명의 전조로서, 간략화된 형태로 본 발명의 임의의 개념을 제시하는 것이다.
본 발명은 효율적이고 시기 적절한 방식으로, 저장 매체에 대한 데이타 요청의 동적 스케줄링을 용이하게 하는 시스템 및 방법에 관한 것이다. 데이타 요청은 디스크 드라이브 또는 기타 유형의 매체와 같은, 저장 매체로의 입력/출력(I/O) 판독 및 기입으로서 처리된다. 스케줄링은 디스크 드라이브의 스캔 당 고정된 수의 요청들을 재순서화하는 아키텍처로 달성되므로, 요청의 대기시간에 대한 고정된 상위 한계를 제공할 수 있고, 여기서, 디스크 드라이브의 각 스캔은 라운드(round)로 불린다. 요청들은 실행할 디스크 드라이브에 대해 효율적인 패턴으로 재순서화되므로, 디스크 드라이브에 대해 높은 처리율이 달성된다. 따라서, 적어도 하나의 스케줄링 컴포넌트를 포함하는 디스크 스케줄링 시스템이 제공된다. 스케줄링 컴포넌트는 라운드 내의 선정된 다수의 요청들을 이용하여, 요청들에 대해 특정한 대기시간의 보장을 제공하는 한편, 디스크 갱신과 관련하여 높은 처리율 레벨을 유지한다.
일 양상에 있어서, I/O의 결정된 카테고리에 따라 I/O 요청을 분류하는 수락 제어기가 제공된다. 예를 들어, 멀티-미디어 애플리케이션과 관련된 I/O는 주기적 I/O으로 분류될 수 있는 반면, 그 외의 I/O는 비주기적인 I/O으로 특징지워질 수 있다. 비주기적인 I/O는 우선 순위에 의해 더 특징지워지는데, 여기서, 임의의 고정된 수의 우선 순위들이 존재한다. 일 실시예에 따른 구현에 있어서, 우선순위들의 수는 32로 제한되지만, 이것은 다른 구현들에서 적당한 값들로 쉽게 변경될 수 있다.
주기적 I/O 요청은, 주기적 I/O 큐로 큐잉될 수 있고, 원한다면, EDF(earliest-deadline-first) 순서로 유지될 수 있다. 비주기적 I/O 요청은 요청의 우선 순위에 기초하여 개별 비주기적 I/O 큐로 큐잉될 수 있는데, 여기서, 비주기적 큐는 예를 들어, FCFS 순서로 유지될 수 있다. 알고리즘의 각 라운드동안, 주기적 큐 및 비주기적 큐로부터의 고정된 수의 요청들은 이동되어 스위프 큐(sweep queue) 상에 놓인다. 스위프 큐는 C-LOOK 순서로 유지된다. 요청들은 C-LOOK 순서로 스위프 큐로부터 이동되어 디스크로 스케줄된다. 구성 요소들은 물리적 드라이브에 C-LOOK 순서로 스케줄되므로, 드라이브로의 높은 성능이 유지된다.
전술한 관련 목적들을 달성하기 위해, 본 발명의 임의의 예시적인 양상들이 이하의 설명 및 첨부된 도면과 관련하여 여기서 설명된다. 이러한 양상들은 본 발명이 실시될 수 있는 다양한 방법을 나타내고, 이들 모두는 본 발명에 의해 커버되도록 의도된다. 본 발명의 그 외의 장점들 및 신규한 특성들은 도면과 관련하여 고려되는 후술되는 본 발명의 상세한 설명으로부터 명백해 질 것이다.
본 발명은 예측가능하고 효율적인 방법으로 컴퓨터 저장 매체에 대한 I/O 액세스를 용이하게 하기 위한 시스템 및 방법에 관한 것이다. 데이타 액세스 요건들의 변화하는 레벨을 고려하여 디스크 I/O에 대한 성능을 보장하기 위해 상이한 레벨들을 제공하는 문제점을 완화시키는 스케줄링 시스템 및 방법이 제공된다. 일 양상에 있어서, 스케줄링 시스템은 시간이 보다 시간-임계적인(time-critical) 애플리케이션에 대해 높은 성능의 I/O 갱신을 촉진하는 알고리즘 또는 컴포넌트를 포함하는 한편, 제한된 또는 결정된 방식으로 디스크에 대한 높은 처리율을 유지한다. 이는 I/O 액세스 시간 및 대기시간(예컨대, 한계들을 I/O 액세스의 범위(limits)에 둠)을 고려하는 것과, 그 외의 데이타 스케줄링 작업(예컨대, I/O 액세스 데이타 작업의 레벨을 중요도의 견지에서 분류함)을 고려하는 것을 균형을 맞춤으로써 달성된다. 또한, 시스템은 멀티미디어 애플리케이션(예컨대, 청각적 및 시각적 스트림과 같은 주기적 데이타를 갖는 시간-임계 애플리케이션들)에 대한 대기시간 경계를 제공하고, 그 외의 애플리케이션(예컨대, 비주기적 데이타와 관련된 보다 낮은 우선 순위의 I/O 작업)에 대한 데이타 액세스를 관리한다.
이러한 애플리케이션에서 사용되는 것으로서, "컴포넌트", "스케줄러", "시스템" 등과 같은 용어는 컴퓨터-관련 엔티티, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 중 어느 하나, 또는 실행중인 소프트웨어를 지칭하기 위한 것이다. 예를 들어, 이에 한정되는 것은 아니지만, 컴포넌트는 프로세서에서 실행중인 프로세스, 프로세서, 오브젝트, 실행가능물, 실행의 스레드, 프로그램, 및/또는 컴퓨터일 수 있다. 예로서, 서버에서 실행중인 애플리케이션과 서버 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행의 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터에 위치될 수 있고, 및/또는 2개 이상의 컴퓨터들 사이에 분산될 수 있다.
처음에 도 1을 참조하면, 본 발명의 양상에 따른 스케줄링 시스템(100)이 도시되어 있다. 저장 매체(120)로/로부터 향하는 하나 이상의 입력/출력(I/O) 데이타 요청들(110)은 하나 이상의 큐의 클래스(140)로의 요청들을 자동적으로 처리하는 카테고라이저(130)에 의해 처리된다. 이러한 큐들(140)은 멀티미디어 스트림들과 같은 주기적 I/O 데이타에 대한 주기적 큐들 및 비주기적 데이타와 같은 기타 유형의 데이타에 대한 하나 이상의 큐들을 포함할 수 있다. 주기적 I/O 스트림들은 예를 들어 멀티미디어 타입의 애플리케이션들과 같이 규칙적인 간격으로 발생되는 스트림들이다. 그외의 I/O 스트림들은 비주기적 I/O 스트림들로 간주된다. 주기적 I/O와 달리, 비주기적 I/O의 도달 속도는 시간에 따라 급하게 변할 수 있다. 비주기적 I/O는 큐들(140)과도 관련되는 상이한 I/O 클래스들로 더욱 분류될 수 있다.
카테고라이저(130)는 고정된 또는 소정의 크기의 큐(170)를 갖는 스케줄러(160)에 의해 처리되는 큐들(140)로 요청들을 전달한다. 스케줄러(160)는 시스템의 전체 대기시간 및 처리율을 제한하는 소정의 타임 슬롯에 따라 매체로 지향되는 데이타의 하나 이상의 라운드들(150)의 형태로 저장 매체(120)에 데이타를 판독 및/또는 기록하기 위해 큐(170)로/로부터 데이타를 전달한다. 라운드당 요청들의 수에 관하여 소정의 크기를 갖는 데이타 요청들의 라운드들(150)을 전달함으로써, 본 발명은 매체로/로부터의 원하는 데이타 처리율 레벨의 관점에서 저장 매체(120)를 액세스하는 전체 대기시간을 동적으로 균형맞춘다.
상술한 바와 같이, 데이타 요청들(110)은 디스크 드라이브들(예를 들어, 하드 디스크, 플로피 디스크)를 포함할 수 있는 저장 매체(120) 또는 그외 타입의 매체(예를 들어, CD, 및 컴퓨터로부터 액세스되도록 스케줄된 임의 유형의 메모리)에 대한 I/O 판독/기록으로서 처리된다. 요청들의 라운드(150) 당 소정의 수의, 서브세트, 또는 세트의 요청들을 서비스함으로써 I/O 요청들의 대기시간을 제한하는 다층 아키텍쳐에 스케줄링이 일반적으로 제공되면서, 저장 매체(120)에 대해 원하는 처리율을 유지한다. 또한, 선택된 작업들에 대한 I/O 스케줄링을 할당하기 위해 소약 양의 I/O 대역폭이 카테고라이저(130) 및/또는 스케줄러(160)에 의해 동적으로 보존될 수 있다. 시스템(100) 내에 도시된 컴포넌트들은 분리되고 로컬 및/또는 원격 컴퓨터 시스템들 상에서 통신할 수 있으며, 및/또는 본 명세서에 기재된 기능을 수행하기 위해 각종 형태로 결합될 수 있음(예를 들어, 이전 카테고라이저와 스케줄러가 결합되어 스케줄링 기능을 형성)을 유의해야 한다.
도 2를 참조하면, 본 발명의 양상에 따른 다층 스케줄링 시스템(200)이 도시되어 있다. 시스템(200)은 알고리즘의 관점으로 설명될 수 있지만, 시스템은 컴포넌트, 컴포넌트들, 하드웨어, 소프트웨어, 및/또는 그들의 결합들로서 구현될 수 있음을 이해해야 한다. 시스템(200)은 사용자 또는 애플리케이션으로부터의 복수의 데이타 요청들(200)을 처리한다. 이 요청들(210)은 주기적 큐(220)(또는 큐들) 및 하나 이상의 기타 큐들(230)로 처리된다. 그 후 큐들(220 및 230)로부터의 요청들은 디스크(250)에 기록되거나 디스크(250)로부터 판독되기 전에 고정된 크기를 갖는 스위프 큐(240)로 전송된다. 상술한 바와 같이, 본 발명은 요청들의 세트의 대기시간을 제한하면서 수용가능한 처리율을 유지한다. 따라서, 시스템(200)은 이러한 고려사항들을 자동적으로 그리고 동적으로 균형맞추는 알고리즘으로서 제공될 수 있다.
시스템(200)은 일반적으로 I/O 스트림들의 2개의 별도 유형들로 구분된다. 주기적 I/O 스트림들은 멀티미디어 타입의 애플리케이션들에 대해 규칙적인 간격들로 발생하는 스트림들이다. 따라서, 주기적 I/O 스트림들은 시스템 자원들에 대하여 체크될 수 있는 특정 성능 파라미터들에 의해 개방된다. 시스템의 능력들을 초과하는 주기적 I/O 스트림을 오픈하려는 시도가 이루어지면, 원한다면, 요청이 중지될 수 있다. 수락 제어 메카니즘(도시되지 않음)은 주기적 I/O의 각 파라미터들을 초과하지 않는 것을 시행한다. 그외의 I/O 스트림들은 비주기적 I/O 스트림들로 간주된다. 주기적 I/O와 달리, 비주기적 I/O에 대한 도달 속도는 시간에 따라 매우 급하게 변할 수 있다.
비주기적 I/O는 상이한 I/O 우선순위 클래스들로 더욱 분류될 수 있다. 이러한 상이한 우선순위들은 컴퓨터 시스템과 같은 시스템 내에서의 상이한 컴포넌트들의 상이한 I/O 필요성을 나타낸다. 예를 들어, 오퍼레이팅 시스템의 메모리 메니저가 페이지된 메모리를 모두 사용하면, 일반적으로 메모리는 가능한 빨리 제한이 없게 되어 애플리케이션들이 계속해서 실행될 수 있도록 보장하는 것이 중요하다. 이러한 구성에서, 메모리 메니저의 I/O 요청들이 사용자 애플리케이션들로부터의 덜 중요한 I/O 요청들 뒤에서 차단되지 않는 것이 바람직하다. 반대로, 백그라운드 작업들은 그들의 기능들을 실현하기 위해 I/O를 수행할 필요가 종종 있다. 이러한 백그라운드 작업들이 많은 양의 I/O를 발생하면, 적은 I/O를 발생하는 포그라운드 작업들의 성능에 영향을 주기가 쉽다. 일반적으로, 시스템(200)은 이하 7개의 우선순위 클래스들(약 7개가 채용될 수 있음): 임계, 높음, 상호작용, 표준, 백그라운드, 낮음, 유휴상태(idle))을 지원한다. 일반적으로 보다 높은 우선순위 클래스로부터의 I/O는 보다 낮은 우선순위 클래스로부터의 I/O 전에 처리되는 것이 바람직하다.
시스템(200)은 상술한 목표를 달성하기 위해 일반적으로 4가지 기술(그 이상 또는 그 이하일 수 있음)을 적용한다. 예를 들어, 상이한 요청 큐들 내에 상이한 유형들의 요청들을 보유하는 2레벨 큐잉 메카니즘이 제공될 수 있다. 클래스-특정 요청 큐들(230)은 상이한 요청 클래스들에 대해 클래스 레벨 스케줄링을 수행한다. 일 구현에 있어서, 예를 들어 8개의 클래스-특정 큐들이 제공될 수 있다. 주기적 요청들은 주기적 큐(220) 내에 보유되고 일반적으로 EDF 순서로 유지되는 반면, 비주기적 요청들은 일반적으로 FIFO 순서로 유지된다. 이러한 순서는 많은 양의 비주기적 요청들보다 늦게 백업하는 것으로부터의 주기적 요청들을 줄여주고 또한 낮은 우선순위 요청들 이전에 높은 우선순위의 요청들을 스케줄링할 수 있게 한다.
스위프 큐(240)는 물리적 디스크(250)로 스케줄링되어질 요청들을 큐잉하기 위해 사용된다. 클래스-특정 큐들로부터의 요청들은 스위프 큐가 비워짐에 따라 스위프 큐로 이동된다. 스위프 큐 내의 요소들은 LBA(logical-block-address) 순서(가능한 다른 순서들)로 정렬되며, 스위프 큐는 스케줄링이 드라이브(250)에 요청할 때 C-LOOK 알고리즘(또는 기타 유사한 타입)을 수행한다. 추가적으로, 시스템(200)은, 전체 스위프 큐를 스케줄링하는데 요구되는 시간 길이를 연역적으로 계산하기 위하여, 스위프 큐(240)의 크기를 고정시킨다. 또한, 시스템(200)은 필요한 경우에 I/O 대역폭의 이용가능성을 용이하게 하기 위해 스위프 큐(240) 내의 엔트리들을 확보할 수 있다.
도 3은 상술한 컴포넌트들 및 프로세스의 구현을 수행하기 위해 사용될 수 있는 시스템(400)을 도시한다. I/O 디스크 액세스를 위한 하나 이상의 요청들(404)은 수락 제어기(410)에 의해 수신되는데, 이 요청은 일반적으로 컴퓨터 시스템 상에서 실행가능한 컴포넌트 또는 애플리케이션으로부터 수신된다. 요청이 주기적 요청이면, 수락 제어기(410)와 관련된 데드라인 컴포넌트(420)는 요청이 완료되는 데드라인 또는 타임프레임을 할당한다. 비주기적 요청들과 같은 다른 유형의 요청들은 수락 제어기(410)로부터, 클래스-특정 컴포넌트와 관련된 비주기적 큐(430)로 전달된다. 데드라인 사양이 첨부된 주기적 요청들은 클래스 특정기-컴포넌트 내에 있는 주기적 큐(440) 내에서 처리된다. 클래스 특정기는 요청들의 선택된 클래스와 관련된 원하는 방식에 기초하여 요청들을 정렬한다. 상술한 바와 같이, 주기적 큐(440)는 EDF 순서에 따라 배열될 수 있는 반면, 비주기적 큐(430)는 FIFO 순서에 따라 배열될 수 있다. 현재 스위프 라운드가 완료되면, 스위프 큐(도시되지 않음)는 큐들(430 및 440)로부터 채워진다. 그 후 스위프 큐는 C-Look 컴포넌트(460)를 통해 C-Look 순서로 디스크(450)(또는 디스크들)에 스케줄링된다.
도 4 및 도 5는 본 발명의 양상에 따른 디스크 스케줄링 프로세스들을 도시한다. 설명의 편의상, 방법들이 일련의 처리들로 도시되고 기술되지만, 본 발명에 따르면 일부 처리는 본 명세서에 도시되고 기재된 것과 상이한 순서로 또는 그외의 처리들과 동시에 발생할 수 있으므로, 본 발명은 처리 순서가 제한되지 않음을 이해해야 한다. 예를 들어, 본 기술 분야에 숙련된 자들은 방법이 상태도와 같은 일련의 상호 연관된 상태들 또는 사건들로서 선택적으로 표시될 수 있음을 이해할 것이다. 또한, 도시된 모든 처리들이 본 발명에 따른 방법을 구현하기 위해 요구되는 것은 아니다.
도 4는 본 발명에 따른 디스크 스하줄링 프로세스의 하나의 특정 구현을 위한 프로세스(500)를 도시한다. 510으로 진행하면, 수락 제어기는 컴퓨터 시스템의 상위 레벨들로부터 요청(또는 요청들)을 수신/처리한다. 요청이 주기적 요청이면, 수락 제어기는 I/O 요청에 대한 데드라인을 제공하고, 그렇지 않으면 요청은 수락 제어기로부터, 변경되지 않은 클래스-특정 큐로 전달된다. 520에서, 수락 제어기로부터의 요청들이 적절한 클래스-특정 큐 상에 배치된다. 클래스-특정 큐는 그 요청들의 클래스에 대해 바람직하거나 또는 적합한 방식에 기초하여 요청들을 정렬하며, 이때 주기적 요청들은 EDF 순서로 정렬되고 비주기적 요청들은 FIFO 순서로 정렬된다. 530에서, 현재의 스위프 라운드가 완료하면, 스위프 큐는 클래스-특정 큐들로부터의 요청들로부터 채워진다. 540에서, 스위프 큐는 예를 들어 C-LOOK 순서로 디스크에 스케줄링된다. 이하는 본 명세서에 설명된 시스템들 및 방법들에 의해 사용될 수 있는 본 발명에 따른 알고리즘을 위한 예시적인 의사 코드(Pseudo-code)이다.
상기 알고리즘은 특정한 수의 요청들을 완수하기 위하여 대기시간에 대해 명확한(well-defined) 상한을 가지고 있다는 것에 주목한다. n개의 요청에 대하여(n은 정수), 대기시간에 대한 상한은 다음과 같다.
따라서, 상기 알고리즘에서, 최대 I/O 서비스 시간은 스위프-뎁스(sweep-depth) 변수(n)에 의해 파라미터화된다. 특정 디스크 드라이브에 대해 스위프-뎁스와 파라미터들이 주어지면, 주어진 스위프-뎁스에 대한 최악의 경우의 대기시간값을 계산할 수 있다.
본 발명에 따라 이용될 수 있는 일부 컴포넌트들을 기술함에 있어서, C-LOOK 그 자체는 일반적으로 임의의 대기시간 보증을 제공하지 않고 모든 요청을 동등하게 다룬다는 것에 유의한다. 그러나, 이것은 디스크 처리율이 최대화된다는 관점에서 디스크의 최적의 스케줄링을 제공한다. EDF 알고리즘은 먼저 가장 빠른 데드라인들을 갖는 요청들을 처리할 수 있으나, 탐색 지연을 많이 유발할 수 있다. EDF 스캔은 일반적으로 이 둘 간의 트레이드오프이다. 따라서, 스캔으로 제로 퇴화하는 데드라인을 가지고 각각의 I/O들이 송신될 수 있으므로, EDF 스캔에서 확신하는 것이 어렵다. 본 발명 및 관련된 알고리즘들은 최악의 경우의 대기시간의 보장, 보다 엄격한 허가 제어의 제공, 제한된 대기시간 보장의 제공을, 통상의 I/O에 대한 디스크 및 우선순위 스킴들을 국부적으로 최적의 스케줄링을 하는 것과의 트레이드오프에서 동작한다.
도 5는 본 발명의 일 양상에 따른 대안적인 디스크 스케줄링 방법에 대한 프로세스(600)를 도시한다. 610으로 진행하면, I/O 요청들에 대한 대기시간 요건들(예를 들어, 애플리케이션에 대해 적절히 동작하는 최악의 경우 스케줄링 시간이 무엇인지)이 결정된다. 620에서, 610에서 결정된 대기시간 요건에 기초하여 라운드 크기가 조절된다. 640에서, 결정된 대기시간 요건들에 기초하여 한 라운드 내에서 요청들이 정렬된다. 650에서, 610과 620에서의 결정에 기초하여 고정된 크기를 갖는 라운드에 따라 디스크가 갱신된다. 660에서, 라운드의 크기를 변경하거나 변화시킬지에 대한 결정이 이루어진다(예컨대, 변경된 시스템 환경에 기초한 동적인 고려). 그렇지 않으면, 프로세스는 다시 620으로 진행하여 I/O 요청들의 이후의 라운드를 처리한다. 660에서 라운드 크기가 조절되면, 프로세스는 다시 610으로 진행하는데, 여기서 대기시간 요건들이 결정되고 그 다음 620에서 라운드 크기가 재조정된다.
도 6을 참조하면, 본 발명의 다양한 양상들을 구현하기 위한 예시적인 환경(710)은 컴퓨터(712)를 포함한다. 컴퓨터(712)는 프로세싱 유닛(714), 시스템 메모리(716), 및 시스템 버스(718)을 포함한다. 시스템 버스(718)는 시스템 메모리(716)을 포함하나 이에 제한되지 않는 시스템 컴포넌트들을 프로세싱 유닛(714)에 결합시킨다. 프로세싱 유닛(714)은 임의의 다양한 이용가능한 프로세서들이 될 수 있다. 듀얼 마이크로프로세서와 그외의 멀티 프로세서 아키텍쳐들도 프로세싱 유닛(714)으로서 이용될 수 있다.
시스템 버스(718)는 메모리 버스 또는 메모리 콘트롤러, 주변 버스 또는 외부 버스, 및/또는 로컬 버스를 포함하는 임의의 다양한 종류의 버스 아키텍처(들)일 수 있으며, 16비트 버스, ISA(Industrial Standard Architecture), MSA(Micro-Channel Architecture), EISA(Extended ISA), IDE(Intelligent Drive Electronics), VLB(VESA Local Bus), PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), AGP(Advanced Graphics Port), PCMCIA(Personal Computer Memory Card International Association bus), 및 SCSI(Small Computer Systems Interface)를 포함하나 이에 제한되지 않는 임의의 다양한 이용가능한 버스 아키텍쳐들을 이용한다.
시스템 메모리(716)는 휘발성 메모리(720) 및 불휘발성 메모리(722)를 포함한다. 시동중과 같은 때에 컴퓨터(712) 내의 구성요소들간에 정보를 전송하기 위한 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)이 불휘발성 메모리(722)에 저장된다. 예를 들어, 불휘발성 메모리(722)는 ROM(read only memory), PROM(programmable ROM), EPROM(elecrically programmable ROM), EEPROM(elecrically erasable programmable ROM), 또는 플래시 메모리를 포함하나, 이에 제한되지 않는다. 불휘발성 메모리(720)는 외부 캐시 메모리로 동작하는 RAM(random access memory)를 포함한다. 예시로서, RAM은 SRAM(synchronous RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(Synchlink DRAM), 및 DRRAM(direct Rambus RAM)과 같은 많은 형태들에서 이용가능하며, 이에 제한되는 것은 아니다.
컴퓨터(712)는 또한 분리형/비분리형, 휘발성/불휘발성 컴퓨터 저장 매체를 포함한다. 도 6은, 예를 들어 디스크 저장장치(724)를 도시한다. 디스크 저장장치(724)는 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈 드라이브(Jaz drive), 집 드라이브(Zip drive), LS-100 드라이브, 플래시 메모리 카드, 또는 메모리 스틱과 같은 장치들을 포함하나 이에 제한되지 않는다. 또한, 디스크 저장장치(724)는 단독으로 혹은 CD-ROM(compact disk ROM) 장치, CD-R 드라이브(CD recordable drive), CD-RW 드라이브(CD rewritable drive) 또는 DVD-ROM 드라이브(digital versatile disk ROM drive)와 같은 광 디스크 드라이브를 포함하나, 이에 제한되지 않는 그외의 저장 매체을 포함하는 저장 매체들과 조합하여 포함할 수 있다. 디스크 저장 장치들(724)을 시스템 버스(718)에 접속시키는 것을 용이하게 하기 위해, 인터페이스(726)와 같은 분리형 또는 비분리형 인터페이스가 전형적으로 사용된다.
도 6은 사용자와, 적절한 동작 환경(710)에서 기술된 기본 컴퓨터 자원들간에 중간자로서 작용하는 소프트웨어를 기술한다. 이러한 소프트웨어는 오퍼레이팅 시스템(728)을 포함한다. 오퍼레이팅 시스템(728)은 디스크 저장장치(724)에 저장될 수 있는 것으로, 컴퓨터 시스템(712)의 자원들을 제어하고 할당하도록 동작한다. 시스템 애플리케이션들(730)은 시스템 메모리(716)나 디스크 저장장치(724)에 저장된 프로그램 모듈(732) 및 프로그램 데이타(734)를 통해 오퍼레이팅 시스템(728)에 의한 자원 관리를 이용한다. 본 발명은 다양한 오퍼레이팅 시스템 혹은 오퍼레이팅 시스템들의 조합으로 구현될 수 있다는 것을 알아야 한다.
사용자는 커맨드나 정보를 입력 장치(들)(736)을 통해 컴퓨터(712)에 입력한다. 입력 장치(726)에는 마우스, 트랙볼, 스타일러스, 터치 패드, 키보드, 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너, TV 튜너 카드, 디지탈 카메라, 디지탈 비디오 카메라, 웹 카메라 등과 같은 포인팅 장치를 포함하나, 이에 제한되지 않는다. 이러한 입력 장치들 및 기타의 입력 장치들은 인터페이스 포트(들)(738)을 거쳐 시스템 버스(718)를 통해 프로세싱 유닛(714)에 접속된다. 인퍼테이스 포트(들)(738)에는, 예컨대, 직렬 포트, 병렬 포트, 게임 포트 및 USB(universal serial bus)가 포함된다. 출력 장치(들)(740)은 입력 장치(들)(730)과 동일한 유형의 포트들 중 일부를 사용한다. 따라서, 예를 들어, 컴퓨터(712)에 입력을 하고 컴퓨터(712)로부터 출력 장치(740)로 정보를 출력하는데 USB 포트가 사용될 수 있다. 출력 어댑터(742)는 출력 장치들(740) 중 특별한 어댑터를 필요로하는 모니터, 스피커, 프린터와 같은 일부 출력 장치(740)들이 존재한다는 것을 예시하기 위해 제공되어 있다. 출력 어댑터(742)는, 예컨대, 출력 장치(740)와 시스템 버스(718) 사이의 접속 수단을 제공하는 비디오 및 사운드 카드를 포함하나 이에 제한되지 않는다. 다른 장치들 및/또는 장치들의 시스템들이 원격 컴퓨터(들)(744)과 같이 입력 및 출력 능력 모두를 제공한다는 점에 유의해야 한다.
컴퓨터(712)는 원격 컴퓨터(들)(744)과 같은 하나 이상의 원격 컴퓨터에 논리적 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(들)(744)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 가전, 피어(peer) 장치 또는 기타 공통 네트워크 노드 등일 수 있으며, 전형적으로 컴퓨터(712)에 관해 기술된 구성요소들의 전부 또는 많은 구성요소들을 포함한다. 간략히 설명하기 위해, 메모리 저장 장치(746)만이 원격 컴퓨터(들)(744)와 함께 도시되어 있다. 원격 컴퓨터(들)(744)은 네트워크 인터페이스(748)를 통해 컴퓨터(712)에 논리적으로 접속되고, 그 다음에 통신 접속(750)을 통해 물리적으로 접속된다. 네트워크 인터페이스(748)는 근거리 통신망(LAN) 및 원거리 통신망(WAN)과 같은 통신 네트워크들을 포함한다. LAN 기술은 FDDI(Fiber Distributed Data Interface), CDDI(Copper Distributed Data Interface), 이더넷/IEEE 1102.3, 토큰 링/IEEE 1102.5 등을 포함한다. WAN 기술은 포인트-투-포인트 링크, ISDN(Integrated Services Digital Network)과 같은 회로 스위칭 네트워크 및 그들의 변형물, 패킷 스위칭 네트워크, 및 DSL(Digital Subscriber Lines)를 포함하나, 이에 제한되지 않는다.
통신 접속(들)(750)은 네트워크 인터페이스(748)를 버스(718)에 접속하기 위해 이용되는 하드웨어/소프트웨어를 말한다. 설명을 명확히 하기 위하여 통신 접속(750)이 컴퓨터(712) 내부에 있는 것으로 도시되었지만, 컴퓨터(712) 외부에 있을 수도 있다. 네트워크 인터페이스(748)에 접속하는데 필요한 하드웨어/소프트웨어는, 단지 예시적으로, 통상적인 전화 그레이드 모뎀, 케이블 모뎀 및 DSL 모뎀, ISDN 어댑터, 및 이더넷 카드를 포함하는 모뎀과 같은 내장 및 외장 기술들을 포함한다.
도 7은 본 발명이 상호작용할 수 있는 샘플 컴퓨팅 환경(800)의 도식적인 블럭도이다. 시스템(800)은 하나 이상의 클라이언트(들)(810)을 포함한다. 클라이언트(들)(810)은 하드웨어 및/또는 소프트웨어(예컨대, 스레드, 프로세스, 컴퓨팅 장치)가 될 수 있다. 시스템(800)은 또한 하나 이상의 서버(들)(830)을 포함한다. 서버(들)(830)도 하드웨어 및/또는 소프트웨어(예컨대, 스레드, 프로세스, 컴퓨팅 장치)가 될 수 있다. 서버(830)는 예를 들어 본 발명을 이용함으로써 변환을 수행하는 스레드를 보유할 수 있다. 클라이언트(810)와 서버(830) 사이의 하나의 가능한 통신은 두개 이상의 컴퓨터 프로세스들 간에 전송되도록 적응된 데이타 패킷의 형태일 수 있다. 시스템(800)은 클라이언트(들)(810)와 서버(들)(830) 사이의 통신을 용이하게 하기 위하여 이용될 수 있는 통신 프레임워크(850)을 포함한다. 클라이언트(들)(810)은 클라이언트(들)(810)에 로컬인 정보를 저장하는데 이용될 수 있는 하나 이상의 클라이언트 데이타 스토어(들)(860)에 동작가능하게 접속된다. 마찬가지로, 서버(들)(830)은 서버(830)에 로컬인 정보를 저장하는데 이용될 수 있는 하나 이상의 서버 데이타 스토어(들)에 동작가능하게 접속된다.
이상 기술된 것은 본 발명의 실시예들을 포함한다. 물론, 본 발명을 기술하기 위하여 고안할 수 있는 구성요소나 방법의 조합을 모두 기술할 수는 없지만, 본 기술분야에서 통상의 지식을 가지고 있는 자라면 본 발명의 보다 많은 조합과 변경이 가능하다는 것을 인식할 것이다. 따라서, 본 발명은 첨부된 청구항들의 사상과 범위의 내에서 이러한 모든 치환, 변경 및 변형물들을 포함하는 것이다. 또한, 발명의 상세한 설명이나 청구항들에 "포함한다(includes)"라는 용어가 사용되는 한, 이 용어는 청구항의 접속어로서 사용될 때 "포함한다(comprising)"가 해석되는 바와 같이 "포함한다(comprising)"라는 용어와 유사한 방식으로 사용하는 것을 의도한다.
본 발명에 따르면, 효율적이고 시기 적절한 방식으로, 저장 매체에 대한 데이타 요청의 동적 스케줄링을 용이하게 하는 시스템 및 방법을 제공할 수 있다.
도 1은 본 발명의 양상에 따른 스케줄링 시스템의 개략적인 블럭도.
도 2는 본 발명의 양상에 따른 다층(multi-tiered) 스케줄링 시스템의 다이어그램.
도 3은 본 발명의 양상에 따른 디스크-스케줄링 시스템을 도시하는 개략적인 블럭도.
도 4는 본 발명의 양상에 따른 디스크 스케줄링 프로세스를 도시하는 흐름도.
도 5는 본 발명의 양상에 따른 디스크 스케줄링 프로세스를 도시하는 흐름도.
도 6은 본 발명의 양상에 따른 적절한 운영 환경을 도시하는 개략적인 블럭도.
도 7은 본 발명이 상호 작용할 수 있는 샘플-컴퓨팅 환경의 개략적인 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
100: 스케줄링 시스템
110: I/O 데이타 요청
120: 저장 매체
130: 카테고라이저
140: 큐(queue)
150: 라운드
160: 스케줄러

Claims (29)

  1. 디스크 스케줄링 시스템에 있어서,
    저장 매체로 향하는 입력/출력(I/O) 요청들의 서브세트를 보유하는 적어도 하나의 큐(queue); 및
    특정 대기시간(latency) 레벨을 제공하고 저장 매체 갱신과 관련한 특정 처리율(throughput) 레벨을 유지하기 위해 라운드 내에서 소정 수의 상기 요청들을 이용하는 스케줄링 컴포넌트
    를 포함하는 디스크 스케줄링 시스템.
  2. 제1항에 있어서,
    상기 스케줄링 컴포넌트는 상기 요청들을 큐들의 하나 이상의 클래스들로 자동적으로 보내는 카테고라이저(categorizer)와 연관되어 있는 시스템.
  3. 제2항에 있어서,
    상기 스케줄링 컴포넌트는 상기 카테고라이저로부터 상기 요청들을 수신하는 소정의 크기의 큐를 포함하는 시스템.
  4. 제1항에 있어서,
    상기 저장 매체는 하드 디스크, 플로피 디스크, 메모리 스틱, 콤팩트 디스크, 및 컴퓨터에 의해 액세스되기 위해 스케줄되어 있는 메모리 중 적어도 하나를 포함하는 시스템.
  5. 제1항에 있어서,
    상기 스케줄링 컴포넌트는 선택된 작업들에 대해 I/O 스케줄링을 수행하기 위해 제한된 대기시간의 소정량을 동적으로 계산하는 시스템.
  6. 제1항에 있어서,
    주기적 큐 및 비주기적 큐 중 적어도 하나를 더 포함하는 시스템.
  7. 제6항에 있어서,
    상기 주기적 큐는 EDF(Earliest-Deadline-First) 순서로 배열되어 있는 시스템.
  8. 제6항에 있어서,
    상기 비주기적 큐는 중요도 클래스들(criticality classes)에 따라 배열되어 있는 시스템.
  9. 제8항에 있어서,
    상기 중요도 클래스들은 임계(critical), 높음, 상호작용, 표준, 백그라운드, 낮음, 및 유휴 상태 중 적어도 하나인 시스템.
  10. 제8항에 있어서,
    상기 비주기적 큐는 FIFO(First-In-First-Out) 순서에 따라 배열되어 있는 시스템.
  11. 제6항에 있어서,
    상기 주기적 큐와 상기 비주기적 큐를 처리하고 상기 저장 매체를 액세스하기 위한 스위프 큐(sweep queue)를 더 포함하는 시스템.
  12. 제11항에 있어서,
    상기 스위프 큐는 C-LOOK 컴포넌트에 따라 관리되고 C-LOOK 순서에 따라 배열되는 시스템.
  13. 제6항에 있어서,
    상기 주기적 큐는 멀티미디어 애플리케이션들과 연관된 주기적 I/O와 관련되어 있는 시스템.
  14. 제6항에 있어서,
    시스템 자원들을 고려하여 체크되는 성능 파라미터들을 갖는 주기적 I/O 스트림들을 처리하기 위한 컴포넌트를 더 포함하는 시스템.
  15. 제6항에 있어서,
    시스템 성능을 고려하여 주기적 I/O 스트림을 분석하고, 만약 상기 성능이 초과되면 요청을 중지하는 컴포넌트를 더 포함하는 시스템.
  16. 제15항에 있어서,
    상기 컴포넌트는, 상기 주기적 I/O의 각각의 파라미터들이 초과되지 않도록 하는 수락 제어 컴포넌트(도시되지 않음)인 시스템.
  17. 제16항에 있어서,
    상기 수락 제어 컴포넌트는 완료되어진 요청에게 데드라인(deadline) 또는 타임프레임을 할당하는 데드라인 컴포넌트를 포함하는 시스템.
  18. 제1항에 있어서,
    상기 저장 매체에 대한 액세스 시간을 결정하기 위해 이하의 식:
    (여기서, n은 정수)
    을 더 포함하는 시스템.
  19. 제1항의 큐와 상기 스케줄링 컴포넌트를 구현하기 위한 컴퓨터 판독가능한 명령어들이 저장되어 있는 컴퓨터 판독가능한 매체.
  20. 저장 매체에 대한 요청들을 스케줄링하는 방법으로서,
    요청들의 세트를 위해 소정 수의 요청들을 결정하는 단계;
    상기 요청들의 세트와 연관된 대기시간 파라미터를 결정하는 단계; 및
    상기 대기시간 파라미터 및 상기 요청들의 세트에 대한 소망하는 처리율에 기초하여 저장 매체를 갱신하는 단계
    를 포함하는 방법.
  21. 제20항에 있어서,
    상기 요청들의 세트와 관련된 I/O 스트림들을 주기적 스트림들 및 비주기적 스트림들 중 적어도 하나로 자동적으로 분리하는 단계를 더 포함하는 방법.
  22. 제21항에 있어서,
    상기 주기적 스트림들을 EDF(Earliest-Deadline-First) 순서로 배열하는 단계; 및
    상기 비주기적 스트림들을 FIFO(First-In-First-Out) 순서로 배열하는 단계
    를 더 포함하는 방법.
  23. 제22항에 있어서,
    저장 매체를 액세스하기 위하여 상기 주기적 스트림들 및 상기 비주기적 스트림들에 C-LOOK 알고리즘을 적용하는 단계를 더 포함하는 방법.
  24. 제20항에 있어서,
    상기 저장 매체를 액세스하기 위해 이하의 명령어들과 관련되어 있는 기능성을 적용하는 단계
    를 더 포함하는 방법.
  25. 디스크 갱신을 수행하기 위한 방법에 있어서,
    요청들의 라운드에 대한 대기시간 요건들을 자동적으로 결정하는 단계;
    상기 요청들의 라운드에 대한 크기를 자동적으로 조절하는 단계; 및
    상기 요청들의 라운드를 가지고 저장 매체를 갱신하는 단계
    를 포함하는 방법.
  26. 제25항에 있어서,
    상기 요청들의 라운드에 대한 대역폭 요건들을 결정하는 단계; 및
    상기 결정된 대역폭 요건들에 기초하여 상기 요청들의 라운드를 자동적으로 우선순위화하는 단계
    를 더 포함하는 방법.
  27. 제26항에 있어서,
    상기 대역폭 및 상기 대기시간 요건들을 동적으로 모니터링하는 단계를 더 포함하는 방법.
  28. 디스크 갱신을 용이하게 하기 위한 시스템에 있어서,
    요청들의 세트를 분류하는 수단;
    고정된 크기를 갖는 상기 요청들의 세트를 큐잉하는 수단; 및
    적어도 하나의 대기시간 요건 및 처리율 요건에 기초하여 저장 매체와 상호작용하는 수단
    을 포함하는 시스템.
  29. 데이타 구조가 저장되어 있는 컴퓨터 판독가능한 매체로서,
    요청들의 라운드와 연관된 큐에 대한 크기 파라미터와 관련된 제1 데이타 필드; 및
    상기 요청들의 라운드와 연관된 대기시간 파라미터와 관련된 제2 데이타 필드
    를 포함하는 컴퓨터 판독가능한 매체.
KR1020040063845A 2003-08-20 2004-08-13 연속 매체 우선순위 인식 저장장치 스케줄러 KR101086514B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US49652903P 2003-08-20 2003-08-20
US60/496,529 2003-08-20
US10/729,138 2003-12-05
US10/729,138 US7206866B2 (en) 2003-08-20 2003-12-05 Continuous media priority aware storage scheduler

Publications (2)

Publication Number Publication Date
KR20050020942A true KR20050020942A (ko) 2005-03-04
KR101086514B1 KR101086514B1 (ko) 2011-11-23

Family

ID=34068470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040063845A KR101086514B1 (ko) 2003-08-20 2004-08-13 연속 매체 우선순위 인식 저장장치 스케줄러

Country Status (5)

Country Link
US (2) US7206866B2 (ko)
EP (1) EP1508850A3 (ko)
JP (1) JP4597608B2 (ko)
KR (1) KR101086514B1 (ko)
CN (1) CN1617100A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983048B1 (ko) * 2008-11-27 2010-09-17 서울대학교산학협력단 Ncq 제어 방법 및 컴퓨팅 장치
KR101311305B1 (ko) * 2011-08-26 2013-09-25 국방과학연구소 데드라인 기반 우선순위상속 시스템 및 그 방법
KR20190099532A (ko) * 2017-01-09 2019-08-27 후아웨이 테크놀러지 컴퍼니 리미티드 미디어 다운링크 전송 제어 방법 및 관련 장치
US10437519B2 (en) 2015-11-30 2019-10-08 Huawei Technologies Co., Ltd. Method and mobile terminal for processing write request
US11372672B2 (en) 2013-02-15 2022-06-28 Apple Inc. Centralized task scheduling

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774604B2 (en) * 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US7984175B2 (en) 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US8656039B2 (en) * 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7899828B2 (en) * 2003-12-10 2011-03-01 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US8312145B2 (en) * 2003-12-22 2012-11-13 Rockstar Consortium US L.P. Traffic engineering and bandwidth management of bundled links
US7930540B2 (en) * 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
US7962591B2 (en) * 2004-06-23 2011-06-14 Mcafee, Inc. Object classification in a capture system
US7386692B1 (en) * 2004-08-20 2008-06-10 Sun Microsystems, Inc. Method and apparatus for quantized deadline I/O scheduling
US7260703B1 (en) * 2004-08-20 2007-08-21 Sun Microsystems, Inc. Method and apparatus for I/O scheduling
US8560534B2 (en) * 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US7949849B2 (en) * 2004-08-24 2011-05-24 Mcafee, Inc. File system for a capture system
KR100585176B1 (ko) * 2005-02-04 2006-05-30 삼성전자주식회사 입출력 서브시스템에서 입출력 명령의 부하 판단 방법 및장치
US7305537B1 (en) 2005-03-01 2007-12-04 Sun Microsystems, Inc. Method and system for I/O scheduler activations
US20060288184A1 (en) * 2005-06-17 2006-12-21 Seagate Technology Llc Admission control in data storage devices
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US7907608B2 (en) 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US7818326B2 (en) * 2005-08-31 2010-10-19 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US7730011B1 (en) 2005-10-19 2010-06-01 Mcafee, Inc. Attributes of captured objects in a capture system
US7478179B2 (en) * 2005-11-04 2009-01-13 Sun Microsystems, Inc. Input/output priority inheritance wherein first I/O request is executed based on higher priority
US20070106849A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for adaptive intelligent prefetch
US7657671B2 (en) * 2005-11-04 2010-02-02 Sun Microsystems, Inc. Adaptive resilvering I/O scheduling
US7657104B2 (en) 2005-11-21 2010-02-02 Mcafee, Inc. Identifying image type in a capture system
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US7689614B2 (en) 2006-05-22 2010-03-30 Mcafee, Inc. Query generation for a capture system
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US7644206B2 (en) * 2006-06-30 2010-01-05 Seagate Technology Llc Command queue ordering by positionally pushing access commands
US7779175B2 (en) * 2007-05-04 2010-08-17 Blackwave, Inc. System and method for rendezvous in a communications network
KR100927190B1 (ko) * 2007-10-12 2009-11-18 한국전자통신연구원 디스크 스케줄링 방법 및 장치
US8521951B2 (en) * 2008-01-16 2013-08-27 S. Aqua Semiconductor Llc Content addressable memory augmented memory
US20090182977A1 (en) * 2008-01-16 2009-07-16 S. Aqua Semiconductor Llc Cascaded memory arrangement
US8090903B2 (en) * 2008-01-18 2012-01-03 Microsoft Corporation Fair and dynamic disk input/output bandwidth distribution
WO2009119633A1 (ja) * 2008-03-26 2009-10-01 日本電気株式会社 データ通信処理装置及び方法
US8504736B2 (en) * 2008-05-30 2013-08-06 Sony Computer Entertainment America Inc. File input/output scheduler
US8205242B2 (en) * 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
JP5147584B2 (ja) * 2008-07-23 2013-02-20 株式会社日立製作所 ストレージサブシステム及びコントローラによるコマンド実行方法
JP2010033125A (ja) * 2008-07-25 2010-02-12 Hitachi Ltd ストレージ装置及びデータ転送方法
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
KR20110066140A (ko) 2008-09-29 2011-06-16 인터내셔널 비지네스 머신즈 코포레이션 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US8539129B2 (en) * 2010-04-14 2013-09-17 Qualcomm Incorporated Bus arbitration techniques to reduce access latency
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
US8330645B2 (en) 2010-08-31 2012-12-11 Raytheon Company Radar activation multiple access system and method
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
EP2663920B1 (en) * 2011-01-11 2020-05-27 Hewlett-Packard Development Company, L.P. Concurrent request scheduling
US9043509B2 (en) * 2011-01-14 2015-05-26 Broadcom Corporation Method and system for low-latency networking
CN102402401A (zh) * 2011-12-13 2012-04-04 云海创想信息技术(无锡)有限公司 一种磁盘io请求队列调度的方法
US20130246336A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8966173B1 (en) * 2012-06-28 2015-02-24 Emc Corporation Managing accesses to storage objects
US20150032961A1 (en) * 2013-07-23 2015-01-29 Lexmark International Technologies S.A. System and Methods of Data Migration Between Storage Devices
CN104714753A (zh) * 2013-12-12 2015-06-17 中兴通讯股份有限公司 一种数据访问存储方法及装置
CN103761051B (zh) * 2013-12-17 2016-05-18 北京同有飞骥科技股份有限公司 一种基于持续数据多输入输出流并发写入性能优化方法
US9542107B2 (en) * 2014-06-25 2017-01-10 International Business Machines Corporation Flash copy relationship management
US9792051B2 (en) * 2016-02-24 2017-10-17 Samsung Electronics Co., Ltd. System and method of application aware efficient IO scheduler
WO2017171575A1 (en) * 2016-03-30 2017-10-05 Emc Corporation Virtual machine storage management queue
US11579932B2 (en) * 2016-08-29 2023-02-14 Vmware, Inc. Tiered backup archival in multi-tenant cloud computing system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
KR102590976B1 (ko) 2017-09-29 2023-10-19 다우 글로벌 테크놀로지스 엘엘씨 개선된 용해도를 위한 금속 상에 메틸렌트리알킬규소 리간드를 갖는 비스-페닐-페녹시 폴리올레핀 촉매
WO2019067274A1 (en) 2017-09-29 2019-04-04 Dow Global Technologies Llc BIS-PHENYL-PHENOXY-POLYOLEFIN CATALYSTS HAVING TWO METHYLENETRIALKYLSILICIUM-TYPE LIGANDS ON METAL FOR ENHANCED SOLUBILITY
KR102031853B1 (ko) * 2018-07-18 2019-10-15 국방과학연구소 다중 중요도 시스템 위한 작업별 중요도 모드 전환 방법
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
US11307805B2 (en) 2020-05-29 2022-04-19 Seagate Technology Llc Disk drive controller incorporating task manager for reducing performance spikes
US11647420B2 (en) * 2021-02-18 2023-05-09 Charter Communications Operating, Llc Downlink and uplink data handling in a wireless device
KR20220145698A (ko) * 2021-04-22 2022-10-31 에스케이하이닉스 주식회사 PCIe 장치 및 그 동작 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5708796A (en) * 1994-11-18 1998-01-13 Lucent Technologies Inc. Method of retrieving continuous and non-continuous media data from a file system
US5621898A (en) * 1994-11-29 1997-04-15 Compaq Computer Corporation Arbiter organization for serial bus transfers
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5875481A (en) * 1997-01-30 1999-02-23 International Business Machines Corporation Dynamic reconfiguration of data storage devices to balance recycle throughput
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
US6079028A (en) * 1997-04-23 2000-06-20 Lucent Technologies Inc. Fault tolerant architectures for continuous media servers
US6286045B1 (en) * 1997-05-19 2001-09-04 Matchlogic, Inc. Information storage and delivery over a computer network using centralized intelligence to monitor and control the information being delivered
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US5991825A (en) * 1997-07-11 1999-11-23 International Business Machines Corporation System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs
US6023720A (en) * 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines
US6442648B1 (en) * 1998-09-03 2002-08-27 International Business Machines Corporation Method of and system for the dynamic scheduling of requests to access a storage system
US6330646B1 (en) * 1999-01-08 2001-12-11 Intel Corporation Arbitration mechanism for a computer system having a unified memory architecture
AU4016500A (en) * 1999-03-23 2000-10-09 Frankel & Company Control of server-originated dynamic digital signage at client site using automated data acquisition
US6378052B1 (en) * 1999-08-11 2002-04-23 International Business Machines Corporation Data processing system and method for efficiently servicing pending requests to access a storage system
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6535957B1 (en) * 1999-11-09 2003-03-18 International Business Machines Corporation System bus read data transfers with bus utilization based data ordering
US6654851B1 (en) * 2000-03-14 2003-11-25 International Business Machine Corporation System, apparatus, and method for using a disk drive for sequential data access
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US7197577B2 (en) * 2003-12-12 2007-03-27 International Business Machines Corporation Autonomic input/output scheduler selector

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983048B1 (ko) * 2008-11-27 2010-09-17 서울대학교산학협력단 Ncq 제어 방법 및 컴퓨팅 장치
KR101311305B1 (ko) * 2011-08-26 2013-09-25 국방과학연구소 데드라인 기반 우선순위상속 시스템 및 그 방법
US11372672B2 (en) 2013-02-15 2022-06-28 Apple Inc. Centralized task scheduling
US10437519B2 (en) 2015-11-30 2019-10-08 Huawei Technologies Co., Ltd. Method and mobile terminal for processing write request
KR20190099532A (ko) * 2017-01-09 2019-08-27 후아웨이 테크놀러지 컴퍼니 리미티드 미디어 다운링크 전송 제어 방법 및 관련 장치
US11108837B2 (en) 2017-01-09 2021-08-31 Huawei Technologies Co., Ltd. Media downlink transmission control method and related device
US11553021B2 (en) 2017-01-09 2023-01-10 Huawei Technologies Co., Ltd. Media downlink transmission control method and related device

Also Published As

Publication number Publication date
US20070136496A1 (en) 2007-06-14
CN1617100A (zh) 2005-05-18
EP1508850A2 (en) 2005-02-23
US7206866B2 (en) 2007-04-17
EP1508850A3 (en) 2015-03-18
JP4597608B2 (ja) 2010-12-15
JP2005071353A (ja) 2005-03-17
US20050044289A1 (en) 2005-02-24
KR101086514B1 (ko) 2011-11-23
US7734837B2 (en) 2010-06-08

Similar Documents

Publication Publication Date Title
KR101086514B1 (ko) 연속 매체 우선순위 인식 저장장치 스케줄러
US8312229B2 (en) Method and apparatus for scheduling real-time and non-real-time access to a shared resource
US9208116B2 (en) Maintaining I/O priority and I/O sorting
US7277982B2 (en) DRAM access command queuing structure
US9575664B2 (en) Workload-aware I/O scheduler in software-defined hybrid storage system
US8271741B2 (en) Prioritization of multiple concurrent threads for scheduling requests to shared memory
EP1435039B1 (en) Method and apparatus for scheduling of requests to a dynamic random access memory device
US8108571B1 (en) Multithreaded DMA controller
US20070156955A1 (en) Method and apparatus for queuing disk drive access requests
US20040230979A1 (en) Command scheduling in computer networks
US7478179B2 (en) Input/output priority inheritance wherein first I/O request is executed based on higher priority
US20100083262A1 (en) Scheduling Requesters Of A Shared Storage Resource
Hamann et al. Quality-assuring scheduling-using stochastic behavior to improve resource utilization
CN113316767A (zh) 处理器处的松弛度感知、动态优先级变化
US6681270B1 (en) Effective channel priority processing for transfer controller with hub and ports
CN106155810B (zh) 软件定义混合储存系统中工作负载感知的输入输出调度器
JP4872942B2 (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
EP1115065B1 (en) Effective channel priority processing for transfer controller with hub and ports
US20230108001A1 (en) Priority-based scheduling with limited resources
TWI509411B (zh) 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器
JP2004152060A (ja) 計算機システム、および、そのディスクサブシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 8