Symmetric multi-processor system
First Claim
1. A method of symmetric multiprocessing in which one or more processors are connected with a memory that stores an operating system in a machine executable form, wherein the operating system comprises a critical area and a non-critical area, the method comprising the steps of:
- receiving a first operating system call from a first thread, wherein the first operating system call comprises a kernel call portion that requires access to the critical area of the operating system and an external call portion that requires access to the non-critical area of the operating system;
acquiring a global lock associated with the operating system for the first thread before accessing the critical area of the operating system for the kernel call portion of the first operating system call without locking the non-critical area of the operating system, wherein the global lock is associated with the entire critical area of the operating system and prevents any other threads from accessing the critical area while the global lock is applied to the critical area for the first thread;
receiving a second operating system call from a second thread that requires access to the non-critical area of the operating system;
granting the second thread access to the non-critical area of the operating system;
executing the first thread concurrently with the second thread; and
releasing the global lock upon completing the kernel call portion of the first operating system call.
9 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates generally to computer operating systems, and more specifically, to operating system calls in a symmetric multiprocessing (SMP) environment. Existing SMP strategies either use a single lock or multiple locks to limit access to critical areas of the operating system to one thread at a time. These strategies suffer from a number of performance problems including slow execution, large software and execution overheads and deadlocking problems. The invention applies a single lock strategy to a micro kernel operating system design which delegates functionality to external processes. The micro kernel has a single critical area, the micro kernel itself, which executes very quickly, while the external processes are protected by proper thread management. As a result, a single lock may be used, overcoming the performance problems of the existing strategies.
-
Citations
24 Claims
-
1. A method of symmetric multiprocessing in which one or more processors are connected with a memory that stores an operating system in a machine executable form, wherein the operating system comprises a critical area and a non-critical area, the method comprising the steps of:
-
receiving a first operating system call from a first thread, wherein the first operating system call comprises a kernel call portion that requires access to the critical area of the operating system and an external call portion that requires access to the non-critical area of the operating system; acquiring a global lock associated with the operating system for the first thread before accessing the critical area of the operating system for the kernel call portion of the first operating system call without locking the non-critical area of the operating system, wherein the global lock is associated with the entire critical area of the operating system and prevents any other threads from accessing the critical area while the global lock is applied to the critical area for the first thread; receiving a second operating system call from a second thread that requires access to the non-critical area of the operating system; granting the second thread access to the non-critical area of the operating system; executing the first thread concurrently with the second thread; and releasing the global lock upon completing the kernel call portion of the first operating system call. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system comprising:
-
one or more processors; a first memory storing an operating system in a machine executable form, wherein the operating system comprises a critical area and a non-critical area; a second memory storing a lock manager in an machine executable form; and a communication network interconnecting the one or more processors, the first memory, and the second memory; wherein the lock manager is configured to; receive a first operating system call from a first thread, wherein the first operating system call comprises a kernel call portion that requires access to the critical area of the operating system and an external call portion that requires access to the non-critical area of the operating system; acquire a global lock associated with the operating system for the first thread to access the critical area of the operating system for the kernel call portion of the first operating system call without locking the non-critical area of the operating system, wherein the global lock is associated with the entire critical area of the operating system and prevents any other threads from accessing the critical area while the global lock is applied to the critical area for the first thread; receive a second operating system call from a second thread that requires access to the non-critical area of the operating system; grant the second thread access to the non-critical area of the operating system; allow the one or more processors to execute the first thread concurrently with the second thread; and release the global lock upon completing the kernel call portion of the first operating system call. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory machine-readable medium with software stored thereon, wherein the software is executable by a processor to cause the processor to perform the steps of:
-
receiving a first operating system call from a first thread, wherein the first operating system call comprises a kernel call portion that requires access to a critical area of an operating system and an external call portion that requires access to a non-critical area of the operating system; acquiring a global lock associated with the operating system for the first thread to access the critical area of the operating system for the kernel call portion of the first operating system call without locking the non-critical area of the operating system, wherein the global lock is associated with the entire critical area of the operating system and prevents any other threads from accessing the critical area while the global lock is applied to the critical area for the first thread; receiving a second operating system call from a second thread that requires access to the non-critical area of the operating system; granting the second thread access to the non-critical area of the operating system; executing the first thread concurrently with the second thread; and releasing the global lock upon completing the kernel call portion of the first operating system call. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method of symmetric multiprocessing in which one or more processors are connected with a first memory storing an operating system in a machine executable form, wherein the operating system comprises a critical area and a non-critical area, the method comprising the steps of:
-
responding to a first thread requiring a first operating system call to the critical area of the operating system by requesting a global lock of the operating system for the first thread, wherein the global lock is associated with the entire critical area of the operating system and prevents any other threads from accessing the critical area while the global lock is applied to the critical area for the first thread; responding to the global lock being available by performing the steps of; acquiring the global lock for the first thread to access the critical area of the operating system without locking the non-critical area of the operating system; performing the first operating system call to the critical area of the operating system, receiving a second operating system call from a second thread that requires access to the non-critical area of the operating system; granting the second thread access to the non-critical area of the operating system; executing the first thread concurrently with the second thread; and releasing the global lock. - View Dependent Claims (23, 24)
-
Specification