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, the method comprising the steps of:
- receiving an operating system call from a first thread, wherein the operating system call comprises a kernel call portion that requires access to a critical area of the 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 before accessing the critical area of the operating system for the kernel call portion of the operating system call; and
releasing the global lock upon completing the kernel call portion of the 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
23 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, the method comprising the steps of:
-
receiving an operating system call from a first thread, wherein the operating system call comprises a kernel call portion that requires access to a critical area of the 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 before accessing the critical area of the operating system for the kernel call portion of the operating system call; and releasing the global lock upon completing the kernel call portion of the 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; 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 an operating system call from a first thread, wherein the operating system call comprises a kernel call portion that requires access to a critical area of the operating system and an external call portion that requires access to a 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 operating system call; and release the global lock upon completing the kernel call portion of the 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 an operating system call from a first thread, wherein the 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 operating system call; and releasing the global lock upon completing the kernel call portion of the 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 an operating system call to the critical area of the operating system by requesting a global lock of the operating system 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; performing the operating system call to the critical area of the operating system, wherein the non-critical area of the operating system is available for access by a second thread while the global lock is applied to the critical area of the operating system for the first thread; and releasing the global lock. - View Dependent Claims (23)
-
Specification