Cross Process Memory Management
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-modified1 . 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.