[go: up one dir, main page]

JP2006294028A - System for providing direct execution function, computer system, method and program - Google Patents

System for providing direct execution function, computer system, method and program Download PDF

Info

Publication number
JP2006294028A
JP2006294028A JP2006102266A JP2006102266A JP2006294028A JP 2006294028 A JP2006294028 A JP 2006294028A JP 2006102266 A JP2006102266 A JP 2006102266A JP 2006102266 A JP2006102266 A JP 2006102266A JP 2006294028 A JP2006294028 A JP 2006294028A
Authority
JP
Japan
Prior art keywords
file
memory
file system
driver
interface
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
JP2006102266A
Other languages
Japanese (ja)
Other versions
JP4921018B2 (en
JP2006294028A5 (en
Inventor
Otto Karsten
カーステン・オット
Weigand Ulrich
ウルリヒ・ウェイガンド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006294028A publication Critical patent/JP2006294028A/en
Publication of JP2006294028A5 publication Critical patent/JP2006294028A5/ja
Application granted granted Critical
Publication of JP4921018B2 publication Critical patent/JP4921018B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To disclose an operating system to implement a direct execution function. <P>SOLUTION: The operating system is the following new and creative functional component for implementing the direct execution function; a direct access interface of a file system between a memory/file manager and at least one file system driver, the direct access interface of the file system is the direct access interface of the file system which provides a function for retrieving a system memory address with content of a specific file in specific offset and a device direct access interface between at least one file system driver and at least one device driver which provides an access to at least one memory address specific device. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、全体としてオペレーティングシステム、特に、直接実行機能をインプリメントするためのシステムおよび方法を提供するオペレーティングシステムに関する。   The present invention relates generally to operating systems, and more particularly to operating systems that provide systems and methods for implementing direct execution functions.

先行技術のコンピュータシステムは、プログラムおよびデータファイルを保持するための不揮発性大容量記憶装置(たとえば、ハードディスクドライブ)を含む。これらのファイルの内容は、RAM(「ランダムアクセスメモリ」)タイプのシステムメモリ内にロードされ、CPU(「中央処理装置」)によりアクセスまたは実行される。この動作は、一般に、アプリケーションプログラムに代わってオペレーティングシステムにより実行される。先行技術のコンピュータシステムおよびオペレーティングシステムは、仮想メモリおよびデマンドページングをサポートしている。アプリケーションは、システムメモリアドレスを直接使用して、アプリケーションが使用するコードおよびデータを指示するのではなく、代わりに「仮想アドレス」を使用して記憶場所を指示し、記憶場所は、CPU回路によりインプリメントされ、オペレーティングシステムにより制御されるページング機構により、システムメモリアドレスに変換される。その結果、オペレーティングシステムは、プログラムおよびデータファイル全体をRAM内にロードする必要性をなくすことができる。むしろ、システムメモリは特定サイズの塊(「ページ」と呼ばれる)に分割され、オペレーティングシステムは、この特定のページにアクセスした時に、ファイル内容の対応する塊を各々のメモリページ内にロードする。このプロセスは、通常、「デマンドページング」と呼ばれる。   Prior art computer systems include non-volatile mass storage devices (eg, hard disk drives) for holding programs and data files. The contents of these files are loaded into RAM (“Random Access Memory”) type system memory and accessed or executed by the CPU (“Central Processing Unit”). This operation is generally performed by the operating system instead of the application program. Prior art computer systems and operating systems support virtual memory and demand paging. Instead of using the system memory address directly to indicate the code and data used by the application, the application uses a “virtual address” instead to indicate the storage location, which is implemented by the CPU circuit. And converted into a system memory address by a paging mechanism controlled by the operating system. As a result, the operating system can eliminate the need to load entire program and data files into RAM. Rather, the system memory is divided into specific sized chunks (called “pages”), and when the operating system accesses this particular page, it loads the corresponding chunk of file contents into each memory page. This process is usually referred to as “demand paging”.

この方法の不利な点の1つに、RAMがプログラムおよびデータファイルの内容を保持する必要があり、他の目的に使用可能なRAMの量が減少することがある。さらに、一般に、場合に応じて内容をRAM内にダウンロードする必要がある。したがって、先行技術のコンピュータシステムによっては、RAM(「メモリアドレス指定デバイス」)と同様に、CPUが直接アクセスできる別のタイプの不揮発性記憶装置が提供されている。メモリアドレス指定デバイスの先行技術の一実施態様は、フラッシュメモリカードである。メモリアドレス指定デバイスを用いれば、CPUは、最初にRAM内に内容をダウンロードすることなく、メモリアドレス指定デバイス上に格納されたコードおよびアクセスデータを直接実行できるようになる。メモリアドレス指定デバイス上に存在するコードを直接実行するこの方法は、「直接実行」と呼ばれる。仮想メモリをサポートするオペレーティングシステム上で実行されるアプリケーションに直接実行機能を提供するには、オペレーティングシステムは、アプリケーションのアドレス空間の特定の仮想アドレスが、メモリアドレス指定デバイスによりサポートされるアドレスの範囲内のシステムメモリアドレスにマップされるように、ページング機構を制御する必要がある。   One disadvantage of this method is that the RAM needs to hold the contents of the program and data files, reducing the amount of RAM that can be used for other purposes. Furthermore, it is generally necessary to download the contents into the RAM depending on the situation. Thus, some prior art computer systems provide another type of non-volatile storage that can be accessed directly by the CPU, similar to RAM ("memory addressing device"). One prior art implementation of a memory addressing device is a flash memory card. Using a memory addressing device allows the CPU to directly execute code and access data stored on the memory addressing device without first downloading the contents into the RAM. This method of directly executing code residing on a memory addressing device is called “direct execution”. To provide direct execution capabilities for applications running on operating systems that support virtual memory, the operating system must ensure that a specific virtual address in the application's address space is within the range of addresses supported by the memory addressing device. It is necessary to control the paging mechanism so that it is mapped to the system memory address.

先行技術のその他のコンピュータシステムは、仮想化機能を提供する。仮想化は、単一のコンピュータシステムを実行する「ハイパーバイザ」と呼ばれることの多いソフトウェアプログラムによってインプリメントされるが、複数の「ゲスト」オペレーティングシステムが各々別個の「仮想マシン」で同時に実行をすることができるようにする。オペレーティングシステムから各々の仮想マシンを見ると、仮想マシン自体が、CPU、RAMおよびI/Oデバイスを備えた実際のコンピュータシステムとして内部で動作しているように見える。これらの仮想コンポーネントに対するアクセスは、ハイパーバイザによって傍受され、実際のコンポーネントに対するアクセスに変換される。これによって、コンピュータシステムのリソースを複数のゲストオペレーティングシステム間で共有し、システムリソース全体の利用率を増加させることができる。   Other prior art computer systems provide virtualization functions. Virtualization is implemented by software programs often called “hypervisors” that run a single computer system, but multiple “guest” operating systems each run simultaneously in separate “virtual machines” To be able to. Looking at each virtual machine from the operating system, it appears that the virtual machine itself is operating internally as an actual computer system with CPU, RAM and I / O devices. Access to these virtual components is intercepted by the hypervisor and translated into access to the actual components. Thereby, the resources of the computer system can be shared among a plurality of guest operating systems, and the utilization rate of the entire system resources can be increased.

いくつかの先行技術の仮想化コンピュータシステムの不利な点の1つとして、同じプログラムまたはデータが同じハイパーバイザ下で動作する複数のゲストにより同時にアクセスされることと、各々のゲストオペレーティングシステムは、それらの内容を保持するための仮想RAMを別個に割り当て、ひいては、ハイパーバイザが、前記内容の複数の同じコピーを物理RAMに割り当てる必要性が出てくる点が挙げられる。これは、他の目的に使用することのできるメモリが減少することを意味し、これによって効率的に同時に動作可能なゲストの数が制限されてしまう。したがって、先行技術のハイパーバイザによっては、複数のゲストから同時にアクセスできる物理メモリのセグメント(「共有メモリセグメント」)が提供されている。プログラムまたはデータファイルを共有メモリセグメント内に格納することにより、複数のゲストが、前記ファイルに同時にアクセスすることができ、最初に内容を仮想RAM内にダウンロードする必要はなくなる。ゲストオペレーティングシステムから前記共有セグメントを見ると、物理メモリアドレス指定デバイスであるかのように見える。   One disadvantage of some prior art virtualized computer systems is that the same program or data is accessed simultaneously by multiple guests operating under the same hypervisor, and each guest operating system In other words, it is necessary to separately assign virtual RAMs for holding the contents of the contents, and thus, it is necessary for the hypervisor to assign a plurality of the same copies of the contents to the physical RAMs. This means that there is a reduction in memory that can be used for other purposes, which limits the number of guests that can operate efficiently and simultaneously. Thus, some prior art hypervisors provide a segment of physical memory ("shared memory segment") that can be accessed simultaneously by multiple guests. By storing the program or data file in the shared memory segment, multiple guests can access the file simultaneously, eliminating the need to first download the contents into virtual RAM. When viewing the shared segment from the guest operating system, it appears as if it were a physical memory addressing device.

データおよびプログラムファイルは、一般に、標準のファイルシステムレイアウトを使用するデバイス上に格納され、オペレーティングシステムによっては、異なる利用シナリオのために最適化された複数の異なるファイルシステムレイアウトを使用することができる。これをできるようにするため、先行技術のオペレーティングシステムは、一般に、複数のコンポーネント状に構造化される。オペレーティングシステムによっては、中央ファイルおよびメモリ管理コンポーネント、複数のファイルシステムドライバ、並びに複数のI/Oデバイスドライバが存在する。したがって、オペレーティングシステムは、ファイルおよびメモリ管理コンポーネントと組み合わせて、ファイルシステムドライバおよびI/Oデバイスドライバの適切な対を使用することにより、サポートされる何れかのI/Oデバイス上で、サポートされる何れかのファイルシステムレイアウトを使用できるようにする。しかし、先行技術のオペレーティングシステムは、既存のファイルシステムドライバを使用して、直接実行をできるようにする形態でメモリアドレス指定デバイスにアクセスすることはできない。メモリアドレス指定デバイスに対するアクセスをサポートする直接実行は、モノリシック形態でインプリメントされる。   Data and program files are generally stored on devices that use standard file system layouts, and depending on the operating system, multiple different file system layouts optimized for different usage scenarios can be used. In order to be able to do this, prior art operating systems are typically structured into multiple components. Depending on the operating system, there is a central file and memory management component, multiple file system drivers, and multiple I / O device drivers. Thus, the operating system is supported on any supported I / O device by using appropriate pairs of file system drivers and I / O device drivers in combination with file and memory management components. Make any file system layout available. However, prior art operating systems cannot access memory addressing devices in a form that allows direct execution using existing file system drivers. Direct execution supporting access to memory addressing devices is implemented in a monolithic form.

実際、先行技術のオペレーティングシステムのインプリメンテーションによっては、標準ファイルシステムレイアウトを使用して、メモリアドレス指定デバイス上にデータを格納することができず、むしろ、このようなデバイスに特有の方法で、これらのデバイス上のデータを配列する必要がある。この配列には、特にI/Oデバイスおよびメモリアドレス指定デバイスの両方を使用するコンピュータシステムの場合、不利な点が複数ある。異なるファイルシステムレイアウトをサポートすることにより、システム管理はさらに難しくなる可能性がある。異なるレイアウトをフォーマット、管理、バックアップおよび復元するには、異なるツールが必要になる。既存のファイルの集合をI/Oデバイスからメモリアドレス指定デバイス、またはこの逆に移行することはさらに難しくなる。メモリアドレス指定デバイスにより要求される特定のレイアウトは、存在するすべての特徴(たとえば、アクセス制御および特権チェックをインプリメントする)に、標準のファイルシステムレイアウトを提供するわけではない。   In fact, some prior art operating system implementations cannot use standard file system layouts to store data on memory-addressed devices, but rather in a way that is specific to such devices, The data on these devices needs to be arranged. This arrangement has several disadvantages, especially for computer systems that use both I / O devices and memory addressing devices. Supporting different file system layouts can make system management even more difficult. Different tools are required to format, manage, backup and restore different layouts. It becomes even more difficult to migrate an existing set of files from an I / O device to a memory addressing device or vice versa. The particular layout required by the memory addressing device does not provide a standard file system layout for all existing features (eg, implementing access control and privilege checking).

もう1つの先行技術のインプリメンテーション(zSeries(IBM Corporationの商標)上のLinux(Linus Torvaldsの米国およびその他の国における商標、以下、同様なので略)用XIP2FSファイルシステム)は、Linuxオペレーティングシステムが提供する標準ファイルシステムフォーマットの1つである第2拡張ファイルシステム(「ext2」)を使用して、プログラムおよびデータを仮想メモリアドレス指定デバイス上(z/VM(IBM Corporationの商標)ハイパーバイザにより提供される共有メモリセグメント)に格納するためのサポートを提供する。しかし、この方法には、上記の段落に記載した不利な点の殆どがあり、他の標準Linuxファイルシステムフォーマットを使用することができないほか、XIP2FSは、ext2のすべての特徴を提供するわけではない(たとえば、XIP2FSは、書き込みアクセスをサポートしない)。   Another prior art implementation (XIP2FS file system for Linux (a trademark of Linus Torvalds in the United States and other countries, hereinafter the same)) on zSeries (trademark of IBM Corporation) is provided by the Linux operating system Program and data on a virtual memory addressing device (provided by the z / VM (IBM Corporation trademark) hypervisor) using a second extended file system ("ext2"), one of the standard file system formats Support for storage in shared memory segments). However, this method has most of the disadvantages described in the paragraph above, cannot use other standard Linux file system formats, and XIP2FS does not provide all the features of ext2. (For example, XIP2FS does not support write access).

XIP2FSのもう1つの不利な点は、XIP2FSがオペレーティングシステムの上記のコンポーネント構造に組み込まれないことであり、XIP2FSが、ext2ファイルシステムレイアウトを使用してファイルにアクセスした場合も、XIP2FSは、Linux ext2ファイルシステムドライバを使用してアクセスするのではなく、代わりにext2ファイルシステムレイアウトにアクセスするのに必要なアクセスロジックを再インプリメントする。この場合もやはり、完全なext2ロジックの一部のみが再インプリメントされるため、XIP2FSはext2のすべての特徴をサポートするわけではない。さらに他の不利な点として、Linuxオペレーティングシステムの標準ext2ファイルシステムコンポーネントは、長期にわたって開発され、新しい特徴が追加され、たとえば、Linuxカーネルバージョン2.6が提供されたext2ファイルシステムドライバのバージョンは、非常に大きいディレクトリ構造、およびより精巧なアクセス制御機構に対してより迅速にアクセスするためのサポートを追加した。XIP2FSは、ext2ドライバのこのような強化から自動的に効果を得るのではなく、必要なすべての特徴をXIP2FSコード内に再インプリメントする必要がある。   Another disadvantage of XIP2FS is that XIP2FS is not incorporated into the above component structure of the operating system, and if XIP2FS accesses a file using the ext2 file system layout, XIP2FS will not be able to use Linux ext2 Instead of accessing using a file system driver, instead re-implement the access logic necessary to access the ext2 file system layout. Again, XIP2FS does not support all the features of ext2 because only a portion of the complete ext2 logic is reimplemented. As yet another disadvantage, the standard ext2 file system component of the Linux operating system has been developed over time and new features have been added, for example, the version of the ext2 file system driver provided with the Linux kernel version 2.6 is Added support for faster access to very large directory structures and more sophisticated access control mechanisms. XIP2FS does not automatically benefit from such enhancements of the ext2 driver, but all necessary features need to be re-implemented in the XIP2FS code.

本発明の目的は、オペレーティングシステムによる直接実行機能を提供して、上記の先行技術の不利な点を解消する方法を提供することである。   An object of the present invention is to provide a method for solving the disadvantages of the prior art described above by providing a direct execution function by an operating system.

本発明は、直接実行機能をインプリメントするための新しいシステムおよび方法を提供するオペレーティングシステムを開示する。   The present invention discloses an operating system that provides a new system and method for implementing a direct execution function.

本発明の基礎となる先行技術のオペレーティングシステムは、アプリケーションプログラムに対するインターフェースを有するメモリ/ファイルマネジャと、メモリ/ファイルマネジャに対するファイルシステムI/Oインターフェースを有する少なくとも1個のファイルシステムドライバと、ファイルシステムドライバに対するデバイスI/Oインターフェースを有する少なくとも1個のデバイスドライバとを含み、少なくとも1個のデバイスドライバは、少なくとも1個のI/Oベースデバイス、およびファイルシステムドライバに対するデバイスI/Oインターフェースを有する少なくとも1個のデバイスドライバに対するアクセスを提供し、少なくとも1個のデバイスドライバは、少なくとも1個のメモリアドレス指定デバイスに対するアクセスを提供し、オペレーティングシステムは、少なくとも1個のメモリアドレス指定デバイスにアクセスするための直接実行機能を提供する。   A prior art operating system upon which the present invention is based includes a memory / file manager having an interface to an application program, at least one file system driver having a file system I / O interface to the memory / file manager, and a file system driver. At least one device driver having a device I / O interface to the at least one device driver, the at least one device driver having at least one I / O base device and a device I / O interface to the file system driver. Providing access to at least one device driver, wherein at least one device driver is associated with at least one memory addressing device. That provides access, operating system provides a direct execution function for accessing at least one memory addressing device.

先行技術のオペレーティングシステムは、直接実行機能をインプリメントするための以下の新しい独創的な機能コンポーネント:
メモリ/ファイルマネジャと少なくとも1個のファイルシステムドライバとの間のファイルシステムのダイレクトアクセスインターフェースであって、ファイルシステムのダイレクトアクセスインターフェースが、指定のオフセットにおけるファイルの内容のシステムメモリアドレスを検索する機能を検索する機能を提供し、ファイルがメモリアドレス指定デバイス上に存在するインターフェースと、
少なくとも1個のファイルシステムドライバと、少なくとも1個のメモリアドレス指定デバイスに対するアクセスを提供する少なくとも1個のデバイスドライバとの間のデバイスダイレクトアクセスインターフェースであって、デバイスダイレクトアクセスインターフェースが、少なくとも1個のメモリアドレス指定デバイスの指定ブロックのシステムメモリアドレスを検索する機能を提供するインターフェースとにより拡張され、
直接実行機能は、メモリ/ファイルマネジャ、少なくとも1個のファイルシステムドライバ、ファイルシステムのダイレクトアクセスインターフェースおよびデバイスダイレクトアクセスインターフェースを使用することにより、少なくとも1個のメモリアドレス指定デバイスに対するアクセスを提供する少なくとも1個のデバイスドライバにより提供される。
Prior art operating systems have the following new and original functional components for implementing direct execution functions:
A file system direct access interface between the memory / file manager and at least one file system driver, wherein the file system direct access interface retrieves a system memory address of a file content at a specified offset. An interface that provides the ability to search and the file resides on a memory addressing device;
A device direct access interface between at least one file system driver and at least one device driver providing access to at least one memory addressing device, wherein the device direct access interface is at least one Extended with an interface that provides a function to search the system memory address of the specified block of the memory addressing device,
The direct execution function provides access to at least one memory addressed device by using a memory / file manager, at least one file system driver, a file system direct access interface and a device direct access interface. Provided by device drivers.

本発明の上記および追加の目的、特徴および効果は、以下の詳細な説明で明らかになる。   The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.

本発明の新規な特徴は、添付の請求の範囲に記載する。しかし、本発明自体、および好ましい使用形態、他の目的、および効果は、具体的な実施態様に関する以下の詳細な説明を参照し、添付の図面に関連して読むと最も良く理解されるであろう。   The novel features of the invention are set forth in the appended claims. However, the invention itself, and preferred modes of use, other objects and advantages, are best understood by referring to the following detailed description of specific embodiments and read in conjunction with the accompanying drawings. Let's go.

図1は、コンピュータシステム10のブロック図を示す。コンピュータシステム10は、パーソナルコンピュータ、メインフレームコンピュータ、または他の何らかのタイプのコンピュータもしくはデータ処理システムで良い。コンピュータシステム10は、以下に述べるように、別のコンピュータシステム上で動作するハイパーバイザにより提供される仮想マシンでも良い。コンピュータシステム10は、中央演算処理装置(「CPU」)11と、ランダム−アクセスメモリ(「RAM」)12と、メモリアドレス指定デバイス13と、I/Oベースデバイス14とを備える。一実施態様では、メモリアドレス指定デバイス13はフラッシュメモリカードで良い。他の実施態様では、メモリアドレス指定デバイス13は、CPU11がメモリ動作のために直接アクセスできる何らかのデバイスで良い。一実施態様では、I/Oベースデバイス14はハードディスクドライブで良い。他の実施態様では、I/Oベースデバイス14は、I/O操作を使用して、データをRAM12からコピーするか、またはRAM12にコピーできる何らかのデバイスで良い。コンピュータシステム10は、メモリアドレス指定デバイス13またはI/Oベースデバイス14あるいはその両方の複数のインスタンスも含む場合がある。CPU11、RAM12、並びにデバイス13および14は、システムバス15に結合される。CPU11は、メモリ動作のために、RAM12およびメモリアドレス指定デバイス13に直接アクセスすることができる。CPU11は、メモリ動作のためにI/Oベースデバイス14に直接アクセスすることはできないが、データは、I/O操作を使用して、デバイス14からRAM12に、あるいは逆にコピーすることができる。コンピュータシステム10は、1つまたは複数のアプリケーションプログラムを実行させることが可能なオペレーティングシステムを実行させる(以下で詳細に説明する)。オペレーティングシステムは、コンピュータシステム10の様々なリソース(CPU11、RAM12、デバイス13および14)に対するアプリケーションプログラムによるアクセスを管理および調整する。   FIG. 1 shows a block diagram of a computer system 10. Computer system 10 may be a personal computer, mainframe computer, or some other type of computer or data processing system. The computer system 10 may be a virtual machine provided by a hypervisor operating on another computer system, as described below. The computer system 10 includes a central processing unit (“CPU”) 11, a random-access memory (“RAM”) 12, a memory addressing device 13, and an I / O base device 14. In one embodiment, the memory addressing device 13 may be a flash memory card. In other embodiments, the memory addressing device 13 may be any device that the CPU 11 can directly access for memory operations. In one embodiment, the I / O base device 14 may be a hard disk drive. In other implementations, the I / O base device 14 may be any device that can copy data from or to the RAM 12 using I / O operations. Computer system 10 may also include multiple instances of memory addressing device 13 and / or I / O base device 14 or both. CPU 11, RAM 12, and devices 13 and 14 are coupled to system bus 15. CPU 11 can directly access RAM 12 and memory addressing device 13 for memory operations. The CPU 11 cannot directly access the I / O base device 14 for memory operations, but data can be copied from the device 14 to the RAM 12 or vice versa using I / O operations. The computer system 10 executes an operating system capable of executing one or more application programs (described in detail below). The operating system manages and coordinates access by application programs to various resources of the computer system 10 (CPU 11, RAM 12, devices 13 and 14).

いくつかの実施態様では、コンピュータシステム10は、別のコンピュータシステム上で動作するハイパーバイザによりエミュレートされる仮想マシンで良い。図2は、コンピュータシステム10が、仮想CPU11、仮想RAM12、並びに仮想デバイス13および14から成るような一実施態様を示す。すべての仮想コンポーネントはハイパーバイザ21により提供され、ハイパーバイザ21は、別のコンピュータシステム20上で動作するソフトウェアプログラムであり、それ自体はCPU、RAMおよびデバイスから成る。ハイパーバイザ21は、完全にソフトウェアによって、またはコンピュータシステム20が提供する視覚化ハードウェア支援機能を使用することによって、仮想コンポーネント10〜14を提供する。仮想マシン10のほかに、他の仮想マシン22が、コンピュータシステム20上のハイパーバイザ21下で同時に動作する。一実施態様では、ハイパーバイザ21は、IBM Corp.が製造販売するz/VM(IBM Corporationの商標)ソフトウェアプログラムであって、IBMeServer(IBM Corporationの商標)zSeries(IBM Corporationの商標)メインフレームコンピュータ上で動作するプログラムで良い。この実施態様では、コンピュータシステム10は、z/VMにより提供される仮想マシンで良く、メモリアドレス指定デバイス13は、z/VMに基づいて画定される非連続保管セグメント(「DCSS)」)で良い。DCSSは、複数の仮想マシンが同時に使用可能なz/VMにより管理されるメモリのセグメントである。z/VMは、複数の仮想マシンがDCSSを同時に使用可能である場合でも、コンピュータシステム20の実RAM内におけるDCSSの内容の1つのコピーのみを保持する。   In some implementations, the computer system 10 may be a virtual machine emulated by a hypervisor running on another computer system. FIG. 2 shows one embodiment in which the computer system 10 comprises a virtual CPU 11, a virtual RAM 12, and virtual devices 13 and 14. All virtual components are provided by a hypervisor 21, which is a software program that runs on another computer system 20, and itself consists of a CPU, RAM and devices. The hypervisor 21 provides the virtual components 10-14, either entirely by software or by using visualization hardware assistance functions provided by the computer system 20. In addition to the virtual machine 10, another virtual machine 22 operates simultaneously under the hypervisor 21 on the computer system 20. In one embodiment, the hypervisor 21 is IBM Corp. Z / VM (a trademark of IBM Corporation) software program manufactured and sold by IBM Corporation, which may be a program that runs on an IBM MeServer (a trademark of IBM Corporation) zSeries (a trademark of IBM Corporation) mainframe computer. In this embodiment, computer system 10 may be a virtual machine provided by z / VM and memory addressing device 13 may be a non-contiguous storage segment (“DCSS”) defined based on z / VM). . DCSS is a segment of memory managed by z / VM that can be used simultaneously by multiple virtual machines. z / VM holds only one copy of the contents of the DCSS in the real RAM of the computer system 20, even if multiple virtual machines can use the DCSS simultaneously.

CPU11がメモリ動作のために直接アクセス可能なすべてのコンポーネントは、図3に示すように、コンピュータシステム10のシステムメモリアドレス空間30を構成する。RAM12およびメモリアドレス指定デバイス13は、システムメモリアドレス空間30の一部である。さらに、その他のコンポーネント(図示しない)は、システムメモリアドレス空間30、たとえば読出し専用メモリ(「ROM」)またはビデオカードフレームバッファである。CPU11により実行されるすべてのプログラムインストラクション、およびCPU11により実行されるインストラクションによりアクセスされるすべてのメモリデータは、実行が生じた時点で、システムメモリアドレス空間30内に存在しなければならない。使用可能なメモリの見掛けのサイズを増加し、同じコンピュータシステム上で同時に動作する異なるアプリケーションプログラムが、偶発的に互いに他のメモリを修正するのを防止するため、オペレーティングシステムは、各々のアプリケーションプログラムに「仮想アドレス空間」を提供し、仮想アドレス空間内のシステムメモリアドレス空間の選択部分に対するアクセスを提供する。CPU11は、アプリケーションコードを実行するが、アプリケーションの仮想アドレス空間内に存在するメモリにのみアクセスすることができる。仮想アドレス空間とシステムメモリアドレス空間との間で変換することができるように、仮想アドレス空間とシステムメモリアドレス空間の両方が、一般に「ページ」と呼ばれる等サイズの塊状に分割される。   All the components that the CPU 11 can directly access for memory operation constitute a system memory address space 30 of the computer system 10, as shown in FIG. RAM 12 and memory addressing device 13 are part of system memory address space 30. In addition, other components (not shown) are system memory address space 30, such as read only memory ("ROM") or video card frame buffer. All program instructions executed by the CPU 11 and all memory data accessed by instructions executed by the CPU 11 must be present in the system memory address space 30 at the time of execution. To increase the apparent size of available memory and prevent different application programs running simultaneously on the same computer system from accidentally modifying each other's memory, the operating system Provides a “virtual address space” and provides access to selected portions of the system memory address space within the virtual address space. The CPU 11 executes the application code, but can access only the memory existing in the virtual address space of the application. Both the virtual address space and the system memory address space are divided into equal-sized chunks commonly referred to as “pages” so that they can be converted between the virtual address space and the system memory address space.

図3は、コンピュータシステム10のシステムメモリアドレス空間30を示す。さらに、アプリケーションプログラムの仮想アドレス空間31が示されている。仮想アドレス空間31でアドレス指定できる各々のページについては、当該ページの状態を実際に記述するページ記述子が存在しなければならない。ページは、ある時点でシステムメモリアドレス空間30内に存在しても、あるいは存在しなくても良い。ページがシステムメモリアドレス空間30内に存在する場合、ページ記述子はその事実を指示し、システムメモリアドレス空間30内のページの位置を指示することになる。ページがシステムメモリアドレス空間30内に存在しない場合、記述子はその事実を指示し、アプリケーションプログラムがこのページを介してアクセスしようとしている内容の場所をオペレーティングシステムが確認できるようにする追加の情報を含むことになる。仮想アドレス空間に対するすべてのページ記述子の集合は、ページテーブルと呼ばれる。仮想アドレス空間のページテーブルは、オペレーティングシステムにより維持される。   FIG. 3 shows the system memory address space 30 of the computer system 10. Further, a virtual address space 31 of the application program is shown. For each page that can be addressed in the virtual address space 31, there must be a page descriptor that actually describes the state of the page. The page may or may not exist in the system memory address space 30 at some point. If the page exists in the system memory address space 30, the page descriptor will indicate that fact and will indicate the location of the page in the system memory address space 30. If the page does not exist in the system memory address space 30, the descriptor indicates that fact and provides additional information that allows the operating system to determine the location of the content that the application program is trying to access through this page. Will be included. A set of all page descriptors for the virtual address space is called a page table. The virtual address space page table is maintained by the operating system.

CPU11が仮想アドレス空間31でアプリケーションコードを実行している間、CPU11によりアクセスされるすべてのメモリアドレスは、仮想アドレス空間31用のページテーブルを使用して、仮想アドレス空間31内の仮想アドレスからシステムメモリアドレス空間30内のシステムメモリアドレスに変換される。この変換はページング機構により実行され、ページング機構は、ハードウェアもしくはソフトウェアインプリメンテーション、またはこれらの組合せで良い。実施態様によっては、ページング機構は、CPU11内に存在するページングユニットによりインプリメントされる。CPU11が、システムメモリアドレス空間30に対応するページを現在持たない仮想アドレス空間31内のページにアクセスする場合、ページング機構は、CPU11にページ障害割込みを生成させる。この割込みにより、「ページ障害ハンドラ」と呼ばれるオペレーティングシステムコードが、必要な内容をシステムメモリアドレス空間30内のいくつかのページ内にもたらし、ページテーブルを更新して、仮想ページをシステムメモリアドレス空間30内のこのページにマップする。次に、アプリケーションは、ページの実行およびアクセスを継続する。このプロセスは、一般に、「デマンドページング」と呼ばれる。   While the CPU 11 is executing application code in the virtual address space 31, all memory addresses accessed by the CPU 11 are systematized from the virtual addresses in the virtual address space 31 using the page table for the virtual address space 31. It is converted into a system memory address in the memory address space 30. This conversion is performed by a paging mechanism, which may be a hardware or software implementation, or a combination thereof. In some embodiments, the paging mechanism is implemented by a paging unit that resides in the CPU 11. When the CPU 11 accesses a page in the virtual address space 31 that does not currently have a page corresponding to the system memory address space 30, the paging mechanism causes the CPU 11 to generate a page fault interrupt. This interrupt causes operating system code called a “page fault handler” to bring the required content into several pages in the system memory address space 30 and update the page table to place the virtual page in the system memory address space 30. Map to this page in The application then continues to execute and access the page. This process is commonly referred to as “demand paging”.

図3に示す実施例の状況では、仮想アドレス空間31は、現在4つのページを保持している。3つのページ(32a〜32c)は、現在実行されているアプリケーションコードを含み、1つのページ(32d)は、アプリケーションによりアクセスされるデータを含む。ページ32a〜32cに含まれるアプリケーションコードは、ブロック34a〜34c内のI/Oベースデバイス14上に存在するアプリケーションプログラムファイルからロードされる。アプリケーションコードページ32aおよび32bは、システムメモリアドレス空間30内に現在実際に存在しており、RAM12のページ33aおよび33b内に存在する。同様に、データページ32dはシステムメモリアドレス空間内に存在しており、RAM12のページ33d内に存在する。アプリケーションコードページ32cは、現在、システムメモリアドレス空間30内に存在しない。アプリケーションがページ32cにアクセスすると、オペレーティングシステムのページ障害ハンドラは、RAM12に新しいページ33c(図示しない)を割り当て、I/O操作を実行してブロック34cの内容をページ33cにコピーし、ページテーブルを更新して、仮想アドレス空間31のページ32cをシステムメモリアドレス空間30のページ33cにマップする。ページ32aおよび32bの場合、このプロセスは、図3に示す時点で既に完了している。データページ32d/33dは、アプリケーションにより実行時に生成された内容を保持する。この内容は、I/Oベースデバイス14からロードされたものではない。   In the situation of the embodiment shown in FIG. 3, the virtual address space 31 currently holds four pages. Three pages (32a-32c) contain application code that is currently being executed, and one page (32d) contains data accessed by the application. Application code contained in pages 32a-32c is loaded from application program files residing on I / O base device 14 in blocks 34a-34c. Application code pages 32a and 32b are actually present in system memory address space 30 and are present in pages 33a and 33b of RAM 12. Similarly, the data page 32d exists in the system memory address space and exists in the page 33d of the RAM 12. Application code page 32 c currently does not exist in system memory address space 30. When the application accesses page 32c, the operating system page fault handler allocates a new page 33c (not shown) in RAM 12, performs an I / O operation, copies the contents of block 34c to page 33c, and stores the page table. Update to map page 32 c of virtual address space 31 to page 33 c of system memory address space 30. For pages 32a and 32b, this process is already complete at the time shown in FIG. The data pages 32d / 33d hold the contents generated at the time of execution by the application. This content is not loaded from the I / O base device 14.

図3に示すように、CPU11がI/Oベースデバイス14上に存在するアプリケーションプログラムを実行している時、RAM12のページは、実行しているアプリケーションプログラムのコードを保持する必要がある。しかし、アプリケーションプログラムがメモリアドレス指定デバイス上に存在する場合、その必要はなく、RAM12のより多くのページを他の目的に使用できる(あるいは別法によると、より少ないRAMの全体量で、意図されたタスクを履行することができる)。このプロセスは、一般に「直接実行」と呼ばれる。図4は、仮想アドレス空間31で実行されている図3と同じアプリケーションを示すが、この場合、アプリケーションは、I/Oベースデバイス14ではなくメモリアドレス指定デバイス上に存在し、直接実行されている。図4に示すように、アプリケーションプログラムファイルからのアプリケーションコードは、メモリアドレス指定デバイス13のブロック35a〜cに存在する。メモリアドレス指定デバイス13は、システムメモリアドレス空間30内に存在するため、ブロック35aおよび35bは、それぞれ仮想アドレス空間31のページ32aおよび32bに直接マップされる。同様に、アプリケーションがページ32cにアクセスすると、オペレーティングシステムのページ障害ハンドラは、単に、仮想アドレス空間31のページ32cとシステムメモリアドレス空間30のページ35cとの間の別のマッピングを確立し、オペレーティングシステムは、どのページもRAM12に割り当てる必要はない。一方、データページ32dは、図3に示されたシナリオと同様に、RAM12のページ33dにマップされる点に注目する。   As shown in FIG. 3, when the CPU 11 is executing an application program that exists on the I / O base device 14, the page of the RAM 12 needs to hold the code of the application program being executed. However, if the application program resides on a memory addressing device, this is not necessary and more pages of RAM 12 can be used for other purposes (or alternatively, less RAM is intended as a whole). Task can be performed). This process is commonly referred to as “direct execution”. FIG. 4 shows the same application running in virtual address space 31 as in FIG. 3, but in this case the application resides on the memory addressing device and not directly on the I / O base device 14. . As shown in FIG. 4, application code from the application program file is present in blocks 35 a-c of the memory addressing device 13. Since the memory addressing device 13 exists in the system memory address space 30, the blocks 35a and 35b are directly mapped to the pages 32a and 32b of the virtual address space 31, respectively. Similarly, when an application accesses page 32c, the operating system page fault handler simply establishes another mapping between page 32c of virtual address space 31 and page 35c of system memory address space 30, and the operating system Need not allocate any page to the RAM 12. On the other hand, it is noted that the data page 32d is mapped to the page 33d of the RAM 12 as in the scenario shown in FIG.

図5は、本発明を具現しない先行技術のオペレーティングシステム40のコンポーネント構造を視覚化する。図3および図4に示すデマンドページングおよび直接実行機能をインプリメントするために必要なコンポーネントのみを図示する。オペレーティングシステム40は、インターフェース48を介したアプリケーションプログラム49から発せられるI/Oベースデバイス14またはメモリアドレス指定デバイス13上に存在するファイルへのアクセス要求を処理するメモリ/ファイルマネジャ41を含む。I/Oベースデバイス14上のファイルにアクセスするために、メモリ/ファイルマネジャ41は、ファイルシステムI/Oインターフェース45を介して、ファイルシステムドライバ43と対話する。オペレーティングシステム40は、複数のバージョンのファイルシステムドライバを含み、各々のファイルシステムドライバは、特定のファイルシステムタイプの処理を担い、すべてのファイルシステムドライバは、同じファイルシステムI/Oインターフェース45をインプリメントする。同様に、オペレーティングシステム40は複数のバージョンのデバイスドライバを含み、各々のデバイスドライバは特定タイプのデバイスの処理を担い、すべてのデバイスドライバは同じデバイスI/Oインターフェース46をインプリメントする。   FIG. 5 visualizes the component structure of a prior art operating system 40 that does not embody the present invention. Only the components necessary to implement the demand paging and direct execution functions shown in FIGS. 3 and 4 are illustrated. The operating system 40 includes a memory / file manager 41 that processes access requests to files residing on the I / O base device 14 or the memory addressing device 13 that are issued from an application program 49 via an interface 48. In order to access files on the I / O base device 14, the memory / file manager 41 interacts with the file system driver 43 via the file system I / O interface 45. The operating system 40 includes multiple versions of file system drivers, each file system driver responsible for processing a particular file system type, and all file system drivers implement the same file system I / O interface 45. . Similarly, the operating system 40 includes multiple versions of device drivers, each device driver responsible for processing a specific type of device, and all device drivers implement the same device I / O interface 46.

図5に示すように、オペレーティングシステム40のコンポーネント構造内では、デバイスドライバ44(およびすべてのデバイスドライバ)が担っているのは、データをI/Oベースデバイス上の指定の場所からRAM内に、あるいはこの逆にコピーすることである。デバイスドライバは、デバイスの内容またはこれらの内容が組織化される方法に関する知識は持たない。デバイス上に存在するデータは、一般に、各々が「ブロック数」により識別される「ブロック」と呼ばれる塊状に分割される。デバイスI/Oインターフェース46は、デバイスドライバの要求により、ブロック数Bで識別されるブロックから、アドレスAで開始するRAMのブロックに、あるいはこの逆にデータをコピーできるようにする。   As shown in FIG. 5, in the component structure of the operating system 40, the device driver 44 (and all device drivers) is responsible for transferring data from a specified location on the I / O base device into RAM. Or vice versa. A device driver has no knowledge of the contents of the device or how these contents are organized. The data present on the device is generally divided into blocks called “blocks”, each identified by a “number of blocks”. The device I / O interface 46 makes it possible to copy data from the block identified by the block number B to the block of the RAM starting at the address A, or vice versa, at the request of the device driver.

デバイス上にデータを構造化ストレージで格納できるように、オペレーティングシステム40は、ファイルシステムドライバを提供する。ファイルシステムドライバは、「ファイル」の集合としてデバイス上に格納されたデータへのアクセスを可能にし、各々のファイルは、順に並んだバイトのシーケンスの抽象化を提供する。すべてのファイルは、一般に「ファイル名」と呼ばれるファイルシステムにより提供されるいくつかの手段により識別される。ファイルシステムは、各々のファイルのどのバイトが、下のデバイスのどのブロック内に格納されるかというトラックを保持する。この記録保持を実行するのに必要な情報は、通常、「ファイルシステムメタデータ」と呼ばれ、下にあるデバイス上に格納される。ファイルシステムメタデータの特定のレイアウトは、ファイルシステムごとに異なる。図5に示すように、オペレーティングシステム40のコンポーネント構造内では、ファイルシステムメタデータのレイアウトを処理するために必要なすべてのロジックをインプリメントするのは、ファイルシステムドライバ43(およびすべてのファイルシステムドライバ)が担っている。ファイルシステムI/Oインターフェース45は、あるファイル名で識別されるファイルFからデータを、ファイルF内の指定のオフセット0で開始して、アドレスAで開始するRAMのブロック内に、あるいはこの逆にコピーするというファイルシステムドライバの要求を認める。このような要求を処理するため、ファイルシステムドライバは、ファイルシステムメタデータを調査して、下にあるデバイスのどのブロックBが、ファイルF内のオフセット0に対応するデータを保持するかを決定し、下にあるデバイスを処理するデバイスドライバのデバイスI/Oインターフェース46を使用して、前記デバイスとメモリの指定ブロックとの間でコピーを行うかを決定する。   The operating system 40 provides file system drivers so that data can be stored on the device in structured storage. The file system driver allows access to data stored on the device as a collection of “files”, each file providing an abstraction of an ordered sequence of bytes. All files are identified by several means provided by a file system commonly referred to as a “file name”. The file system keeps track of which bytes of each file are stored in which blocks of the underlying device. Information required to perform this record keeping is usually called “file system metadata” and is stored on the underlying device. The specific layout of file system metadata varies from file system to file system. As shown in FIG. 5, within the component structure of the operating system 40, it is the file system driver 43 (and all file system drivers) that implements all the logic necessary to process the layout of the file system metadata. Is responsible. The file system I / O interface 45 starts the data from the file F identified by a certain file name in the block of RAM starting at the specified offset 0 in the file F and starting at the address A, or vice versa. Recognize file system driver requests to copy. To handle such a request, the file system driver examines the file system metadata to determine which block B of the underlying device holds the data corresponding to offset 0 in file F. The device driver device I / O interface 46 that processes the underlying device is used to determine whether to copy between the device and the specified block of memory.

したがって、図5に示すように、オペレーティングシステム40のコンポーネント構造内では、図3に示すデマンドページング機能は以下のようにインプリメントされる:アプリケーションが、システムメモリアドレス空間内で現在使用されていないページにアクセスすると、オペレーティングシステムのページ障害ハンドラ(通常、メモリ/ファイルマネジャ41の一部)は、ページ記述子から、アプリケーションがページ中のどの内容を求めているのか決定する。ページ記述子は、ファイルF、および前記内容が発見されるファイルF内のオフセット0を指定することにより、前記内容を識別する。次に、メモリ/ファイルマネジャ41は、新しいページをRAM12に割り当て、ファイルシステムドライバ43からファイルシステムI/Oインターフェース45を介して、データをファイルF内のオフセット0から前記の新しいページにコピーするように要求する。上記のとおり、ファイルシステムドライバ43は、ファイルシステムメタデータを調査して、下にあるデバイス(この場合、I/Oベースデバイス14)のどのブロックBがデータを保持しているかを決定し、デバイスドライバ44のデバイスI/Oインターフェース46を使用して、そのデータを前記の新しいページにコピーする。I/O操作が完了すると、メモリ/ファイルマネジャ41は、それに応じてページテーブルを更新する。   Thus, as shown in FIG. 5, within the component structure of the operating system 40, the demand paging function shown in FIG. 3 is implemented as follows: the application is on a page that is not currently used in the system memory address space. When accessed, the operating system page fault handler (usually part of the memory / file manager 41) determines from the page descriptor what content the application is looking for in the page. The page descriptor identifies the content by specifying file F and offset 0 in file F where the content is found. Next, the memory / file manager 41 allocates a new page to the RAM 12 and copies the data from the file system driver 43 through the file system I / O interface 45 to the new page from the offset 0 in the file F. To request. As described above, the file system driver 43 examines the file system metadata to determine which block B of the underlying device (in this case, the I / O base device 14) holds the data, and Using the device I / O interface 46 of the driver 44, the data is copied to the new page. When the I / O operation is completed, the memory / file manager 41 updates the page table accordingly.

しかし、先行技術のファイルシステムI/Oインターフェース45は、この目的に適していないため、ファイルシステムドライバ43を使用して、メモリアドレス指定デバイス13上に存在するファイルに対する直接実行アクセスを実行するのは不可能である。その代わりに、図5に示すように、オペレーティングシステム40のコンポーネント構造内では、直接実行アクセスは、メモリ/ファイルマネジャ41内にしっかりと組み込まれているXIPマネジャ42により処理され、メモリアドレス指定デバイス13に直接アクセスする。したがって、XIPマネジャ42は、メモリアドレス指定デバイス13にアクセスし、前記デバイス上に格納されたデータのファイルシステムレイアウトを処理することの両方を担っている。XIPマネジャ42によりサポートされるファイルシステムレイアウト以外のファイルシステムレイアウトを使用して、メモリアドレス指定デバイス13上のデータにアクセスすることは、オペレーティングシステム40が、さもなければ、このようなファイルシステムにファイルシステムドライバを提供すると思われる場合でも不可能である。   However, since the prior art file system I / O interface 45 is not suitable for this purpose, it is not possible to use the file system driver 43 to perform direct execution access to files that reside on the memory addressing device 13. Impossible. Instead, as shown in FIG. 5, within the component structure of the operating system 40, direct execution accesses are handled by the XIP manager 42, which is tightly embedded in the memory / file manager 41, and the memory addressing device 13 Direct access to Thus, the XIP manager 42 is responsible for both accessing the memory addressing device 13 and processing the file system layout of the data stored on the device. Accessing data on the memory addressing device 13 using a file system layout other than the file system layout supported by the XIP manager 42 means that the operating system 40 would otherwise file in such a file system. Even if you think to provide a system driver, it is not possible.

本発明は、このような制約を除去する。図6は、本発明を具現するメモリアドレス指定デバイス13に対する直接実行アクセスをインプリメントするオペレーティングシステム50のコンポーネント構造を示す。図5に示す先行技術のオペレーティングシステム40と比べて、オペレーティングシステム50は、コンピュータシステム10のすべてのハードウェアコンポーネント(RAM12、I/Oベースデバイス14、メモリアドレス指定デバイス13)に対して同じインターフェースを保持する。また、オペレーティングシステム50は、アプリケーションプログラム49に対して同じインターフェース48を使用する。メモリ/ファイルマネジャ51は、先行技術(図5参照)により提供される修正バージョンのメモリ/ファイルマネジャ41であり、ファイルシステムドライバ52は、先行技術(図5参照)により提供される修正バージョンのファイルシステムドライバ43である。オペレーティングシステム50は、メモリアドレス指定デバイス13にアクセスするデバイスドライバ53も提供する。オペレーティングシステム40の先行技術のいくつかのバージョンは、同様にメモリアドレス指定デバイス13にアクセスするデバイスドライバも提供していたが、このようなドライバは、デバイスI/Oインターフェース46(図5参照)のみをインプリメントし、したがって、直接実行機能を提供することはできなかった点に注目する。この機能は、XIPマネジャ42によりインプリメントされたが、XIPマネジャ42は、デバイスドライバを使用せずに、メモリアドレス指定デバイス13に直接アクセスする。図6に示すように、本発明は、XIPマネジャのコンポーネントを必要としない。その代わりに、直接実行機能は、この場合、メモリ/ファイルマネジャ51、ファイルシステムドライバ52およびデバイスドライバ53内に組み込まれる。これは、2つの新しいインターフェース:ファイルシステムドライバ52により提供されるファイルシステムのダイレクトアクセスインターフェース54、およびデバイスドライバ53により提供されるデバイスダイレクトアクセスインターフェース55を使用することにより可能である。デバイスダイレクトアクセスインターフェース55の基本的な特徴は、システムメモリアドレス空間内に存在するメモリアドレス指定デバイスのブロックBのシステムメモリアドレスAを検索する手段を提供することである。同様に、ファイルシステムのダイレクトアクセスインターフェース54の基本的な特徴は、ファイルFが、システムメモリアドレス空間内に存在するメモリアドレス指定デバイス上に存在する場合、オフセット0におけるファイルFの内容のシステムメモリアドレスAを検索する手段を提供することである。これらのダイレクトアクセスインターフェースの使用については、以下に詳細に説明する。   The present invention removes such constraints. FIG. 6 illustrates the component structure of the operating system 50 that implements direct execution access to the memory addressing device 13 embodying the present invention. Compared to the prior art operating system 40 shown in FIG. 5, the operating system 50 provides the same interface to all hardware components of the computer system 10 (RAM 12, I / O base device 14, memory addressing device 13). Hold. The operating system 50 uses the same interface 48 for the application program 49. The memory / file manager 51 is a modified version of the memory / file manager 41 provided by the prior art (see FIG. 5), and the file system driver 52 is a modified version of the file provided by the prior art (see FIG. 5). This is a system driver 43. The operating system 50 also provides a device driver 53 that accesses the memory addressing device 13. Some prior art versions of the operating system 40 have also provided device drivers that access the memory addressing device 13 as well, but such drivers only include the device I / O interface 46 (see FIG. 5). Note that it was not possible to implement direct execution and thus provide direct execution functionality. This function was implemented by the XIP manager 42, but the XIP manager 42 directly accesses the memory addressing device 13 without using a device driver. As shown in FIG. 6, the present invention does not require XIP manager components. Instead, the direct execution function is in this case incorporated in the memory / file manager 51, the file system driver 52 and the device driver 53. This is possible by using two new interfaces: a file system direct access interface 54 provided by the file system driver 52 and a device direct access interface 55 provided by the device driver 53. A basic feature of the device direct access interface 55 is that it provides a means for retrieving the system memory address A of block B of the memory addressing device that exists in the system memory address space. Similarly, a basic feature of the file system direct access interface 54 is that the system memory address of the contents of file F at offset 0 if file F exists on a memory addressing device that exists in the system memory address space. To provide a means for searching for A. The use of these direct access interfaces will be described in detail below.

図6に示すように、オペレーティングシステム50は、インターフェース48を通してアプリケーションプログラム49と対話する。インターフェース48の一部は、アプリケーションプログラム49によりトリガされるデマンドページング要求から成り、アプリケーションプログラム49は、システムメモリアドレス空間30のページに現在マップされない仮想アドレス空間31のページにアクセスする。(仮想アドレス空間31およびシステムメモリアドレス空間30は、図3および図4に示され、仮想アドレス空間31は、アプリケーション49の仮想アドレス空間に対応する点に注目する。)インターフェース48のその他の部分は、アプリケーションプログラム49によるオペレーティングシステム50に対する要求(「システムコール」)であって、I/Oベースデバイス14またはメモリアドレス指定デバイス13上に存在するファイルの内容を読み取るか、書き込むか、さもなければアクセスするための要求から成る。メモリ/ファイルマネジャ51は、インターフェース48を介したアプリケーションプログラム49による要求を処理するオペレーティングシステム50のコンポーネントである。I/Oベースデバイス14またはメモリアドレス指定デバイス13上に存在するファイルの内容にアクセスするには、メモリ/ファイルマネジャ51は、ファイルシステムI/Oインターフェース45またはファイルシステムのダイレクトアクセスインターフェース54あるいはその両方を介して、ファイルシステムドライバ52と対話する。オペレーティングシステム50は、各々が特定のファイルシステムレイアウトの処理を担う複数のバージョンのファイルシステムドライバを含む。すべてのファイルシステムドライバは同じファイルシステムI/Oインターフェース45をインプリメントし、いくつかのファイルシステムドライバは、さらに、メモリアドレス指定デバイス上に存在するファイルに対する直接実行アクセスを実行するのに適するファイルシステムのダイレクトアクセスインターフェース54をインプリメントする。ファイルシステムドライバ52は、デバイスI/Oインターフェース46またはデバイスダイレクトアクセスインターフェース55あるいはその両方を介して、デバイスドライバ44および53と対話する。オペレーティングシステム50は、各々が特定タイプのデバイスの処理を担う複数バージョンのデバイスドライバも含む。すべてのデバイスドライバは同じデバイスI/Oインターフェース46をインプリメントし、メモリアドレス指定デバイス13のデバイスドライバは、さらに、メモリアドレス指定デバイス13上に存在するファイルに対する直接実行アクセスを実行するのに適するデバイスダイレクトアクセスインターフェース55をインプリメントする。I/Oインターフェース45およびダイレクトアクセスインターフェース54の両方を提供するファイルシステムドライバの場合、メモリ/ファイルマネジャ51は、このようなファイルシステムドライバにより処理されるファイルに対する定期的なアクセスおよび直接実行アクセスの両方を実行すること可能である。図7および図8は、それぞれ定期的なアクセスおよび直接実行アクセスを実行するのに必要な制御フローを詳細に示す。図9は、2つの方法のどちらを特定ファイルのアクセスに使用するかを選択するために必要な決定ロジックを詳細に示す。   As shown in FIG. 6, the operating system 50 interacts with an application program 49 through an interface 48. Part of interface 48 consists of demand paging requests triggered by application program 49, which accesses a page in virtual address space 31 that is not currently mapped to a page in system memory address space 30. (Note that the virtual address space 31 and the system memory address space 30 are shown in FIGS. 3 and 4, and the virtual address space 31 corresponds to the virtual address space of the application 49.) A request (“system call”) to the operating system 50 by the application program 49 to read, write, or otherwise access the contents of a file residing on the I / O base device 14 or the memory addressing device 13 Consisting of requests to do. The memory / file manager 51 is a component of the operating system 50 that processes requests from the application program 49 via the interface 48. To access the contents of a file residing on the I / O base device 14 or the memory addressing device 13, the memory / file manager 51 has a file system I / O interface 45 or a file system direct access interface 54 or both. To interact with the file system driver 52. The operating system 50 includes multiple versions of file system drivers, each responsible for processing a particular file system layout. All file system drivers implement the same file system I / O interface 45, and some file system drivers are also suitable for performing direct execution access to files residing on a memory addressing device. A direct access interface 54 is implemented. File system driver 52 interacts with device drivers 44 and 53 via device I / O interface 46 and / or device direct access interface 55. The operating system 50 also includes multiple versions of device drivers, each responsible for processing a specific type of device. All device drivers implement the same device I / O interface 46, and the device driver of the memory addressing device 13 is further suitable for performing direct execution access to files residing on the memory addressing device 13. An access interface 55 is implemented. In the case of a file system driver that provides both an I / O interface 45 and a direct access interface 54, the memory / file manager 51 provides both periodic access and direct execution access to files processed by such file system driver. Can be performed. FIGS. 7 and 8 detail the control flow required to perform periodic access and direct execution access, respectively. FIG. 9 details the decision logic required to select which of the two methods is used to access a particular file.

図7は、オペレーティングシステム50が、I/Oベースデバイス14上に存在するファイルにアクセスするための要求を処理する時の制御フローを示す。この制御フローは、先行技術のオペレーティングシステム40が対応するアクセスに使用する制御フローと同じである点に注目する。制御フローのステップは、順にアクション60a〜fにより表現される。ここに示す特定のアクションは、アプリケーション49が、仮想アドレス空間31のページ32cにアクセスしようと試みた後、図3に示す状況に対応する。このページは、システムメモリアドレス空間30のどのページにも現在マップされていないため、ページ障害割込みが生成され、オペレーティングシステム50のメモリ/ファイルマネジャ51コンポーネントにより処理される。これは、図7にアクション60aで表現される。メモリ/ファイルマネジャ51は、ページ32cのページ記述子から、アプリケーションが、ページ32cの内容が、オフセット0におけるファイルFの内容に対応するはずであると予想していることを読み取る。メモリ/ファイルマネジャ51は、ファイルFが、ファイルシステムドライバ52により処理されるファイルシステム上に存在すると決定する。メモリ/ファイルマネジャ51は、さらに、ファイルFが直接実行をサポートしないと決定する(この点について、以下で詳細に説明する)。メモリ/ファイルマネジャ51は、次に、RAM13内の自由ページ33cを割り当て、そのシステムメモリアドレスAを決定し、ファイルシステムドライバ52のファイルシステムI/Oインターフェース45を介して、オフセット0におけるファイルFの内容をシステムメモリアドレスAのページにコピーするように要求する(アクション60b)。ファイルシステムドライバ52は、オフセット0におけるファイルFのデータが、I/Oベースデバイス14のブロックB上に存在し、デバイスドライバ44が、I/Oベースデバイス14へのアクセスを担うことを決定する。ファイルシステムドライバ52は、次に、デバイスドライバ44のデバイスI/Oインターフェース46を介して、I/Oベースデバイス14のブロックBをシステムメモリアドレスAのページにコピーするように要求する(アクション60c)。デバイスドライバ44は、I/Oベースデバイス44上のI/O操作61に、そのコピーを実行させる。I/O操作61が完了すると、デバイスドライバ44は、デバイスI/Oインターフェース46を介して、ファイルシステムドライバ52に完了を報告し(アクション60d)、ファイルシステムドライバ52は、同様に、ファイルシステムI/Oインターフェース45を介してメモリ/ファイルマネジャ51に完了を報告する(アクション60e)。メモリ/ファイルマネジャ51は、最後に、システムメモリアドレス空間30におけるページ33cに対する仮想アドレス空間31のページ32cのマッピングを確立する。   FIG. 7 shows a control flow when the operating system 50 processes a request to access a file existing on the I / O base device 14. Note that this control flow is the same as the control flow used by the prior art operating system 40 for the corresponding access. The steps of the control flow are expressed in order by actions 60a-f. The particular action shown here corresponds to the situation shown in FIG. 3 after the application 49 attempts to access the page 32c of the virtual address space 31. Since this page is not currently mapped to any page in system memory address space 30, a page fault interrupt is generated and handled by the memory / file manager 51 component of operating system 50. This is represented by action 60a in FIG. The memory / file manager 51 reads from the page descriptor of page 32c that the application expects the contents of page 32c to correspond to the contents of file F at offset 0. The memory / file manager 51 determines that the file F exists on the file system processed by the file system driver 52. The memory / file manager 51 further determines that file F does not support direct execution (this will be described in detail below). Next, the memory / file manager 51 allocates a free page 33c in the RAM 13, determines its system memory address A, and passes the file F at the offset 0 through the file system I / O interface 45 of the file system driver 52. Requests that the contents be copied to the page at system memory address A (action 60b). The file system driver 52 determines that the data of the file F at the offset 0 exists on the block B of the I / O base device 14 and that the device driver 44 is responsible for accessing the I / O base device 14. The file system driver 52 then requests to copy the block B of the I / O base device 14 to the page at system memory address A via the device I / O interface 46 of the device driver 44 (action 60c). . The device driver 44 causes the I / O operation 61 on the I / O base device 44 to execute the copy. When the I / O operation 61 is completed, the device driver 44 reports the completion to the file system driver 52 via the device I / O interface 46 (action 60d), and the file system driver 52 similarly receives the file system I The completion is reported to the memory / file manager 51 via the / O interface 45 (action 60e). The memory / file manager 51 finally establishes a mapping of the page 32 c of the virtual address space 31 to the page 33 c in the system memory address space 30.

図8は、同様に、オペレーティングシステム50が、メモリアドレス指定デバイス13上に存在するファイルに対する直接実行アクセスを実行するという要求を処理する時の制御フローを示す。このフローは、先行技術のオペレーティングシステム40が対応するアクセスに使用するフローとは異なり、本発明により記述される新しいダイレクトアクセスインターフェースを使用する点に注目する。さらに、メモリアドレス指定デバイス13上のファイルに対するいくつかのアクセスは、直接実行アクセスに適さず、この場合、その代わりに、図7に示し、上記で説明した制御フローと等価な制御フローを使用して、ファイルに対する定期的なI/Oアクセスが実行される。これは、デバイスドライバ53が、デバイスドライバ44と同様にデバイスI/Oインターフェース46もインプリメントするために可能である。   FIG. 8 similarly shows a control flow when the operating system 50 processes a request to perform a direct execution access to a file residing on the memory addressing device 13. Note that this flow uses the new direct access interface described by the present invention, unlike the flow used by the prior art operating system 40 for corresponding access. Further, some accesses to files on the memory addressing device 13 are not suitable for direct execution access, in which case a control flow equivalent to the control flow shown in FIG. 7 and described above is used instead. Thus, periodic I / O access to the file is executed. This is possible because the device driver 53 implements the device I / O interface 46 as well as the device driver 44.

図8に示す制御フローのステップは、順にアクション70a〜fで表現される。図8に示す特定のアクションは、アプリケーション49が仮想アドレス空間31のページにアクセスすることを試みた後の図4に示す状況に対応する。図7のように、ページ障害割込みが生成されて、メモリ/ファイルマネジャ51により処理され(アクション70a)、メモリ/ファイルマネジャ51は、やはり、ページ32cのページ記述子から、アプリケーションが、ページ32cの内容がオフセット0におけるファイルFの内容に対応するはずであると予想していることを読み取る。メモリ/ファイルマネジャ51は、ファイルFが、ファイルシステムドライバ52により処理されるファイルシステム上に存在すると決定する。メモリ/ファイルマネジャ51は、さらに、ファイルFが直接実行をサポートしないと決定する(この点について、以下で詳細に説明する)。メモリ/ファイルマネジャ51は、次に、ファイルシステムドライバ52のファイルシステムのダイレクトアクセスインターフェースを介して、オフセット0におけるファイルFの内容のシステムメモリアドレスを検索するように要求する(アクション70b)。ファイルシステムドライバ52は、オフセット0におけるファイルFの内容が、メモリアドレス指定デバイス13のブロックB上に存在し、デバイスドライバ53がメモリアドレス指定デバイス13へのアクセスを担うと決定する。ファイルシステムドライバ52は、次に、デバイスドライバ53のデバイスダイレクトアクセスインターフェース55を介して、メモリアドレス指定デバイス13のブロックBのシステムメモリアドレスを検索するように要求する(アクション70c)。デバイスドライバ53は、メモリアドレス指定デバイス13のブロックBが、システムメモリアドレス空間30のページ35cに対応し、デバイスダイレクトアクセスインターフェース55を介して、そのアドレスAをファイルシステムドライバ52に返し(アクション70d)、同様に、ファイルシステムのダイレクトアクセスインターフェース54を介して、アドレスAをメモリ/ファイルマネジャ51に返す(アクション70e)と決定する。メモリ/ファイルマネジャ51は、最後に、システムメモリアドレス空間30のアドレスAにおけるページ35cに対する仮想アドレス空間31のページ32cのマッピングを確立する。   The steps of the control flow shown in FIG. 8 are expressed by actions 70a to 70f in order. The specific action shown in FIG. 8 corresponds to the situation shown in FIG. 4 after the application 49 attempts to access a page in the virtual address space 31. As shown in FIG. 7, a page fault interrupt is generated and processed by the memory / file manager 51 (action 70a), and the memory / file manager 51 again uses the page descriptor of the page 32c, and the application Read that the content is expected to correspond to the content of file F at offset 0. The memory / file manager 51 determines that the file F exists on the file system processed by the file system driver 52. The memory / file manager 51 further determines that file F does not support direct execution (this will be described in detail below). The memory / file manager 51 then requests to retrieve the system memory address of the contents of the file F at offset 0 via the file system direct access interface of the file system driver 52 (action 70b). The file system driver 52 determines that the content of the file F at the offset 0 exists on the block B of the memory addressing device 13 and that the device driver 53 is responsible for accessing the memory addressing device 13. The file system driver 52 then requests to retrieve the system memory address of block B of the memory addressing device 13 via the device direct access interface 55 of the device driver 53 (action 70c). The device driver 53 returns the address A to the file system driver 52 via the device direct access interface 55, with the block B of the memory addressing device 13 corresponding to the page 35c of the system memory address space 30 (action 70d). Similarly, it is determined that the address A is returned to the memory / file manager 51 through the direct access interface 54 of the file system (action 70e). The memory / file manager 51 finally establishes a mapping of the page 32c of the virtual address space 31 to the page 35c at the address A of the system memory address space 30.

図9は、ファイルシステムI/Oインターフェースまたはファイルシステムのダイレクトアクセスインターフェースを使用してファイルFにアクセスするかどうかを決定する時のオペレーティングシステム50(図6)内の制御フローを示す。オペレーティングシステムは、最初に、どのファイルシステムドライバが、ファイルFを保持するファイルシステムFSに責任を負うかを決定する。ファイルシステムドライバがファイルシステムのダイレクトアクセスインターフェースを全然サポートしていない場合、ファイルシステムI/Oインターフェースが使用される。さもなければ、オペレーティングシステムは、どのデバイスドライバが、ファイルシステムFSの下にあるデバイスDに責任を負うかを決定する。デバイスドライバが、デバイスダイレクトアクセスインターフェースを全然サポートしていない場合、同様にファイルシステムI/Oインターフェースが使用される。さもなければ、オペレーティングシステムは、ファイルシステムFSが、ファイルFに直接実行アクセスするためにユーザにより構成されたかどうかを決定する。構成された場合は、ファイルシステムのダイレクトアクセスインターフェースが使用され、さもなければ、ファイルシステムI/Oインターフェースが使用される。実施態様によっては、ユーザは、FS上のすべてのファイルに対する直接実行アクセスをできるようにするか、またはFS上のすべてのファイルに対して直接実行アクセスできないようにするかのみ選択する。他の実施態様では、ユーザは、各々の単一ファイルに関して別個に、このような選択を行う。さらに、実施態様によっては、その他の構成可能なファイルシステムパラメータが、ユーザにより、直接実行と互換性のある値に設定された場合にのみ、直接実行アクセスを可能にすることができ、たとえば、ファイルシステムのブロックサイズは、複数のシステムメモリページのサイズに等しい値、または複数のシステムメモリページのサイズに構成する必要がある。   FIG. 9 shows the control flow within the operating system 50 (FIG. 6) when deciding whether to access the file F using the file system I / O interface or the file system direct access interface. The operating system first determines which file system driver is responsible for the file system FS that holds the file F. If the file system driver does not support any direct access interface of the file system, the file system I / O interface is used. Otherwise, the operating system determines which device driver is responsible for the device D under the file system FS. If the device driver does not support any device direct access interface, the file system I / O interface is used as well. Otherwise, the operating system determines whether the file system FS has been configured by the user for direct execution access to the file F. If configured, the file system direct access interface is used, otherwise the file system I / O interface is used. In some implementations, the user only chooses whether to allow direct execution access to all files on the FS or to prevent direct execution access to all files on the FS. In other embodiments, the user makes such a selection separately for each single file. Further, in some implementations, direct execution access can be allowed only when other configurable file system parameters are set by the user to values compatible with direct execution, for example, file The system block size needs to be configured to be equal to the size of a plurality of system memory pages or the size of a plurality of system memory pages.

オペレーティングシステムは、必ずしも、ファイルFに1回アクセスするごとに、図9に示す完全な決定ロジックを実行する必要はない点に注目する。その代わりに、選択は、ファイルFが最初にアクセスされ、ファイルFに関連するオペレーティングシステムのデータ構造内に記憶されている時点で選択され、その後のアクセスは、前記データ構造内に格納されている決定結果を再利用する。   Note that the operating system does not necessarily have to execute the complete decision logic shown in FIG. Instead, the selection is selected when file F is first accessed and stored in the operating system data structure associated with file F, and subsequent accesses are stored in the data structure. Reuse decision results.

図10〜図18は、Linuxオペレーティングシステム内における本発明の一実施態様をさらに詳細に示す。本発明は、インターフェースを拡張することにより、直接実行機能を標準オペレーティングシステムのI/Oコンポーネント構造内に組み込むのであって、コンポーネント構造全体を交換するのではない。Linuxは、I/O操作の実行に関連して、以下のコンポーネント層を提供する:
関連する特定ハードウェアを認識せずに、外部記憶装置にアクセスできるようにするデバイスドライバ層と、
外部記憶装置を認識せずに、ロジックファイルのビューを使用して外部記憶装置にアクセスすることが可能なファイルシステム層と、
アプリケーションが仮想メモリ、およびオペレーティングシステムが使用する動的アドレス変換技術を認識せずに、アプリケーションの実行をできるようにするメモリ管理層。
10-18 illustrate in more detail one embodiment of the present invention within the Linux operating system. The present invention extends the interface to incorporate direct execution functionality within the I / O component structure of the standard operating system, not to replace the entire component structure. Linux provides the following component layers in connection with performing I / O operations:
A device driver layer that allows access to an external storage device without recognizing the specific hardware involved;
A file system layer that can access the external storage device using a view of the logic file without recognizing the external storage device;
A memory management layer that allows applications to run without being aware of virtual memory and the dynamic address translation technology used by the operating system.

図10は、多くの現代的なオペレーティングシステムにインプリメントされるデバイスの抽象化を示す。この実施例は、Linuxのデバイスドライバを示す。make_request関数は、データをデバイスに読み書きするための要求を提出するために呼び出される。request_queueおよびdo_request関数は、Linux内部の最適化の一部である。デバイスドライバは、「要求をディスパッチする −> 要求を処理する −> 割り込みハンドラ −> 要求をディスパッチする」のループで動作し、デバイスドライバに提出されたすべての作業が実行される。   FIG. 10 illustrates the device abstraction implemented in many modern operating systems. This embodiment shows a Linux device driver. The make_request function is called to submit a request to read or write data to the device. The request_queue and do_request functions are part of the Linux internal optimization. The device driver operates in a loop of “dispatch request-> process request-> interrupt handler-> dispatch request”, and all work submitted to the device driver is executed.

デバイスドライバ層は、読み取り要求または書き込み要求を提出できるようにする。この層の頻繁なユーザは、データをファイルから転送するか、またはファイルに転送するファイルシステムのreadpage(s)/writepage(s)動作である。データをアドレス指定するには、物理ブロック数が使用される。   The device driver layer allows submitting read requests or write requests. Frequent users of this layer are file system readpage (s) / writepage (s) operations that transfer data from or to a file. The physical block number is used to address the data.

本発明は、図11に示されているデバイスドライバ層のインターフェースに対する拡張を提供する。既存のインターフェースを元の状態に維持しつつ、この拡張は、デバイス上のデータを直接参照するために使用できる機能を提供する。この参照は、要求を提出せずにデバイス上のデータにアクセスし、その完了を待つために使用することができる。この拡張は、任意に、メモリアドレス指定デバイスにアクセスするデバイスドライバによりインプリメントすることが可能である。新しい動作direct_accessは、make_requestに類似する物理ブロック番号を取得するが、どのデータも転送しない。その代わりに、データの参照が返される。この参照は、デバイスが、さらにデバイスドライバ層と対話せずに、再び閉鎖/アンマウントされるまで、何らかのデータをその後いつでも物理ブロックに読み書きするために使用することができる。新しいインターフェースの使用は任意であり、従来のmake_requestインターフェースは、生デバイスドライバなどの新しいインターフェースをサポートしていないユーザのために、元の状態を維持する。従来のインターフェースは汎用ファイルシステムをサポートすることが重要であり、汎用ファイルシステムを使用して、ファイルシステムのメタデータを転送する(inode、directoryエントリなど)。   The present invention provides an extension to the device driver layer interface shown in FIG. This extension provides functionality that can be used to directly reference the data on the device while keeping the existing interface intact. This reference can be used to access data on the device without submitting a request and wait for it to complete. This extension can optionally be implemented by a device driver that accesses the memory addressing device. The new operation direct_access gets a physical block number similar to make_request, but does not transfer any data. Instead, a data reference is returned. This reference can be used to read or write any data to the physical block at any time thereafter until the device is closed / unmounted again without further interaction with the device driver layer. The use of a new interface is optional, and the traditional make_request interface maintains the original state for users who do not support the new interface, such as raw device drivers. It is important for a conventional interface to support a general-purpose file system, and the file system metadata is transferred using the general-purpose file system (inode, directory entry, etc.).

図12は、Linux内の汎用ファイルシステムが、デバイスドライバのmake_request関数を使用して、どのようにアドレス空間操作をインプリメントするかを示す。read page(s)/write page(s)関数は、get_block関数を使用して[複数のページを処理する場合、繰り返し]、複数の対象ページに関連するデバイス上の物理ブロック数を識別する。図10に示すmake_request関数は、データにアクセスするために使用される。Linuxでは、ファイルシステムは、一般に、ファイルシステムのライブラリ関数と共にアドレス空間操作を使用して、sys_read()およびsys_write()などのファイル操作を実行する。これらのアドレス空間操作およびライブラリ関数の使用は任意だが、殆どの汎用ファイルシステムはこれらを使用する。アドレス空間操作、read page()、read pages()、write page()、write pages()は、データの1つまたは複数のメモリページをデバイスドライバから読み取るか、またはデバイスドライバに書き込むために使用される。メモリページをアドレス指定するには、ロジックファイルハンドルおよびオフセットが使用される。このアドレス指定は、ファイルシステムにより物理ブロック番号に変換される。   FIG. 12 shows how the generic file system in Linux uses the device driver's make_request function to implement address space operations. The read page (s) / write page (s) function uses the get_block function [repeated when processing multiple pages] to identify the number of physical blocks on the device associated with multiple target pages. The make_request function shown in FIG. 10 is used to access data. In Linux, the file system typically uses address space operations along with file system library functions to perform file operations such as sys_read () and sys_write (). The use of these address space operations and library functions is optional, but most general purpose file systems use them. Address space operations, read page (), read pages (), write page (), and write pages () are used to read or write one or more memory pages of data from a device driver. The Logic file handles and offsets are used to address memory pages. This addressing is converted into a physical block number by the file system.

本発明は、図13に示すように、あるメモリページの背後で記憶装置の参照を検索できるようにするget_xip_pageという名称の関数により、アドレス空間操作インターフェースに対する拡張を提供する。この機能は、ファイルハンドル、およびアドレス指定用オフセットを使用し、get_block関数を呼び出することにより、ファイルハンドルおよびアドレス指定用オフセットを物理ブロック番号に変換し、その物理ブロックの背後で、デバイスドライバ層のdirect_access関数から記憶装置の参照を検索する(図11に示す)。この参照は、ファイルシステムまたはデバイスドライバ層とさらに対話せずに、ファイルが切り捨てられるか、またはファイルシステムがアンマウントされるまで、何らかのデータをその後いつでも物理ブロックに読み書きするために使用することができる。新しいインターフェースの使用は、サポートされている場合は必須であり、データの完全性の点で、従来のread page(s)/write page(s)インターフェースまたは新しいget_xip_pageインターフェースがファイルに対してサポートされる。   The present invention provides an extension to the address space manipulation interface with a function named get_xip_page that allows a storage device reference to be searched behind a memory page, as shown in FIG. This function uses the file handle and addressing offset, and converts the file handle and addressing offset into a physical block number by calling the get_block function, and behind the physical block, the device driver layer A storage device reference is retrieved from the direct_access function (shown in FIG. 11). This reference can be used to read or write any data to the physical block at any time thereafter, without further interaction with the file system or device driver layer, until the file is truncated or the file system is unmounted. Use of the new interface is mandatory if supported, and the legacy read page (s) / write page (s) interface or the new get_xip_page interface is supported for files in terms of data integrity .

read page(s)/write page(s)関数の主なユーザは、ファイルシステムのライブラリ関数である。図14は、ファイルシステムのライブラリ関数が、Linuxの汎用ファイルシステムのためのread_typeファイル操作をどのように実行するかを示す。   The main user of the read page (s) / write page (s) function is a file system library function. FIG. 14 shows how a file system library function performs a read_type file operation for a Linux general purpose file system.

generic_file_read関数は、sys_read()システムコールに関連するファイル操作を実行する。   The generic_file_read function performs file operations associated with the sys_read () system call.

generic_file_readv関数は、sys_readv()システムコールに関連するファイル操作を実行する。   The generic_file_readv function performs file operations associated with the sys_readv () system call.

generic_file_aio_read関数は、非同期IOシステムコールに関連する読み取り操作を実行する。   The generic_file_aio_read function performs a read operation associated with an asynchronous IO system call.

generic_file_sendfileファイル操作は、sys_sendfile()システムコールに関連するファイル操作を実行する。   The generic_file_sendfile file operation performs a file operation associated with the sys_sendfile () system call.

これらのすべての関数はgeneric_mapping_readを呼び出し、generic_mapping_readは、read page(s)関数を使用して(図12に示すように)、デバイスから1つまたは複数のページを読み取る。これらの関数の使用は、ファイルシステムの場合は任意だが、汎用ファイルシステムは、独自のファイル操作のインプリメンテーションを行う代わりに、すべての関数を使用する。   All these functions call generic_mapping_read, which uses the read page (s) function (as shown in FIG. 12) to read one or more pages from the device. The use of these functions is optional for the file system, but the generic file system uses all functions instead of implementing its own file manipulation implementation.

図16は、ファイルシステムのライブラリ関数が、どのようにLinuxの汎用ファイルシステムのためのwrite typeファイル操作を実行するかを示す。   FIG. 16 illustrates how a file system library function performs a write type file operation for a Linux general purpose file system.

generic_file_write関数は、sys_write()システムコールに関連するファイル操作を実行する。   The generic_file_write function performs file operations associated with the sys_write () system call.

generic_file_writev関数は、sys_writev()システムコールに関連するファイル操作を実行する。   The generic_file_writeev function performs file operations associated with the sys_writeev () system call.

generic_file_aio_write関数は、非同期IOシステムコールに関連する書き込み操作を実行する。   The generic_file_aio_write function performs a write operation associated with an asynchronous IO system call.

これらのすべての関数は、generic_file_direct_write(オプションのO_DIRECTを使用して、対象ファイルを開く場合)、またはgeneric_file_buffered_writeを呼び出す。これらの関数はwrite page(s)関数を使用して、1つまたは複数のページをデバイスに書き込む。   All these functions call generic_file_direct_write (if the target file is opened using the optional O_DIRECT), or generic_file_buffered_write. These functions use the write page (s) function to write one or more pages to the device.

本発明は、ライブラリ関数が、get_xip_pageインターフェースがサポートされている場合、それを使用できるようにするために、ライブラリ関数の拡張を提供する。図15は、read type操作のために、ファイルシステムのライブラリ関数に対して行われる拡張を示す。get_xip_pageアドレス空間操作が存在するかどうかに応じて、操作を実行するために、generic_mapping_read関数、または新しいdo_xip_mapping_read関数を使用して、操作が実行される。do_xip_mapping_read関数は、get_xip_pageアドレス空間操作を使用して、デバイス上の対象データの参照を検索する。データ転送の場合、この参照が直接使用され、I/O操作を実行する必要はない。図17は、write type操作のために、ファイルシステムライブラリ関数に対して行われる拡張を示す。get_xip_pageアドレス空間操作が存在するかどうかに応じて、generic_file_buffered_write/generic_file_buffered_write関数を使用するか、または新しいgeneric_file_xip_write関数を使用して操作を行う。generic_file_xip_write関数は、get_xip_pageアドレス空間操作を使用して、デバイス上の対象データに対する参照を検索する。データ転送の場合、この参照を直接使用して、I/O操作を実行する必要はない。   The present invention provides an extension of the library function to allow the library function to use the get_xip_page interface if it is supported. FIG. 15 illustrates the extensions that are made to the file system library functions for read type operations. Depending on whether there is a get_xip_page address space operation, the operation is performed using the generic_mapping_read function or the new do_xip_mapping_read function to perform the operation. The do_xip_mapping_read function uses a get_xip_page address space operation to retrieve a reference to the target data on the device. For data transfer, this reference is used directly and there is no need to perform I / O operations. FIG. 17 shows the extensions that are made to the file system library functions for a write type operation. Depending on whether there is a get_xip_page address space operation, perform the operation using the generic_file_buffered_write / generic_file_buffered_write function or the new generic_file_xip_write function. The generic_file_xip_write function uses a get_xip_page address space operation to retrieve a reference to the target data on the device. For data transfer, this reference need not be used directly to perform I / O operations.

get_xip_pageアドレス空間操作をインプリメントするすべてのファイルシステムは、ライブラリ関数によりインプリメントされるすべてのファイル操作を使って、直接実行アクセスを実行するために、さらにコードを変更する必要はない。図15、図17および図18は、拡張されたライブラリ関数が、get_xip_pageアドレス空間操作がインプリメントされるかどうかに応じて、それぞれの機能をどのようにインプリメントするかを示す。get_xip_pageがインプリメントされる場合、すべてのライブラリ関数は、get_xip_pageから検索された参照を使用して、記憶装置に対するすべてのデータ転送を直接実行する。図18は、ファイルメモリマッピングのために、ファイルシステムのライブラリ関数に対して行われる拡張を示す。このアプリケーションは、現在存在しない仮想メモリアドレス空間の一部にアクセスした。Linuxの標準のアーキテクチャ依存およびコアメモリ管理機能は、結果として得られるページ障害を処理するために使用される。定期的な処理と違って、ファイルシステムは、対象ページに関連するファイルのために、filemap_xip_nopageハンドラをインストールした。このハンドラは、get_xip_pageを使用して、デバイス上の対象データの参照を検索する。この参照はdo_no_page関数に返され、アプリケーションの仮想アドレス空間ページテーブル内にページテーブルエントリを生成し、アプリケーションが、オペレーティングシステムがさらに関与せずに、デバイス上のデータを直接使用できるようにする。ページテーブルのエントリは、ファイルマッピングがプライベートであることが選択された場合(標準機構が適用される)、後に、書き込み機構上のコピーの対象になる。   All file systems that implement get_xip_page address space operations do not require any further code changes to perform direct execution access using all file operations implemented by library functions. FIGS. 15, 17 and 18 illustrate how the extended library functions implement their respective functions depending on whether get_xip_page address space operations are implemented. When get_xip_page is implemented, all library functions directly perform all data transfers to the storage device using references retrieved from get_xip_page. FIG. 18 shows the extensions made to the file system library functions for file memory mapping. This application accessed a portion of the virtual memory address space that does not currently exist. The standard architecture dependency and core memory management functions of Linux are used to handle the resulting page fault. Unlike regular processing, the file system has installed a filemap_xip_nopage handler for the file associated with the target page. This handler uses get_xip_page to retrieve a reference to the target data on the device. This reference is returned to the do_no_page function to create a page table entry in the application's virtual address space page table, allowing the application to directly use the data on the device without further involvement of the operating system. The page table entries are later copied on the writing mechanism if the file mapping is selected to be private (the standard mechanism applies).

直接実行の効果は、アプリケーションのバイナリファイルおよび共有ライブラリが、Linuxのファイルマッピングの対象になり、その結果、上記のページ障害機構の対象になるため達成される。   The effect of direct execution is achieved because the binary file and shared library of the application are subject to Linux file mapping, and as a result, subject to the page fault mechanism described above.

上記の拡張は、LinuxオペレーティングシステムのI/O関連コンポーネント内で、全体の構造および層隔離を元の状態に維持する。デバイスドライバ層は、物理ブロック番号をデバイスにマップするが、ファイルまたはその他のロジックオブジェクトと連動しない。ファイルシステムは、ロジックファイルと物理ブロック番号のアドレス指定との間でマッピングを実行するが、デバイスの構造と連動しない。一方、データ転送自体は、上下逆転する。デバイスドライバは、新たな拡張を使用する場合、データを転送しない。データは、ファイル操作ライブラリ関数で直接背転送される。この解決方法の効果は、デバイスドライバ層および汎用ファイルシステムに対して、非常に小さくかつ非侵入的な変化のみを含むことである。汎用ファイルシステムは、メモリ消費量の減少および実行の増加など、直接機構の利点を容易に取得することができる。   The above extensions maintain the overall structure and layer isolation in the I / O related components of the Linux operating system. The device driver layer maps physical block numbers to devices but does not work with files or other logic objects. The file system performs the mapping between the logic file and the physical block number addressing, but does not work with the device structure. On the other hand, the data transfer itself is reversed upside down. The device driver does not transfer data when using a new extension. Data is directly transferred by file operation library functions. The effect of this solution is to include only very small and non-intrusive changes to the device driver layer and the generic file system. A general purpose file system can easily obtain the advantages of a direct mechanism, such as reduced memory consumption and increased execution.

本発明をインプリメントするために必要なコンピュータシステムのブロック図を示す。FIG. 2 shows a block diagram of a computer system necessary to implement the present invention. 本発明のいくつかの実施態様のゲストとして、図1に示すコンピュータシステムをホストする仮想マシン環境を示す。2 illustrates a virtual machine environment hosting the computer system shown in FIG. 1 as a guest of some embodiments of the present invention. 先行技術のオペレーティングシステムにより提供される仮想メモリおよびデマンドページング機能を示す。2 illustrates virtual memory and demand paging functionality provided by prior art operating systems. 先行技術のオペレーティングシステムにより提供される直接実行機能を示す。Fig. 4 illustrates a direct execution function provided by a prior art operating system. 直接実行をインプリメントする先行技術のオペレーティングシステムのコンポーネント構造を示す。Fig. 2 shows the component structure of a prior art operating system that implements direct execution. 本発明を使用する直接実行をインプリメントするオペレーティングシステムのコンポーネント構造を示す。Fig. 4 illustrates the component structure of an operating system that implements direct execution using the present invention. 本発明によるI/Oベースデバイスにアクセスするために使用される図6のオペレーティングシステムのコンポーネントを通る制御フローを示す。FIG. 7 illustrates a control flow through the components of the operating system of FIG. 6 used to access an I / O based device according to the present invention. 本発明によるメモリアドレス指定デバイスに対する直接実行アクセスを実行するために使用される図6のオペレーティングシステムのコンポーネントを通る制御フローを示す。FIG. 7 illustrates a control flow through the components of the operating system of FIG. 6 used to perform direct execution access to a memory addressing device according to the present invention. 図7および図8に示される2つの制御フローのどちらを使用するかを選択するために使用される図6のオペレーティングシステムによる決定ロジックを示す。FIG. 9 illustrates decision logic by the operating system of FIG. 6 used to select which of the two control flows shown in FIGS. 7 and 8 to use. 先行技術のLinuxオペレーティングシステムにインプリメントされるデバイスの抽象化を示す。Fig. 4 illustrates an abstraction of a device implemented in a prior art Linux operating system. 本発明をインプリメントするLinuxオペレーティングシステム内のデバイスドライバ層に行われる拡張を示す。Fig. 5 illustrates extensions made to the device driver layer within the Linux operating system that implements the present invention. 汎用ファイルシステムが、1つまたは複数のページを先行技術のLinuxオペレーティングシステム内のデバイスに読み書きするためのアドレス空間操作をどのように提供するかを示す。Fig. 4 illustrates how a universal file system provides address space operations for reading and writing one or more pages to devices in prior art Linux operating systems. 本発明をインプリメントするLinuxオペレーティングシステム内のファイルシステムのアドレス空間操作に行われる拡張を示す。Fig. 4 illustrates extensions made to file system address space operations within a Linux operating system implementing the present invention. ファイルシステムのライブラリ関数が、先行技術のLinuxオペレーティングシステム内において、汎用ファイルシステムに対してread typeファイル操作をどのように実行するかを示す。The file system library functions show how to perform read type file operations on a general purpose file system in a prior art Linux operating system. 本発明をインプリメントするLinuxオペレーティングシステム内において、read type操作のためにファイルシステムのライブラリ関数に対して行われる拡張を示す。Fig. 6 illustrates extensions made to file system library functions for read type operations within the Linux operating system implementing the present invention. ファイルシステムのライブラリ関数が、先行技術のLinuxオペレーティングシステム内において、汎用ファイルシステムのためのwrite typeファイル操作をどのように実行するかを示す。FIG. 4 illustrates how a file system library function performs a write type file operation for a general purpose file system within a prior art Linux operating system. 本発明をインプリメントするLinuxオペレーティングシステム内において、write type操作のためにファイルシステムのライブラリ関数に行われる拡張を示す。Fig. 4 illustrates extensions made to file system library functions for write type operations within a Linux operating system implementing the present invention. 本発明をインプリメントするLinuxオペレーティングシステムにおいて、ファイルメモリマッピングのためにファイルシステムのライブラリ関数に行われる拡張を示す。Fig. 4 illustrates extensions made to file system library functions for file memory mapping in a Linux operating system implementing the present invention.

符号の説明Explanation of symbols

12 RAM
13 メモリアドレス指定デバイス
14 I/Oベースデバイス
44、53 デバイスドライバ
49 アプリケーションプログラム
50 オペレーティングシステム
51 メモリ/ファイルマネジャ
52 ファイルシステムドライバ
12 RAM
13 Memory Addressing Device 14 I / O Base Device 44, 53 Device Driver 49 Application Program 50 Operating System 51 Memory / File Manager 52 File System Driver

Claims (10)

アプリケーションプログラム(49)に対するインターフェース(48)を有するメモリ/ファイルマネジャ(51)と、
前記メモリ/ファイルマネジャ(51)に対するファイルシステムI/Oインターフェース(45)を有する少なくとも1個のファイルシステムドライバ(52)と、
前記ファイルシステムドライバ(52)に対するデバイスI/Oインターフェース(46)を有する少なくとも1個のデバイスドライバ(44)であって、前記少なくとも1個のデバイスドライバ(44)が、少なくとも1個のI/Oベースデバイス(14)に対するアクセスを提供するデバイスドライバ(44)と、
前記ファイルシステムドライバ(52)に対するデバイスI/Oインターフェース(46)を有する少なくとも1個のデバイスドライバ(53)であって、前記少なくとも1個のデバイスドライバ(53)が、少なくとも1個のメモリアドレス指定デバイス(13)に対するアクセスを提供するデバイスドライバ(53)とを含み、
オペレーティングシステム(50)が、少なくとも1個のメモリアドレス指定デバイス(13)にアクセスするための直接実行機能を提供するシステムであって、前記システムは、
前記メモリ/ファイルマネジャ(51)と前記少なくとも1個のファイルシステムドライバ(52)との間のファイルシステムのダイレクトアクセスインターフェース(54)であって、指定ファイルが、前記メモリアドレス指定デバイス(13)上に存在する場合、指定オフセットにおける前記ファイルの内容のシステムメモリアドレスを検索する機能を提供するファイルシステムのダイレクトアクセスインターフェース(54)と、
少なくとも1個のファイルシステムドライバ(52)と前記少なくとも1個のデバイスドライバ(53)との間にあり、前記少なくとも1個のメモリアドレス指定デバイス(13)に対するアクセスを提供するデバイスダイレクトアクセスインターフェース(55)であって、少なくとも1個のメモリアドレス指定デバイス(13)の指定ブロックのシステムメモリアドレスを検索するための機能を提供するデバイスダイレクトアクセスインターフェース(55)とを含むことを特徴とし、
前記直接実行機能が、前記ファイルシステムのダイレクトアクセスインターフェース(54)および前記デバイスダイレクトアクセスインターフェース(55)を使用することにより、前記メモリ/ファイルマネジャ(51)、前記少なくとも1個のファイルシステムドライバ(52)、および前記少なくとも1個のメモリアドレス指定デバイス(13)に対するアクセスを提供する少なくとも1個のデバイスドライバ(53)により提供されるシステム。
A memory / file manager (51) having an interface (48) to the application program (49);
At least one file system driver (52) having a file system I / O interface (45) to the memory / file manager (51);
At least one device driver (44) having a device I / O interface (46) to the file system driver (52), wherein the at least one device driver (44) is at least one I / O. A device driver (44) that provides access to the base device (14);
At least one device driver (53) having a device I / O interface (46) to the file system driver (52), wherein the at least one device driver (53) includes at least one memory addressing; A device driver (53) that provides access to the device (13);
An operating system (50) provides a direct execution function for accessing at least one memory addressing device (13), the system comprising:
A file system direct access interface (54) between the memory / file manager (51) and the at least one file system driver (52), wherein the designated file is on the memory addressing device (13). A file system direct access interface (54) that provides a function to retrieve a system memory address of the contents of the file at a specified offset,
A device direct access interface (55) between the at least one file system driver (52) and the at least one device driver (53) and providing access to the at least one memory addressing device (13) And a device direct access interface (55) providing a function for retrieving a system memory address of a designated block of at least one memory addressing device (13),
The direct execution function uses the direct access interface (54) and the device direct access interface (55) of the file system, so that the memory / file manager (51) and the at least one file system driver (52 ), And a system provided by at least one device driver (53) that provides access to the at least one memory addressing device (13).
前記システムが、オペレーティングシステムの一部であるか、または前記オペレーティングシステムにより提供される、請求項1に記載のシステム。   The system of claim 1, wherein the system is part of or provided by the operating system. 前記メモリ/ファイルマネジャ(51)が、前記ファイルシステムのダイレクトアクセスインターフェース(54)または前記ファイルシステムI/Oインターフェース(45)を使用して、前記ファイルシステムドライバ(52)により管理されるファイルに対するアクセスを提供する、請求項1に記載のシステム。   The memory / file manager (51) accesses a file managed by the file system driver (52) using the file system direct access interface (54) or the file system I / O interface (45). The system of claim 1, wherein: 前記ファイルシステムドライバ(52)が、指定オフセットにおける指定ファイルの内容のシステムメモリアドレスを検索することにより、前記ファイルシステムのダイレクトアクセスインターフェース(54)をインプリメントし、前記内容が、前記メモリアドレス指定デバイス(13)の特定ブロック上に存在し、該ブロックに対するアクセスが、前記ブロックのシステムメモリアドレスを検索するために、前記デバイスドライバにより提供される前記デバイスダイレクトアクセスインターフェースを使用することにより、前記デバイスドライバによって提供される、請求項1に記載のシステム。   The file system driver (52) implements a direct access interface (54) of the file system by retrieving the system memory address of the contents of the specified file at a specified offset, and the contents are stored in the memory addressing device ( 13) by the device driver by using the device direct access interface that exists on a particular block and access to the block is provided by the device driver to retrieve the system memory address of the block The system of claim 1, provided. 前記メモリ/ファイルマネジャ(51)が、指定オフセットにおける指定ファイルに対する直接実行アクセスをインプリメントし、前記ファイルが、前記ファイルシステムドライバ(52)により処理されるファイルシステム上に存在し、前記ファイルシステムがメモリアドレス指定デバイス(13)上に存在し、前記ファイルシステムドライバ(52)により提供される前記ファイルシステムのダイレクトアクセスインターフェース(54)を使用することにより、前記オフセットにおける前記ファイルの内容のシステムメモリアドレスを検索し、前記アドレスを使用することにより、前記内容を直接実行する、請求項1に記載のシステム。   The memory / file manager (51) implements direct execution access to a specified file at a specified offset, the file exists on a file system processed by the file system driver (52), and the file system is in memory By using the file system direct access interface (54) residing on the addressing device (13) and provided by the file system driver (52), the system memory address of the contents of the file at the offset is determined. The system of claim 1, wherein the content is directly executed by searching and using the address. 請求項1〜5のいずれかに記載のシステムを有するコンピュータシステム。   A computer system comprising the system according to claim 1. 1個または複数の仮想マシンを制御するハイパーバイザを有し、少なくとも1個の仮想マシンが請求項1〜5のいずれかに記載のシステムを動作させる、請求項6のいずれかに記載のコンピュータシステム。   The computer system according to claim 6, comprising a hypervisor that controls one or more virtual machines, wherein at least one virtual machine operates the system according to claim 1. . 前記メモリアドレス指定デバイス(13)が、前記ハイパーバイザにより1個または複数の前記仮想マシンに対して提供される共有メモリセグメントにより具現される、請求項7のいずれかに記載のコンピュータシステム。   The computer system according to any one of the preceding claims, wherein the memory addressing device (13) is embodied by a shared memory segment provided by the hypervisor to one or more of the virtual machines. 請求項1〜5のいずれかに記載のシステムにより直接実行機能を自動的に提供する方法であって、前記システムが、アプリケーションプログラムによりファイルにアクセスするための要求を受理し、前記ファイルにアクセスするための直接実行機能を使用するか否かを決定し、前記方法が、
前記ファイルを保持するファイルシステムを決定するステップと、
前記ファイルシステムを管理するファイルシステムドライバ(52)が、前記ファイルシステムのダイレクトアクセスインターフェース(54)を提供するかどうかを決定するステップと、
前記ファイルシステムドライバ(52)が、前記ファイルシステムのダイレクトアクセスインターフェース(54)を提供しない場合、直接実行を使用しないステップと、
前記ファイルシステムドライバが、前記ファイルシステムのダイレクトアクセスインターフェース(54)を提供する場合、前記ファイルが存在するデバイスを決定するステップと、
前記デバイス(13)を管理するデバイスドライバ(53)が、前記デバイスダイレクトアクセスインターフェース(55)を提供するかどうかを決定するステップと、
前記デバイスドライバが、前記デバイスダイレクトアクセスインターフェース(55)を提供しない場合、直接実行を使用しないステップと、
前記ファイルシステムが、直接実行機能を可能にするように構成されるかどうかを決定するステップと、
前記ファイルシステムのダイレクトアクセスインターフェース(55)を使用して、直接実行機能を提供するステップとを含む方法。
A method for automatically providing a direct execution function by the system according to claim 1, wherein the system accepts a request for accessing a file by an application program and accesses the file. Determining whether to use a direct execution function for the method,
Determining a file system holding the file;
Determining whether a file system driver (52) managing the file system provides a direct access interface (54) for the file system;
Not using direct execution if the file system driver (52) does not provide a direct access interface (54) for the file system;
If the file system driver provides a direct access interface (54) for the file system, determining a device on which the file resides;
A device driver (53) managing the device (13) determining whether to provide the device direct access interface (55);
Not using direct execution if the device driver does not provide the device direct access interface (55);
Determining whether the file system is configured to allow direct execution functionality;
Providing direct execution functionality using the file system direct access interface (55).
ディジタルコンピュータの内部メモリ内に格納されたコンピュータプログラムであって、プログラムがコンピュータ上で動作する場合、請求項9に従って方法を実行するためのソフトウェアコードの部分を含むプログラム。   A computer program stored in an internal memory of a digital computer, comprising a portion of software code for performing the method according to claim 9 when the program runs on a computer.
JP2006102266A 2005-04-05 2006-04-03 System, computer system, method and program for providing direct execution function Active JP4921018B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05102679.7 2005-04-05
EP05102679 2005-04-05

Publications (3)

Publication Number Publication Date
JP2006294028A true JP2006294028A (en) 2006-10-26
JP2006294028A5 JP2006294028A5 (en) 2009-06-18
JP4921018B2 JP4921018B2 (en) 2012-04-18

Family

ID=37077656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006102266A Active JP4921018B2 (en) 2005-04-05 2006-04-03 System, computer system, method and program for providing direct execution function

Country Status (3)

Country Link
JP (1) JP4921018B2 (en)
CN (1) CN100405295C (en)
TW (1) TWI359377B (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293479A (en) * 2007-03-30 2008-12-04 Internatl Business Mach Corp <Ibm> Method and system for facilitating input/output processing of guest processing system
CN102662857A (en) * 2010-12-21 2012-09-12 韩国电子通信研究院 Apparatus and method for virtualizing memory
JP2013210820A (en) * 2012-03-30 2013-10-10 Hitachi Information & Telecommunication Engineering Ltd Embedded system and program
JP2014149758A (en) * 2013-02-04 2014-08-21 Fixstars Corp Information processing device, information processing method, and program
WO2014171223A1 (en) * 2013-04-15 2014-10-23 株式会社フィックスターズ Information processing device, information processing method, and program
WO2015033767A1 (en) * 2013-09-04 2015-03-12 株式会社フィックスターズ File management device, program and file management method
JP2018502375A (en) * 2014-11-28 2018-01-25 華為技術有限公司Huawei Technologies Co.,Ltd. File access method, file access device, and storage device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571845A (en) * 2010-12-20 2012-07-11 南京中兴新软件有限责任公司 Data storage method and device of distributed storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131266A (en) * 1992-09-25 1994-05-13 Internatl Business Mach Corp <Ibm> Method and apparatus for controlling direct execution of program in external memory device, wherein random access is possible and reloadable memory is used
US20020069342A1 (en) * 2000-06-02 2002-06-06 Michael Ginsberg Extensible execute in place (XIP) architecture and related methods

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240584A (en) * 1997-02-24 1998-09-11 Yazaki Corp File manager and file management method, and database file system and database file management method
US7239311B2 (en) * 2002-09-26 2007-07-03 The United States Government As Represented By The Secretary Of The Navy Global visualization process (GVP) and system for implementing a GVP
CN1304961C (en) * 2005-03-11 2007-03-14 清华大学 Memory virtualized management method based on metadata server

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131266A (en) * 1992-09-25 1994-05-13 Internatl Business Mach Corp <Ibm> Method and apparatus for controlling direct execution of program in external memory device, wherein random access is possible and reloadable memory is used
US20020069342A1 (en) * 2000-06-02 2002-06-06 Michael Ginsberg Extensible execute in place (XIP) architecture and related methods

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293479A (en) * 2007-03-30 2008-12-04 Internatl Business Mach Corp <Ibm> Method and system for facilitating input/output processing of guest processing system
CN102662857A (en) * 2010-12-21 2012-09-12 韩国电子通信研究院 Apparatus and method for virtualizing memory
CN102662857B (en) * 2010-12-21 2016-07-06 韩国电子通信研究院 For carrying out virtualized equipment and method for storage
JP2013210820A (en) * 2012-03-30 2013-10-10 Hitachi Information & Telecommunication Engineering Ltd Embedded system and program
JP2014149758A (en) * 2013-02-04 2014-08-21 Fixstars Corp Information processing device, information processing method, and program
WO2014171223A1 (en) * 2013-04-15 2014-10-23 株式会社フィックスターズ Information processing device, information processing method, and program
WO2015033767A1 (en) * 2013-09-04 2015-03-12 株式会社フィックスターズ File management device, program and file management method
JPWO2015033767A1 (en) * 2013-09-04 2017-03-02 株式会社フィックスターズ File management apparatus, program, and file management method
JP2018502375A (en) * 2014-11-28 2018-01-25 華為技術有限公司Huawei Technologies Co.,Ltd. File access method, file access device, and storage device

Also Published As

Publication number Publication date
JP4921018B2 (en) 2012-04-18
TW200703102A (en) 2007-01-16
CN1848082A (en) 2006-10-18
TWI359377B (en) 2012-03-01
CN100405295C (en) 2008-07-23

Similar Documents

Publication Publication Date Title
US10846145B2 (en) Enabling live migration of virtual machines with passthrough PCI devices
KR102047558B1 (en) Virtual disk storage techniques
US8037279B2 (en) Method and system for cross-domain data sharing
US7624240B1 (en) Separate swap files corresponding to different virtual machines in a host computer system
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
US7506095B2 (en) System and method for providing execute-in-place functionality
KR20210089150A (en) Faster access to virtual machine memory backed by the host computing device virtual memory
KR102434170B1 (en) hybrid memory system
EP3594807A1 (en) Virtual disk file format conversion method and device
US20070016904A1 (en) Facilitating processing within computing environments supporting pageable guests
EP1628215A2 (en) Systems and methods for running a legacy 32-bit X86 virtual machine on a 64-bit X86 processor
KR102443600B1 (en) hybrid memory system
US11995459B2 (en) Memory copy during virtual machine migration in a virtualized computing system
US9454489B2 (en) Exporting guest spatial locality to hypervisors
JPS62165250A (en) Virtual memory
JP2013511079A (en) Symmetric live migration of virtual machines
RU2580016C1 (en) Method for transfer of control between memory areas
US11327892B2 (en) Latency-based storage in a hybrid memory system
JP4921018B2 (en) System, computer system, method and program for providing direct execution function
US11656982B2 (en) Just-in-time virtual per-VM swap space
WO2022083158A1 (en) Data processing method, instances and system
US20230027307A1 (en) Hypervisor-assisted transient cache for virtual machines
CN116107919B (en) Cross-architecture multi-address space virtualized memory domain isolation method
RU2623883C1 (en) Method of implementating instructions in systemic memory
KR20030050542A (en) The NOS(NURI Operating System) for game

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090501

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090501

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120202

R150 Certificate of patent or registration of utility model

Ref document number: 4921018

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3