KR20100118271A - 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치 - Google Patents

컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치 Download PDF

Info

Publication number
KR20100118271A
KR20100118271A KR1020090037014A KR20090037014A KR20100118271A KR 20100118271 A KR20100118271 A KR 20100118271A KR 1020090037014 A KR1020090037014 A KR 1020090037014A KR 20090037014 A KR20090037014 A KR 20090037014A KR 20100118271 A KR20100118271 A KR 20100118271A
Authority
KR
South Korea
Prior art keywords
input
output request
disk
request
state
Prior art date
Application number
KR1020090037014A
Other languages
English (en)
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 KR1020090037014A priority Critical patent/KR20100118271A/ko
Priority to US12/758,889 priority patent/US8516168B2/en
Priority to CN201010166975.3A priority patent/CN101876950B/zh
Publication of KR20100118271A publication Critical patent/KR20100118271A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치에 관한 것으로서, 시스템이 안정 상태인지 불안정한 상태인지 검사하는 과정과, 상기 시스템이 불안정한 상태인 동안에 디스크 입출력 요청이 발생되는 것을 제한하는 과정을 포함하여, 상기 시스템의 불안정한 상태인 동안에 디스크 입출력 요청을 저장하는 큐가 오버플로우되는 것을 방지할 수 있으며, 이를 통해 시스템이 안정성을 유지하고, 사용자 데이터가 유실되거나 손상되는 것을 방지할 수 있는 있다.
하드디스크 드라이브(Hard Disk Drive), HDD 보호, 디스크 입출력 요청, 외부 충격

Description

컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치{APPARATUS AND METHOD FOR PREVENTING QUEUE OVERFLOW FOR HARD DISK DRIVE PROTECTION IN COMPUTER SYSTEM}
본 발명은 컴퓨터 시스템(Computer System)에서 하드디스크 드라이브(HDD: Hard Disk Drive) 보호를 위한 큐 오버플로우(Queue Overflow) 방지 방법 및 장치에 관한 것으로서, 특히 디스크 입/출력 요청(Disk Input/Output Request)이 발생되는 것을 제한하여 큐 오버플로우를 방지하는 방법 및 장치에 관한 것이다.
최근, 컴퓨터 시스템을 탑재한 제품들은 데스크탑(Desktop)과 같이 고정된 형태에서 랩탑(Laptop)과 같이 이동성이 중시되는 모바일(mobile) 기기 형태로 빠르게 변화하고 있다. 상기 모바일 기기는 이동 중에 사용되는 경우가 많으므로, 진동 및 낙하 등의 외부 충격이 가해질 소지가 크기 때문에, 상기 외부 충격으로부터 내부의 데이터를 보호하기 위한 기술들이 필요된다. 특히, 상기 컴퓨터 시스템을 구성하고 있는 저장 매체 중 하드디스크 드라이브(HDD: Hard Disk Drive)는 외부 충격에 취약하기 때문에, 상기 외부 충격으로부터 상기 HDD를 보호하기 위한 기술이 반드시 필요하다.
상기 하드디스크 드라이브는 자성체를 입힌 원판형 알루미늄 기판 즉, 플래터(platter)을 회전시키면서 데이터를 저장하고 읽는 보조기억장치로, 상기 플래터 주위에는 자기 형태로 저장된 데이터를 읽기 위한 마그네틱 헤드(Magnetic Head)가 미세한 간격을 두고 존재한다. 상기 마그네틱 헤드는 좌우로 이동하는데, 상기 플래터 위에 위치하고 있을 때 강한 충격을 받게 되면, 상기 플래터와 직접 접촉하게 되어 상기 플래터 표면이 손상됨으로써 물리적으로 데이터를 읽고 쓸 수 없게 되는 상황이 발생한다. 따라서, 종래에는 가속도 센서를 이용하여 진동이나 충격이 발생할 것을 미리 감지하여 상기 충격이 하드디스크 드라이브로 전달되기 전에 상기 마그네틱 헤드를 안전 지역으로 이동시킴으로써 손상을 방지하는 기술이 제공되고 있다.
도 1은 종래 기술에 따른 컴퓨터 시스템에서 HDD를 보호하기 위한 블록 구성을 도시하는 도면이다.
상기 도 1을 참조하면, HDD 보호 매니저(HDD PROTECTION MANAGER)(100)는 센서 드라이버(SENSOR DRIVER)(102)를 통해 가속도 센서(ACCELEROMETER SENSOR)(104)에서 주기적으로 측정되는 가속도 값을 제공받아 현재 시스템이 안정한 상태(stable status)인지 혹은 불안정한 상태(unstable status)인지 판단한다. 상기 HDD 보호 매니저(100)는 현재 시스템이 불안정한 상태라고 판단되면, HDD 필터 드라이버(HDD FILTER DRIVER)(116)에 마그네틱 헤드를 안전 지역으로 이동시킬 것을 요청하고, 상기 불안정 상태에 있던 시스템이 안정 상태로 변경되면, 상기 HDD 필터 드라이버(116)에 상기 마그네틱 헤드를 원래 위치로 복원할 것을 요청한다.
상기 HDD 필터 드라이버(116)는 상기 마그네틱 헤드를 안전 지역으로 이동시킬 것을 요청받으면, 입출력 제어 드라이버(I/O CONTROL DRIVER)(122)를 통해 물리적 HDD(PHYSICAL HDD)(124)로 상기 안전 지역으로의 이동을 요청하는 신호를 보내어 마그네틱 헤드를 안전한 지역(SAFE ZONE)으로 이동시키도록 한다. 이때, 상기 HDD 필터 드라이버(116)는 입출력 요청 흐름 제어부(I/O REQUEST FLOW CONTROLLER)(118)를 이용하여 HDD 드라이버(HDD DRIVER)(114)로부터 전달되는 모든 입출력 요청(I/O REQUEST)이 상기 입출력 제어 드라이버(122)로 전달되는 것을 방지함으로써, 상기 물리적 HDD(124)의 마그네틱 헤드가 플래터 표면 위로 되돌아가서 위험에 노출되는 상황을 방지한다. 즉, 상기 HDD 필터 드라이버(116)는 상기 HDD 드라이버(114)로부터 전달되는 모든 입출력 요청을 내부 입출력 큐(INTERNAL I/O QUEUE)(120)에 저장하여, 상기 불안정 상태가 지속되는 동안에 입출력 요청을 상기 입출력 제어 드라이버(122)로 전달하지 않음으로써 상기 물리적 HDD(124)를 보호한다. 한편, 상기 HDD 필터 드라이버(116)는 상기 HDD 보호 매니저(100)로부터 상기 마그네틱 헤드를 원래 위치로 복원할 것을 요청받으면, 상기 내부 입출력 큐(120)에 저장해 두었던 모든 입출력 요청들을 상기 입출력 제어 드라이버(122)를 통해 상기 물리적 HDD(124)로 전달함으로써, 상기 물리적 HDD(124)의 상기 마그네틱 헤드가 안전 지역을 벗어나 상기 플래터 표면 위로 이동하여 물리적인 입출력을 수행할 수 있도록 한다.
상술한 바와 같은 종래의 HDD 보호 기법은 진동 혹은 충격의 지속 시간(Duration) 이 짧고, 그 시간 동안 디스크 입출력 요청이 적게 발생될 경우 문제가 되지 않으나, 상기 진동 혹은 충격의 지속 시간이 매우 길거나, 단시간에 다량의 디스크 입출력 요청(HEAVY DISK I/O REQUEST)이 발생하여 상기 내부 입출력 큐(120)의 수용 범위를 벗어나게 되는 경우, 큐 오버플로우(Queue Overflow)가 발생하게 되는 문제점이 있다. 상기 큐 오버플로우가 발생하게 되면, 상기 컴퓨터 시스템은 Hang, Halt, 혹은 BSOD(Blue Screen Of Death)와 같은 치명적인 상태에 빠지게 된다. 또한, 상기 입출력 큐의 수용 범위를 넘어선 디스크 입출력 요청에 대해서는 후 처리가 불가능하게 되므로, 사용자 데이터 손실을 피할 수 없게 된다.
상기와 같은 문제점들을 방지하기 위해 큐의 크기를 확장할 수도 있으나, 일반적으로 상기 큐에 할당 가능한 메모리 크기는 한계가 있으므로, 상기 문제점들을 해결하기 위한 다른 방안이 필요된다.
본 발명은 상술한 바와 같은 문제점을 해결하기 위해 도출된 것으로서, 본 발명의 목적은 컴퓨터 시스템(Computer System)에서 하드디스크 드라이브(HDD: Hard Disk Drive) 보호를 위한 큐 오버플로우 방지 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 컴퓨터 시스템에서 디스크 입/출력 요청(Disk Input/Output Request)이 발생되는 것을 제한하여 큐 오버플로우를 방지하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 목적은 컴퓨터 시스템에서 시스템이 불안정한 상태일 경우, 디스크 입출력 요청이 발생되는 것을 제한하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 목적은 컴퓨터 시스템에서 시스템이 불안정한 상태인 동안에 시스템 전체의 처리 속도를 하드웨어 측면에서 감소시켜 디스크 입출력 요청이 발생되는 것을 제한하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 목적은 컴퓨터 시스템에서 시스템이 불안정한 상태인 동안에 각 프로세스의 동작을 프리즈(freeze)시키거나 우선순위를 조정하여 디스크 입출력 요청이 발생되는 것을 제한하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 목적은 컴퓨터 시스템에서 시스템이 불안정한 상태인 동안에 네트워크 효율(network throughput)을 제어하여 디스크 입출력 요청이 발생되는 것을 제한하는 방법 및 장치를 제공함에 있다.
상술한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 버퍼 오버플로우 방지 방법은, 시스템이 안정 상태인지 불안정한 상태인지 검사하는 과정과, 상기 시스템이 불안정한 상태인 동안에 디스크 입출력 요청이 발생되는 것을 제한하는 과정을 포함하는 것을 특징으로 한다.
상술한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 버퍼 오버플로우 방지 장치는, 시스템이 안정 상태인지 불안정한 상태인지 검사하는 보호 매니저와, 상기 시스템이 불안정한 상태인 동안에 디스크 입출력 요청이 발생되는 것을 제한하는 입출력 요청 제어부를 포함하는 것을 특징으로 한다.
본 발명에서는 컴퓨터 시스템이 불안정한 상태인 동안에 디스크 입출력 요청이 발생되는 것을 제한함으로써, 상기 시스템의 불안정한 상태인 동안에 디스크 입출력 요청을 저장하는 큐가 오버플로우되는 것을 방지할 수 있으며, 이를 통해 시스템이 안정성을 유지하고, 사용자 데이터가 유실되거나 손상되는 것을 방지할 수 있는 효과가 있다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
이하 본 발명에서는 컴퓨터 시스템에서 시스템이 불안정한 상태인 동안에 디스크 입출력 요청(Disk Input/Output Request)이 발생되는 것을 제한하기 위한 방법 및 장치에 관해 설명할 것이다.
도 2는 본 발명에 따른 컴퓨터 시스템에서 HDD를 보호하기 위한 블록 구성을 도시하고 있다.
상기 도 2를 참조하면, 컴퓨터 시스템은 HDD 보호 매니저(HDD PROTECTION MANAGER)(200), 센서 드라이버(SENSOR DRIVER)(202), 가속도 센서(ACCELEROMETER SENSOR)(204), 디스크 입출력을 이용하는 어플리케이션들(APPLICATIONS USING DISK I/O)(210), 파일 시스템(FILE SYSTEM)(212), HDD 드라이버(HDD DRIVER)(214), HDD 필터 드라이버(HDD FILTER DRIVER)(216), 입출력 제어 드라이버(I/O CNTROL DRIVER)(222), 물리적 HDD(PHYSICAL HARD DISK DRIVE)(224) 및 입출력 요청 제어부(I/O REQUEST CONTROLLER)(230)를 포함하여 구성된다. 이때, 상기 HDD 필터 드라이버(216)는 입출력 요청 흐름 제어부(I/O REQUEST FLOW CONTROLLER)(218)와 내부적 입출력 큐(INTERNAL I/O QUEUE)(220)를 포함하며, 상기 입출력 요청 제어 부(230)는 플랫폼 하드웨어 성능 제어부(PLATFORM H/W PERFORMANCE CONTROLLER)(232), 프로세스 제어부(PROCESS CONTROLLER)(234) 및 네트워크 효율 제어부(NETWORK THROUGHPUT CONTROLLER)(236)를 포함하여 구성된다.
상기 도 2를 참조하면, 먼저 상기 HDD 보호 매니저(200)는 센서 드라이버(202)를 통해 가속도 센서(204)에서 주기적으로 측정되는 가속도 값을 제공받고, 상기 가속도 값을 바탕으로 현재 시스템이 안정한 상태(stable status)인지 혹은 불안정한 상태(unstable status)인지 판단한다. 여기서, 상기 가속도 센서(204)는 X축, Y축 및 Z축의 가속도를 측정할 수도 있고, X축과 Y축만의 가속도를 측정할 수도 있다.
상기 HDD 보호 매니저(200)는 현재 시스템이 불안정한 상태라고 판단되면, HDD 필터 드라이버(216)에 마그네틱 헤드를 안전 지역으로 이동시킬 것을 요청하는 신호를 출력하고, 본 발명에 따라 상기 입출력 요청 흐름 제어부(230)로 상기 시스템이 불안정한 상태임을 알리는 신호를 출력한다. 한편, 상기 HDD 보호 매니저(200)는 상기 불안정 상태에 있던 시스템이 안정 상태로 변경됨이 판단되면, 상기 HDD 필터 드라이버(216)에 상기 마그네틱 헤드를 원래 위치로 복원할 것을 요청하는 신호를 출력하고, 본 발명에 따라 상기 입출력 요청 흐름 제어부(230)로 상기 시스템이 안정 상태임을 알리는 신호를 출력한다.
상기 HDD 필터 드라이버(216)는 상기 HDD 보호 매니저(200)로부터 상기 마그네틱 헤드를 안전 지역으로 이동시킬 것을 요청하는 신호가 입력되면, 상기 입출력 제어 드라이버(222)를 통해 물리적 HDD(224)로 상기 안전 지역으로의 이동을 요청 하는 신호를 제공한다. 이때, 상기 HDD 필터 드라이버(216)는 입출력 요청 흐름 제어부(218)를 이용하여 상위 드라이버인 HDD 드라이버(214)로부터 전달되는 모든 입출력 요청이 상기 입출력 제어 드라이버(222)로 전달되는 것을 방지한다. 즉, 상기 HDD 필터 드라이버(216)는 상기 HDD 드라이버(214)로부터 전달되는 모든 입출력 요청을 내부 입출력 큐(120)에 저장하여, 상기 불안정 상태가 지속되는 동안에 입출력 요청이 상기 입출력 제어 드라이버(222)로 전달되지 않도록 한다. 여기서, 상기 입출력 요청은 상기 디스크 입출력을 이용하는 어플리케이션들(210)에서 발생되어 상기 파일 시스템(212)과 상기 HDD 드라이버(214)를 거쳐 상기 HDD 필터 드라이버(216)로 전달된다.
또한, 상기 HDD 필터 드라이버(216)는 본 발명에 따라 상기 내부 입출력 큐(120)의 상태 정보를 체크하여 상기 입출력 요청 제어부(230)로 제공한다. 여기서, 상기 내부 입출력 큐(120)의 상태 정보는 상기 내부 입출력 큐의 크기(size)와 현재 사용량(usage)를 포함한다. 이는, 상기 입출력 요청 제어부(230)에서 상기 큐의 상태 정보에 따라 상기 입출력 요청 발생을 제한하는데 적절한 기법을 선택하여 사용할 수 있도록 하기 위함이다.
한편, 상기 HDD 필터 드라이버(216)는 상기 HDD 보호 매니저(200)로부터 상기 마그네틱 헤드를 원래 위치로 복원할 것을 요청하는 신호가 입력되면, 상기 내부 입출력 큐(220)에 저장해 두었던 모든 입출력 요청들을 상기 입출력 제어 드라이버(222)를 통해 상기 물리적 HDD(224)로 전달한다.
상기 물리적 HDD(124)는 상기 입출력 제어 드라이버(222)를 통해 마그네틱 헤드를 안전 지역으로 이동시킬 것을 요청하는 신호가 입력되면, 상기 마그네틱 헤드를 안전한 지역으로 이동시키고, 상기 입출력 제어 드라이버(222)를 통해 입출력 요청들이 입력되면, 상기 마그네틱 헤드를 플래터 표면 위로 이동시킨 후 입력된 입출력 요청들에 해당하는 물리적 입출력을 수행한다.
상기 입출력 요청 제어부(230)는 본 발명에 따라 상기 시스템이 불안정한 상태인 동안에 입출력 요청이 발생되는 것을 제한한다. 즉, 상기 입출력 요청 제어부(230)는 상기 HDD 보호 매니저(200)로부터 시스템이 안정 상태인지 혹은 불안정한 상태인지 여부를 제공받고, 상기 시스템이 불안정한 상태인 동안에 플랫폼 하드웨어 성능 제어, 프로세스 제어 혹은 네트워크 효율 제어를 통해 시스템 내에서 입출력 요청이 발생되는 것을 제한한다. 여기서, 상기 입출력 요청 제어부(230)는 상기 시스템의 상기 입출력 요청이 발생되는 것을 제한하기 전에 상기 시스템의 상태 정보를 모니터링하여 저장하고, 상기 불안정한 상태에서 안정 상태로 변경되면 상기 저장한 상태 정보대로 상기 시스템을 복원한다. 여기서, 상기 입출력 요청 제어부(230)가 모니터링하는 시스템의 상태 정보는 상기 입출력 요청 제어부(230)가 디스크 입출력 요청 발생을 제한하기 위해 이하 설명에서 제어하거나 변경하는 상태 혹은 값에 대한 정보이다.
상기 입출력 요청 제어부(230)는 상기 플랫폼 하드웨어 성능 제어부(232), 상기 프로세스 제어부(234) 및 상기 네트워크 효율 제어부(236)를 이용하여 상기 시스템의 불안정한 상태 동안에 입출력 요청이 발생되는것을 제한한다.
상기 플랫폼 하드웨어 성능 제어부(232)는 상기 시스템이 불안정한 상태로 변경되면, 모니터링을 통해 현재 시스템의 하드웨어 상태 정보를 획득하여 저장하고 플랫폼 하드웨어(PLATFORM H/W)의 설정을 변경함으로써, 하드웨어적으로 시스템의 전체적인 성능을 낮추어 입출력 요청이 발생되는 것을 제한한다. 여기서, 상기 플랫폼 하드웨어는 프로세서와 플랫폼 칩셋(혹은 사우스 브리지 칩셋(South Bridge Chipset))을 의미한다. 즉, 상기 플랫폼 하드웨어 성능 제어부(232)는 시스템 내의 모든 프로세서들(예: Single Processor, Multi-Processor, Multi-Core Processor)의 성능 상태(P-State: Performance State)를 변경하는 기법, 프로세서들의 요구형 클럭 변조 의무 주기(On-Demand Clock Modulation Duty-Cycle)을 변경하는 기법 혹은 플랫폼 칩셋의 온도 조절(Platform Chipset Thermal Throttling)을 수행하는 기법을 이용하여 플랫폼 하드웨어의 설정을 변경함으로써 입출력 요청이 발생되는 것을 제한한다. 여기서, 상기 프로세서의 성능 상태(P-state)는 ACPI 표준에 기술된 것으로서, Px의 형태로 표기되며, P0부터 Pn까지 존재할 경우, 상기 P0은 최대 성능 능력(Maximum Performance Capability)을 의미하고, Pn은 최소 성능 능력(Minimum Performance Capability)을 의미한다. 즉, x값이 커질수록 낮은 성능을 나타낸다. 상기 플랫폼 하드웨어 성능 제어부(232)는 상기 플랫폼 하드웨어의 설정을 변경하기 위하여 도 3에 도시된 바와 같이 인터럽트/SMI(Interrupt, SMI#)(312), ACPI 드라이버(Advanced Configuration and Power Interface Driver)(314), 프로세서 드라이버(316), 칩셋 드라이버(318) 및 별도의 맞춤 드라이버(Customized Driver)(310)를 이용하여 BIOS(330), 프로세서들(340), 플랫폼 칩셋(350)과 인터페이싱한다. 이후, 상기 플랫폼 하드웨어 성능 제어부(232)는 상기 시스템이 상기 불안정한 상태에서 안정 상태로 변경되면, 상기 저장한 상태 정보를 바탕으로 시스템의 하드웨어 값들을 복원한다.
여기서, 상기 플랫폼 하드웨어 성능 제어부(232)는 상기 시스템이 불안정 상태인 동안에 상기 큐 상태 정보에 따라 상기 세가지 기법을 모두 사용하거나 기 설정된 시나리오에 따라 한가지 기법을 독립적으로 사용하거나 하나 이상의 기법을 조합하여 사용할 수 있다.
상기 프로세스 제어부(234)는 상기 시스템이 불안정한 상태로 변경되면, 모니터링을 통해 현재 시스템의 모든 프로세스에 대해 디스크 입출력 요청 사용량을 획득하여 저장하고, 프로세스들의 실행 상태를 변경함으로써, 시스템이 불안정한 상태에 있을 동안 각 프로세스들로부터 디스크 입출력 요청이 발생되는 것을 제한한다. 즉, 상기 프로세스 제어부(234)는 상기 시스템이 불안정한 상태에 있을 동안 각 프로세스를 소프트웨어적으로 프리즈(freeze)된 상태로 변경시키는 기법 혹은 각 프로세스의 OS 스케줄링 우선순위(Operating System Scheduling System)를 낮추는 기법을 이용하여 상기 디스크 입출력 요청이 발생되는 것을 제한한다. 여기서, 상기 프리즈된 상태는 프로세스가 일시 중지(suspend)되어 어떠한 명령도 수행하지 못하는 상태를 의미하는 것으로, 프리즈된 상태에 있는 프로세스는 디스크 입출력 사용량이 0이된다. 또한, 상기 프로세스의 스케줄링 우선순위가 낮아지게 되면, 운영 체제가 여러개의 프로세스들을 동시에 실행하면서 각각의 프로세스에 시스템의 프로세서를 사용할 기회를 부여할 때 낮은 스케줄링 우선순위를 가진 프로세스에는 상대적으로 상기 프로세서를 사용할 기회를 적게 주기 때문에, 디스크 입출력 사용 량이 감소하게 된다. 여기서, 상기 프로세스 제어부(234)는 도 4에 도시된 바와 같이 시스템에서 제공하는 응용 프로그램 인터페이스(API:Application Programming Interface)들(410)을 이용하여 프로세스 매니저(Process Manager)(416)와 인터페이싱함으로써 현재 시스템에서 수행중인 모든 프로세스들(422)의 디스크 입출력 정보를 획득할 수 있으며, 상기 프로세스들(422)을 프리즈시키거나 우선순위를 변경시킬 수 있다. 여기서, 상기 API들(410)로는 System Call 혹은 커널에서 제공하는 Native API가 있다. 상기 프로세스 제어부(234)는 상기 시스템이 불안정한 상태에서 안정 상태로 변경되면, 프리즈된 프로세스들과 프로세스의 우선순위를 원상 복구한다.
여기서, 상기 프로세스 제어부(234)는 상기 시스템이 불안정한 상태인 동안에 큐 상태 정보에 따라 상기 프로세스를 프리즈시키는 기법과 우선순위를 변경하는 기법을 모두 이용하거나 한가지 기법만을 이용할 수 있다. 또한, 상기 프로세스 제어부(234)는 상기 큐 상태 정보, 예상 충격량 및 예상 충격 지속 시간에 따라 상기 두 가지 기법 중 어느 하나를 이용하다가 다른 하나를 이용하는 방법을 사용할 수도 있다.
상기 네트워크 효율 제어부(NETWORK THROUGHPUT CONTROLLER)(236)는 현재 시스템의 네트워크 사용량, TCP/IP 프로토콜의 송수신 버퍼(Send/Receive Buffer)에 대한 윈도우 크기(Window Size) 정보, 네트워크 어댑터(Network Adaptor)정보 및 상기 네트워크 사용량과 디스크 입출력 요청의 상관 관계를 모니터링 한다. 상기 네트워크 효율 제어부(236)는 상기 시스템이 불안정한 상태로 변경되면, 상기 모니 터링한 정보들을 저장한 후, 네트워크 효율을 제어하여 네트워크 사용으로 인해 디스크 입출력 요청이 발생되는 것을 제한한다. 상기 네트워크 효율 제어부(236)는 상기 TCP/IP 프로토콜의 송수신 버퍼에 대한 윈도우 크기를 조절하는 기법, MTU(Maximum Transfer Unit)를 변경하는 기법 및 네트워크 어댑터의 링크 속도(Link Speed)를 변경하는 기법을 사용하여 네트워크 효율을 조절할 수 있다. 이때, 상기 네트워크 효율 제어부(236)는 상기 도 4에 도시된 바와 같이, 시스템에서 제공하는 API들(410)을 이용하여 TCP/IP 프로토콜(426)과 인터페이싱하여 송수신 버퍼의 윈도우 크기 및 MTU 크기를 변경할 수 있으며, 네트워크 어댑터 드라이버(418)와 인터페이싱하여 네트워크 어댑터 하드웨어(420)의 링크 속도를 변경할 수 있다. 여기서, 상기 API들(410)로는 System Call 혹은 커널에서 제공하는 Native API, Wincap 및 WinSock Kernel이 있다. 상기 네트워크 효율 제어부(236)는 상기 시스템이 불안정한 상태에서 안정 상태로 변경되면, 상기 저장한 모니터링 정보에 따라 현재 시스템의 네트워크 상태를 원상 복구한다.
여기서, 상기 네트워크 효율 제어부(236)는 상기 시스템이 불안정한 상태인 동안에 큐 상태 정보에 따라 상기 윈도우 크기 변경 기법, MTU 변경 기법 및 링크 속도 변경 기법을 모두 이용할 수도 있으며, 한가지 기법만을 독립적으로 이용하거나 하나 이상의 기법을 조합하여 이용할 수 있다.
여기서, 상기 입출력 요청 제어부(230)는 상기 플랫폼 하드웨어 성능 제어부(232), 프로세스 제어부(234) 및 네트워크 효율 제어부(236) 각각에서 사용되는 기법을 모두 이용하여 상기 입출력 요청이 발생되는 것을 제한할 수도 있고, 하나 혹은 하나 이상의 기법을 이용하여 상기 입출력 요청이 발생되는 것을 제한할 수도 있다. 이때, 상기 입출력 요청 제어부(230)는 상기 HDD 필터 드라이버(216)로부터 제공되는 큐의 상태 정보에 따라 적절한 기법을 선택할 수 있다. 예를 들어, 상기 입출력 요청 제어부(230)는 상기 큐의 상태 정보를 확인한 결과, 상기 큐의 사용량이 임계치보다 높으면 여러 가지 기법을 사용하여 입출력 요청이 발생되는 것을 제한하는 강도를 높이고, 상기 큐의 사용량이 임계치보다 낮으면 하나 혹은 두 개의 기법을 사용하여 입출력 요청이 발생되는 것을 제한하는 강도를 낮출 수 있다.
상술한 설명에서는, 입출력 요청이 발생되는 것을 제어하는 입출력 요청 제어부(230)가 별도로 존재하여 상기 HDD 보호 매니저(200)와 인터페이스를 통해 동작하는 구조에 대해 설명하였으나, 상기 입출력 요청 제어부(230)는 상기 HDD 보호 매니저(200) 내부에 포함될 수도 있다.
도 5는 본 발명의 실시 예에 따른 컴퓨터 시스템에서 디스크 입출력 요청을 제한하기 위한 동작 절차를 도시하고 있다.
상기 도 5를 참조하면, 상기 시스템은 501단계에서 시스템의 정보들을 모니터링 한다. 예를 들어, 상기 시스템은 플랫폼 하드웨어의 상태 정보, 프로세스에 대한 상태 정보, 및 네트워크에 대한 상태 정보들을 모니터링 한다.
이후, 상기 시스템은 503단계에서 현재 시스템의 상태가 안정 상태인지 혹은 불안정 상태인지 검사한다. 여기서, 상기 시스템은 가속도 센서를 통해 주기적으로 측정되는 가속도 값을 이용하여 현재 시스템이 안정 상태인지 혹은 충격을 받을 수 있는 불안정한 상태인지 검사한다. 만일, 상기 검사결과 현재 시스템이 안정 상태인 경우, 상기 시스템은 상기 501단계로 되돌아가 상기 시스템의 상태 정보들을 계속해서 모니터링한다.
반면, 상기 검사결과 현재 시스템이 불안정한 상태인경우, 상기 시스템은 505단계에서 상기 모니터링된 시스템의 상태 정보들을 저장한 후, 507단계에서 상기 시스템 내에서 디스크 입출력 요청이 발생되는 것을 제한한다. 즉, 상기 시스템은 플랫폼 하드웨어 성능 제어, 프로세스 제어 혹은 네트워크 효율 제어를 통해 상기 디스크 입출력 요청이 발생되는 제한한다.
이후, 상기 시스템은 509단계에서 현재 시스템의 상태가 안정 상태인지 혹은 불안정한 상태인지 검사하여 상기 시스템이 여전히 불안정한 상태일 시, 상기 507단계로 되돌아가 이하 단계를 재수행한다. 즉, 상기 시스템은 시스템이 불안정한 상태인 동안에 상기 디스크 입출력 요청이 발생되는 것을 계속해서 제한한다.
반면, 상기 509단계의 검사 결과 상기 시스템이 안정 상태일 시, 상기 시스템은 상기 저장한 시스템의 상태 정보를 바탕으로 시스템을 원상 복구하고, 상기 501단계로 되돌아가 이하 단계를 재수행한다.
도 6은 본 발명과 종래 기술에 따른 컴퓨터 시스템에서 디스크 입출력 발생량을 도시하고 있다. 여기서, 가로축은 시간을 나타내며, 세로축은 초당 디스크 입출력 처리량(Disk I/O Throughput/sec)을 나타내며, G1은 종래 기술에 따른 컴퓨터 시스템의 그래프를 나타내고, G2 내지 G4는 본 발명에 따른 컴퓨터 시스템의 그래 프를 나타낸다.
상기 도 6을 참조하면, 종래 기술에 따른 컴퓨터 시스템에서는 시스템이 불안정한 상태에서도 디스크 입출력 요청이 계속해서 발생하여 HDD 필터 드라이버 내 큐가 오버플로우되는 현상이 발생될 수 있다. 하지만, 본 발명에 따른 컴퓨터 시스템에서는 시스템에 충격이 가해지는 시점(600)부터 충격이 종료되는 시점(602)까지 디스크 입출력 요청이 발생되는 것을 대기 혹은 제한하여 시스템이 불안정한 상태 동안에는 디스크 입출력 요청이 발생되지 않거나 낮은 비율로 발생됨으로써, 상기 HDD 필터 드라이버 내 큐가 오버플로우되는 현상이 발생되는 것을 방지할 수 있다.
상술한 바와 같은 본 발명은 기존의 시스템에 적은 비용으로 간단하게 적용이 가능하며, 시스템 설정을 영구적으로 변경하는 것이 아니고, 시스템 부팅시 원상태로 복구되게 설정할 수 있어 오동작의 경우에도 복원이 쉽고 위험성이 낮은 장점이 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 종래 기술에 따른 컴퓨터 시스템에서 HDD를 보호하기 위한 블록 구성을 도시하는 도면,
도 2는 본 발명에 따른 컴퓨터 시스템에서 HDD를 보호하기 위한 블록 구성을 도시하는 도면,
도 3은 본 발명의 일 실시 예에 따른 컴퓨터 시스템에서 디스크 입출력 요청을 제한하기 위한 블록 구성을 도시하는 도면,
도 4는 본 발명의 다른 실시 예에 따른 컴퓨터 시스템에서 디스크 입출력 요청을 제한하기 위한 블록 구성을 도시하는 도면,
도 5는 본 발명의 실시 예에 따른 컴퓨터 시스템에서 디스크 입출력 요청을 제한하기 위한 동작 절차를 도시하는 도면, 및
도 6은 본 발명과 종래 기술에 따른 컴퓨터 시스템에서 디스크 입출력 발생량을 도시하는 도면.

Claims (15)

  1. 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 버퍼 오버플로우 방지 방법에 있어서,
    시스템이 안정 상태인지 불안정한 상태인지 검사하는 과정과,
    상기 시스템이 불안정한 상태인 동안에 디스크 입출력 요청이 발생되는 것을 제한하는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서,
    상기 시스템은 플랫폼 하드웨어의 성능 제어, 상기 시스템에서 동작 중인 프로세스 제어, 네트워크 효율 제어 중 적어도 하나를 이용하여 상기 디스크 입출력 요청이 발생되는 것을 제한하는 것을 특징으로 하는 방법.
  3. 제 2항에 있어서,
    상기 플랫폼 하드웨어의 성능은, 프로세서의 상태 변경, 요구형 클럭 변조 의무 주기(On-Demand Clock Modulation Duty-Cycle) 변경, 플랫폼 칩셋 온도 조절 중 적어도 하나를 이용하여 제어하는 것을 특징으로 하는 방법.
  4. 제 2항에 있어서,
    상기 시스템에서 동작 중인 프로세스는, 프로세스 일시 중지 혹은 프로세스의 스케줄링 우선순위 변경 중 적어도 하나를 이용하여 제어하는 것을 특징으로 하는 방법.
  5. 제 2항에 있어서,
    상기 네트워크 효율은, TCP/IP 프로토콜의 송수신 버퍼 윈도우 크기 변경, MTU(Maximum Transfer Unit)의 크기 변경, 네트워크 어댑터의 링크 속도 변경 중 적어도 하나를 이용하여 제어하는 것을 특징으로 하는 방법.
  6. 제 2항에 있어서,
    상기 시스템이 불안정한 상태인 동안에 발생되는 디스크 입출력 요청을 버퍼에 저장하는 과정과,
    상기 버퍼의 사용량을 확인하는 과정과,
    상기 버퍼의 사용량에 따라 상기 디스크 입출력 요청이 발생되는 것을 제한하기 위한 기법을 선택하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  7. 제 1항에 있어서,
    시스템의 상태 정보를 모니터링하는 과정과,
    상기 시스템이 불안정한 상태가 될 시, 상기 모니터링한 시스템의 상태 정보를 저장하는 과정과,
    상기 불안정한 상태가 종료될 시, 상기 상기 저장한 상태 정보를 이용하여 시스템을 복구하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  8. 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 버퍼 오버플로우 방지 장치에 있어서,
    시스템이 안정 상태인지 불안정한 상태인지 검사하는 보호 매니저와,
    상기 시스템이 불안정한 상태인 동안에 디스크 입출력 요청이 발생되는 것을 제한하는 입출력 요청 제어부를 포함하는 것을 특징으로 하는 장치.
  9. 제 8항에 있어서,
    상기 입출력 요청 제어부는, 상기 시스템은 플랫폼 하드웨어의 성능 제어, 상기 시스템에서 동작 중인 프로세스 제어, 네트워크 효율 제어 중 적어도 하나를 이용하여 상기 디스크 입출력 요청이 발생되는 것을 제한하는 것을 특징으로 하는 장치.
  10. 제 9항에 있어서,
    상기 입출력 요청 제어부는, 프로세서의 상태 변경, 요구형 클럭 변조 의무 주기(On-Demand Clock Modulation Duty-Cycle) 변경, 플랫폼 칩셋 온도 조절 중 적어도 하나를 이용하여 상기 플랫폼 하드웨어의 성능을 제어하는 것을 특징으로 하는 장치.
  11. 제 9항에 있어서,
    상기 입출력 요청 제어부는, 프로세스 일시 중지 혹은 프로세스의 스케줄링 우선순위 변경 중 적어도 하나를 이용하여 상기 시스템에서 동작 중인 프로세스를 제어하는 것을 특징으로 하는 장치.
  12. 제 9항에 있어서,
    상기 입출력 요청 제어부는, TCP/IP 프로토콜의 송수신 버퍼 윈도우 크기 변경, MTU(Maximum Transfer Unit)의 크기 변경, 네트워크 어댑터의 링크 속도 변경 중 적어도 하나를 이용하여 상기 네트워크 효율을 제어하는 것을 특징으로 하는 장 치.
  13. 제 9항에 있어서,
    상기 시스템이 불안정한 상태인 동안에 발생되는 디스크 입출력 요청을 저장하는 버퍼를 더 포함하며,
    상기 입출력 요청 제어부는, 상기 버퍼의 사용량에 따라 상기 디스크 입출력 요청이 발생되는 것을 제한하기 위한 기법을 선택하는 것을 특징으로 하는 장치.
  14. 제 8항에 있어서,
    상기 입출력 요청 제어부는, 시스템의 상태 정보를 모니터링하여 상기 시스템이 불안정한 상태가 될 시 상기 모니터링한 시스템의 상태 정보를 저장하고, 상기 불안정한 상태가 종료될 시, 상기 저장한 상태 정보를 이용하여 시스템을 복구하는 것을 특징으로 하는 장치.
  15. 제 8항에 있어서,
    상기 입출력 요청 제어부는,
    플랫폼 하드웨어의 성능을 제어하는 플랫폼 하드웨어 성능 제어부와,
    상기 시스템에서 동작 중인 프로세스를 제어하는 프로세스 제어부와,
    네트워크 효율을 제어하는 네트워크 효율 제어부를 포함하는 것을 특징으로 하는 장치.
KR1020090037014A 2009-04-28 2009-04-28 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치 KR20100118271A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090037014A KR20100118271A (ko) 2009-04-28 2009-04-28 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치
US12/758,889 US8516168B2 (en) 2009-04-28 2010-04-13 Apparatus and method for preventing queue overflow for hard disk drive protection in computer system
CN201010166975.3A CN101876950B (zh) 2009-04-28 2010-04-27 计算机系统中保护硬盘驱动器的队列溢出防止设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090037014A KR20100118271A (ko) 2009-04-28 2009-04-28 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20100118271A true KR20100118271A (ko) 2010-11-05

Family

ID=42991906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090037014A KR20100118271A (ko) 2009-04-28 2009-04-28 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치

Country Status (3)

Country Link
US (1) US8516168B2 (ko)
KR (1) KR20100118271A (ko)
CN (1) CN101876950B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346276B2 (en) * 2010-12-16 2019-07-09 Microsoft Technology Licensing, Llc Kernel awareness of physical environment
EP2707796A4 (en) 2011-05-13 2016-06-08 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENHANCING APPLICATION PROCESSING SPEED IN DIGITAL DEVICE
US9075538B2 (en) 2013-06-24 2015-07-07 Seagate Technology Llc Performance and power management for rotating data storage device
US9876698B2 (en) * 2015-04-09 2018-01-23 International Business Machines Corporation Interconnect congestion control in a storage grid
US20170068480A1 (en) * 2015-09-09 2017-03-09 Mediatek Inc. Power Saving Methodology for Storage Device Equipped with Task Queues
CN107818056B (zh) * 2016-09-14 2021-09-07 华为技术有限公司 一种队列管理方法及装置
TWI682320B (zh) * 2018-08-17 2020-01-11 緯穎科技服務股份有限公司 資料儲存系統之控制方法、資料儲存模組、以及電腦程式產品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737481A (en) * 1994-06-22 1998-04-07 Matsushita Electric Industrial Co., Ltd. Information recording method, information recording apparatus and information recording medium
JP3184763B2 (ja) * 1995-06-07 2001-07-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチメディア直接アクセス記憶装置及びフォーマット方法
US7042663B2 (en) 2002-10-03 2006-05-09 Hitachi Global Storage Technologies Netherlands B.V. Magnetic disk protection mechanism, computer system comprising protection mechanism, protection method for magnetic disk, and program for protection method
KR100498450B1 (ko) * 2002-10-14 2005-07-01 삼성전자주식회사 기록/재생 중의 충격에 대응하는 광 디스크 시스템 및이에 대한 충격 대응 방법
JP2005276255A (ja) * 2004-03-23 2005-10-06 Toshiba Corp 磁気ディスク装置及び情報処理装置
JP2007208864A (ja) * 2006-02-06 2007-08-16 Sony Corp 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
US8086330B1 (en) * 2007-04-25 2011-12-27 Apple Inc. Accessing accelerometer data

Also Published As

Publication number Publication date
CN101876950A (zh) 2010-11-03
US20100271725A1 (en) 2010-10-28
US8516168B2 (en) 2013-08-20
CN101876950B (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
KR20100118271A (ko) 컴퓨터 시스템에서 하드디스크 드라이브 보호를 위한 큐 오버플로우 방지 방법 및 장치
US20240029488A1 (en) Power management based on frame slicing
US9727248B2 (en) Dynamic IO operation timeout assignment for a solid state drive
KR101629879B1 (ko) 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
US8239869B2 (en) Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US9384062B2 (en) Artificial neural network for balancing workload by migrating computing tasks across hosts
US8424007B1 (en) Prioritizing tasks from virtual machines
US9122503B1 (en) Systems and methods for adaptive throttling of input/output requests in a virtual environment
EP3355163A1 (en) Adaptive power control loop
KR102151628B1 (ko) 시스템 레벨의 열 관리를 주도하는 솔리드 스테이트 드라이브
US9323559B2 (en) Reducing virtual machine suspension time in checkpoint system
US9798584B1 (en) Methods and apparatus for IO sizing based task throttling
US10089266B2 (en) Power saving feature for storage subsystems
US9596136B2 (en) Software migration method and apparatus in micro-server environment
US11520879B2 (en) Trusted execution environment migration method
JP2016537939A (ja) パーソナル電子機器と外部サービスとの間の大量のトラフィック負荷を調整するための方法およびシステム
US20070124542A1 (en) Method and system to control write caches to reduce risk of data loss
US20190121666A1 (en) Communication processing apparatus and communication processing method
US20160170474A1 (en) Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory
US11144234B2 (en) Apparatus, method for storage access management, and non-transitory computer-readable storage medium for storing program
KR20170047468A (ko) 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법
JP5014179B2 (ja) Os優先度変更装置及びos優先度変更プログラム
CN116500922A (zh) 数字控制器中的性能节制管理
KR20160061726A (ko) 인터럽트 핸들링 방법
JP2010026830A (ja) システムに負荷をかけないデータバックアップ方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application