Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US5966543A · kind A · utility
Assignee
Inventors
Key dates
| Filing date | Jun 26, 1997 |
| Grant date | Oct 12, 1999 |
| Priority date | — |
| Expiry date | Jun 26, 2017 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F9/52
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
A multiprocessor computing system has memory shared by all processors of the computing system and includes an symmetric multiprocessor (SMP) operating system and at least one external device controlled by a device driver. The device driver is typically written to run in a uniprocessor environment. A method for protecting the execution state of the device driver uses a pair of "collaborative" spinlocks, an interrupt time spinlock and a task time spinlock. At task time, prior to calling the device driver, the task time spin lock is acquired by the operating system. The operating system then waits until the interrupt time spinlock is in an "unowned" state before calling the device driver. Upon return from the device driver, the operating system releases the task time spinlock. At interrupt time, prior to calling the device driver's interrupt handler, the interrupt time spinlock is acquired by the operating system. The operating system then determines if the task time spinlock is owned. If it is owned, the operating system then issues an interprocessor interrupt (IPI) to the processor owning the task time spinlock, thus placing that processor into a predetermined "spin" state. The rece…
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.