KR101179628B1 - 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템 - Google Patents

구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템 Download PDF

Info

Publication number
KR101179628B1
KR101179628B1 KR1020090018886A KR20090018886A KR101179628B1 KR 101179628 B1 KR101179628 B1 KR 101179628B1 KR 1020090018886 A KR1020090018886 A KR 1020090018886A KR 20090018886 A KR20090018886 A KR 20090018886A KR 101179628 B1 KR101179628 B1 KR 101179628B1
Authority
KR
South Korea
Prior art keywords
disk
tokens
time slice
bandwidth
group
Prior art date
Application number
KR1020090018886A
Other languages
English (en)
Other versions
KR20100100162A (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 한국전자통신연구원
Priority to KR1020090018886A priority Critical patent/KR101179628B1/ko
Priority to US12/569,859 priority patent/US20100228886A1/en
Priority to CN2009102265716A priority patent/CN101825991B/zh
Publication of KR20100100162A publication Critical patent/KR20100100162A/ko
Application granted granted Critical
Publication of KR101179628B1 publication Critical patent/KR101179628B1/ko

Links

Images

Classifications

    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/10Program control for peripheral devices
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템에 관한 것으로서, 일면에 따른 디스크 입출력 제어 방법은 디스크 입출력의 처리 단위인 토큰이 소모된 개수를 검출하는 단계; 및 기설정된 디스크 입출력 최소 대역폭 및 디스크 입출력 최대 대역폭을 근거로 상기 토큰이 소모된 개수에 따라 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 단계를 포함한다.
스케줄러, 디스크 입출력, 토큰, 입출력 모드

Description

구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템{METHOD AND SYSTEM USING RANGE BANDWIDTH FOR CONTROLLING DISK I/O}
본 발명은 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템에 관한 것으로서, 보다 구체적으로는 각 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최소 및 최대 대역폭에 근거하여 각 프로세스 또는 프로세스 그룹별로 요청된 디스크 입출력의 처리를 위한 입출력 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2008-F-026-01,과제명:공개 SW 플랫폼 고도화를 위한 리눅스 커널 기술개발].
다수의 프로세스 또는 프로세스 그룹에 대한 일반적인 디스크 입출력 제어 방법으로 각 프로세스 또는 프로세스 그룹별 중요도에 따라 가중치를 부여하고, 중요도가 낮은 프로세스 또는 프로세스 그룹보다 더 큰 가중치를 갖는 프로세스 또는 프로세스 그룹에 보다 많은 입출력 대역폭을 할당하는 방식을 들 수 있다.
이러한 방식은 각 프로세스 또는 프로세스 그룹별 가중치에 따라 어느 정도 의 입출력 대역폭이 할당될지 예상하기 어려운 문제점이 있다.
또 다른 방법으로 각 프로세스 또는 프로세스 그룹별 중요도에 따라 입출력 대역폭을 비율적으로 할당할 수 있는 방식도 있으나 이 또한 각 프로세스 또는 프로세스 그룹별 할당될 입출력 대역폭을 정확하게 파악하기 어렵고, 디스크 입출력 시스템의 사양에 따라 할당되는 대역폭이 달라지는 특성이 있어 이 또한 디스크 입출력 성능 및 Qos를 보장해야 하는 디스크 입출력 시스템에 문제점으로 작용될 수 있다.
본 발명은 상기와 같은 문제점을 감안하여 창출한 것으로서, 입출력을 요청한 각 프로세스 또는 프로세스 그룹별 기설정된 디스크 입출력 최소 및 최대 대역폭에 근거하여 각 프로세스 또는 프로세스 그룹별로 예상가능한 입출력 대역폭을 제공할 수 있는 디스크 입출력 제어 방법 및 시스템을 제공하는 데 그 목적이 있다.
본 발명의 다른 목적은 디스크 입출력 시스템의 노화 등으로 인한 시스템 교체 및 업그레이드 시에도 설정 변경 없이 동일한 입출력 대역폭을 제공할 수 있는 디스크 입출력 제어 방법 및 시스템을 제공함에 있다.
전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 디스크 입출력 제어 방법은 디스크 입출력의 처리 단위인 토큰이 소모된 개수를 검출하는 단계; 및 기설정된 디스크 입출력 최소 대역폭 및 디스크 입출력 최대 대역폭을 근거로 상기 토큰이 소모된 개수에 따라 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 단계를 포함한다.
본 발명의 다른 면에 따른 디스크 입출력을 요청한 다수의 프로세스 또는 프로세스 그룹들 간의 디스크 입출력 제어 방법은 상기 디스크 입출력의 처리 단위인 토큰이 소모된 개수를 상기 프로세스 또는 프로세스 그룹별로 검출하는 단계; 및 상기 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스 크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 프로세스 또는 프로세스 그룹이 존재하면, 상기 다수의 프로세스 또는 프로세스 그룹들 간에 정해진 순서로 상기 각 프로세스 또는 프로세스 그룹별로 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 단계를 포함한다.
본 발명의 또 다른 면에 따른 디스크 입출력을 요청한 다수의 프로세스 또는 프로세스 그룹들 간의 디스크 입출력 제어 시스템은 상기 디스크 입출력의 처리 단위인 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 경우가 존재하는지 여부를 판단하는 판단부; 및 상기 판단부의 판단 결과, 상기 초과하지 않는 경우가 존재하면, 상기 다수의 프로세스 또는 프로세스 그룹들 간에 정해진 순서로 상기 각 프로세스 또는 프로세스 그룹별로 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 타임 슬라이스부를 포함한다.
본 발명에 따르면, 입출력을 요청한 각 프로세스 또는 프로세스 그룹별 기설정된 디스크 입출력 최소 및 최대 대역폭에 근거하여 각 프로세스 또는 프로세스 그룹별로 예상 가능한 입출력 구간 대역폭을 제공할 수 있도록 함으로써, 디스크 입출력에 대한 서비스 성능 및 품질을 보장할 수 있는 효과가 있다.
특히 디스크 입출력에 대한 서비스 성능 및 품질을 보장할 수 있어서 제한된 입출력 대역폭을 효율적으로 사용할 수 있는 이점이 있다.
또한, 디스크 입출력 시스템의 노화 등으로 인한 시스템 교체 및 업그레이드 시에도 설정 변경 없이 동일한 입출력 대역폭을 제공할 수 있어서 편리하게 관리할 수 있는 이점이 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
또한 명세서 전반에 걸쳐 프로세스 그룹은 특정 서비스를 지원하는데 있어서 업무가 서로 연관된 프로세스들이나 동일한 관리 정책하에 수행되어야 하는 요구 사항을 갖는 프로세스들을 묶어 놓은 것을 의미할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 대하여 상세하게 설명한다.
도 1 및 도 2를 참조하여 본 발명의 일실시예에 따른 디스크 입출력 제어 방법을 설명한다.
도 1은 본 발명의 일실시예에 따른 디스크 입출력 제어 방법을 설명하기 위한 흐름도이고, 도 2는 본 발명의 일실시예에 따른 디스크 입출력 제어 방법을 지역 입출력 모드에 결부시켜 지역 입출력 모드의 변화를 설명한 도면이다.
도 1에 도시된 바와 같이, 디스크 입출력을 제어하는 디스크 입출력 스케줄러는 디스크 입출력을 처리하기 위해 디스크 입출력의 처리 단위인 토큰이 소모된 개수를 검출한다(S100). 즉, 디스크 입출력 스케줄러는 프로세스 또는 프로세스 그룹에 의해 요청된 디스크 입출력 처리에 얼마만큼의 토큰이 사용되었는지를 검출한다.
예컨대, 임의의 프로세스 또는 프로세스 그룹에 할당된 입출력 대역폭이 40MBps이고 토큰이 512 바이트마다 1개씩 소모되는 경우, 초당 디스크 입출력에 소모될 수 있는 총 토큰 개수는 81,920개가 될 수 있다. 디스크 입출력 스케줄러는 프로세스 또는 프로세스 그룹에 할당된 총 토큰 개수(81,920개)에서 수행된 입출력 량(예컨대, 20M바이트)에 따라 토큰 개수(예컨대, 40960개)를 감산하고, 토큰의 잔량(예컨대, 40960개)에 근거하여 소모된 토큰 개수를 검출할 수 있다.
프로세스 또는 프로세스 그룹의 중요도(예컨대, 프로세스 또는 프로세스 그룹에서 담당하는 서비스 기능 등)에 따라 시스템 관리자에 의해 기설정된 디스크 입출력 최소 대역폭(예컨대, 40MBps) 및 디스크 입출력 최대 대역폭(예컨대, 80Mbps)을 근거로 디스크 입출력 스케줄러는 토큰이 소모된 개수에 따라 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당한다.
여기서 디스크 입출력 최소 대역폭은 프로세스 또는 프로세스 그룹이 수행하 는 서비스의 QoS를 보장하기 위하여 요구되는 최소한의 입출력 대역폭으로서, 반드시 보장되어야하는 입출력 대역폭을 의미할 수 있다. 디스크 입출력 최대 대역폭은 프로세스 또는 프로세스 그룹이 요청한 디스크 입출력을 처리하는데 초과하면 안 되는 입출력 대역폭으로서, 제한되어야 하는 입출력 대역폭을 의미할 수 있다.
기설정된 디스크 입출력 최소 대역폭 및 디스크 입출력 최대 대역폭을 근거로 디스크 입출력 스케줄러가 토큰이 소모된 개수에 따라 타임 슬라이스를 할당하는 방법을 구체적인 예를 들어 설명한다.
먼저, 토큰이 소모된 개수가 디스크 입출력 최소 대역폭(40MBps)에 대응하는 최소 입출력 토큰 개수(81,920개)보다 작거나 같을 경우(S110), 디스크 입출력 스케줄러는 디스크 입출력을 처리하기 위하여 디스크 입출력 최소 대역폭의 크기(예컨대, 최소 입출력 토큰 개수)에 비례하는 타임 슬라이스를 할당할 수 있다(S120).
여기서 비례하는 타임 슬라이스는 다음과 같을 수 있다.
비례하는 타임 슬라이스 = 타임 슬라이스의 기본 단위 + {타임 슬라이스의 기본 단위*(최소 입출력 토큰 개수/ 사용 가능한 총 토큰 개수)}
사용 가능한 총 토큰 개수는 디스크 입출력을 요청한 프로세스 또는 프로세스 그룹이 적어도 둘 이상일 경우, 각 프로세스 또는 프로세스 그룹에 대한 디스크 입출력을 처리하기 위해 각각 할당된 토큰 수를 모두 가산 연산한 토큰 수를 의미할 수 있고, 사용 가능한 총 토큰은 특정 프로세스 또는 프로세스 그룹에 의해 요청된 디스크 입출력만을 처리하기 위해 사용될 수 있다.
또한 비례하는 타임 슬라이스는 최소 대역폭이 큰 프로세스 또는 프로세스 그룹에 대한 디스크 입출력을 처리할 때 그렇지 않은 프로세스 또는 프로세스 그룹에 대한 디스크 입출력을 처리할 때보다 많이 할당될 수 있다.
또는, 토큰이 소모된 개수가 디스크 입출력 최소 대역폭(40MBps)에 대응하는 최소 입출력 토큰 개수(81,920개)보다 크고, 디스크 입출력 최대 대역폭(80MBps)에 대응하는 최대 입출력 토큰 개수(163,840개)보다 작거나 같을 경우(S130), 디스크 입출력 스케줄러는 타임 슬라이스를 줄여[예컨대, 타임 슬라이스의 기본단위가 (20~25)tick 일 경우, (타임 슬라이스의 기본 단위)/5 ] 할당할 수 있다(S140).
즉, 토큰이 소모된 개수가 디스크 입출력 최소 대역폭(40MBps)에 대응하는 최소 입출력 토큰 개수(81,920개)보다 크고, 디스크 입출력 최대 대역폭(80MBps)에 대응하는 최대 입출력 토큰 개수(163,840개)보다 작거나 같을 경우, 디스크 입출력 스케줄러는 프로세스 또는 프로세스 그룹에 대한 디스크 입출력을 처리할 때 기설정된 타임 슬라이스의 기본단위[(20~25)tick]보다 작은 타임 슬라이스[(4~5)tick]가 할당되도록 타임 슬라이스를 줄여 할당할 수 있고, 줄어든 타임 슬라이스[(16~20)tick]만큼 다른 프로세스 또는 다른 프로세스 그룹에 대한 디스크 입출력을 처리할 때 타임 슬라이스를 늘려 할당할 수 있다.
또는, 토큰이 소모된 개수가 디스크 입출력 최대 대역폭(80MBps)에 대응하는 최대 입출력 토큰 개수(163,840개)보다 클 경우, 디스크 입출력 스케줄러는 타임 슬라이스를 할당하지 않을 수 있다(S150).
즉, 토큰이 소모된 개수가 디스크 입출력 최대 대역폭(80MBps)에 대응하는 최대 입출력 토큰 개수(163,840개)보다 클 경우, 해당 프로세스 또는 프로세스 그 룹에 할당되지 않은 타임 슬라이스를 다른 프로세스 또는 다른 프로세스 그룹에 의해 요청된 디스크 입출력 처리에 할당할 수 있다.
전술한 바와 같이, 어느 특정 프로세스 또는 프로세스 그룹이 요청한 디스크 입출력 처리에 많은 타임 슬라이스를 할당할 경우, 디스크 입출력 스케줄러는 다른 프로세스 또는 프로세스 그룹에서 요청한 디스크 입출력 처리에 상대적으로 적은 타임 슬라이스를 할당함으로써 제한적인 디스크의 입출력 대역폭을 효율적으로 사용할 수 있고, 각 프로세스 또는 프로세스 그룹별로 예상 가능한 입출력 대역폭을 제공할 수 있다.
도 2를 참조하여 전술한 디스크 입출력 제어 방법을 좀더 구체적으로 설명한다.
도 2에는 Nsec에서 N+1sec까지, 1초 동안 디스크 입출력 스케줄러가 프로세스 또는 프로세스 그룹(PA)에 의해 요청된 디스크 입출력을 처리할 경우, 처리 시간 경과에 따라 토큰이 소모된 개수에 대응하여 지역 입출력 모드의 변화가 도시되어 있다.
도 2에 도시된 바와 같이, 지역 입출력 모드(I/O Mode)는 프로세스 또는 프로세스 그룹(예컨대, PA)에 의해 요청된 디스크 입출력의 처리 상태를 나타낸 것으로서, L_MINBW_IO 모드(210), L_RANGE_IO 모드(211) 및 L_NO_IO 모드(212)로 구분한다.
지역 입출력 모드(I/O Mode)는 매 1초마다 동일한 패턴, 예컨대 L_MINBW_IO 모드(210)에 있거나 L_MINBW_IO 모드(210)에서 L_RANGE_IO 모드(211)로 변화하거나 L_RANGE_IO 모드(211)에서 L_NO_IO 모드(212)로 변화하는 것 중에 어느 하나를 반복한다.
또한 매 1초의 시작점(201) 또는 종료점(202)에서 입출력에 참여하는 모든 프로세스 또는 프로세스 그룹의 타임 슬라이스, 토큰이 소모된 개수 및 입출력 모드에 대한 초기화 작업이 이루어진다.
L_MINBW_IO 모드(210)는 토큰이 소모된 개수가 디스크 입출력 최소 대역폭(40MBps)에 대응하는 최소 입출력 토큰 개수(81,920개)보다 작거나 같을 경우의 지역 입출력 모드(I/O Mode)이다. 디스크 입출력 스케줄러는 L_MINBW_IO 모드(210)에서 프로세스 또는 프로세스 그룹(PA)에 의해 요청된 디스크 입출력 처리를 위해 디스크 입출력 최소 대역폭의 크기(예컨대, 최소 입출력 토큰 개수)에 비례하는 타임 슬라이스를 할당할 수 있다.
L_RANGE_IO 모드(211)는 토큰이 소모된 개수가 디스크 입출력 최소 대역폭(40MBps)에 대응하는 최소 입출력 토큰 개수(81,920개)보다 크고, 디스크 입출력 최대 대역폭(80MBps)에 대응하는 최대 입출력 토큰 개수(163,840개)보다 작거나 같을 경우의 지역 입출력 모드(I/O Mode)이다. 디스크 입출력 스케줄러는 L_RANGE_IO 모드(211)에서 프로세스 또는 프로세스 그룹(PA)에 의해 요청된 디스크 입출력 처리를 위한 타임 슬라이스를 줄여[예컨대, 타임 슬라이스의 기본단위가 (20~25)tick 일 경우, (타임 슬라이스의 기본 단위)/5 ] 할당할 수 있다.
L_NO_IO 모드(212)는 토큰이 소모된 개수가 디스크 입출력 최대 대역폭(80MBps)에 대응하는 최대 입출력 토큰 개수(163,840개)보다 클 경우의 지역 입 출력 모드(I/O Mode)이다. 디스크 입출력 스케줄러는 L_NO_IO 모드(212)에서 프로세스 또는 프로세스 그룹(PA)에 의해 요청된 디스크 입출력 처리를 위한 타임 슬라이스를 할당하지 않을 수 있다.
디스크 입출력 처리의 시작 시점에서의 지역 입출력 모드(I/O Mode)는 L_MINBW_IO 모드(210)일 수 있다.
디스크 입출력 처리 시간이 MinBW(203) 지점에 다다르거나 다다르기 전인 경우, 즉 디스크 입출력 처리 시간이 최대 M1이하면, 이때의 지역 입출력 모드(I/O Mode)는 L_MINBW_IO 모드(210)이므로, 디스크 입출력 스케줄러는 디스크 입출력 최소 대역폭의 크기(예컨대, 최소 입출력 토큰 개수)에 비례하는 타임 슬라이스를 할당할 수 있다.
디스크 입출력 처리 시간이 MinBW(203)을 경과하여 MaxBW(204) 지점에 다다르거나 다다르기 전인 경우, 즉 디스크 입출력 처리 시간이 M1을 경과하여 최대 M2이하면, 이때의 지역 입출력 모드(I/O Mode)는 L_RANGE_IO 모드(211)이므로, 디스크 입출력 스케줄러는 L_RANGE_IO 모드(211)에서 타임 슬라이스를 줄여[예컨대, 타임 슬라이스의 기본단위가 (20~25)tick 일 경우, (타임 슬라이스의 기본 단위)/5 ] 할당할 수 있다.
디스크 입출력 처리 시간이 MaxBW(204)를 경과한 경우, 즉 디스크 입출력 처리 시간이 M2를 경과하여 최대 M3이하면, 이때의 지역 입출력 모드(I/O Mode)는 L_NO_IO 모드(212)이므로, 디스크 입출력 스케줄러는 타임 슬라이스를 할당하지 않을 수 있다.
도 3 및 도 4를 참조하여 본 발명의 다른 실시예에 따른 디스크 입출력 제어 방법을 설명한다.
도 3은 본 발명의 다른 실시예에 따른 디스크 입출력 제어 방법을 설명하기 위한 흐름도이고, 도 4는 본 발명의 다른 실시예에 따른 디스크 입출력 제어 방법을 전역 입출력 모드에 결부시켜 전역 입출력 모드의 변화를 설명한 도면이다.
도 3에 도시된 바와 같이, 다수의 프로세스 또는 프로세스 그룹들에 의해 요청된 디스크 입출력들을 제어하는 디스크 입출력 스케줄러는 개별 프로세스 또는 개별 프로세스 그룹마다 디스크 입출력 처리에 사용된 토큰이 소모된 개수(예컨대, 사용된 토큰의 개수)를 검출한다(S300).
디스크 입출력 스케줄러는 각각에 대해 검출된 토큰이 소모된 개수가 모두 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하였는지를 판단한다(S310).
판단결과 초과하였을 경우, 디스크 입출력 스케줄러는 정해진 순서, 즉 우선순위 없이 각 프로세스 또는 프로세스 그룹별로 타임 슬라이스를 할당한다(S320).
즉, 디스크 입출력 스케줄러는 각 프로세스 또는 프로세스 그룹마다 동일한 타임 슬라이스를 랜덤하게 할당할 수 있다.
그러나, 판단결과, 초과하지 않은 프로세스 또는 프로세스 그룹이 하나 이상 존재하는 경우, 디스크 입출력 스케줄러는 다수의 프로세스 또는 프로세스 그룹들 간에 차별적인 타임 슬라이스를 할당하기 위해 순서를 정한다(S330).
디스크 입출력 스케줄러는 토큰이 소모된 개수가 최소 입출력 토큰 개수를 초과하지 않은 프로세스 또는 프로세스 그룹을 최우선으로 정하고, 디스크 입출력 최소 대역폭이 설정되지 않은 프로세스 또는 프로세스 그룹을 다음 순서로 정하며, 토큰이 소모된 개수가 최소 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹을 그 다음 순서로 정하고, 토큰이 소모된 개수가 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹을 그 다음 순서로 다수의 프로세스 또는 프로세스 그룹들 간에 우선순위를 정할 수 있다.
디스크 입출력 스케줄러는 입출력 최소 대역폭을 만족하지 않은 프로세스 또는 프로세스 그룹들 간에는 디스크 입출력 최소 대역폭이 큰 프로세스 또는 프로세스 그룹에게 더 높은 우선순위를 부여할 수 있다.
디스크 입출력 스케줄러는 전술한 바와 같이 정해진 순서대로 타임 슬라이스를 할당한다(S340).
타임 슬라이스를 할당함에 있어서 디스크 입출력 스케줄러는 토큰이 소모된 개수가 최소 입출력 토큰 개수보다 작거나 같을 경우, 디스크 입출력 최소 대역폭의 크기에 비례하는 타임 슬라이스를 할당할 수 있다.
토큰이 소모된 개수가 상기 최소 입출력 토큰 개수보다 크고, 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수보다 작거나 같을 경우, 디스크 입출력 스케줄러는 기설정된 타임 슬라이스의 기본 단위보다 작은 타임 슬라이스를 할당할 수 있다.
토큰이 소모된 개수가 최대 입출력 토큰 개수보다 클 경우, 디스크 입출력 스케줄러는 타임 슬라이스를 할당하지 않을 수 있다.
즉, 순서가 높은 특정 프로세스 또는 프로세스 그룹이 요청한 디스크 입출력 처리에 타임 슬라이스를 늘려 할당할 경우, 순서가 낮은 프로세스 또는 프로세스 그룹에서 요청한 디스크 입출력 처리에는 순서가 높은 특정 프로세스 또는 프로세스 그룹이 요청한 디스크 입출력 처리에 늘어난 타임 슬라이스만큼 타임 슬라이스를 줄여 할당함으로써 제한적인 디스크의 입출력 대역폭을 효율적으로 사용할 수 있고, 각 프로세스 또는 프로세스 그룹에 의해 요청된 디스크 입출력을 처리하는데 예상가능한 입출력 대역폭을 제공할 수 있어서 디스크 입출력 서비스의 성능 및 품질을 보장할 수 있다.
도 4를 참조하여 전술한 본 발명의 다른 실시예에 따른 다수의 프로세스 또는 프로세스 그룹들에 의해 요청된 디스크 입출력들의 제어 방법을 좀더 구체적으로 설명한다.
도 4에는 Nsec에서 N+1sec까지, 1초 동안 디스크 입출력 스케줄러가 다수의 프로세스 또는 프로세스 그룹(예컨대, PA, PB, PC, PD)에 의해 요청된 디스크 입출력을 처리할 경우, 처리 시간 경과에 따라 토큰이 소모된 개수에 대응하여 전역 입출력 모드의 변화가 도시되어 있다.
도 4에 도시된 바와 같이, 전역 입출력 모드(I/O Mode)는 토큰이 소모된 개수가 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 프로세스 또는 프로세스 그룹이 존재하느냐에 따라 G_MINBW_IO 모드(414) 및 G_LEFTOVER_IO 모드(415)로 구분된다.
즉, G_MINBW_IO 모드(414)는 최소 대역폭이 만족되지 않은 프로세스 또는 프로세스 그룹이 존재하는 경우의 전역 입출력 모드(I/O Mode)이고, G_LEFTOVER_IO 모드(415)는 모든 프로세스 또는 프로세스 그룹이 최소 대역폭을 만족하는 경우의 전역 입출력 모드(I/O Mode)이다.
G_MINBW_IO 모드(414)에서의 입출력 처리 방식은 후술하는 바와 같다.
전역 입출력 모드(I/O Mode)가 G_MINBW_IO 모드(414)일 경우, 각 프로세스 또는 프로세스 그룹(PA,PB,PC,PD)의 지역 입출력 모드(I/O Mode)는 도 2에 설명한 바와 같이 L_MINBW_IO 모드(210), L_RANGE_IO 모드(211) 및 L_NO_IO 모드(212) 중 어느 한 모드에 있을 수 있다.
예컨대, 각 프로세스 또는 프로세스 그룹(PA, PB, PC, PD)별 지역 입출력 모드(I/O Mode)가 L_MINBW_IO 모드(210)인 경우는 프로세스 또는 프로세스 그룹(PA)의 디스크 입출력 처리 시간이 AM1을 경과하기 전이고, 프로세스 또는 프로세스 그룹(PB)의 디스크 입출력 처리 시간이 BM1을 경과하기 전이며, 프로세스 또는 프로세스 그룹(PC)의 디스크 입출력 처리 시간이 CM1을 경과하기 전이다. 프로세스 또는 프로세스 그룹(PD1)은 디스크 입출력 최소 대역폭 및 최대 대역폭이 설정되지 않았으므로 지역 입출력 모드(I/O Mode)는 변화되지않는다.
각 프로세스 또는 프로세스 그룹(PA,PB,PC,PD)은 지역 입출력 모드(I/O Mode)에 따라 할당될 타임 슬라이스가 정해지며 디스크 입출력 스케줄러는 전역 입출력 모드(I/O Mode)가 G_MINBW_IO 모드(414)인 경우, 각 프로세스 또는 프로세스 그룹(PA,PB,PC,PD) 간에 타임 슬라이스가 할당될 우선 순위를 정할 수 있다.
디스크 입출력 스케줄러는 타임 슬라이스가 할당될 순서를 토큰이 소모된 개수가 디스크 입출력 최소 대역폭의 크기(예컨대, 최소 입출력 토큰의 개수)를 초과하지 않은 경우> 최소 대역폭이 설정되지 않은 경우> 토큰이 소모된 개수가 디스크 입출력 최소 대역폭의 크기를 초과한 경우> 토큰이 소모된 개수가 디스크 입출력 최대 대역폭의 크기를 초과한 경우의 순으로 정할 수 있다.
또한, 디스크 입출력 스케줄러는 토큰이 소모된 개수가 최소 대역폭의 크기를 초과하지 않은 프로세스 또는 프로세스 그룹간에는 최소 대역폭의 크기가 클수록 높은 우선순위를 정할 수 있다.
예컨대, AM2시점, 즉 프로세스 또는 프로세스 그룹(PA)의 지역 입출력 모드는 L_RANGE_IO 모드(211), 프로세스 또는 프로세스 그룹(PB)의 지역 입출력 모드는 L_MINBW_IO 모드(210), 프로세스 또는 프로세스 그룹(PC)의 지역 입출력 모드는 L_MINBW_IO 모드(210), 프로세스 또는 프로세스 그룹(PD)은 디스크 입출력 최소 및 최대 대역폭이 정해지지 않았음인 경우에서의 각 프로세스 또는 프로세스 그룹(PA,PB,PC,PD)의 우선순위는 프로세스 또는 프로세스 그룹(PB)과 프로세스 또는 프로세스 그룹(PC)이 최우선 순위고, 프로세스 또는 프로세스 그룹(PD)이 다음 순위고, 프로세스 또는 프로세스 그룹(PA)이 그 다음 순위다.
프로세스 또는 프로세스 그룹(PB)과 프로세스 또는 프로세스 그룹(PC)이 같은 순위므로 디스크 입출력 최소 대역폭의 크기로 순위를 다시 정하면, 프로세스 또는 프로세스 그룹(PB)이 프로세스 또는 프로세스 그룹(PC)보다 디스크 입출력 최소 대역폭이 크므로 최우선 순위는 프로세스 또는 프로세스 그룹(PB)이 된다.
프로세스 또는 프로세스 그룹(PB1)이 요청한 디스크 입출력에 대한 처리 시간이 BM1을 경과하면, 모든 프로세스 또는 프로세스 그룹에 대한 토큰이 소모된 개수가 최소 입출력 토큰 개수를 초과하므로 전역 입출력 모드(I/O Mode)는 G_LEFTOVER_IO 모드(415)로 전이된다.
전역 입출력 모드(I/O Mode)가 G_LEFTOVER_IO 모드(415)이면 각 프로세스 또는 프로세스 그룹(PA, PB, PC, PD)마다 우선순위는 정해지지 않는다.
도 5를 참조하여 본 발명의 다른 실시예에 따른 디스크 입출력 제어 시스템을 설명한다.
도 5는 본 발명의 다른 실시예에 따른 디스크 입출력 제어 시스템을 설명하기 위한 구성도이다.
도 5에 도시된 바와 같이, 본 발명의 디스크 입출력 제어 시스템(500)은 디스크 입출력 관리부(510) 및 디스크 입출력 스케줄러(520)를 포함한다.
디스크 입출력 관리부(510)는 다수의 프로세스 또는 프로세스 그룹들(예컨대, P1,P2,...,Pn)에 의해 요청된 각 디스크 입출력(예컨대, R1,R2,...,Rn)을 각 프로세스 또는 프로세스 그룹별(P1,P2,...,Pn)로 식별하여 관리한다.
예컨대, 디스크 입출력 관리부(510)는 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 디스크 입출력 큐(예컨대, Q1,Q2,...,Qn)를 유지할 수 있고, 각 디스크 입출력(예컨대, R1,R2,...,Rn)에 포함된 식별자와 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)의 고유 정보(예컨대, I1,I2,...,In)를 비교하여 일치하는 고유 정보(I1 또는 I2 ... 또는 In)에 대응하는 디스크 입출력 큐(예컨대, Q1또 는 Q2 또는... 또는 Qn)로 디스크 입출력(R1 또는 R2 ... 또는 Rn)을 각각 입력할 수 있다.
디스크 입출력 스케줄러(520)는 판단부(521) 및 타임 슬라이스부(522)를 포함하고, 각 디스크 입출력 큐(Q1,Q2,...,Qn)로 입력된 각 디스크 입출력(R1,R2,...,Rn)을 처리한다.
디스크 입출력 스케줄러(520)는 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별 중요도에 근거하여 시스템 관리자에 의해 기설정된 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별 디스크 입출력 최소 및 최대 대역폭에 근거하여 각 디스크 입출력(R1,R2,...,Rn)을 처리한다.
판단부(521)는 디스크 입출력을 요청한 다수의 프로세스 또는 프로세스 그룹들(P1,P2,...,Pn) 간의 디스크 입출력 제어를 위해 디스크 입출력의 처리 단위인 토큰이 소모된 개수가 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 경우가 존재하는지 여부를 판단한다.
판단부(521)는 토큰이 소모된 개수가 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 경우가 존재하면, 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 타임 슬라이스를 할당받을 순서를 정한다.
예컨대, 판단부(521)는 토큰이 소모된 개수가 최소 입출력 토큰 개수를 초과하지 않는 프로세스 또는 프로세스 그룹을 최우선 순서로 정할 수 있다.
판단부(521)는 디스크 입출력 최소 대역폭이 설정되지 않은 프로세스 또는 프로세스 그룹을 다음 순서, 토큰이 소모된 개수가 최소 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹을 그 다음 순서 및 토큰이 소모된 개수가 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹을 그 다음 순서로 정할 수 있다.
판단부(521)는 동일한 순서의 프로세스 또는 프로세스 그룹들(예컨대, P1, P2) 간에는 디스크 입출력 최소 대역폭이 큰(예컨대, P1이 P2보다 클 경우) 프로세스 또는 프로세스 그룹(P1)을 우선으로 정할 수 있다.
판단부(521)는 모든 프로세스 또는 모든 프로세스 그룹(P1,P2,...,Pn)의 토큰이 소모된 개수가 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하면, 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 타임 슬라이스가 할당될 순서를 정하지 않는다.
타임 슬라이스부(522)는 다수의 프로세스 또는 프로세스 그룹들(P1,P2,...,Pn) 간에 정해진 순서로 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)별로 디스크 입출력(R1 또는 R2 ... 또는 Rn)을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당한다.
타임 슬라이스부(522)는 토큰이 소모된 개수가 최소 입출력 토큰 개수보다 작거나 같을 경우, 디스크 입출력 최소 대역폭의 크기에 비례하는 타임 슬라이스를 할당할 수 있다.
타임 슬라이스부(522)는 토큰이 소모된 개수가 최소 입출력 토큰 개수보다 크고, 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수보다 작거나 같을 경우, 타임 슬라이스를 줄여[예컨대, 기본 타임 슬라이스가 (20~25) tick일 경우, (20~25)/5] 할당할 수 있으며, 토큰이 소모된 개수가 최대 입출력 토큰 개수보다 클 경우, 타임 슬라이스를 할당하지 않을 수 있다.
이렇게 함으로써, 타임 슬라이스부(522)는 순서가 낮은 프로세스 또는 프로세스 그룹보다 순서가 높은 프로세스 또는 프로세스 그룹에 더 많은 타임 슬라이스를 할당할 수 있다.
타임 슬라이스부(522)는 정해진 순서가 없을 경우, 각 프로세스 또는 프로세스 그룹(P1,P2,...,Pn)마다 동일한 타임 슬라이스를 랜덤하게 할당한다.
이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 디스크 입출력 제어 방법을 설명한 흐름도.
도 2는 본 발명의 일실시예에 따른 디스크 입출력 제어 방법을 지역 입출력 모드에 결부시켜 지역 입출력 모드의 변화를 설명한 도면.
도 3은 본 발명의 다른 실시예에 따른 디스크 입출력 제어 방법을 설명한 흐름도.
도 4는 본 발명의 다른 실시예에 따른 디스크 입출력 제어 방법을 전역 입출력 모드에 결부시켜 전역 입출력 모드의 변화를 설명한 도면.
도 5는 본 발명의 다른 실시예에 따른 디스크 입출력 제어 시스템을 설명한 구성도.
<도면의 주요 참조부호에 대한 설명>
500 : 디스크 입출력 제어 시스템 510 : 디스크 입출력 관리부
520 : 디스크 입출력 스케줄러 521 : 판단부
522 : 타임 슬라이스부 530 : 디스크

Claims (20)

  1. 디스크 입출력의 처리 단위인 토큰이 소모된 개수를 검출하는 단계; 및
    검출된 상기 토큰이 소모된 개수와, 기설정된 디스크 입출력 최소 대역폭 및 디스크 입출력 최대 대역폭에 대응하는 입출력 토큰 개수의 대소를 비교하고, 비교 결과에 따라 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 단계를 포함하고,
    상기 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수보다 작거나 같을 경우, 다른 프로세스 또는 다른 프로세스 그룹에 의해 요청된 상기 디스크 입출력 처리에 할당되었던 상기 타임 슬라이스를 상기 프로세스 또는 프로세스 그룹에 의해 요청된 상기 디스크 입출력 처리에 할당하는 단계를 포함하는 것
    인 디스크 입출력 제어 방법.
  2. 제1항에 있어서, 상기 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수보다 작거나 같을 경우, 상기 디스크 입출력 최소 대역폭의 크기에 비례하는 타임 슬라이스를 할당하는 단계인 것
    인 디스크 입출력 제어 방법.
  3. 제1항에 있어서, 상기 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수보다 크고, 상기 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수보다 작거나 같을 경우, 상기 타임 슬라이스를 줄여 할당하는 단계인 것
    인 디스크 입출력 제어 방법.
  4. 제1항에 있어서, 상기 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수보다 클 경우, 상기 타임 슬라이스를 할당하지 않는 단계인 것
    인 디스크 입출력 제어 방법.
  5. 제1항에 있어서, 상기 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수보다 큰 경우, 상기 프로세스 또는 프로세스 그룹에 할당된 상기 타임 슬라이스를 다른 프로세스 또는 다른 프로세스 그룹에 의해 요청된 상기 디스크 입출력 처리에 할당하는 단계를 더 포함하는 것
    인 디스크 입출력 제어 방법.
  6. 디스크 입출력을 요청한 다수의 프로세스 또는 프로세스 그룹들 간의 디스크 입출력 제어 방법에 있어서,
    상기 디스크 입출력의 처리 단위인 토큰이 소모된 개수를 상기 프로세스 또는 프로세스 그룹별로 검출하는 단계; 및
    상기 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 프로세스 또는 프로세스 그룹이 존재하면, 상기 다수의 프로세스 또는 프로세스 그룹들 간에 정해진 순서로 상기 각 프로세스 또는 프로세스 그룹별로 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 단계를 포함하고,
    상기 타임슬라이스를 할당하는 단계는,
    동일한 순서의 프로세스 또는 프로세스 그룹들 간에는 상기 디스크 입출력 최소 대역폭이 큰 상기 프로세스 또는 프로세스 그룹에 상기 타임 슬라이스를 우선으로 할당하는 단계를 포함하는 것
    인 디스크 입출력 제어 방법.
  7. 제6항에 있어서, 상기 타임슬라이스를 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수를 초과하지 않는 프로세스 또는 프로세스 그룹에 상기 타임 슬라이스를 최우선으로 할당하는 단계;
    상기 디스크 입출력 최소 대역폭이 설정되지 않은 프로세스 또는 프로세스 그룹에 상기 타임 슬라이스를 다음 순서로 할당하는 단계;
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹에 상기 타임 슬라이스를 그 다음 순서로 할당하는 단계; 및
    상기 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹에 상기 타임 슬라이스를 그 다음 순서로 할당하는 단계
    를 더 포함하는 것인 디스크 입출력 제어 방법.
  8. 삭제
  9. 제7항에 있어서, 상기 타임슬라이스를 할당하는 단계는,
    상기 정해진 순서에서 높은 순서의 프로세스 또는 프로세스 그룹에 대한 상기 디스크 입출력 처리시, 낮은 순서의 프로세스 또는 프로세스 그룹에 대한 상기 디스크 입출력 처리시에 줄인 타임 슬라이스만큼 타임 슬라이스를 늘려 할당하는 단계인 것
    인 디스크 입출력 제어 방법.
  10. 제6항에 있어서, 상기 타임슬라이스를 할당하는 단계는,
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수보다 작거나 같을 경우, 상기 디스크 입출력 최소 대역폭의 크기에 비례하는 타임 슬라이스를 할당하는 단계;
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수보다 크고, 상기 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수보다 작거나 같을 경우, 상기 타임 슬라이스를 줄여 할당하는 단계; 및
    상기 토큰이 소모된 개수가 상기 최대 입출력 토큰 개수보다 클 경우, 상기 타임 슬라이스를 할당하지 않는 단계를 더 포함하는 것
    인 디스크 입출력 제어 방법.
  11. 제6항에 있어서,
    상기 모든 프로세스 또는 모든 프로세스 그룹의 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하면, 상기 정해진 순서에 관계없이 상기 각 프로세스 또는 프로세스 그룹별로 상기 타임 슬라이스를 할당하는 단계를 더 포함하는 것인 디스크 입출력 제어 방법.
  12. 제11항에 있어서,
    상기 정해진 순서에 관계없이 상기 각 프로세스 또는 프로세스 그룹별로 상기 타임 슬라이스를 할당하는 단계는,
    상기 각 프로세스 또는 프로세스 그룹마다 동일한 상기 타임 슬라이스를 랜덤하게 할당하는 단계를 포함하는 것인 디스크 입출력 제어 방법.
  13. 디스크 입출력을 요청한 다수의 프로세스 또는 프로세스 그룹들 간의 디스크 입출력 제어 시스템에 있어서,
    상기 디스크 입출력의 처리 단위인 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최소 대역폭에 대응하는 최소 입출력 토큰 개수를 초과하지 않는 경우가 존재하는지 여부를 판단하는 판단부; 및
    상기 판단부의 판단 결과, 상기 초과하지 않는 경우가 존재하면, 상기 다수의 프로세스 또는 프로세스 그룹들 간에 정해진 순서로 상기 각 프로세스 또는 프로세스 그룹별로 상기 디스크 입출력을 처리할 수 있는 지속 시간인 타임 슬라이스를 할당하는 타임 슬라이스부를 포함하고,
    상기 판단부는,
    동일한 순서의 프로세스 또는 프로세스 그룹들 간에는 상기 디스크 입출력 최소 대역폭이 큰 상기 프로세스 또는 프로세스 그룹을 우선 순서로 정하는 것
    인 디스크 입출력 제어 시스템.
  14. 제13항에 있어서, 상기 판단부는,
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수를 초과하지 않는 프로세스 또는 프로세스 그룹을 최우선 순서로,
    상기 디스크 입출력 최소 대역폭이 설정되지 않은 프로세스 또는 프로세스 그룹을 다음 순서로,
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹을 그 다음 순서로,
    상기 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하는 프로세스 또는 프로세스 그룹을 그 다음 순서로 정하는 것인 디스크 입출력 제어 시스템.
  15. 삭제
  16. 제14항에 있어서, 상기 타임 슬라이스부는,
    상기 정해진 순서에서 낮은 순서의 프로세스 또는 프로세스 그룹에 할당된 상기 타임슬라이스를 높은 순서의 프로세스 또는 프로세스 그룹에 할당하는 것
    인 디스크 입출력 제어 시스템.
  17. 제14항에 있어서, 상기 타임 슬라이스부는,
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수보다 작거나 같을 경우, 상기 디스크 입출력 최소 대역폭의 크기에 비례하는 타임 슬라이스를 할당하고,
    상기 토큰이 소모된 개수가 상기 최소 입출력 토큰 개수보다 크고, 상기 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수보다 작거나 같을 경우, 기설정된 상기 타임 슬라이스의 기본 단위보다 작은 상기 타임 슬라이스를 할당하며,
    상기 토큰이 소모된 개수가 상기 최대 입출력 토큰 개수보다 클 경우, 상기 타임 슬라이스를 할당하지 않는 것인 디스크 입출력 제어 시스템.
  18. 제13항에 있어서, 상기 판단부는,
    상기 모든 프로세스 또는 모든 프로세스 그룹의 토큰이 소모된 개수가 상기 프로세스 또는 프로세스 그룹별로 기설정된 디스크 입출력 최대 대역폭에 대응하는 최대 입출력 토큰 개수를 초과하면, 상기 각 프로세스 또는 프로세스 그룹별로 상기 타임 슬라이스가 할당될 순서를 정하지 않는 것
    인 디스크 입출력 제어 시스템.
  19. 제18항에 있어서, 상기 타임 슬라이스부는,
    상기 각 프로세스 또는 프로세스 그룹마다 동일한 상기 타임 슬라이스를 랜덤하게 할당하는 것인 디스크 입출력 제어 시스템.
  20. 제 13항에 있어서,
    상기 디스크 입출력을 상기 프로세스 또는 프로세스 그룹별로 식별하여 관리하는 디스크 입출력 관리부를 더 포함하고,
    상기 디스크 입출력 관리부는 상기 프로세스 또는 프로세스 그룹별로 디스크 입출력 큐를 유지하며 상기 디스크 입출력에 포함된 상기 각 프로세스 또는 프로세스 그룹을 식별할 수 있는 식별자를 근거로 상기 식별자에 대응하는 상기 디스크 입출력 큐로 상기 디스크 입출력을 입력하는 것인 디스크 입출력 제어 시스템.
KR1020090018886A 2009-03-05 2009-03-05 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템 KR101179628B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090018886A KR101179628B1 (ko) 2009-03-05 2009-03-05 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템
US12/569,859 US20100228886A1 (en) 2009-03-05 2009-09-29 Method and system using range bandwidth for controlling disk i/o
CN2009102265716A CN101825991B (zh) 2009-03-05 2009-11-25 使用范围带宽以控制盘输入/输出的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090018886A KR101179628B1 (ko) 2009-03-05 2009-03-05 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20100100162A KR20100100162A (ko) 2010-09-15
KR101179628B1 true KR101179628B1 (ko) 2012-09-04

Family

ID=42679220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090018886A KR101179628B1 (ko) 2009-03-05 2009-03-05 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템

Country Status (3)

Country Link
US (1) US20100228886A1 (ko)
KR (1) KR101179628B1 (ko)
CN (1) CN101825991B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101583129B1 (ko) * 2014-02-27 2016-01-07 단국대학교 산학협력단 가상화 환경에서의 대역폭 할당 방법 및 장치
CN105808324A (zh) * 2014-12-30 2016-07-27 展讯通信(天津)有限公司 一种提高系统流畅度的方法及移动终端
WO2017024965A1 (zh) * 2015-08-11 2017-02-16 阿里巴巴集团控股有限公司 一种数据流量限制的方法及系统
CN106411558B (zh) * 2015-07-27 2020-02-21 阿里巴巴集团控股有限公司 一种数据流量限制的方法及系统
CN110221775B (zh) * 2019-05-05 2020-10-16 华为技术有限公司 存储系统中令牌的分配方法和装置
CN112732168B (zh) * 2019-10-28 2023-12-22 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080084824A1 (en) 2006-10-09 2008-04-10 Agere Systems Inc. Dual Leaky Bucket Flow Control Method and System

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4459588A (en) * 1982-03-05 1984-07-10 Burroughs Corporation Timed token protocol for local area networks
US6628609B2 (en) * 1998-04-30 2003-09-30 Nortel Networks Limited Method and apparatus for simple IP-layer bandwidth allocation using ingress control of egress bandwidth
US6651125B2 (en) * 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
US6434631B1 (en) * 1999-10-15 2002-08-13 Lucent Technologies Inc. Method and system for providing computer storage access with quality of service guarantees
US7327682B2 (en) * 2003-06-27 2008-02-05 Cisco Technology, Inc. Methods and devices for flexible bandwidth allocation
US7602721B1 (en) * 2003-12-22 2009-10-13 Extreme Networks, Inc. Methods and systems for fine grain bandwidth allocation in a switched network element
US7843907B1 (en) * 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
CN100571175C (zh) * 2006-09-30 2009-12-16 华为技术有限公司 一种无线通信网络带宽分配方法与装置
CN101188562B (zh) * 2007-12-20 2011-02-09 杭州华三通信技术有限公司 流量控制方法、系统和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080084824A1 (en) 2006-10-09 2008-04-10 Agere Systems Inc. Dual Leaky Bucket Flow Control Method and System

Also Published As

Publication number Publication date
US20100228886A1 (en) 2010-09-09
CN101825991B (zh) 2013-05-08
CN101825991A (zh) 2010-09-08
KR20100100162A (ko) 2010-09-15

Similar Documents

Publication Publication Date Title
US10289183B2 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
KR101179628B1 (ko) 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템
US7958508B2 (en) Method of power-aware job management and computer system
JP5954074B2 (ja) 情報処理方法、情報処理装置、及びプログラム。
US8832703B2 (en) Dynamically changing job allocation priority based on a restoration rate for each user and time frame
US11010199B2 (en) Efficient critical thread scheduling for non-privileged thread requests
US9465663B2 (en) Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
US9292662B2 (en) Method of exploiting spare processors to reduce energy consumption
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
JP2008527514A5 (ko)
US20130055283A1 (en) Workload Performance Control
CN101122872A (zh) 用于管理应用程序工作量和数据处理系统的方法
US7961620B2 (en) Network scheduler for selectively supporting work conserving mode and network scheduling method thereof
KR20110128023A (ko) 멀티 코어 프로세서, 멀티 코어 프로세서의 태스크 스케줄링 장치 및 방법
US20190028407A1 (en) Quality of service compliance of workloads
KR20140089749A (ko) 클러스터의 부하 할당 제어 장치 및 그 방법
US20150100964A1 (en) Apparatus and method for managing migration of tasks between cores based on scheduling policy
US20090248875A1 (en) Socket Management Device and Socket Management Method
Lin et al. {RingLeader}: efficiently Offloading {Intra-Server} Orchestration to {NICs}
CN109086128B (zh) 任务调度方法及装置
Kambatla et al. UBIS: Utilization-aware cluster scheduling
CN116610422A (zh) 一种任务调度方法、装置和系统
Yang et al. AutoAdmin: automatic and dynamic resource reservation admission control in Hadoop YARN clusters
CN114416349A (zh) 资源分配方法、装置、设备、存储介质以及程序产品
JP2012009939A (ja) オーダ処理方法、プログラムおよびネットワークシステム

Legal Events

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

Payment date: 20150728

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160726

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee