IP Library Granted Patent US 7,103,631
Granted Patent B1
US 7,103,631 · App. 09/383,115 · Granted Sep 5, 2006

Symmetric multi-processor system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,103,631
App. No.
09/383,115
Granted
Sep 5, 2006
Kind
B1
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.

Claims (65)

1. A method of symmetric multiprocessing for an inter-process control (IPC) message-passing operating system where operating system calls execute in critical and non-critical areas, said method comprising the steps of:

responding to an operating system call requiring access to a critical area of said IPC message-passing operating system by:

requesting a global lock; and

responding to said global lock being available by performing the steps of:

acquiring said global lock;

performing said operating system call in said critical area of said IPC message-passing operating system; and

releasing said global lock; and

responding to said operating system call requiring access to a non-critical area of said IPC message-passing operating system by:

performing said operating system call in said non-critical area of said IPC message-passing operating system.

2. A method as claimed in claim 1 , wherein said IPC message-passing operating system includes a micro kernel operating system and wherein:

said step of responding to an operating system call requiring access to a critical area of said IPC message-passing operating system, includes the step of responding to an operating system call requiring access to a critical area of said micro kernel operating system;

said step of performing said operating system call in said critical area of said IPC message-passing operating system, includes the step of performing said operating system call in said critical area of said micro kernel operating system;

said step of responding to said operating system call requiring access to a non-critical area of said IPC message-passing operating system includes the step of responding to said operating system call requiring access to a non-critical area of said micro kernel operating system; and

said step of performing said operating system call in said non-critical area of said IPC message-passing operating system includes the step of performing said operating system call in said non-critical area of said micro kernel operating system.

3. The method as claimed in claim 2 , wherein said micro kernel operating system includes a pre-emptable micro kernel operating system, said method further comprising the steps of:

pre-empting any non-critical threads currently executing on said pre-emptable micro kernel operating system prior to said step of acquiring said global lock; and

reinstating said preempted threads following said step of releasing said global lock.

4. The method as claimed in claim 3 , wherein said step of performing said operating system call to said critical area comprises the steps of:

locking said critical area of said pre-emptable micro kernel operating system;

entering said critical area of said pre-emptable micro kernel operating system; executing operating system functions as required; and

exiting said critical area of said pre-emptable micro kernel operating system.

5. The method as claimed in claim 4 , further comprising the step of prioritizing execution of threads in accordance with how their respective call latencies will impact real time operation.

6. The method as claimed in claim 4 , wherein said operating system includes a real time operating system, and said method further comprises the step of scheduling execution of said threads to be performed by predetermined time deadlines.

7. The method as claimed in claim 1 , where said critical area of said IPC message-passing operating system is limited to the message passing functionality of said IPC message-passing operating system, and wherein said step of performing said operating system call in said critical area of said operating system comprises the step of:

performing an IPC message-pass operation for said operating system call.

8. The method as claimed in claim 7 , where said IPC message passing operating system requires a message-pass before and after execution of said operating system call in said non-critical area of said IPC message-passing operating system, said method comprising the subsequent steps of:

requesting a global lock a second time; and

responding to said global lock being available by performing the steps of:

acquiring said global lock a second time;

performing a second message-pass operation for said IPC message-passing operating system call; and

releasing said global lock a second time.

9. The method as claimed in claim 1 , wherein said IPC message-passing operating system includes a micro kernel operating system having operating system calls executing in external processes, and wherein said step of performing said operating system call in said non-critical area of said IPC message-passing operating system comprises the step of:

performing said external process for said operating system call.

10. A computer system comprising:

one or more processors;

a memory medium storing an inter-process control (IPC) message-passing operating system where operating system calls execute in critical and non-critical areas, in a machine executable form, and a lock manager in a machine executable form;

a communication network interconnecting said one or more processors, and said memory; and

said lock manager being operable to:

respond to an operating system call requiring access to a critical area of said IPC message-passing operating system by:

requesting a global lock; and

responding to said global lock being available by performing the steps of:

acquiring said global lock;

performing said operating system call in said critical area of said IPC message-passing operating system; and

releasing said global lock.

11. An apparatus for symmetric multiprocessing comprising:

an inter-process control (IPC) message-passing operating system means where operating system calls execute in critical and non-critical areas;

means responsive to an operating system call requiring access to a critical area of said IPC message-passing operating system by:

requesting a global lock; and

responding to said global lock being available by performing the steps of:

acquiring said global lock;

performing said operating system call in said critical area of said IPC message-passing operating system; and

releasing said global lock.

12. A computer readable memory medium, storing computer software code executable to perform the steps of:

responding to an operating system call requiring access to a critical area of an IPC message-passing operating system by:

requesting a global lock; and responding to said global lock being available by performing the steps of:

acquiring said global lock;

performing said operating system call in said critical area of said IPC message-passing operating system; and

releasing said global lock.

13. A computer data signal embodied in a carrier wave, said computer data signal comprising a set of machine executable code being executable by a computer to perform the steps of:

responding to an operating system call requiring access to a critical area of an IPC message-passing operating system by:

requesting a global lock; and

responding to said global lock being available by performing the steps of:

acquiring said global lock;

performing said operating system call in said critical area of said IPC message-passing operating system; and

releasing said global lock.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
REGISTRATION Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0398 →
CHANGE OF SEAT Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0434 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
CHANGE OF NAME Recorded Feb 1, 2007
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 018837/0569 →