JP2008541306A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2008541306A5 JP2008541306A5 JP2008512442A JP2008512442A JP2008541306A5 JP 2008541306 A5 JP2008541306 A5 JP 2008541306A5 JP 2008512442 A JP2008512442 A JP 2008512442A JP 2008512442 A JP2008512442 A JP 2008512442A JP 2008541306 A5 JP2008541306 A5 JP 2008541306A5
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- user mode
- driver
- computer
- service
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 101700069532 GSTF2 Proteins 0.000 claims 3
- 230000000873 masking Effects 0.000 claims 3
Claims (17)
- コンピュータで実行する、デバイスと独立に割り込みを処理する方法であって、
ユーザ・モードで実行されるデバイス・ドライバをオペレーティング・システムに登録するステップと、
デバイスと独立な割り込みサービスをカーネル・サービスとして提供するステップと、
前記ドライバによってコールされるインターフェースを露出(expose)し、割り込みをイネーブルするステップと、
前記割り込みをデバイスと独立な方法でマスクするステップと、
前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記デバイス・ドライバからのコールを受け取るステップと、
前記割り込みをマスク解除するステップと、
前記割り込みを受け取るステップと、
前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
プロセッサよりも低いレベルで前記割り込みを再度マスクする、ジェネリックな割り込みサービス・ルーチンを実行し、前記割り込みを処理するために、ユーザ・モードで前記デバイス・ドライバのコールをスケジュリングするステップと、
前記割り込みを前記デバイス・ドライバによって処理するステップと、
前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
を含むことを特徴とする方法。 - コンピュータで実行する、請求項1記載の方法において、
前記割り込みをディセーブルするステップは、APIC又はバス・コントローラの一方において生じることを特徴とする方法。 - コンピュータで実行する、請求項1記載の方法において、
前記割り込みを共有するスケジュリング機構を提供するステップと、
前記割り込みを共有するすべてのドライバをコールするステップと、
すべてのドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
を更に含むことを特徴とする方法。 - コンピュータで実行する、請求項3記載の方法において、
前記割り込みを共有する多数のドライバにカウンタを設定するステップを更に含むことを特徴とする方法。 - コンピュータで実行する、請求項4記載の方法において、
前記割り込みをイネーブルする前に前記カウンタをゼロにデクリメントするステップを更に含むことを特徴とする方法。 - コンピュータで実行する、請求項3記載の方法において、
第2のドライバがカーネル・モード・レベルにおいて提供され、
前記方法が、ユーザ・モード・ドライバとカーネル・モード・ドライバとの両方に対して実行されることを特徴とする方法。 - コンピュータで実行する、請求項1記載の方法において、
前記カーネル・サービスは前記ドライバによって処理されるデバイスとは独立であるジェネリックなサービスであり、
前記ドライバはユーザ・モード・ドライバであることを特徴とする方法。 - コンピュータで実行する、ユーザ・モードのデバイス・ドライバの処理方法であって、
ユーザ・モードのデバイス・ドライバをオペレーティング・システムに登録するステップと、
前記ユーザ・モードのデバイス・ドライバによってコールされるインターフェースを露出し、割り込みをイネーブルする、前記デバイスと独立な割り込みサービスをカーネル・サービスとして提供するステップと、
前記ジェネリックな割り込みサービス・ルーチンを実行する前に、前記割り込みをプロセッサにおいてマスクするステップと、
前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記ユーザ・モードのデバイス・ドライバのうちのひとつからのコールを受け取るステップと、
前記割り込みをマスク解除するステップと、
前記割り込みを受け取るステップと、
前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
前記ジェネリックなカーネル・モード割り込みサービスを実行するステップと、
前記割り込みを前記プロセッサよりも低いレベルでディセーブルして、前記割り込みが前記プロセッサに到達することを防止するステップと、
前記割り込みを処理するために、ユーザ・モードで前記ユーザ・モードのデバイス・ドライバのうちのひとつをコールすることをスケジュリングするステップと、
前記割り込みを前記ユーザ・モードのデバイス・ドライバのうちのひとつによって処理するステップと、
前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
を含むことを特徴とする方法。 - 請求項8記載の方法において、
前記割り込みをディセーブルするステップは、APIC又はバス・コントローラの一方において生じることを特徴とする方法。 - 請求項8記載の方法において、
割り込みを共有するスケジュリング機構を提供するステップと、
前記共有された割り込みと関連するすべてのユーザ・モードのデバイス・ドライバをコールするステップと、
すべてのユーザ・モードのデバイス・ドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
を更に含むことを特徴とする方法。 - 請求項10記載の方法において、
未登録又は未知のデバイスのために前記スケジュリング機構を実行するステップと、
前記未登録又は未知のデバイスをディセーブルするステップと、
を更に含むことを特徴とする方法。 - 請求項8記載の方法において、
カーネル・モードのデバイス・ドライバが提供され、
前記方法が、前記ユーザ・モードのデバイス・ドライバと前記カーネル・モードのデバイス・ドライバとの両方で実行されることを特徴とする方法。 - ユーザ・モードのデバイス・ドライバを処理するための命令が記憶されているコンピュータ可読な媒体であって、前記命令は、
前記ユーザ・モードのデバイス・ドライバをオペレーティング・システムに登録するステップと、
割り込みサービスをカーネル・サービスとして提供するステップであって、前記割り込みサービスは前記ユーザ・モードのデバイス・ドライバによってコールされるインターフェースを露出して、割り込みをイネーブルする、ステップと、
割り込みラインへのアクセスを提供する割り込みオブジェクトを、前記デバイス・ドライバのひとつに割り付け、かつ、前記割り込みオブジェクトを前記ユーザ・モードのデバイス・ドライブのひとつに受け渡すステップと、
プロセッサにおいて前記割り込みをマスクするステップと、
前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記ユーザ・モードのデバイス・ドライバのうちのひとつからのコールを受け取るステップと、
前記割り込みをマスク解除するステップと、
前記割り込みを受け取るステップと、
前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
前記ジェネリックなカーネル・モード割り込みサービスを実行するステップと、
前記割り込みを前記プロセッサよりも低いレベルでディセーブルして、前記割り込みが前記プロセッサに到達することを防止するステップと、
前記割り込みを処理するために、ユーザ・モードで前記ユーザ・モードのデバイス・ドライバのうちのひとつをコールすることをスケジュリングするステップと、
前記割り込みを前記ユーザ・モードのデバイス・ドライバのうちのひとつによって処理するステップと、
前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
を含む方法を実行することを特徴とするコンピュータ可読な媒体。 - 請求項13記載のコンピュータ可読な媒体において、
前記割り込みのディセーブルは、APIC又はバス・コントローラの一方において生じることを特徴とするコンピュータ可読な媒体。 - 請求項13記載のコンピュータ可読な媒体において、
共有された割り込みのためのスケジュリング機構を提供するステップと、
前記共有された割り込みと関連するすべてのユーザ・モードのデバイス・ドライバをコールするステップと、
すべてのユーザ・モードのデバイス・ドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
を実行するための命令を更に含むことを特徴とするコンピュータ可読な媒体。 - 請求項15記載のコンピュータ可読な媒体において、
未登録又は未知のデバイスのために前記スケジュリング機構を実行するステップと、
前記未登録又は未知のデバイスをディセーブルするステップと、
を実行するための命令を更に含むことを特徴とするコンピュータ可読な媒体。 - 請求項15記載のコンピュータ可読な媒体において、
カーネル・モードのデバイス・ドライバが提供され、
前記命令は、前記ユーザ・モードのデバイス・ドライバとカーネル・モードのデバイス・ドライバとの両方で実行されることを特徴とするコンピュータ可読な媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/129,802 | 2005-05-16 | ||
US11/129,802 US7581051B2 (en) | 2005-05-16 | 2005-05-16 | Method for delivering interrupts to user mode drivers |
PCT/US2006/018928 WO2006124905A2 (en) | 2005-05-16 | 2006-05-16 | Method for delivering interrupts to user mode drivers |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008541306A JP2008541306A (ja) | 2008-11-20 |
JP2008541306A5 true JP2008541306A5 (ja) | 2009-06-25 |
JP4840945B2 JP4840945B2 (ja) | 2011-12-21 |
Family
ID=37420515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008512442A Active JP4840945B2 (ja) | 2005-05-16 | 2006-05-16 | ユーザ・モード・ドライバへ割り込みを配送する方法 |
Country Status (13)
Country | Link |
---|---|
US (1) | US7581051B2 (ja) |
EP (1) | EP1889165B1 (ja) |
JP (1) | JP4840945B2 (ja) |
KR (1) | KR20080013914A (ja) |
CN (1) | CN101176084B (ja) |
AT (1) | ATE538436T1 (ja) |
BR (1) | BRPI0610159A2 (ja) |
CA (1) | CA2608081A1 (ja) |
HK (1) | HK1112305A1 (ja) |
MX (1) | MX2007014338A (ja) |
NO (1) | NO20075837L (ja) |
RU (1) | RU2417413C2 (ja) |
WO (1) | WO2006124905A2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7950025B1 (en) * | 2007-06-29 | 2011-05-24 | Emc Corporation | Common software environment |
US7950022B1 (en) * | 2007-06-29 | 2011-05-24 | Emc Corporation | Techniques for use with device drivers in a common software environment |
US8434098B2 (en) * | 2008-02-07 | 2013-04-30 | Microsoft Corporation | Synchronizing split user-mode/kernel-mode device driver architecture |
US20090210888A1 (en) * | 2008-02-14 | 2009-08-20 | Microsoft Corporation | Software isolated device driver architecture |
US8387075B1 (en) * | 2008-03-28 | 2013-02-26 | Emc Corporation | Common scheduling and synchronization primitives |
US8285904B2 (en) * | 2009-08-14 | 2012-10-09 | Advanced Micro Devices, Inc. | Flexible notification mechanism for user-level interrupts |
US8806511B2 (en) | 2010-11-18 | 2014-08-12 | International Business Machines Corporation | Executing a kernel device driver as a user space process |
US9075985B2 (en) * | 2013-05-31 | 2015-07-07 | Microsoft Technology Licensing, Llc | Restricted transmogrifying driver platform |
US9921984B2 (en) * | 2014-12-23 | 2018-03-20 | Intel Corporation | Delivering interrupts to user-level applications |
US9672173B2 (en) * | 2015-02-26 | 2017-06-06 | Red Hat Israel, Ltd. | Shared PCI interrupt line management |
US9465617B1 (en) * | 2015-06-29 | 2016-10-11 | Vmware, Inc. | Implementing upcall from secure to non-secure mode by injecting exception into non-secure mode |
KR102085899B1 (ko) * | 2018-12-10 | 2020-03-06 | 현대오트론 주식회사 | 자동차 전자제어장치의 사용량 모니터링 방법 및 모니터링 유닛 |
EP3819776B1 (en) * | 2019-11-05 | 2021-12-29 | Shenzhen Goodix Technology Co., Ltd. | Method and apparatus for aborting blocked bus access between a master controller and connected peripherals |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN171220B (ja) * | 1987-07-01 | 1992-08-15 | Digital Equipment Corp | |
JPH01145751A (ja) * | 1987-12-01 | 1989-06-07 | Pfu Ltd | 入出力制御方式 |
JPH02170237A (ja) * | 1988-12-23 | 1990-07-02 | Fujitsu Ltd | 割り込み制御方式 |
US5297282A (en) * | 1991-05-29 | 1994-03-22 | Toshiba America Information Systems, Inc. | Resume processing function for the OS/2 operating system |
US5469571A (en) * | 1991-07-15 | 1995-11-21 | Lynx Real-Time Systems, Inc. | Operating system architecture using multiple priority light weight kernel task based interrupt handling |
JPH05108507A (ja) * | 1991-10-17 | 1993-04-30 | Ricoh Co Ltd | バスエラー処理回路 |
US5438677A (en) * | 1992-08-17 | 1995-08-01 | Intel Corporation | Mutual exclusion for computer system |
JP3242508B2 (ja) * | 1993-11-05 | 2001-12-25 | 松下電器産業株式会社 | マイクロコンピュータ |
US5566346A (en) * | 1993-12-21 | 1996-10-15 | Taligent, Inc. | System for constructing hardware device interface software systems independent of operating systems including capability of installing and removing interrupt handlers |
US6732138B1 (en) * | 1995-07-26 | 2004-05-04 | International Business Machines Corporation | Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process |
US6412035B1 (en) * | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US6212574B1 (en) * | 1997-04-04 | 2001-04-03 | Microsoft Corporation | User mode proxy of kernel mode operations in a computer operating system |
US5926775A (en) * | 1997-10-08 | 1999-07-20 | National Instruments Corporation | Mini driver software architecture for a data acquisition system |
US6871350B2 (en) * | 1998-12-15 | 2005-03-22 | Microsoft Corporation | User mode device driver interface for translating source code from the user mode device driver to be executed in the kernel mode or user mode |
US6785894B1 (en) * | 1999-04-09 | 2004-08-31 | Sun Microsystems, Inc. | Virtual device driver |
US6598169B1 (en) * | 1999-07-26 | 2003-07-22 | Microsoft Corporation | System and method for accessing information made available by a kernel mode driver |
US6957432B2 (en) | 2000-03-21 | 2005-10-18 | Microsoft Corporation | Real-time scheduler |
US6766398B2 (en) * | 2001-04-17 | 2004-07-20 | International Business Machines Corporation | Method for processing PCI interrupt signals in a logically partitioned guest operating system |
US7024672B2 (en) | 2002-06-26 | 2006-04-04 | Microsoft Corporation | Process-mode independent driver model |
CN1208721C (zh) * | 2003-09-19 | 2005-06-29 | 清华大学 | 基于PowerPC处理器结构的分级任务切换方法 |
US7149832B2 (en) * | 2004-11-10 | 2006-12-12 | Microsoft Corporation | System and method for interrupt handling |
-
2005
- 2005-05-16 US US11/129,802 patent/US7581051B2/en not_active Expired - Fee Related
-
2006
- 2006-05-16 CN CN2006800166994A patent/CN101176084B/zh not_active Expired - Fee Related
- 2006-05-16 RU RU2007142279/08A patent/RU2417413C2/ru not_active IP Right Cessation
- 2006-05-16 BR BRPI0610159-3A patent/BRPI0610159A2/pt not_active IP Right Cessation
- 2006-05-16 WO PCT/US2006/018928 patent/WO2006124905A2/en active Application Filing
- 2006-05-16 EP EP06784420A patent/EP1889165B1/en not_active Not-in-force
- 2006-05-16 CA CA002608081A patent/CA2608081A1/en not_active Withdrawn
- 2006-05-16 MX MX2007014338A patent/MX2007014338A/es active IP Right Grant
- 2006-05-16 KR KR1020077026790A patent/KR20080013914A/ko not_active IP Right Cessation
- 2006-05-16 JP JP2008512442A patent/JP4840945B2/ja active Active
- 2006-05-16 AT AT06784420T patent/ATE538436T1/de active
-
2007
- 2007-11-14 NO NO20075837A patent/NO20075837L/no unknown
-
2008
- 2008-07-02 HK HK08107305.7A patent/HK1112305A1/xx not_active IP Right Cessation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008541306A5 (ja) | ||
RU2007142279A (ru) | Способ доставки прерываний в драйверы пользовательского режима | |
TWI547876B (zh) | 虛擬環境之中斷處理方法與系統 | |
US9354952B2 (en) | Application-driven shared device queue polling | |
US9009702B2 (en) | Application-driven shared device queue polling in a virtualized computing environment | |
EP3306470B1 (en) | Method and apparatus for executing non-maskable interrupt | |
EP3241149B1 (en) | Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system | |
EP1836569B1 (en) | Interrupt control function adapted to control the execution of interrupt requests of differing criticality | |
GB2394099B (en) | Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads | |
JP2015502618A5 (ja) | ||
US7366814B2 (en) | Heterogeneous multiprocessor system and OS configuration method thereof | |
KR20160033517A (ko) | 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법 | |
US20130125117A1 (en) | Method and Arrangement for Using a Resource of a Hardware Platform with at Least Two Virtual Machines | |
CN101246438A (zh) | 一种对称多处理系统中进程与中断的处理方法及装置 | |
JP2007004382A5 (ja) | ||
WO2007076190A3 (en) | Efficient task scheduling by assigning fixed registers to scheduler | |
US20180107621A1 (en) | Quality of service ordinal modification | |
US20170212852A1 (en) | Method and accelerator unit for interrupt handling | |
JP4348639B2 (ja) | マルチプロセッサシステム、ワークロード管理方法 | |
US9069741B2 (en) | Emulating level triggered interrupts of physical devices assigned to virtual machine | |
JP2013233286A5 (ja) | ||
JP2022067307A5 (ja) | ||
JP2022067306A5 (ja) | ||
JP5708003B2 (ja) | 演算処理装置、計算ノード、並列計算機システム、演算処理方法および演算処理プログラム | |
US20110131577A1 (en) | Data processor |