JP2008541306A5 - - Google Patents

Download PDF

Info

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
Application number
JP2008512442A
Other languages
English (en)
Other versions
JP2008541306A (ja
JP4840945B2 (ja
Filing date
Publication date
Priority claimed from US11/129,802 external-priority patent/US7581051B2/en
Application filed filed Critical
Publication of JP2008541306A publication Critical patent/JP2008541306A/ja
Publication of JP2008541306A5 publication Critical patent/JP2008541306A5/ja
Application granted granted Critical
Publication of JP4840945B2 publication Critical patent/JP4840945B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (17)

  1. コンピュータで実行する、デバイスと独立に割り込みを処理する方法であって、
    ユーザ・モードで実行されるデバイス・ドライバをオペレーティング・システムに登録するステップと、
    デバイスと独立な割り込みサービスをカーネル・サービスとして提供するステップと、
    前記ドライバによってコールされるインターフェースを露出(expose)し、割り込みをイネーブルするステップと、
    前記割り込みをデバイスと独立な方法でマスクするステップと、
    前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記デバイス・ドライバからのコールを受け取るステップと、
    前記割り込みをマスク解除するステップと、
    前記割り込みを受け取るステップと、
    前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
    プロセッサよりも低いレベルで前記割り込みを再度マスクする、ジェネリックな割り込みサービス・ルーチンを実行し、前記割り込みを処理するために、ユーザ・モードで前記デバイス・ドライバのコールをスケジュリングするステップと、
    前記割り込みを前記デバイス・ドライバによって処理するステップと、
    前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
    を含むことを特徴とする方法。
  2. コンピュータで実行する、請求項1記載の方法において、
    前記割り込みをディセーブルするステップは、APIC又はバス・コントローラの一方において生じることを特徴とする方法。
  3. コンピュータで実行する、請求項1記載の方法において、
    前記割り込みを共有するスケジュリング機構を提供するステップと、
    前記割り込みを共有するすべてのドライバをコールするステップと、
    すべてのドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
    を更に含むことを特徴とする方法。
  4. コンピュータで実行する、請求項3記載の方法において、
    前記割り込みを共有する多数のドライバにカウンタを設定するステップを更に含むことを特徴とする方法。
  5. コンピュータで実行する、請求項4記載の方法において、
    前記割り込みをイネーブルする前に前記カウンタをゼロにデクリメントするステップを更に含むことを特徴とする方法。
  6. コンピュータで実行する、請求項3記載の方法において、
    第2のドライバがカーネル・モード・レベルにおいて提供され、
    前記方法が、ユーザ・モード・ドライバとカーネル・モード・ドライバとの両方に対して実行されることを特徴とする方法。
  7. コンピュータで実行する、請求項1記載の方法において、
    前記カーネル・サービスは前記ドライバによって処理されるデバイスとは独立であるジェネリックなサービスであり、
    前記ドライバはユーザ・モード・ドライバであることを特徴とする方法。
  8. コンピュータで実行する、ユーザ・モードのデバイス・ドライバの処理方法であって、
    ユーザ・モードのデバイス・ドライバをオペレーティング・システムに登録するステップと、
    前記ユーザ・モードのデバイス・ドライバによってコールされるインターフェースを露出し、割り込みをイネーブルする、前記デバイスと独立な割り込みサービスをカーネル・サービスとして提供するステップと、
    前記ジェネリックな割り込みサービス・ルーチンを実行する前に、前記割り込みをプロセッサにおいてマスクするステップと、
    前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記ユーザ・モードのデバイス・ドライバのうちのひとつからのコールを受け取るステップと、
    前記割り込みをマスク解除するステップと、
    前記割り込みを受け取るステップと、
    前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
    前記ジェネリックなカーネル・モード割り込みサービスを実行するステップと、
    前記割り込みを前記プロセッサよりも低いレベルでディセーブルして、前記割り込みが前記プロセッサに到達することを防止するステップと、
    前記割り込みを処理するために、ユーザ・モードで前記ユーザ・モードのデバイス・ドライバのうちのひとつをコールすることをスケジュリングするステップと、
    前記割り込みを前記ユーザ・モードのデバイス・ドライバのうちのひとつによって処理するステップと、
    前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
    を含むことを特徴とする方法。
  9. 請求項8記載の方法において、
    前記割り込みをディセーブルするステップは、APIC又はバス・コントローラの一方において生じることを特徴とする方法。
  10. 請求項8記載の方法において、
    割り込みを共有するスケジュリング機構を提供するステップと、
    前記共有された割り込みと関連するすべてのユーザ・モードのデバイス・ドライバをコールするステップと、
    すべてのユーザ・モードのデバイス・ドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
    を更に含むことを特徴とする方法。
  11. 請求項10記載の方法において、
    未登録又は未知のデバイスのために前記スケジュリング機構を実行するステップと、
    前記未登録又は未知のデバイスをディセーブルするステップと、
    を更に含むことを特徴とする方法。
  12. 請求項8記載の方法において、
    カーネル・モードのデバイス・ドライバが提供され、
    前記方法が、前記ユーザ・モードのデバイス・ドライバと前記カーネル・モードのデバイス・ドライバとの両方で実行されることを特徴とする方法。
  13. ユーザ・モードのデバイス・ドライバを処理するための命令が記憶されているコンピュータ可読な媒体であって、前記命令は、
    前記ユーザ・モードのデバイス・ドライバをオペレーティング・システムに登録するステップと、
    割り込みサービスをカーネル・サービスとして提供するステップであって、前記割り込みサービスは前記ユーザ・モードのデバイス・ドライバによってコールされるインターフェースを露出して、割り込みをイネーブルする、ステップと、
    割り込みラインへのアクセスを提供する割り込みオブジェクトを、前記デバイス・ドライバのひとつに割り付け、かつ、前記割り込みオブジェクトを前記ユーザ・モードのデバイス・ドライブのひとつに受け渡すステップと、
    プロセッサにおいて前記割り込みをマスクするステップと、
    前記インターフェイスを介して、前記割り込みサービスにより割り込みラインに生じた、前記ユーザ・モードのデバイス・ドライバのうちのひとつからのコールを受け取るステップと、
    前記割り込みをマスク解除するステップと、
    前記割り込みを受け取るステップと、
    前記割り込みラインを共有するカーネル・モード・ドライバのために割り込みサービス・ルーチンを呼び出した後で、前記割り込みを受け取って、ジェネリックなカーネル・モード・割り込みサービス・ルーチンを呼び出すステップと、
    前記ジェネリックなカーネル・モード割り込みサービスを実行するステップと、
    前記割り込みを前記プロセッサよりも低いレベルでディセーブルして、前記割り込みが前記プロセッサに到達することを防止するステップと、
    前記割り込みを処理するために、ユーザ・モードで前記ユーザ・モードのデバイス・ドライバのうちのひとつをコールすることをスケジュリングするステップと、
    前記割り込みを前記ユーザ・モードのデバイス・ドライバのうちのひとつによって処理するステップと、
    前記割り込みラインが、他の割り込みを受け取れるようにするステップと、
    を含む方法を実行することを特徴とするコンピュータ可読な媒体。
  14. 請求項13記載のコンピュータ可読な媒体において、
    前記割り込みのディセーブルは、APIC又はバス・コントローラの一方において生じることを特徴とするコンピュータ可読な媒体。
  15. 請求項13記載のコンピュータ可読な媒体において、
    共有された割り込みのためのスケジュリング機構を提供するステップと、
    前記共有された割り込みと関連するすべてのユーザ・モードのデバイス・ドライバをコールするステップと、
    すべてのユーザ・モードのデバイス・ドライバが前記割り込みの処理から復帰するまで前記割り込みの前記ディセーブルを維持するステップと、
    を実行するための命令を更に含むことを特徴とするコンピュータ可読な媒体。
  16. 請求項15記載のコンピュータ可読な媒体において、
    未登録又は未知のデバイスのために前記スケジュリング機構を実行するステップと、
    前記未登録又は未知のデバイスをディセーブルするステップと、
    を実行するための命令を更に含むことを特徴とするコンピュータ可読な媒体。
  17. 請求項15記載のコンピュータ可読な媒体において、
    カーネル・モードのデバイス・ドライバが提供され、
    前記命令は、前記ユーザ・モードのデバイス・ドライバとカーネル・モードのデバイス・ドライバとの両方で実行されることを特徴とするコンピュータ可読な媒体。
JP2008512442A 2005-05-16 2006-05-16 ユーザ・モード・ドライバへ割り込みを配送する方法 Active JP4840945B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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