Method and apparatus for intraprocess locking of a shared resource in a computer system
First Claim
1. A method for locking a resource shared between a first asynchronous program and a second asynchronous program, comprising the steps of:
- receiving a request from said first asynchronous program to use said resource, said first asynchronous program executing within a first process, said request being received by an operating system;
checking a lock table to see if said second asynchronous program has acquired a lock for said resource, said second asynchronous program executing within said first process, said lock table being checked by said operating system;
granting said request if said checking step indicates that said second asynchronous program has not acquired a lock for said resource, said request being granted by said operating system; and
denying said request if said checking step indicates that said second asynchronous program has acquired a lock for said resource, said request being denied by said operating system.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for the intraprocess locking of a shared resource in a computer system is disclosed. A computer system operates under the control of an operating system. The operating system supports the asynchronous execution of a plurality of tasks, referred to herein as processes. Each process is capable of being executed by a plurality of asynchronously executing programs. In addition to assuring that only one process may use a shared computer resource, such as a magnetic storage device, tape drive, printer, software module, message queue, etc, at one time, the operating system also grants access to a shared computer resource at the level of a program operating within a process. When one program executing within a process accesses a shared computer resource, it requests that the operating system lock out all other programs executing asynchronous within that process, as well as other processes executing within the computer system, from that shared resource. Different types of locks, such as exclusive and shared locks, are also supported.
-
Citations
12 Claims
-
1. A method for locking a resource shared between a first asynchronous program and a second asynchronous program, comprising the steps of:
-
receiving a request from said first asynchronous program to use said resource, said first asynchronous program executing within a first process, said request being received by an operating system; checking a lock table to see if said second asynchronous program has acquired a lock for said resource, said second asynchronous program executing within said first process, said lock table being checked by said operating system; granting said request if said checking step indicates that said second asynchronous program has not acquired a lock for said resource, said request being granted by said operating system; and denying said request if said checking step indicates that said second asynchronous program has acquired a lock for said resource, said request being denied by said operating system.
-
-
2. A method for locking a resource shared between a first asynchronous program and a second asynchronous program, comprising the steps of:
-
receiving a first request from said first asynchronous program to use said resource, said first asynchronous program executing in a first process, said first request being received by an operating system; checking a lock table to see if said second asynchronous program has acquired a lock for said resource, said second asynchronous program executing in said first process, said lock table being checked by said operating system; granting said first request based on an indication from said checking step that said second asynchronous program has not acquired a lock for said resource, said first request being granted by said operating system; receiving a second request from said second asynchronous program to use said resource, said second request being received by said operating system; checking a lock table to see if said first asynchronous program has acquired a lock for said resource, said lock table being checked by said operating system; and denying said second request based on an indication from said checking step that said second asynchronous program has acquired a lock for said resource, said second request being denied by said operating system.
-
-
3. A method for locking a resource shared between a first asynchronous program and a second asynchronous program, and a third asynchronous program, said method comprising the steps of:
-
receiving a first request from said first asynchronous program to use said resource, said first asynchronous program executing within a first process, said first request being received by an operating system; first checking a lock table to see if said second asynchronous program or said third asynchronous program has acquired a lock for said resource, said second asynchronous program executing within said first process, said third asynchronous program executing within a second process, said lock table being checked by said operating system; granting said first request based on an indication from said first checking step that said second asynchronous program or said third asynchronous program has not acquired a lock for said resource, said first request being granted by said operating system; receiving a second request from said second asynchronous program to use said resource, said second request being received by said operating system; second checking a lock table to see if said first asynchronous program or said second asynchronous program has acquired a lock for said resource, said lock table being checked by said operating system; denying said second request based on an indication from said checking step that said first asynchronous program has acquired a lock for said resource, said second request being denied by said operating system; receiving a third request from said third asynchronous program to use said resource, said third request being received by said operating system; checking a lock table to see if said first asynchronous program or said second asynchronous program has acquired a lock for said resource, said lock table being checked by said operating system; and denying said third request based on an indication from said checking step that said first asynchronous program has acquired a lock for said resource, said third request being denied by said operating system.
-
-
4. A computer system for locking a resource shared between a first asynchronous program and a second asynchronous program, comprising:
-
means for receiving a first request from said first asynchronous program for a first lock type to use said resource, said first asynchronous program executing within a first process, said first request being received by an operating system; means for checking a lock table to see if said second asynchronous program has acquired a second lock type for said resource that would conflict with said first lock type requested by said first asynchronous program, said second asynchronous program executing within said first process, said lock table being checked by said operating system; means for granting said first request based on an indication from said checking means that said second lock type does not conflict with said first lock type, said first request being granted by said operating system. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system for locking a resource shared between a first asynchronous program and a second asynchronous program, comprising:
-
means for receiving a request from said first asynchronous program to use said resource, said first asynchronous program executing within a first process, said request being received by an operating system; means for checking a lock table to see if said second asynchronous program has acquired a lock for said resource, said second asynchronous program executing within said first process, said lock table being checked by said operating system; means for granting said request if said checking means indicates that said second asynchronous program has not acquired a lock for said resource, said request being granted by said operating system; and means for denying said request if said checking means indicates that said second asynchronous program has acquired a lock for said resource, said request being denied by said operating system.
-
Specification