← Back to Patent Explorer
US5673394A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of sharing memory between an operating system and an application program

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1993-08-30
•
Granted: 1997-09-30
•
Expires: 2013-08-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An improved method for the sharing of data among a file server, a file system, and a network driver executing on a computer is provided. The file system allocates cache buffers to be used in reading from or writing to a file. When reading a file, the file system starts loading the cache buffers with the file data. When a buffer is loaded, the file system signals the file server that a buffer at a certain address is loaded. The file server provides the network driver with the buffer address of the data that is ready to be transported onto a computer network. The transport system then reads the data from the cache buffers and sends the data onto the computer network. When writing a file, the file system allocates cache buffers to receive the file. The file system notifies the file server of the cache buffer addresses. The file server then notifies the network driver of the cache buffer addresses. When the network driver receives the data it loads the data directly into the cache buffers. The file system can then write the data from the cache buffers to the disk.

Inventors

  • 👤 Thomas Fenwick
  • 👤 Darryl E. Rubin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 10:48
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866; G06F2212/00; G06F2212/31; G06F2212/311

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 198 words
A method in a computer system for concurrent access of a plurality of portions of external data loaded by an operating system for an application program, the computer having computer memory, the method comprising: A. the following steps performed by an operating system: receiving a request of an application program for access to a plurality of portions of external data; initializing a list of pointers with a predefined value, the pointers for pointing to buffers within the computer memory and being accessible by the application program; and for each of the plurality of portions of the external data, retrieving the portion of the external data; storing the retrieved portion in a buffer; and updating a pointer in the list of pointers to point to the buffer containing the retrieved portion; and B. the following steps performed by an application program: for each pointer in the list of pointers, when the pointer has been updated to point to a buffer containing the retrieved portion, accessing the portion of the external data stored in the buffer pointed to by the updated pointer before the operating system has completed storing all of the portions of the external data in the buffers.
Claim 2
Independent Claim 198 words
A method in a computer system for concurrent access of a plurality of portions of external data loaded by an operating system for an application program, the computer having computer memory, the method comprising: A. the following steps performed by an operating system: receiving a request of an application program for access to a plurality of portions of external data; initializing a list of pointers with a predefined value, the pointers for pointing to buffers within the computer memory and being accessible by the application program; and for each of the plurality of portions of the external data, retrieving the portion of the external data; storing the retrieved portion in a buffer; and updating a pointer in the list of pointers to point to the buffer containing the retrieved portion; and B. the following steps performed by an application program: for each pointer in the list of pointers, when the pointer has been updated to point to a buffer containing the retrieved portion, accessing the portion of the external data stored in the buffer pointed to by the updated pointer before the operating system has completed storing all of the portions of the external data in the buffers.
Claim 3
Dependent Claim 13 words
The method of claim 1 wherein the application program is a file server.
Claim 4
Dependent Claim 27 words
The method of claim 1 wherein the operating system includes a file system that performs the steps of retrieving and storing the portions of the external data.
Claim 5
Dependent Claim 17 words
The method of claim 3 wherein the computer memory is a cache memory of the file system.
Claim 6
Independent Claim 166 words
A method of accessing a file stored on a computer storage device, the storage device operatively connected to a computer, the computer having an operating system and a computer memory, the operating system having a file system, the method comprising the steps of: requesting the file system to load the file into computer memory for access by an application program; and for each of a plurality of portions of the file, performing the following steps by the file system: retrieving the portion of the file from the storage device; storing the retrieved portion of the file in the computer memory; and updating a pointer to point to the stored portion of the file; and performing the following steps by the application program: waiting until the file system updates the pointer; and concurrently reading the stored portion of the file pointed to by the updated pointer from the computer memory while the file system is performing the steps of retrieving and storing another portion of the file.
Claim 7
Independent Claim 166 words
A method of accessing a file stored on a computer storage device, the storage device operatively connected to a computer, the computer having an operating system and a computer memory, the operating system having a file system, the method comprising the steps of: requesting the file system to load the file into computer memory for access by an application program; and for each of a plurality of portions of the file, performing the following steps by the file system: retrieving the portion of the file from the storage device; storing the retrieved portion of the file in the computer memory; and updating a pointer to point to the stored portion of the file; and performing the following steps by the application program: waiting until the file system updates the pointer; and concurrently reading the stored portion of the file pointed to by the updated pointer from the computer memory while the file system is performing the steps of retrieving and storing another portion of the file.
Claim 8
Dependent Claim 39 words
The method of claim 5, including the additional step of transporting the read portion of the file onto a computer network, wherein the transporting is performed concurrently with the steps of retrieving and storing another portion of the file.
Claim 9
Independent Claim 304 words
A method for transporting data from a storage device onto a computer network, the storage device and the computer network operatively connected to a file server computer having a file system, a file server, and a transport system, the file system having data descriptors and cache buffers, each data descriptor having a pointer to a cache buffer, the method comprising the steps of: receiving a request to transport data onto the computer network; performing the following steps by the file system: selecting a set of data descriptors to be updated as the data is loaded from the storage device into the cache buffers; and for each of a plurality of portions of the data, selecting the next data descriptor from the selected set of data descriptors, starting with the first data descriptor; selecting a cache buffer to receive the portion of the data to be loaded from the storage device; loading the portion of the data from the storage device into the selected cache buffer; and updating the selected data descriptor to point to the selected cache buffer; for each portion of the data loaded, performing the following steps by the file server: selecting a next data descriptor from the selected set of data descriptors, starting with the first data descriptor; waiting for the file system to update the selected data descriptor to point to a cache buffer; and signalling the transport system to transport onto the computer network the portion of the data in the cache buffer pointed to by the selected data descriptor; and performing the following steps by the transport system: for each signal to transport a portion of the data in a cache buffer, reading the portion of the data stored in the cache buffer; and writing the data onto the computer network to effect the transport of the data.
Claim 10
Independent Claim 304 words
A method for transporting data from a storage device onto a computer network, the storage device and the computer network operatively connected to a file server computer having a file system, a file server, and a transport system, the file system having data descriptors and cache buffers, each data descriptor having a pointer to a cache buffer, the method comprising the steps of: receiving a request to transport data onto the computer network; performing the following steps by the file system: selecting a set of data descriptors to be updated as the data is loaded from the storage device into the cache buffers; and for each of a plurality of portions of the data, selecting the next data descriptor from the selected set of data descriptors, starting with the first data descriptor; selecting a cache buffer to receive the portion of the data to be loaded from the storage device; loading the portion of the data from the storage device into the selected cache buffer; and updating the selected data descriptor to point to the selected cache buffer; for each portion of the data loaded, performing the following steps by the file server: selecting a next data descriptor from the selected set of data descriptors, starting with the first data descriptor; waiting for the file system to update the selected data descriptor to point to a cache buffer; and signalling the transport system to transport onto the computer network the portion of the data in the cache buffer pointed to by the selected data descriptor; and performing the following steps by the transport system: for each signal to transport a portion of the data in a cache buffer, reading the portion of the data stored in the cache buffer; and writing the data onto the computer network to effect the transport of the data.
Claim 11
Independent Claim 293 words
A method for receiving data from a computer network and storing the data on a storage device, the computer network and the storage device operatively connected to a file server computer having a file system, a file server, and a transport system, the file system having data descriptors and cache buffers, each data descriptor having a pointer for pointing to a cache buffer, the method comprising the steps of: receiving a request to store data received from a computer network onto the storage device; selecting a set of data descriptors to be updated as the data is loaded from the computer network into the cache buffers; setting the pointer in each selected data descriptor to point to a cache buffer; performing the following steps by the transport system: for each of a plurality of portions of the data, selecting a next data descriptor from the selected set of data descriptors, starting with the first data descriptor; receiving the portion of the data from the computer network; and storing the received portion of the data in a cache buffer pointed to by the selected data descriptor; and signalling the file server that all the data has been received; when signalled that all the data has been received, signalling the file system by the file server that the cache buffers contain the received data; and when signalled that the cache buffer contains the received data, for each portion of the data stored in the cache buffers, performing the following steps by the file system: selecting a next data descriptor from the selected set of data descriptors, starting with the first data descriptor; and writing the portion of the data stored in the cache buffer pointed to by the selected data descriptor to the storage device.
Claim 12
Independent Claim 293 words
A method for receiving data from a computer network and storing the data on a storage device, the computer network and the storage device operatively connected to a file server computer having a file system, a file server, and a transport system, the file system having data descriptors and cache buffers, each data descriptor having a pointer for pointing to a cache buffer, the method comprising the steps of: receiving a request to store data received from a computer network onto the storage device; selecting a set of data descriptors to be updated as the data is loaded from the computer network into the cache buffers; setting the pointer in each selected data descriptor to point to a cache buffer; performing the following steps by the transport system: for each of a plurality of portions of the data, selecting a next data descriptor from the selected set of data descriptors, starting with the first data descriptor; receiving the portion of the data from the computer network; and storing the received portion of the data in a cache buffer pointed to by the selected data descriptor; and signalling the file server that all the data has been received; when signalled that all the data has been received, signalling the file system by the file server that the cache buffers contain the received data; and when signalled that the cache buffer contains the received data, for each portion of the data stored in the cache buffers, performing the following steps by the file system: selecting a next data descriptor from the selected set of data descriptors, starting with the first data descriptor; and writing the portion of the data stored in the cache buffer pointed to by the selected data descriptor to the storage device.
Claim 13
Dependent Claim 18 words
The method of claim 8 wherein the step of receiving a request includes the receiving of immediate data.
Claim 14
Dependent Claim 18 words
The method of claim 9, including the additional step of storing the immediate data on the storage device.
Claim 15
Independent Claim 261 words
A method in a computer system for accessing a plurality of portions of external data loaded by an operating system for an application program, the computer having computer memory, the method comprising the steps of: performing the following steps by the operating system: receiving a request of an application program for access to the external data; retrieving a portion of the external data; storing the retrieved portion in a buffer; setting a pointer to the buffer containing the retrieved portion; and for each remaining portion of the external data, retrieving a new portion of the external data; storing the retrieved new portion in a buffer other than the buffer pointed to by the pointer; waiting until the application program accesses the pointer; and updating the pointer to point to the buffer containing the retrieved new portion; and performing the following steps by the application program: waiting until the operating system sets the pointer to point to the buffer containing the retrieved portion; when the pointer has been set, accessing the retrieved portion of the external data stored in the buffer pointed to by the set pointer, while the operating system is retrieving a new portion of the external data; for another portion of the external data, waiting until the operating system updates the pointer to point to the buffer containing the retrieved new portion; and when the pointer has been updated, accessing the portion of the external data stored in the buffer pointed to by the updated pointer, while the operating system is retrieving a new portion of the external data.
Claim 16
Independent Claim 261 words
A method in a computer system for accessing a plurality of portions of external data loaded by an operating system for an application program, the computer having computer memory, the method comprising the steps of: performing the following steps by the operating system: receiving a request of an application program for access to the external data; retrieving a portion of the external data; storing the retrieved portion in a buffer; setting a pointer to the buffer containing the retrieved portion; and for each remaining portion of the external data, retrieving a new portion of the external data; storing the retrieved new portion in a buffer other than the buffer pointed to by the pointer; waiting until the application program accesses the pointer; and updating the pointer to point to the buffer containing the retrieved new portion; and performing the following steps by the application program: waiting until the operating system sets the pointer to point to the buffer containing the retrieved portion; when the pointer has been set, accessing the retrieved portion of the external data stored in the buffer pointed to by the set pointer, while the operating system is retrieving a new portion of the external data; for another portion of the external data, waiting until the operating system updates the pointer to point to the buffer containing the retrieved new portion; and when the pointer has been updated, accessing the portion of the external data stored in the buffer pointed to by the updated pointer, while the operating system is retrieving a new portion of the external data.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-09-29 2001-03-31 2001-09-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-09-29 2005-03-31 2005-09-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-09-29 2009-03-31 2009-09-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag