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 PDFInfo
- 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
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
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
いくつかの実施態様では、コンピュータシステム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
CPU11がメモリ動作のために直接アクセス可能なすべてのコンポーネントは、図3に示すように、コンピュータシステム10のシステムメモリアドレス空間30を構成する。RAM12およびメモリアドレス指定デバイス13は、システムメモリアドレス空間30の一部である。さらに、その他のコンポーネント(図示しない)は、システムメモリアドレス空間30、たとえば読出し専用メモリ(「ROM」)またはビデオカードフレームバッファである。CPU11により実行されるすべてのプログラムインストラクション、およびCPU11により実行されるインストラクションによりアクセスされるすべてのメモリデータは、実行が生じた時点で、システムメモリアドレス空間30内に存在しなければならない。使用可能なメモリの見掛けのサイズを増加し、同じコンピュータシステム上で同時に動作する異なるアプリケーションプログラムが、偶発的に互いに他のメモリを修正するのを防止するため、オペレーティングシステムは、各々のアプリケーションプログラムに「仮想アドレス空間」を提供し、仮想アドレス空間内のシステムメモリアドレス空間の選択部分に対するアクセスを提供する。CPU11は、アプリケーションコードを実行するが、アプリケーションの仮想アドレス空間内に存在するメモリにのみアクセスすることができる。仮想アドレス空間とシステムメモリアドレス空間との間で変換することができるように、仮想アドレス空間とシステムメモリアドレス空間の両方が、一般に「ページ」と呼ばれる等サイズの塊状に分割される。
All the components that the
図3は、コンピュータシステム10のシステムメモリアドレス空間30を示す。さらに、アプリケーションプログラムの仮想アドレス空間31が示されている。仮想アドレス空間31でアドレス指定できる各々のページについては、当該ページの状態を実際に記述するページ記述子が存在しなければならない。ページは、ある時点でシステムメモリアドレス空間30内に存在しても、あるいは存在しなくても良い。ページがシステムメモリアドレス空間30内に存在する場合、ページ記述子はその事実を指示し、システムメモリアドレス空間30内のページの位置を指示することになる。ページがシステムメモリアドレス空間30内に存在しない場合、記述子はその事実を指示し、アプリケーションプログラムがこのページを介してアクセスしようとしている内容の場所をオペレーティングシステムが確認できるようにする追加の情報を含むことになる。仮想アドレス空間に対するすべてのページ記述子の集合は、ページテーブルと呼ばれる。仮想アドレス空間のページテーブルは、オペレーティングシステムにより維持される。
FIG. 3 shows the system
CPU11が仮想アドレス空間31でアプリケーションコードを実行している間、CPU11によりアクセスされるすべてのメモリアドレスは、仮想アドレス空間31用のページテーブルを使用して、仮想アドレス空間31内の仮想アドレスからシステムメモリアドレス空間30内のシステムメモリアドレスに変換される。この変換はページング機構により実行され、ページング機構は、ハードウェアもしくはソフトウェアインプリメンテーション、またはこれらの組合せで良い。実施態様によっては、ページング機構は、CPU11内に存在するページングユニットによりインプリメントされる。CPU11が、システムメモリアドレス空間30に対応するページを現在持たない仮想アドレス空間31内のページにアクセスする場合、ページング機構は、CPU11にページ障害割込みを生成させる。この割込みにより、「ページ障害ハンドラ」と呼ばれるオペレーティングシステムコードが、必要な内容をシステムメモリアドレス空間30内のいくつかのページ内にもたらし、ページテーブルを更新して、仮想ページをシステムメモリアドレス空間30内のこのページにマップする。次に、アプリケーションは、ページの実行およびアクセスを継続する。このプロセスは、一般に、「デマンドページング」と呼ばれる。
While the
図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 /
図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
図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 /
図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 /
デバイス上にデータを構造化ストレージで格納できるように、オペレーティングシステム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 /
したがって、図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 /
しかし、先行技術のファイルシステム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 /
本発明は、このような制約を除去する。図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
図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
図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
図8は、同様に、オペレーティングシステム50が、メモリアドレス指定デバイス13上に存在するファイルに対する直接実行アクセスを実行するという要求を処理する時の制御フローを示す。このフローは、先行技術のオペレーティングシステム40が対応するアクセスに使用するフローとは異なり、本発明により記述される新しいダイレクトアクセスインターフェースを使用する点に注目する。さらに、メモリアドレス指定デバイス13上のファイルに対するいくつかのアクセスは、直接実行アクセスに適さず、この場合、その代わりに、図7に示し、上記で説明した制御フローと等価な制御フローを使用して、ファイルに対する定期的なI/Oアクセスが実行される。これは、デバイスドライバ53が、デバイスドライバ44と同様にデバイスI/Oインターフェース46もインプリメントするために可能である。
FIG. 8 similarly shows a control flow when the
図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
図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.
12 RAM
13 メモリアドレス指定デバイス
14 I/Oベースデバイス
44、53 デバイスドライバ
49 アプリケーションプログラム
50 オペレーティングシステム
51 メモリ/ファイルマネジャ
52 ファイルシステムドライバ
12 RAM
13 Memory Addressing Device 14 I /
Claims (10)
前記メモリ/ファイルマネジャ(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).
前記ファイルを保持するファイルシステムを決定するステップと、
前記ファイルシステムを管理するファイルシステムドライバ(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).
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)
| 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)
| 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)
| 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)
| 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 |
-
2006
- 2006-03-30 TW TW95111326A patent/TWI359377B/en not_active IP Right Cessation
- 2006-03-31 CN CNB2006100670545A patent/CN100405295C/en not_active Expired - Fee Related
- 2006-04-03 JP JP2006102266A patent/JP4921018B2/en active Active
Patent Citations (2)
| 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)
| 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 |