KR101014028B1 - 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 - Google Patents
고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 Download PDFInfo
- Publication number
- KR101014028B1 KR101014028B1 KR1020080118331A KR20080118331A KR101014028B1 KR 101014028 B1 KR101014028 B1 KR 101014028B1 KR 1020080118331 A KR1020080118331 A KR 1020080118331A KR 20080118331 A KR20080118331 A KR 20080118331A KR 101014028 B1 KR101014028 B1 KR 101014028B1
- Authority
- KR
- South Korea
- Prior art keywords
- input
- output
- context
- efficiency
- time
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
Abstract
Description
Claims (21)
- 프로세스가 입출력 장치에 대하여 데이터의 입출력을 요청하는 단계;문맥전환(context switching)의 수행 여부를 결정하는 단계; 및상기 문맥전환의 수행 여부의 결정 결과에 대응하여 상기 입출력 장치의 드라이버 컨텍스트로 문맥전환을 수행 또는 상기 프로세스가 직접 상기 입출력을 수행하는 단계를 포함하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제1항에 있어서,상기 입출력 장치가 고속 블록 장치인지 여부를 판단하는 단계를 더 포함하고,상기 입출력 장치가 고속 블록 장치인 경우,상기 결정하는 단계 내지 상기 입출력을 수행하는 단계를 수행하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제1항에 있어서,상기 문맥전환의 수행 여부를 결정하는 단계는,입출력을 요청한 상기 프로세스에서 입출력을 직접 수행하는 제1 입출력 동작의 연산장치 효율 및 상기 입출력 장치의 드라이버 컨텍스트(device driver context)로 문맥전환(context switching)을 통해 입출력을 수행하는 제2 입출력 동작의 연산장치 효율 - 상기 연산장치 효율은 상기 프로세스의 입출력 응답시간에 대한 연산 처리시간의 비율임 - 을 비교하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제3항에 있어서,상기 입출력을 수행하는 단계는,상기 제1 입출력 동작의 연산장치 효율이 상기 제2 입출력 동작의 연산장치 효율보다 큰 경우, 상기 제1 입출력 동작을 수행하고,상기 제2 입출력 동작의 연산장치 효율이 상기 제1 입출력 동작의 연산장치 효율보다 큰 경우, 상기 제2 입출력 동작을 수행하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제3항에 있어서,상기 제1 입출력 동작은,입출력 완료시까지 입출력을 요청한 상기 프로세스가 입출력 동작을 직접 수행하는 것을 특징으로 하는 적응성 문맥 전환 방법.
- 제1항에 있어서,상기 문맥전환의 수행 여부를 결정하는 단계는,입출력에 소요되는 시간 및 연산장치가 프로세스에 할당되어 연산을 처리한 시간에 기초하여 상기 프로세스의 입출력 응답시간에 대한 연산 처리시간의 비율인 연산장치의 효율을 산출하고 비교하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제1항에 있어서,입출력 장치가 DMA(Direct Memory Access)를 사용하는지 여부를 확인하는 단계를 더 포함하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제7항에 있어서,상기 문맥전환의 수행 여부를 결정하는 단계는,상기 입출력 장치가 DMA를 사용하지 않고 문맥전환을 수행하는 경우,상기 입출력 장치로부터 인터럽트를 받을 때까지의 응답대기시간 및 디바이스 드라이버 문맥에 할당된 시간의 합을 이용하여 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제7항에 있어서,상기 문맥전환의 수행 여부를 결정하는 단계는,상기 입출력 장치가 DMA를 사용하지 않고 문맥전환을 수행하지 않는 경우,디바이스 드라이버 문맥에 할당된 시간을 이용하여 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제7항에 있어서,상기 문맥전환의 수행 여부를 결정하는 단계는,상기 입출력 장치가 DMA를 사용하고 문맥전환을 수행하는 경우,상기 입출력 장치로부터 인터럽트를 받을 때까지의 응답대기시간 및 디바이스 드라이버 문맥에 할당된 시간의 두 배를 이용하여 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제7항에 있어서,상기 문맥전환의 수행 여부를 결정하는 단계는,상기 입출력 장치가 DMA를 사용하고 문맥전환을 수행하지 않는 경우,디바이스 드라이버 문맥에 할당된 시간을 이용하여 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제8항 내지 제11항 중 어느 하나의 항에 있어서,상기 디바이스 드라이버 문맥에 할당된 시간은,디스크의 버퍼 캐쉬에서 버스를 통해 메모리로 데이터를 전송하는데 소요되 는 시간을 이용하여 산출하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 제1항에 있어서,상기 입출력 요청이 있는 경우, 상기 입출력을 수행하기에 앞서 상기 입출력 장치의 큐(queue)에 응답 대기중인 요청이 있는지 여부를 판단하는 단계를 더 포함하고,상기 입출력을 수행하는 단계는,상기 입출력 장치의 큐(queue)에 응답 대기중인 요청이 있는 경우, 상기 입출력 장치의 드라이버 컨텍스트(device driver context)로 문맥전환(context switching)을 수행하여 상기 입출력을 수행하는 것을 특징으로 하는 적응성 문맥전환 방법.
- 프로세스가 입출력 장치에 대하여 입출력을 요청하는 입출력 요청부;문맥전환(context switching)의 수행 여부를 결정하는 연산장치 효율 비교부; 및상기 문맥전환의 수행 여부의 결정 결과에 대응하여 상기 입출력 장치의 드라이버 컨텍스트로 문맥전환을 수행 또는 상기 프로세스가 직접 입출력을 수행하는 입출력 수행부를 포함하는 적응성 문맥전환 장치.
- 제14항에 있어서,입출력 장치가 DMA(Direct Memory Access)를 사용하는지 여부를 확인하는 DMA 사용 확인부를 더 포함하고,상기 연산장치 효율 비교부는입출력 요청 프로세스에서 입출력을 직접 수행하는 제1 입출력 동작 및 디바이스 드라이버 컨텍스트(device driver context)로 문맥전환(context switching)을 통해 입출력을 수행하는 제2 입출력 동작 각각의 연산장치 효율 - 상기 연산장치 효율은 상기 프로세스의 입출력 응답시간에 대한 연산 처리시간의 비율임 - 을 산출하는 연산장치 효율 산출부; 및상기 각 동작의 연산장치 효율을 비교하는 효율 비교부를 포함하는 것을 특징으로 하는 적응성 문맥전환 장치.
- 제15항에 있어서,상기 연산장치 효율 산출부는,상기 입출력 장치가 DMA를 사용하지 않는 경우 상기 제1 입출력 동작 및 상기 제2 입출력 동작에 따른 연산장치의 효율을 산출하는 제1 연산장치 효율 산출부; 및상기 입출력 장치가 DMA를 사용하는 경우 상기 제1 입출력 동작 및 상기 제2 입출력 동작에 따른 연산장치의 효율을 산출하는 제2 연산장치 효율 산출부를 포함하는 것을 특징으로 하는 적응성 문맥전환 장치.
- 제16항에 있어서,상기 제1 연산장치 효율 산출부 및 상기 제2 연산장치 효율 산출부는,입출력에 소요되는 시간 및 상기 연산장치가 프로세스에 할당되어 연산을 처리한 시간에 기초하여 연산장치의 효율을 산출하는 것을 특징으로 하는 적응성 문맥전환 장치.
- 제17항에 있어서,상기 제1 연산장치 효율 산출부는,문맥전환을 수행하는 경우,상기 입출력 장치로부터 인터럽트를 받을 때까지의 응답대기시간 및 디바이스 드라이버 문맥에 할당된 시간의 합을 이용하여 상기 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하고,문맥전환을 수행하지 않는 경우,디바이스 드라이버 문맥에 할당된 시간을 이용하여 상기 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하는 것을 특징으로 하는 적응성 문맥전환 장치.
- 제17항에 있어서,상기 제2 연산장치 효율 산출부는,문맥전환을 수행하는 경우,상기 입출력 장치로부터 인터럽트를 받을 때까지의 응답대기시간 및 디바이 스 드라이버 문맥에 할당된 시간의 두 배를 이용하여 상기 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하고,문맥전환을 수행하지 않는 경우,디바이스 드라이버 문맥에 할당된 시간을 이용하여 상기 연산장치가 프로세스에 할당되어 연산을 처리한 시간을 산출하는 것을 특징으로 하는 적응성 문맥전환 장치.
- 제14항에 있어서,상기 입출력 장치가 고속 블록 장치인지 여부를 판단하는 고속 블록 장치 판단부를 더 포함하는 것을 특징으로 하는 적응성 문맥전환 장치.
- 제14항에 있어서,상기 입출력 요청이 있는 경우, 상기 입출력을 수행하기에 앞서 상기 입출력 장치의 큐(queue)에 응답 대기중인 요청이 있는지 여부를 판단하는 응답 대기 판단부를 더 포함하고,상기 입출력 수행부는,상기 입출력 장치의 큐(queue)에 응답 대기중인 요청이 있는 경우, 상기 입출력 장치의 드라이버 컨텍스트(device driver context)로 문맥전환(context switching)을 수행하여 상기 입출력을 수행하는 것을 특징으로 하는 적응성 문맥전환 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080118331A KR101014028B1 (ko) | 2008-11-26 | 2008-11-26 | 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 |
PCT/KR2009/006992 WO2010062112A2 (en) | 2008-11-26 | 2009-11-25 | Apparatus and method for adaptive context switching scheduling scheme for fast block input and output |
US13/112,671 US8826295B2 (en) | 2008-11-26 | 2011-05-20 | Apparatus and method for adaptive context switching scheduling scheme for fast block input and output |
US14/447,471 US9841995B2 (en) | 2008-11-26 | 2014-07-30 | Apparatus and method for adaptive context switching scheduling scheme for fast block input and output |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080118331A KR101014028B1 (ko) | 2008-11-26 | 2008-11-26 | 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100059530A KR20100059530A (ko) | 2010-06-04 |
KR101014028B1 true KR101014028B1 (ko) | 2011-02-14 |
Family
ID=42226255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080118331A KR101014028B1 (ko) | 2008-11-26 | 2008-11-26 | 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8826295B2 (ko) |
KR (1) | KR101014028B1 (ko) |
WO (1) | WO2010062112A2 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101014028B1 (ko) * | 2008-11-26 | 2011-02-14 | 한양대학교 산학협력단 | 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 |
US9996390B2 (en) | 2014-06-10 | 2018-06-12 | Samsung Electronics Co., Ltd. | Method and system for performing adaptive context switching |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207227A (ja) | 1999-01-14 | 2000-07-28 | Sony Corp | 演算装置 |
KR20010070469A (ko) * | 2000-01-07 | 2001-07-25 | 비센트 비.인그라시아, 알크 엠 아헨 | 고속의 낮은 오버헤드 콘텍스트 스위치를 실행하는디바이스 및 방법 |
KR20040074628A (ko) * | 2004-02-18 | 2004-08-25 | 마이크로소프트 코포레이션 | 코프로세서의 성능을 개선하기 위한 시스템 및 방법 |
KR20060063643A (ko) * | 2004-12-03 | 2006-06-12 | 마이크로소프트 코포레이션 | 운영 체제의 성능을 향상시키는 방법 및 시스템 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659749A (en) * | 1995-05-08 | 1997-08-19 | National Instruments Corporation | System and method for performing efficient hardware context switching in an instrumentation system |
US6085277A (en) * | 1997-10-15 | 2000-07-04 | International Business Machines Corporation | Interrupt and message batching apparatus and method |
US7320065B2 (en) * | 2001-04-26 | 2008-01-15 | Eleven Engineering Incorporated | Multithread embedded processor with input/output capability |
WO2004006105A2 (en) * | 2002-07-08 | 2004-01-15 | Globespanvirata Incorporated | Dma scheduling mechanism |
US7080374B2 (en) * | 2002-12-18 | 2006-07-18 | Bea Systems, Inc. | System and method for using native code interpretation to move threads to a safe state in a run-time environment |
US6976100B2 (en) * | 2003-04-25 | 2005-12-13 | International Business Machines Corporation | Autonomic I/O adapter response performance optimization using polling |
US6922740B2 (en) * | 2003-05-21 | 2005-07-26 | Intel Corporation | Apparatus and method of memory access control for bus masters |
US7149832B2 (en) * | 2004-11-10 | 2006-12-12 | Microsoft Corporation | System and method for interrupt handling |
DE102004061339A1 (de) * | 2004-12-20 | 2006-06-29 | Infineon Technologies Ag | Scheduling-Verfahren, insbesondere Kontex-Scheduling-Verfahren, und Einrichtung zur Verwendung bei einem Scheduling-Verfahren |
JP2006279466A (ja) * | 2005-03-29 | 2006-10-12 | Fujitsu Ltd | 監視システム、監視プログラム及び監視方法 |
US8010740B2 (en) * | 2006-06-08 | 2011-08-30 | Bitmicro Networks, Inc. | Optimizing memory operations in an electronic storage device |
US20080165800A1 (en) * | 2007-01-09 | 2008-07-10 | Chen Wen-Tzer T | Method and apparatus to provide dynamic cost of context switch to application for performance optimization |
US20080281852A1 (en) * | 2007-05-11 | 2008-11-13 | Nokia Corporation | Method, apparatus and computer program product for providing an adaptive framework for a metadata-context switch |
US7802071B2 (en) * | 2007-07-16 | 2010-09-21 | Voltaire Ltd. | Device, system, and method of publishing information to multiple subscribers |
KR101014028B1 (ko) * | 2008-11-26 | 2011-02-14 | 한양대학교 산학협력단 | 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 |
-
2008
- 2008-11-26 KR KR1020080118331A patent/KR101014028B1/ko active IP Right Grant
-
2009
- 2009-11-25 WO PCT/KR2009/006992 patent/WO2010062112A2/en active Application Filing
-
2011
- 2011-05-20 US US13/112,671 patent/US8826295B2/en not_active Expired - Fee Related
-
2014
- 2014-07-30 US US14/447,471 patent/US9841995B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207227A (ja) | 1999-01-14 | 2000-07-28 | Sony Corp | 演算装置 |
KR20010070469A (ko) * | 2000-01-07 | 2001-07-25 | 비센트 비.인그라시아, 알크 엠 아헨 | 고속의 낮은 오버헤드 콘텍스트 스위치를 실행하는디바이스 및 방법 |
KR20040074628A (ko) * | 2004-02-18 | 2004-08-25 | 마이크로소프트 코포레이션 | 코프로세서의 성능을 개선하기 위한 시스템 및 방법 |
KR20060063643A (ko) * | 2004-12-03 | 2006-06-12 | 마이크로소프트 코포레이션 | 운영 체제의 성능을 향상시키는 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO2010062112A2 (en) | 2010-06-03 |
US8826295B2 (en) | 2014-09-02 |
WO2010062112A3 (en) | 2010-08-12 |
US20110239225A1 (en) | 2011-09-29 |
KR20100059530A (ko) | 2010-06-04 |
US9841995B2 (en) | 2017-12-12 |
US20140337858A1 (en) | 2014-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
KR100977662B1 (ko) | 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서 | |
US9299121B2 (en) | Preemptive context switching | |
JP5498505B2 (ja) | データバースト間の競合の解決 | |
JP2011526390A (ja) | 仮想化環境における割り込みメッセージ終了のレイジー処理 | |
US7366814B2 (en) | Heterogeneous multiprocessor system and OS configuration method thereof | |
US8402172B2 (en) | Processing an input/output request on a multiprocessor system | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US20120200579A1 (en) | Process Device Context Switching | |
US10545890B2 (en) | Information processing device, information processing method, and program | |
US20170212852A1 (en) | Method and accelerator unit for interrupt handling | |
US20150268985A1 (en) | Low Latency Data Delivery | |
US20130125131A1 (en) | Multi-core processor system, thread control method, and computer product | |
US8141077B2 (en) | System, method and medium for providing asynchronous input and output with less system calls to and from an operating system | |
KR101014028B1 (ko) | 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치 | |
US9286129B2 (en) | Termination of requests in a distributed coprocessor system | |
CN112114967B (zh) | 一种基于服务优先级的gpu资源预留方法 | |
JP2005092780A (ja) | リアルタイムプロセッサシステム及び制御方法 | |
CN113515388A (zh) | 一种进程调度方法、装置、计算设备及可读存储介质 | |
JP2004326782A (ja) | 暗黙の通知を伴うデータ転送 | |
JP4631442B2 (ja) | プロセッサ | |
CN113439260A (zh) | 针对低时延存储设备的i/o完成轮询 | |
JP2015197802A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP7157542B2 (ja) | プリフェッチコントローラ | |
US20240134710A1 (en) | Process allocation control device, process allocation control method, and recording medium storing process allocation control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20131230 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20141203 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180102 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190102 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20200102 Year of fee payment: 10 |