US2009019448A1PendingUtilityA1

Cross Process Memory Management

Assignee: NVIDIA CORPPriority: Oct 25, 2005Filed: Sep 9, 2008Published: Jan 15, 2009
Est. expiryOct 25, 2025(expired)· nominal 20-yr term from priority
G06F 9/5016G06F 1/3225G06F 2009/45583
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for efficiently managing memory resources in a computer system having a graphics processing unit that runs several processes simultaneously on the same computer system includes using threads to communicate that additional memory is needed. If the request indicates that termination will occur then the other processes will reduce their memory usage to a minimum to avoid termination but if the request indicates that the process will not run optimally then the other processes will reduce their memory usage to 1/N where N is the count of the total number of running processes. The apparatus includes a computer system using a graphics processing unit and processes with threads that can communicate directly with other threads and with a shared memory which is part of the operating system memory.

Claims

exact text as granted — not AI-modified
1 . A method for managing memory used by a plurality of processes, comprising:
 making a decision whether any of said plurality of processes can reduce memory usage, wherein said decision is made by comparing a memory requirement of each process with an actual memory usage of each process; and   communicating directly between said plurality of processes to trigger a reduction of memory usage by each process that can reduce memory usage.   
   
   
       2 . The method of  claim 1  further comprising reallocating memory usage of said plurality of processes if there is insufficient memory to run any of said plurality of processes. 
   
   
       3 . The method of  claim 1  further comprising communicating with a shared memory to determine a maximum number of running processes found stored in said shared memory. 
   
   
       4 . The method of  claim 3  further comprising constructing names of semaphores to be called by using said maximum count number of running processes found stored in said shared memory. 
   
   
       5 . The method of  claim 1  wherein said communicating is done with threads that activate when they are called. 
   
   
       6 . The method of  claim 1  further comprising:
 reducing the memory usage of a process to a minimum if said communication indicates that another process will terminate if it does not have access to additional memory.   
   
   
       7 . The method of  claim 1  further comprising:
 reducing the memory usage of a process to 1/N where N is the total number of running processes.   
   
   
       8 . The method of  claim 1  further comprising:
 running a first thread in a first process of said plurality of processes that waits to receive a request to reduce its memory usage, said request sent directly from a second process of said plurality of processes that requires additional memory;   determining if said first process can continue to operate with less memory; and   reducing memory usage of said first process if a determination is made that said first process can continue to operate with less memory.   
   
   
       9 . (canceled) 
   
   
       10 . The method of  claim 8  wherein the memory usage of said first process is reduced to 1/N where N is the total number or running processes. 
   
   
       11 . The method of  claim 8  further comprising the step of sending a response indicating whether or not the usage of resources was reduced. 
   
   
       12 . The method of  claim 8  further comprising:
 inactivating said first thread for a period and then later re-activating said first thread if the memory usage of said first process is reduced; and   if no activity had occurred in said first thread during said period reducing all memory usage by said first process.   
   
   
       13 . The method of  claim 12  wherein said period is less than 3 seconds. 
   
   
       14 . A method for optimizing memory usage in a computer system running several processes comprising:
 identifying that a first process does not have sufficient memory;   using a first thread in said first process to communicate directly with a second thread in a second process to request that said second thread reduce its memory usage;   determining that the second process can reduce its memory usage and still operate;   reducing the amount of memory that the second process uses to 1/N where N is the total number of processes running; and   determining that said first process has sufficient memory.   
   
   
       15 . The method of  claim 14  wherein said step of communicating directly with a second thread in a second process further comprises communicating with a shared memory to determine the maximum number of running processes. 
   
   
       16 . The method of  claim 14  further comprising:
 waking up a thread in a second process which receives the request to reduce memory usage;   reducing memory usage if possible and communicating directly to said first process that memory usage has been reduced;   inactivating said second thread for a period and then activating said second thread if the memory usage of said second process is reduced; and   if no activity occurs in said second thread during said period reducing all memory usage by said second process.   
   
   
       17 . The method of  claim 16  wherein said period is less than 3 seconds. 
   
   
       18 . The method of  claim 16  wherein said period is 2 seconds. 
   
   
       19 . A computer system with a graphics processing unit, comprising:
 a first process running a first application, said first process further comprising a first thread;   a second process running a second application, said second process further comprises a second thread;   a shared memory for storing a maximum number corresponding to the count of concurrently running processes;   wherein said first thread and said second thread communicate directly with each other so that said first process can request that said second process reduce its memory usage; and   wherein said first thread and said second thread communicate directly with said shared memory.   
   
   
       20 . The computer system of  claim 19  wherein said shared memory is located in an operating system of the computer.

Join the waitlist — get patent alerts

Track US2009019448A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.