KR20090037638A - 디스크 스케줄링 방법 및 장치 - Google Patents
디스크 스케줄링 방법 및 장치 Download PDFInfo
- Publication number
- KR20090037638A KR20090037638A KR1020070103073A KR20070103073A KR20090037638A KR 20090037638 A KR20090037638 A KR 20090037638A KR 1020070103073 A KR1020070103073 A KR 1020070103073A KR 20070103073 A KR20070103073 A KR 20070103073A KR 20090037638 A KR20090037638 A KR 20090037638A
- Authority
- KR
- South Korea
- Prior art keywords
- request
- requests
- deadline
- order
- group
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
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
본 발명은, 디스크 저장 매체로의 입/출력 동작에 관하여 우선순위와 데드라인을 갖는 요청들에 대한 디스크 스케줄링 방법 및 장치에 관한 것이다. 요청들은 데드라인이 빨리 도달하는 순서대로 정렬되어 있고, 데드라인이 빨리 도달하는 순서대로 처리되지만, 데드라인에 따른 처리 시간이 서로 겹치는 요청들 사이에서는 우선순위에 따라 해당 요청들이 처리된다. 따라서, 데드라인 순서에 따른 처리 때문에 우선순위가 빠른 요청이 지연되는 것을 방지할 수 있다. 그 밖에도, 탐색 시간을 최소화하기 위해, 스캔 순서에 의한 요청들의 처리가 병행될 수 있다. 또한, 스캔 순서와 데드라인 순서에 대한 검색 및 정렬에 걸리는 시간을 최소화하기 위해, 데드라인 순서에 따라 요청들이 정렬되어 있는 데드라인 큐와 스캔 순서에 따라 요청들이 정렬되어 있는 스캔 순서 큐가 별도로 마련될 수 있다.
Description
본 발명은 저장 매체에 대한 데이터 요청들의 처리에 관한 것으로서, 특히 디스크 저장 매체로의 입/출력 동작에 대한 요청들을 스케줄링하는 방법 및 장치에 관한 것이다.
본 발명은 정보통신부의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-038-02, 과제명: 모바일 컨버전스 컴퓨팅을 위한 단말적응형 임베디드 운영체제 기술개발].
범용 운영체제(Operating System) 소프트웨어 또는 드라이브 펌웨어 등에 의해 구현되는 디스크 스케줄링 알고리즘은, 하드 디스크, 플로피 디스크, CD 및 컴퓨터로부터 액세스되도록 스케줄된 그 밖의 메모리를 포함하는 저장매체에 대한 데이터 요청들을, 디스크 헤드의 탐색 시간(seek time)이 최소가 되도록 재정렬하여 데이터 처리율을 최대화한다. 데이터 요청은, 예를 들어 디스크에 대한 데이터의 쓰기/읽기 등의 입/출력(I/O) 요청이다. 탐색 시간은, 디스크 헤드가 현재의 트랙 위치에서 요청된 트랙 위치로 이동하는 데 걸리는 시간이다.
도 1에서, 디스크(15)에 대한 디스크 헤드(17)의 탐색 시간을 최소화하기 위해, 전통적인 디스크 스케줄링 알고리즘은, 시간 순서대로 발생한 요청들(R1~R5)을 디스크 헤드(17)의 트랙 횡단 방향(A)을 따라 재정렬하여 스캔 순서 큐(Q)에 삽입한다. 요청들은 스캔 순서, 즉 R3->R1->R4->R2->R5의 순서대로 처리된다. 엘리베이터 알고리즘(Elevator Algorithm, 혹은 SCAN) 또는 순환 엘리베이터 알고리즘(Circular Elevator Algorithm, 혹은 C-SCAN)은 대표적인 탐색 시간 기반 디스크 스케줄링 알고리즘이다.
그러나 탐색 시간 기반 디스크 스케줄링 알고리즘은, 디스크에 대한 입/출력(I/O) 요청을 디스크 헤드의 트랙 횡단 방향을 따라 스캔 순서대로 처리하기 때문에, 트랙 횡단 방향으로부터 멀리 떨어진 트랙의 특정 섹터에 대한 요청이 기아상태(resource starvation)에 빠질 수 있는 단점이 있다.
이러한 문제를 해결하기 위해, 선행 미국특허 제6,496,899호는, 디스크 헤드의 1회의 트랙 횡단 동안에 스캔 순서 큐에 삽입될 수 있는 데이터 요청의 개수를 제한함으로써, 특정 요청이 기아상태에 빠지는 것을 방지하는 디스크 스케줄러를 제안하고 있다.
선행 미국특허 제6,078,998호는, 새로운 요청이 요청 큐에 삽입됨에 따라 데드라인이 보장되지 못하는 요청이 발생한 경우, 새로운 요청 이전의 요청들 중에서 우선순위가 가장 낮은 요청을 요청 큐의 마지막으로 이동시킴으로써, 요청의 데드라인을 보장하는 디스크 스케줄러를 제안하고 있다.
'데드라인'은 당해 요청에 대한 처리(실행)가 개시되어야 할 시점이다. 예를 들어, 디스크에 대한 읽기 요청 및 쓰기 요청의 데드라인은 각각 500ms(밀리초) 및 5s(초)로 설정될 수 있다. 또한, 디스크 입/출력 요청은, 일반적으로 그 중요도에 따른 우선순위(priority)를 갖는다. 예를 들어, 멀티미디어의 전송에 관한 요청일 경우에, 고액의 전송 요청이 소액의 전송 요청보다 높은 우선순위를 가질 수 있고, 혹은 오디오 데이터에 대한 요청이 비디오 데이터에 대한 요청보다 높은 우선순위를 가질 수 있다.
선행 미국특허 제7,206,866호는, 주기적인 디스크 요청과 비주기적인 디스크 요청이 각각 정렬되어 있는 두 개의 큐로부터, 일정 비율로 고정된 개수의 요청들을 스캔 순서 큐에 전달함으로써, 요청들에 대한 대기 시간을 제한하면서 수용가능한 처리율을 제공할 수 있는 디스크 스케줄러를 제안하고 있다.
그러나 상기 선행 미국특허 제6,496,899호는, 각 요청의 처리 시간을 단일화함으로써 요청들간의 공평성(fairness)을 극대화할 수 있는 장점은 있지만, 특정 요청의 데드라인 또는 우선순위를 만족시킬 수 없는 한계가 있다.
상기 선행 미국특허 제6,078,998호는, 요청 큐에 새롭게 삽입되는 요청에 의해 데드라인이 보장되지 못하는 다른 요청은 계속해서 요청 큐의 마지막으로 이동하기 때문에, 경우에 따라 특정 요청에 대해서는 기아현상이 발생할 수 있다. 또한, 선행 미국특허 제6,078,998호는, 단일의 요청 큐를 사용하기 때문에, 새로운 요청의 삽입 시마다 데드라인이 보장되지 못하는 다른 요청을 검색하는 데 많은 오버헤드가 발생하는 문제점이 있다.
상기 선행 미국특허 제7,206,866호는, 상기 선행 미국특허 제6,496,899호와 비슷하게 요청들간의 공평성을 극대화할 수 있는 장점은 있지만, 비주기적인 디스크 요청이 정렬되어 있는 큐와 같이 서비스 비율이 낮은 큐에 요청이 집중될 경우, 해당 큐의 특정 요청에 대한 기아현상이 발생할 가능성이 있다.
그 밖에, 종래의 디스크 스케줄링 기술은, 요청들의 데드라인이 서로 근접해 있는 경우의 효율적인 처리 해법을 제시하지 못하고 있다. 즉 종래의 디스크 스케줄링 기술에 따르면, 요청들의 데드라인이 서로 근접해 있는 경우에, 이 요청들 중 일부는 데드라인이 경과했음에도 불구하고 곧바로 처리되지 못하고 지연되는 문제가 있으며, 특히, 상위의 우선순위를 갖는 요청이 하위의 우선순위를 갖는 요청보다 늦게 처리되는 문제가 있다.
예를 들어, 도 2 및 도 3에 도시된 바와 같이, 데드라인 순서로 요청 큐(Q)에 정렬되어 있는 요청들 R1~R4을 처리하는 경우에, 종래의 디스크 스케줄러는, 데드라인이 서로 근접해 있는 요청들 R1, R2, R3를 순서대로 처리하기 때문에(각 요청의 처리 시간 단위는 10으로 동등하다고 가정한다), 우선순위가 가장 빠른 요청 R3가 자신의 데드라인이 경과한 시점에서 지연 처리된다.
본 발명은, 데드라인이 서로 근접해 있는 요청들에 대한 효율적인 디스크 스케줄링 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은, 데드라인이 서로 근접해 있는 요청들에 대해서는 우선순위에 따라 해당 요청들을 처리함으로써, 데드라인과 우선순위를 동시에 그리고 효과적으로 만족시킬 수 있는 디스크 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 데드라인이 서로 근접해 있는 요청들에 대해서는 우선순위에 따라 해당 요청들을 처리함으로써, 데드라인 순서에 따른 처리 때문에 우선순가 빠른 요청이 지연되는 것을 방지할 수 있는 디스크 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 상기 목적들에 더하여, 요청들을 스캔 순서 큐와 데드라인 큐에 동시에 삽입시켜 정렬해 둠으로써, 스캔 순서 검색과 데드라인 검색에 필요한 시간을 최소화할 수 있는 디스크 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 디스크 스케줄링 방법은, 디스크 저장 매체로의 입/출력 동작에 관하여 우선순위와 데드라인을 갖는 요청들을 스케줄링하는 방법으로서, 데드라인에 따른 처리 시간이 서로 겹치는 요청들을 우선순위가 빠른 순서대로 정렬하는 과정과, 상기 정렬된 요청들을 우선순위에 따라 처리하는 과정을 포함한다.
또한, 본 발명의 디스크 스케줄링 방법은, 디스크 저장 매체로의 입/출력 동작에 관하여 우선순위와 데드라인을 갖는 요청들을 스케줄링 하는 방법으로서, 상기 요청들을 데드라인이 빨리 도달하는 순서대로 정렬하되, 데드라인에 따른 처리 시간이 서로 겹치는 요청들 사이에서는 해당 요청들을 우선순위가 빠른 순서대로 정렬하는 과정과, 상기 정렬된 순서에 따라 상기 요청들을 처리하는 과정을 포함한다.
이때, 상기 정렬 과정은, 상기 처리 시간이 서로 겹치는 요청들을 제1 요청 그룹으로 묶는 과정과, 상기 제1 요청 그룹의 처리 시간과 겹치는 다른 요청 또는 다른 요청 그룹이 존재하는 경우에는, 상기 다른 요청 또는 상기 다른 요청 그룹도 상기 제1 요청 그룹에 포함시키는 과정과, 상기 제1 요청 그룹 내의 요청들을 우선순위에 따라 정렬하는 과정을 포함할 수 있다.
따라서, 본 발명에 따르면, 데드라인이 서로 근접해 있는 요청들에 대해서는 우선순위에 따라 해당 요청들을 처리하기 때문에, 데드라인 순서에 따른 처리 때문에 우선순가 빠른 요청이 지연되는 것을 방지할 수 있다.
또한, 본 발명에서, 상기 처리 과정은, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 경우에는, 상기 디스크 저장 매체에 대한 스캔 순서에 따라 상기 요청들을 처리할 수 있다. 따라서, 본 발명에 따르면, 평소에는 스캔 순서에 의해 요청들을 처리하지만, 그 처리 도중에 데드라인에 도달하였거나 데드라인이 경과한 요청에 대해서는 우선적으로 해당 요청을 처리하기 때문에, 탐색 시간을 최소화하면서도 데드라인 순서를 고려하여 요청을 처리할 수 있다
또한, 본 발명에서, 상기 정렬 과정은, 상기 요청들을 데드라인 큐에 정렬함과 동시에, 상기 디스크 저장 매체에 대한 스캔 순서에 따라 스캔 순서 큐에도 정렬하고, 상기 처리 과정은, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 경우에는, 상기 스캔 순서에 따라 상기 스캔 순서 큐로부터 요청들을 처리하는 과정과, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하는 경우에는, 상기 데드라인 큐의 정렬 순서대로 해당 요청들을 처리하는 과정을 포함할 수 있다. 따라서, 본 발명에 따르면, 요청들이, 데드라인 순서와 스캔 순서에 따라 데드라인 큐와 스캔 순서 큐에 동시에 삽입되어 정렬되어 있기 때문에, 단일 요청 큐에 의한 요청들의 스캔순서 및 데드라인 순서의 검색/재정렬에 걸리는 시간을 줄일 수 있다.
본 발명의 디스크 스케줄링 장치는, 상기와 같은 디스크 스케줄링 방법을 수행하기 위한 요청 정렬기 및 요청 처리기를 포함한다.
본 발명에 따르면, 데드라인이 근접해 있는(즉 처리 시간이 서로 겹치는) 요청들을 그 우선순위에 따라 처리하기 때문에, 데드라인 순서에 따른 처리에 의해 우선순위가 빠른 요청이 지연되는 것을 방지할 수 있다.
또한, 본 발명에 따르면, 평소에는 스캔 순서에 의해 요청들을 처리하지만, 그 처리 도중에 데드라인에 도달하였거나 데드라인이 경과한 요청에 대해서는 우선적으로 해당 요청을 처리하기 때문에, 탐색 시간을 최소화하면서도 데드라인 순서를 고려하여 요청을 처리할 수 있다.
또한, 본 발명에 따르면, 요청들이, 데드라인 순서와 스캔 순서에 따라 데드라인 큐와 스캔 순서 큐에 동시에 삽입되어 정렬되어 있기 때문에, 단일 요청 큐에 의한 요청들의 스캔순서 및 데드라인 순서의 검색/재정렬에 걸리는 시간을 줄일 수 있다.
이하에서는, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.
<제1 실시예>
도 4에는, 본 실시예에 따른 디스크 스케줄링 장치(100)의 구성도가 개시되어 있다. 디스크 스케줄링 장치(100)는, 디스크(110)에 대한 읽기/쓰기 등의 동작을 위한 디스크 헤드(112)의 위치를 지정하는 데 필요한 명령을 제공하는 요청 처리기(120)와, 요청 처리기(120)에 의해 처리될 요청들이 정렬되어 있는 요청 큐(130)와, 입력되는 요청들을 정렬하여 요청 큐(130)에 삽입하는 요청 정렬기(140)를 포함한다. 각각의 요청(R1~Rn)에는 데드라인(D1~Dn), 우선순위(P1~Pn), 및 디스크(110) 상의 액세스 위치에 관한 정보가 연관되어 있다. 우선순위는 그 숫자가 작을수록 높다.
본 실시예에서, 요청 정렬기(140)는 입력되는 요청들을 데드라인 순서로 정렬하여 요청 큐(130)에 삽입한다. 요청 처리기(120)는, 요청 큐(130)의 선두 요청(R1)부터 순서대로 요청들을 처리한다. 새로운 요청이 입력되면, 요청 정렬기(140)는 새로운 요청의 데드라인에 따라 요청 큐의 적절한 위치에 새로운 요청을 삽입한다.
한편, 도 3에 도시된 바와 같이, 각 요청의 처리 시간 단위를 10이라고 가정했을 때, 요청 R1의 처리 시간 내에 요청 R2와 요청 R3의 데드라인이 속하게 되므로, 요청 R2와 요청 R3의 데드라인을 만족할 수 없게 된다. 특히, 요청 R3는 요청 R1과 요청 R2보다 우선순위가 높음에도 불구하고, 처리 시간이 지연된다. 이 문제를 해결하기 위해 본 실시예의 디스크 스케줄링 장치(100)는, 어느 요청의 처리 시간에 속하는 다른 요청을 그 어느 요청과 함께 하나의 그룹에 포함시키고, 그 그룹에 속하는 요청들은 각각의 우선순위에 따라 처리한다.
즉, 요청 정렬기(140)는, 도 5에 도시된 바와 같이, 서로 근접한 요청들 R1, R2, R3에 대해서는, 하나의 요청 그룹 RG1으로 묶고, 요청 그룹 RG1 내의 요청들에 대해서는 우선순위에 따라 해당 요청들을 재정렬한다. 요청 그룹 RG1의 데드라인은, 요청 그룹 RG1 자체가 하나의 데드라인을 갖도록, 그룹 내의 가장 빠른 요청의 데드라인(본 실시예에서는 '310')으로 설정된다. 요청 그룹 RG1의 처리 시간(본 실시예에서는 '30') 후에 데드라인이 오는 요청 R4는 후속하는 다른 요청들과 함께 별도의 요청 그룹을 형성할 수 있다. 따라서 요청 R1, R2, R3, R4는 도 6에 도시된 바와 같은 순서대로 요청 처리기(120)에 의해 처리된다.
새로운 요청 Rn이 입력되면, 요청 정렬기(140)는 요청 Rn을 그 데드라인에 따라 요청 큐(130)의 적절한 위치에 삽입한다. 이때, 도 7의 (a)에 도시된 바와 같이, 요청 Rn의 처리 시간이 요청 그룹 RG1의 처리 시간과는 겹치지 않지만 요청 R4의 처리 시간과 겹치는 경우에, 요청 R4와 요청 Rn은 새로운 요청 그룹 RG2를 구성한다. 요청 정렬기(140)는 요청 R4와 요청 Rn을 그 우선순위에 따라 재정렬하고, 요청 그룹 RG2의 데드라인은 요청 R4와 요청 Rn 중 빠른 데드라인으로 설정된다.
또한, 도 7의 (b)에 도시된 바와 같이, 요청 Rn의 처리 시간이 요청 RG1의 처리 시간과 겹치는 경우에는, 요청 Rn은 요청 그룹 R1에 새롭게 포함되고, 요청 정렬기(140)는 요청 Rn과 요청 R1, R2, R3를 그 우선순위에 따라 재정렬한다. 그런데, 요청 그룹 RG1의 처리 시간이 '40'으로 늘어났기 때문에, 요청 R4의 처리 시간은 요청 그룹 RG1의 처리 시간과 겹치게 된다. 따라서, 요청 R4도 요청 그룹 RG1에 속하게 된다. 결과적으로, 도 7의 (b)의 경우에는, 요청 R1, R2, R3, R4와 요청 Rn 모두 요청 그룹 RG1에 속하게 된다. 따라서 요청 정렬기(140)는 요청 R1, R2, R3, R4, 및 Rn을 그 우선순위에 따라 재정렬하고, 요청 그룹 RG1의 데드라인도 그에 따라 재설정된다.
이하에서는 도 8을 참조하여, 본 실시예에 따른 디스크 스케줄링 장치(100)의 동작을 설명한다.
처음에, 요청 큐(130)에는, 요청들 및 요청 그룹들이 데드라인 순서로 정렬되어 있고, 요청 그룹 내의 요청들은 우선순위에 따라 정렬되어 있으며, 요청들은 정렬된 순서대로 처리된다(S151).
사용자에 의한 새로운 디스크 입/출력 요청이 입력되면(S153), 요청 정렬기(140)는, 새로운 요청의 처리 시간이 기존 요청 또는 요청 그룹의 처리 시간과 겹치는지를 판정한다(S155). 판정 결과가 '아니오'이면, 요청 정렬기(140)는, 새로운 요청을 기존 요청들 또는 요청 그룹들과 함께 데드라인 순서로 재정렬한다(S157).
단계 S155의 판정 결과가 '예'이면, 요청 정렬기(140)는, 도 7의 (a)와 같이 새로운 요청과 기존 요청을 새로운 요청 그룹으로 묶거나, 도 7의 (b)와 같이 새로운 요청을 기존 요청 그룹에 포함시킨다(S161). 이어서 요청 정렬기(140)는, 요청 그룹 내의 요청들을 우선순위에 따라 재정렬한다(S163).
요청 처리기(120)는, 재정렬된 순서에 따라 요청들 및 요청 그룹들을 처리한다(S171). 즉, 요청 처리기(120)는, 요청들 및 요청 그룹들을 데드라인 순서로 처리하되, 요청 그룹 내의 요청들에 대해서는 우선순위에 따라 해당 요청들을 처리한다.
본 실시예에 따르면, 데드라인이 근접해 있는(즉 처리 시간이 서로 겹치는) 요청들을 그 우선순위에 따라 처리함으로써, 데드라인 순서에 따른 처리에 의해 우선순위가 빠른 요청이 지연되는 것을 방지할 수 있다.
<제2 실시예>
본 실시예가 제1 실시예와 다른 점은, 평소에는 스캔 순서에 따라 요청들을 처리하다가, 그 처리 도중에 데드라인에 도달한 요청에 대해서는 우선적으로 처리한다는 것이다. 그 밖에, 데드라인 순서에 따른 처리에 의해 처리 시간이 겹치게 되는 요청들을 그 우선순위에 따라 재정렬하고 처리하는 등의 프로세스는 제1 실시예와 동일하다.
도 9에는 본 실시예에 따른 디스크 스케줄링 장치(200)가 도시되어 있다. 이하에서는 제1실시예와 다른 부분에 대해서만 설명하고 동일한 부분에 대한 설명은 생략한다. 요청 정렬기(240)는, 디스크 헤드(212)의 트랙 횡단 방향(B)에 따른 스캔(SCAN) 순서에 의해 요청 큐(230)의 요청들 R1~R4를 정렬한다. 또한, 요청 정렬기(240)는, 스캔 순서에 따라 어느 요청이 처리된 시점에서, 데드라인에 도달했거나 데드라인이 경과한 요청 또는 요청 그룹을 요청 큐(230)로부터 검색하고, 검색 결과 그러한 요청 또는 요청 그룹이 없으면, 현재의 요청 큐(230)의 정렬 상태를 그대로 유지한다. 만약, 검색 결과 그러한 요청 또는 요청 그룹이 발견되었다면, 요청 정렬기(240)는, 발견된 요청 또는 요청 그룹이 우선적으로 처리될 수 있도록 요청 큐(230)를 재정렬한다.
한편, 요청 큐(230)를 재정렬하는 과정에서, 요청 정렬기(240)는 해당 요청 또는 요청 그룹을 제1 실시예에 따른 방식으로 요청 큐(230)에 재정렬한다. 요청 처리기(220)는, 요청 큐(230)로부터의 요청들을 정렬 순서에 따라 처리한다.
본 실시예에 따르면, 평소에는 스캔 순서에 의해 요청들을 처리하지만, 그 처리 도중에 데드라인에 도달하였거나 데드라인이 경과한 요청에 대해서는 우선적으로 해당 요청을 처리하기 때문에, 탐색 시간을 최소화하면서도 데드라인 순서를 고려하여 요청을 처리할 수 있다.
<제3 실시예>
본 실시예는, 단일의 요청 큐(230) 대신에 데드라인 큐(332)와 스캔 순서 큐(334)의 2개의 큐를 갖는 것이 특징이다. 그 밖의 기능들은 제2 실시예와 동일하다.
도 10에 따르면, 입력되는 요청들은 데드라인 큐(332)와 스캔 순서 큐(334)에 동시에 삽입된다. 요청 정렬기(340)는, 데드라인 큐(332)에 삽입되는 요청들을, 제1 실시예와 같은 방식으로 정렬한다. 즉 데드라인 큐(332)에 삽입되는 요청들은, 데드라인 순서에 따라 정렬되며, 다만 데드라인이 근접해 있는(즉 처리 시간이 서로 겹치는) 요청들은 그 우선순위에 따라 정렬된다. 요청 정렬기(340)는, 스캔 순서 큐(334)에 삽입되는 요청들을 스캔 순서에 따라 정렬한다.
요청 처리기(320)는, 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 한, 스캔 순서 큐(334)로부터 요청들을 처리한다. 처리 도중에, 데드라인에 도달했거나 데드라인이 경과한 요청이 데드라인 큐(332)로부터 발견되면, 요청 처리기(320)는, 데드라인 큐(332)로부터 요청들을 처리한다. 요청 처리기(320)에 의해 처리된 요청은, 데드라인 큐(332)및 스캔 순서 큐(334)로부터 제거된다.
본 실시예에 따르면, 데드라인 큐(332)와 스캔 순서 큐(334)가 각각의 정렬 방식에 따라 요청들을 정렬해 두고 있기 때문에, 스캔 순서에 의해 어느 요청이 처리될 때마다, 요청들의 데드라인 순서를 검색하여 재정렬하는 데 걸리는 시간을 줄일 수 있다.
앞서 설명한 본 발명의 실시예는 구체적인 구성과 도면에 의해 특정되었지만, 그러한 구체적인 실시예가 본 발명의 범위를 제한하는 것이 아니라는 점을 명확히 하고자 한다. 따라서, 본 발명은, 본 발명의 본질을 벗어나지 않는 다양한 변형예와 그 균등물들을 포함하는 것으로 이해되어야 한다.
도 1은 종래의 탐색 기반 디스크 스케줄링 알고리즘의 개념도이다.
도 2는 요청들이 데드라인 순서로 요청 큐에 정렬된 모습을 설명하기 위한 개념도이다.
도 3은 데드라인 순서대로 요청이 처리되는 시간 흐름도이다.
도 4는 본 발명의 제1 실시예에 따른 디스크 스케줄링 장치의 구성도이다.
도 5는 본 발명의 제1 실시예에 따른 요청 그룹의 생성을 설명하기 위한 개념도이다.
도 6은 본 발명의 제1 실시예에 따라 요청들이 처리되는 시간 흐름도이다.
도 7은 본 발명의 제1 실시예에 따라 새로운 요청을 재정렬하는 것을 보여주는 개념도이다.
도 8은 본 발명의 제1 실시예에 따른 디스크 스케줄링 방법의 흐름도이다.
도 9는 본 발명의 제2 실시예에 따른 디스크 스케줄링 장치의 구성도이다.
도 10은 본 발명의 제3 실시예에 따른 디스크 스케줄링 장치의 구성도이다.
Claims (10)
- 디스크 저장 매체로의 입/출력 동작에 관하여 우선순위와 데드라인을 갖는 요청들을 스케줄링하는 방법으로서,데드라인에 따른 처리 시간이 서로 겹치는 요청들을 우선순위가 빠른 순서대로 정렬하는 과정과,상기 정렬된 요청들을 우선순위에 따라 처리하는 과정을 포함하는, 디스크 스케줄링 방법.
- 제1항에 있어서,상기 정렬 과정은, 상기 처리 시간이 서로 겹치는 요청들을 제1 요청 그룹으로 묶는 과정과, 상기 제1 요청 그룹의 처리 시간과 겹치는 다른 요청 또는 다른 요청 그룹이 존재하는 경우에는, 상기 다른 요청 또는 상기 다른 요청 그룹도 상기 제1 요청 그룹에 포함시키는 과정과, 상기 제1 요청 그룹 내의 요청들을 우선순위에 따라 정렬하는 과정을 포함하는, 디스크 스케줄링 방법.
- 디스크 저장 매체로의 입/출력 동작에 관하여 우선순위와 데드라인을 갖는 요청들을 스케줄링 하는 방법으로서,상기 요청들을 데드라인이 빨리 도달하는 순서대로 정렬하되, 데드라인에 따른 처리 시간이 서로 겹치는 요청들 사이에서는 해당 요청들을 우선순위가 빠른 순 서대로 정렬하는 과정과,상기 정렬된 순서에 따라 상기 요청들을 처리하는 과정을 포함하는, 디스크 스케줄링 방법.
- 제3항에 있어서,상기 정렬 과정은, 상기 처리 시간이 서로 겹치는 요청들을 제1 요청 그룹으로 묶는 과정과, 상기 제1 요청 그룹의 처리 시간과 겹치는 다른 요청 또는 다른 요청 그룹이 존재하는 경우에는, 상기 다른 요청 또는 상기 다른 요청 그룹도 상기 제1 요청 그룹에 포함시키는 과정과, 상기 제1 요청 그룹 내의 요청들을 우선순위가 빠른 순서대로 정렬하는 과정을 포함하는, 디스크 스케줄링 방법.
- 제3항 또는 제4항에 있어서,상기 처리 과정은, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 경우에는, 상기 디스크 저장 매체에 대한 스캔 순서에 따라 상기 요청들을 처리하는, 디스크 스케줄링 방법.
- 제3항 또는 제4항에 있어서,상기 정렬 과정은, 상기 요청들을 데드라인 큐에 정렬함과 동시에, 상기 디스크 저장 매체에 대한 스캔 순서에 따라 스캔 순서 큐에도 정렬하고,상기 처리 과정은, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 경우에는, 상기 스캔 순서에 따라 상기 스캔 순서 큐로부터 요청들을 처리하는 과정과, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하는 경우에는, 상기 데드라인 큐의 정렬 순서대로 해당 요청들을 처리하는 과정을 포함하는, 디스크 스케줄링 방법.
- 디스크 저장 매체로의 입/출력 동작에 관하여 우선순위와 데드라인을 갖는 요청들을 스케줄링 하는 장치로서,상기 요청들을 데드라인이 빨리 도달하는 순서대로 정렬하되, 데드라인에 따른 처리 시간이 서로 겹치는 요청들 사이에서는 해당 요청들을 우선순위가 빠른 순서대로 정렬하는 요청 정렬기와,상기 정렬된 순서에 따라 상기 요청들을 처리하는 요청 처리기를 포함하는, 디스크 스케줄링 장치.
- 제7항에 있어서,상기 요청 정렬기는, 상기 처리 시간이 서로 겹치는 요청들을 제1 요청 그룹으로 묶고, 이어서 상기 제1 요청 그룹의 처리 시간과 겹치는 다른 요청 또는 다른 요청 그룹이 존재하는 경우에는, 상기 다른 요청 또는 상기 다른 요청 그룹도 상기 제1 요청 그룹에 포함시키며, 이어서 상기 제1 요청 그룹 내의 요청들을 우선순위가 빠른 순서대로 정렬하는, 디스크 스케줄링 장치.
- 제7항 또는 제8항에 있어서,상기 요청 처리기는, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 경우에는, 상기 디스크 저장 매체에 대한 스캔 순서에 따라 상기 요청들을 처리하는, 디스크 스케줄링 장치.
- 제7항 또는 제8항에 있어서,상기 요청 정렬기는, 상기 요청들을 데드라인 큐에 정렬함과 동시에, 상기 디스크 저장 매체에 대한 스캔 순서에 따라 스캔 순서 큐에도 정렬하고,상기 요청 처리기는, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하지 않는 경우에는, 상기 스캔 순서에 따라 상기 스캔 순서 큐로부터 요청들을 처리하고, 현 시점에서 데드라인에 도달했거나 데드라인이 경과한 요청이 존재하는 경우에는, 상기 데드라인 큐의 정렬 순서대로 해당 요청들을 처리하는, 디스크 스케줄링 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070103073A KR100927190B1 (ko) | 2007-10-12 | 2007-10-12 | 디스크 스케줄링 방법 및 장치 |
US12/121,574 US20090100433A1 (en) | 2007-10-12 | 2008-05-15 | Disk scheduling method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070103073A KR100927190B1 (ko) | 2007-10-12 | 2007-10-12 | 디스크 스케줄링 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090037638A true KR20090037638A (ko) | 2009-04-16 |
KR100927190B1 KR100927190B1 (ko) | 2009-11-18 |
Family
ID=40535456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070103073A KR100927190B1 (ko) | 2007-10-12 | 2007-10-12 | 디스크 스케줄링 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090100433A1 (ko) |
KR (1) | KR100927190B1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151008B2 (en) * | 2008-07-02 | 2012-04-03 | Cradle Ip, Llc | Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling |
US8539176B2 (en) * | 2008-07-08 | 2013-09-17 | HGST Netherlands B.V. | Data storage devices accepting queued commands having deadlines |
US8407440B2 (en) * | 2008-07-08 | 2013-03-26 | HGST Netherlands B.V. | Techniques for scheduling requests for accessing storage devices using sliding windows |
EP2438513B1 (en) * | 2009-06-03 | 2015-03-18 | Hewlett Packard Development Company, L.P. | Scheduling realtime information storage system access requests |
JP5752267B2 (ja) * | 2011-01-11 | 2015-07-22 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | 同時要求スケジューリング |
US8930601B2 (en) * | 2012-02-27 | 2015-01-06 | Arm Limited | Transaction routing device and method for routing transactions in an integrated circuit |
GB2540809B (en) * | 2015-07-29 | 2017-12-13 | Advanced Risc Mach Ltd | Task scheduling |
US10025531B2 (en) | 2015-09-10 | 2018-07-17 | HoneycombData Inc. | Reducing read command latency in storage devices |
CN108369691A (zh) * | 2015-12-16 | 2018-08-03 | 索尼移动通讯有限公司 | 安排会议的方法以及非暂时性计算机可读记录介质 |
CN107291548B (zh) * | 2016-03-31 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 任务的资源调度方法及装置 |
US11886922B2 (en) * | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US11893268B2 (en) | 2022-01-19 | 2024-02-06 | Seagate Technology Llc | Opportunistic command scheduling |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0594871A1 (en) * | 1992-10-09 | 1994-05-04 | Fujitsu Limited | Multi-media scheduling system |
US6263411B1 (en) * | 1996-09-20 | 2001-07-17 | Matsushita Electric Industrial Co., Ltd. | Video server scheduling for simultaneous read-write requests |
US6078998A (en) * | 1997-02-11 | 2000-06-20 | Matsushita Electric Industrial Co., Ltd. | Real time scheduling of prioritized disk requests |
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 |
US6691208B2 (en) * | 1999-03-12 | 2004-02-10 | Diva Systems Corp. | Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content |
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 |
US6721789B1 (en) * | 1999-10-06 | 2004-04-13 | Sun Microsystems, Inc. | Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests |
US6496899B1 (en) * | 2000-02-28 | 2002-12-17 | Sun Microsystems, Inc. | Disk scheduling system with bounded request reordering |
US6871011B1 (en) * | 2000-09-28 | 2005-03-22 | Matsushita Electric Industrial Co., Ltd. | Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority |
CN1251078C (zh) * | 2000-11-09 | 2006-04-12 | 皇家菲利浦电子有限公司 | 用于确定周期任务的最好情况响应时间的方法和*** |
US6728792B2 (en) * | 2001-01-04 | 2004-04-27 | International Business Machines Corporation | Priority queue with arbitrary queuing criteria |
US7073021B2 (en) * | 2003-03-21 | 2006-07-04 | Seagate Technology Llc | Semantically-aware, dynamic, window-based disc scheduling method and apparatus for better fulfilling application requirements |
KR100524763B1 (ko) * | 2003-07-23 | 2005-10-31 | 엘지전자 주식회사 | 개선된 edf 스케쥴링 방법 |
US7206866B2 (en) * | 2003-08-20 | 2007-04-17 | Microsoft Corporation | Continuous media priority aware storage scheduler |
US7793294B2 (en) * | 2005-02-22 | 2010-09-07 | Northrop Grumman Corporation | System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task |
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 |
US8127294B2 (en) * | 2007-05-22 | 2012-02-28 | Intel Corporation | Disk drive for handling conflicting deadlines and methods thereof |
US8112566B2 (en) * | 2007-06-06 | 2012-02-07 | Intel Corporation | Methods and apparatuses for processing I/O requests of data storage devices |
US8051232B2 (en) * | 2007-06-25 | 2011-11-01 | Intel Corporation | Data storage device performance optimization methods and apparatuses |
-
2007
- 2007-10-12 KR KR1020070103073A patent/KR100927190B1/ko not_active IP Right Cessation
-
2008
- 2008-05-15 US US12/121,574 patent/US20090100433A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20090100433A1 (en) | 2009-04-16 |
KR100927190B1 (ko) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100927190B1 (ko) | 디스크 스케줄링 방법 및 장치 | |
KR101086514B1 (ko) | 연속 매체 우선순위 인식 저장장치 스케줄러 | |
US7277982B2 (en) | DRAM access command queuing structure | |
KR100415861B1 (ko) | 디스크 제어기로부터 디스크 드라이브로 명령을 보낼것인가를 판단하는 방법, 디스크 제어기 및 프로그램을저장하는 기록매체 | |
US9043512B1 (en) | Method for combining non-latency-sensitive and latency-sensitive input and output | |
US8108571B1 (en) | Multithreaded DMA controller | |
US20120222043A1 (en) | Process Scheduling Using Scheduling Graph to Minimize Managed Elements | |
JP6076686B2 (ja) | デジタル信号処理のデータ転送 | |
US9747132B2 (en) | Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions | |
US20150253992A1 (en) | Memory system and control method | |
CN101763251A (zh) | 多线程微处理器的指令译码缓冲装置 | |
US11403139B2 (en) | Information processing device, storage system, and non-transitory computer-readable storage medium for storing scheduling program | |
US20160117118A1 (en) | System and methods for processor-based memory scheduling | |
JP5697195B2 (ja) | アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法 | |
JP2008090507A (ja) | ジョブ実行のスケジューリングプログラム、ジョブ実行のスケジューリング方法、ジョブ実行のスケジューリング装置 | |
US20060146864A1 (en) | Flexible use of compute allocation in a multi-threaded compute engines | |
JP5521610B2 (ja) | 入出力制御装置、入出力制御方法 | |
CN105610733B (zh) | 队列调度处理方法和*** | |
CN1245921A (zh) | 事件驱动与循环的前后关系控制器及其应用处理器 | |
JP2012079272A (ja) | 録画再生装置、i/oスケジューリング方法、及びプログラム | |
JP4754531B2 (ja) | デバイスへのアクセス制御方法および処理装置 | |
CN101673219A (zh) | 多任务处理器及其任务切换方法 | |
CN111045959A (zh) | 一种基于存储优化的复杂算法变量映射方法 | |
KR101254911B1 (ko) | 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체 | |
US11573824B2 (en) | Data storage device and operating method thereof |
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: 20121031 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20131024 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20141027 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20151028 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |