OPERATING SYSTEM AWARE HARDWARE MUTEX
First Claim
1. A system for sharing a hardware resource in a computer system able to run at least one software task, comprising:
- a mutex controller associated with the hardware resource;
a lock indicator and an unlock indicator that are set able by the software task and read able by said mutex controller;
a locked flag and a waiters flag that are set able and read able by said mutex controller; and
said mutex controller further able to;
monitor whether said lock indicator has been set and then to determine whether said locked flag is set and, if not, to set said locked flag and, if so, to set said waiters flag and to assert a first mutex interrupt signaling the computer system to divert the software task to run a lock request service routine;
monitor whether said unlock indicator has been set and then determine whether said waiters flag is set and, if not, to clear said locked flag and, if so, to assert a second mutex interrupt signaling the computer system to divert the software task to run an unlock request service routine.
2 Assignments
0 Petitions
Accused Products
Abstract
Hardware resource sharing for a computerized system running software tasks. A mutex controller is associated with the hardware resource. Lock and unlock indicators are settable by a software task and readable by the controller, and locked and waiters flags are settable and readable by the controller. The controller monitors whether the lock indicator has been set and determines whether the locked flag is set. If not, it sets the locked flag and, if so, it sets the waiters flag and asserts a mutex interrupt signaling the computer system to divert the software task to run a lock request routine. The controller also monitors whether the unlock indicator has been set and then determines whether the waiters flag is set. If not, it clears the locked flag and, if so, it asserts a mutex interrupt signaling the computer system to divert the software task to run an unlock request routine.
-
Citations
8 Claims
-
1. A system for sharing a hardware resource in a computer system able to run at least one software task, comprising:
-
a mutex controller associated with the hardware resource; a lock indicator and an unlock indicator that are set able by the software task and read able by said mutex controller; a locked flag and a waiters flag that are set able and read able by said mutex controller; and said mutex controller further able to; monitor whether said lock indicator has been set and then to determine whether said locked flag is set and, if not, to set said locked flag and, if so, to set said waiters flag and to assert a first mutex interrupt signaling the computer system to divert the software task to run a lock request service routine; monitor whether said unlock indicator has been set and then determine whether said waiters flag is set and, if not, to clear said locked flag and, if so, to assert a second mutex interrupt signaling the computer system to divert the software task to run an unlock request service routine. - View Dependent Claims (2, 3)
-
-
4. A process for locking a mutex that controls access to a shared resource by software tasks controlled by an operating system, the process comprising:
-
(a) monitoring for a lock indicator being set by one of the software tasks; (b) determining if a locked flag is set indicating that the mutex is already locked; (c) if said locked flag is not set, setting said locked flag, under control of the shared resource without interrupting said one of the software tasks; and (d) if said locked flag is already set, setting a waiters flag to indicate that said one of the software tasks is waiting for the shared resource and asserting an interrupt of the operating system controlling said one of the software tasks. - View Dependent Claims (5)
-
-
6. A process for unlocking a mutex that controls access to a shared resource by software tasks controlled by an operating system, the process comprising:
-
(a) monitoring for an unlock indicator being set by one of the software tasks; (b) determining if a waiters flag is set indicating that there is at least one other of the software tasks waiting for the shared resource; (c) if said waiters flag is not set, clearing a locked flag indicating that the mutex is locked, under control of the shared resource without interrupting said one of the software tasks; and (d) if said waiters flag is already set, asserting an interrupt of the operating system controlling said one of the software tasks. - View Dependent Claims (7, 8)
-
Specification