Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 1 of 42

EXHIBIT A

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 2 of 42

1700602

__
UNITED STATES DEPARTMENT
United
States

ML
OF

COMMERCE
Office

Patent

and Trademark

May 16

2008

THIS

IS

TO CERTIFY THAT ANNEXED HERETO

IS

TRUE COPY FROM

THE RECORDS OF THIS OFFICE OF

U.S

PATENT DATE

5519867 May 21
1996

ISSUE

By Authority

of the of

Under Secretary

Commerce

for Intellectual

Property lemark
Office

and Director of the United

States

Certifying

Officer

Case 1:10-cv-00166-UNA Document 1-1
11111 11111111

Filed 03/02/10 Page 3 of 42
III

11111

11111

11111

10111111

11111

11111

11111111111

III

11111

liii

USOO5S 19867A

United States Patent
Moeller
et

Patent Date
of

Number
Patent

5519867

al

May
et al

21

1996

OBJECT-ORIENTED SYSTEM
Inventors Christopher Eugenic

MULTITASKING

5404529

4/1

995

Chernihoff

395/700

OTHER
Moeller Bolton Los Altos Daniel Proc of
the

PUBLICATIONS
Usenix

Summer

1988

Conf
the et

20

Jun 1988
or

San
to

Sunnyvale
Russell

Francisco Write

US

pp
by
for

113 Using
McCormack

Toolkit

How

Cheraikoff

Palo Alto
all

Widget
Directions

al 1988

Nakano
Assignee Taligent

Sunnyvale

of Calif

New
Oct

Unix Proc Autumn
Portugal

EUUG

Conf

Inc
of

1988
et

Cascais
al

Cupertino

Calif

pp

2537

Berna

beuAuban
extend Operating

CloudsA
Architecture

Distributed

ObjectBased Implementa

Notice

The tenn
beyond

System

and

Kernel

this

patent

shall date

not

the

expiration

of Pat

No

tion
Primary
Assistant

5379432
Appl
Filed
list Cl.6

ExaminerAlvin ExaminerJohn
Agent or

Oberley Chavis Stephens

No

94673
Jul

Attorney 1993

FirmKeith

19

ABSTRACT
GO6F
9/40

An

apparatus in

for enabling object-oriented native

an

object-oriented

application operating

to

U.S
Field

Cl of Search

395700
395/650 Cited 700

access

an

manner

procedural
is

system having
apparatus

procedural

interface

disclosed

The
in

includes

computer code
library library

and
is

memory
stored in

component
the

References

the

computer

memory
program

U.S
4821220 4885717 4891630 4953080 5041992 5050090 5060.276 5075848 5093.914 5119475 5125091 5133075 5136705 5151987 5181162 5379432

PATENT

DOCUMENTS
364/578
al et et al et al al

component
logic

The code
an

includes

computer
class related to

implementing
class for

object-oriented

library

The

4/1989 12/1989 1/1990 8/1990 8/1991 9/1991 10/1991 12/1992 3/1992 6/1992 6/1992 7/1992 8/1992 9/1992 1/1993 1/1995

Duisberg

object-oriented ented classes

library

comprises
application

object-ori in

Beck

et

364/900 340/706

enabling

the

access the

an

Friedman Dysart

object-oriented 364/200 364/518 364/478 382/8 3951425 face accessing function the calls the

manner

services

provided

by

operating for

system

The

object-oriented operating

classes

include using

methods

Cunningham Golub
Morris Lai
et et et al et et al et al al al

system with system

services the native

procedural inter

compatible
operating statements

procedural

of

The

computer
in the

processes

Coplien Smith Staas Risch Stuhhs

395/700 395/156

object-oriented defined class

contained by

application

and
the

by

the

class

library

executing the

methods

from

Jr

al

395/650 395/800

library

corresponding

to

object-oriented includes support

state for

ments The
multi-tasking

object-oriented

application

et

al et al al al

395/575 395/575 364/419 395/700

Abraham
Smith Orton
et et

53

Claims 17 Drawing

Sheets

CODE ThREAD cLAssEs
LIBRARY j_.A04 110

TA5KCLA55E5

VIRTUAL

MEMORY
.40E

CLASSEs

pc cLAssEs

k410

CLAss UBRARY
402

sYNCHRONIZATION CLAsSEs SCHEDUUNS CLASsES

k412
f4I4

FAULT

CLASSES

k4b6

MACHINE

CLASSES

I__.415

SECURITY

CLA55ES

I_..A20

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 4 of 42

132
130A
0-

102

13DB
129

28-J WRAPPER1
114

F1
MICROiNSTRUCTION

k.- 134

116

OPERATING SYSTEM

DEVICE DRIVERS

CODE

-112

RAM

108 03

j106
104

CODE__11ib0 LIBRARY

/118
INPUT DEVICE

TI
DATA STORAGE

120

___
DISPLAY

124

126

IPRINTER

DATA STORAGE MEDIUM

122

f-li

ICODE
LIBRARY

FIGURE

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 5 of 42

U.S Patent
202

May 21

1996

Sheet

of 17

5519867

START

204

LOCATE IN PROGRAM OBJECT-OR ENTED STATEMENT ACCESSING OPERATING SYSTEM

206

TRANSLATE
ORI

OBJECT

ENTED STATEM ENT TO PROCEDURAL
FUNCTION CALL COMPATIBLE WITH PROCEDURAL INTERFACE OF OPERATING SYSTEM

208

EXECUTE PROCEDURAL
FUNCTION CALL

__ 210

DONE

212

Figure

Copy provided

by

USPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 6 of 42

U.S Patent

May 21

1996

Sheet

of 17

5519867

3\
304

METHOD CODE
TASK ADDRESS

IN

SPACE

312

ACCESS LIBRARY SERVER AND COPY METHOD CODE FROM CODE LIBRARY TO TASK ADDRESS SPACE

316

318

Figure

Copy provided

by

USPTO

from the PIRS

Image

Database

on

0571

5/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 7 of 42

U.S Patent

May 21

1996

Sheet

of 17

5519867

CODE
THREAD CLASSES

-404

LIBRARY
110

TASK CLASSES

..A06

VIRTUAL MEMORY

CLASSES

IPC

CLASSES

CLASS LIBRARY
402

SYNCH RON IZATION CLASSES
SCHEDULING

12

CLASSES

FAULT CLASSES

..%/41

MACHINE CLASSES

j418
-.420

SECURITY CLASSES

FIGURE

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 8 of 42

512

518
UI

fJI

Figure

JI

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 9 of 42

601

disposition start

address

length

Figure
eb

TlaskHandle

TMemoryObject

622

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 10 of 42

702

712

710

eD

714
-.1

Figure

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 11 of 42

802

start

address

length

disposition

TM emorySu rrogate

Figure

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 12 of 42

Figure

J1
Handle Handle

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 13 of 42

1002 1004

1006

1008

eD

-I

Figure 10

JI

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 14 of 42

1102

1104

11

118

1116

1114 1110

Figure 11

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 15 of 42

U.S

Patent

May 21

1996

Sheet 12 of 17

5519867

1202

1205 1210

1212

1218

1220

1230

68KfyJ
1226 1228

KraiipossiTh

Figure 12

Copy provided

by

USPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 16 of 42

1302 1304

1326

1324 1310

1312

1314

Figure 13

1318

JI
1316

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 17 of 42

U.S

Patent

May 21

1996

Sheet 14 of 17

5519867

iz

CD

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 18 of 42

1502 1504

eD

1506 T386ThreadState
_...-i 532

1508

1512

1524

eD

1526

1514

Ui
1528 1516 1518

FIGURE

15

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 19 of 42

1602

1604

1618

1608
eD

1612

1614

Figure 16

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 20 of 42

1702
--

label

uses for interface

1704

label

uses for implementation

1710
label
inherits

compatible type

Figure 17

Ui Ui

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 21 of 42

5519867

OBJECT-ORIENTED

MULTiTASKING

The
important

fact

that

objects benefit

are that
is

encapsulated
is

produces
referred

another to as data

SYSTEM
portion contains

fringe

sometimes
process

abstraction ideas

Abstraction structures detail are

the

by

which

complex by
the

and

made more

understandable

of

the

disclosure
is

of

this

patent

application protection the facsimile

removal

of

and

the

generalization abstraction
is

of
in

their

behavior
the

material

which

subject

to

copyright to

From
it

software

The

perspective

many ways

copyright

owner by

has no of

objection the patent

antithesis disclosure patent as
files

of hard-coding
if

Consider of every

software that

wmdowmg
appears

reproduction

anyone

example
or

every
in to

detail

window

on

appears records ever

in the but

Patent

and Trademark
reserves
all

Office

users

screen

graphical
all

user state

interface

GUI-based
hard-coded windows
it

otherwise

copyright

nghts

whatsoprogram
into

had

have
then lose

of

its

and behavior and
their into the

program
would
the

both

the

program
all

Field

Of The

Invention relates generally to object-oriented to

contains abstracting

almost of

of

flexibility

By

The

present

invention

concept

window
the

window

object only

computing and method

environments
for providing operating

and an

more

particularly

system
for 15

object-oriented

systems permit
aspects shared that
all

programmer

to think

object-oriented

interface

about unique
to

the

specific

make

particular as

window
the ability

procedural

system

Behavior dragged

by

windows such
be
shared

Background
Object-oriented includes

Of

the

Invention

be

and

moved

can

by

all

window

technology
analysis

OOT
most

which

generally

objects

object-oriented

OOA
COT
has

object-oriented

This
is

leads

to another includes

basic

component
set

of

OOT
on

which
plus the

is

design
earning nologies to

COD
its its

and
as

object-oriented

programming
important

OOP
new
in

20

the

class allowable

class

of is

data

attributes

set data

place

one

of

the

tech-

of

operations object of
is

that an

methods
of

in software ability

development
to create

already

begun
pro-

attributes natural supports 25 derived class

Each

instance

some

class

As

prove

significant

increases

outgrowth
inheritance

encapsulation class class

and

abstraction

OOT
may be
parent attributes

granimer

productivity

and

in

program
in

maintainability data

By
proce-

called called

subclass base
the class data

engendering
dures called objects defined plexity that

an

environment on
the data

which

and
into

the

from

another the

operate

are

combined
rule that only

packages
that well-

etc
methods base

wherein of
the

subclass class

inherits

objects

and

by

adopting

demands through
the

and
the

base

The

subclass

may
adds

specialize the data data

communicate messaging of
traditional

with one paths

another

class

by of

adding
the

code

which
or

overrides

OOT

removes

much of

com30 of

and/or

methods and by
as

base

class

which

new

procedure-oriented present

programming
brief

attributes

methods which

Thus
abstractions are
is

inheritance are for

represents increasingly levels to

The some of

following the

paragraphs
important are

overview

mechanism
concrete

made

more
of

aspects in

of

OOT

More

detailed available Appli35

subclasses Inheritance

created

greater

of
the

discussions

COT

available

many

publicly

specialization increased

primary provided

contributor

documents
cations

including

Object

Oriented Design

With

programmer
it

efliciency for

by
to to

COP

Inherit the

by Grady

Beech

Benjamin/Cummings

Publishing

ance amount
tions

makes
of

possible they

developers to write

minimize
create

1991 and Object-Oriented Requirements AnalyCompany Firesmith sis and Logical John Wiley Design by Donald Sons
object
data

new code

have

applica

By

providing

significant

portion classes

of
in

the the

functionality inheritance to to

Inc

1993 The
includes
attributes operate

basic

component
is

of

OOT
by

is

the

needed
hierarchy 40 design oriented

for give

particular the

task

An

object called

and and

characterized set

set

of

programmer

head

start

program
objectthat

also

of

operations

called

and

creation

One
lies

potential in the
is

drawback

an

methods
data

that

can

on

the

data

Generally an objects
of the

environment behavior
as single

proliferation similar

of

objects

may

change

only through

the

operation

objects

must
like

exhibit to

which

and which
to

one would

methods method
to the object in

use

message

name

describe Consider environment
the four if

an

object process

is is

invoked
called

by

passing

message

for 45

example message

an

object-oriented
is

graphical

this

message and an

passing argument
associated

The
list

Draw
object Triangle

sent

to

Rectangle shape

object with

Rectangle
sides

message

specifies object

method
the

name
message

responds object with
three

by on

drawing
the other

When
the the

the

receives
is

code

with of

hand
the

responds
object the

by
that type that

drawing
sends the

named method
method
list to

executed with
the

the

formal parameters
values in in the are

shape

sides

Ideally

bound Methods

to

corresponding
passing calls

arguanaloso

Draw message
to

remains
is

unaware

of

either

of

object that this

ment gous
ented

and message and

COT

which

the the

message message

addressed draw
it

or

of

how
in

object If to

procedures

procedure

in

procedure-onprocedures methods
objects ss

receives ideal

will then

itself

response simple

software to to

environments and
the data return

However
of
the

while

can be achieved

will

be

relatively

add

operate operate

modify modify
the

passed parameters
state associated

new kind of shape
the

later

for example

hexagon and
languages
In

leave

internal

code
In

sending

the

Draw message
procedure-oriented

completely unchanged such
environ-

by
of

modifying
data

contained in objects

therein
is

The

combination

conventional

and
the the

methods
greatest state of

called

encapsulation
is

linguistic

approach

would

wreak

havoc

COT
this to

Perhaps
fact that

single

benefit object

of

encapsulation only that

the

ments
that 60

the

concept of polymorphism

enables

be done
written

any

can with

be
object

changed

by
the

with impunity
generically the

As one consequence
tell

methods
to

can

be

well-defined

methods of and
the

associated
is

When

other

objects to

do

something

without
at
all

behavior
locations

an

object

confined

to

such
is

well-defined modificathe other

requiring

sending
the

object receiving

have
object

any knowledge
will

interfaces object will

changes have

that

code on

about message

the

way

understand

the pro-

tions
objects efit

in

minimal impact system
in

Software

programs based
to

be

they

object-oriented interact

and elements good

in the

second

fringe bendesign

cedure-oriented the 65 operating

rule

etc almost always
the services software in order to to

with
the

of

encapsulation
is

object-oriented

and and
tech-

system

access

provided

by

programming
maintainable

that the

resulting written

code

is

more

modular

operating interact

system
with the

For

example
system

program
access

may
in faults

than

code

using

more

traditional

operating

data

niques

memory

to receive

information

relating

processor

Copy

provided

by IJSPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 22 of 42

5519867
communicate of schedule

to

with

other

processes

or

to

the access

virtual in to

memory
and

classes

for enabling

an

application

to

execution

process
operating native

an

object-oriented

manner

operating

system
in

ser

Most
oriented

conventional

systems

are

procedure-

vices

access

manipulate

virtual

memory

com

and
the

include services accessed

procedural

interfaces operating

Conse
systems
defined

puter
interprocess enabling

quentty can
theft access
at.ing

provided by
using

by
the

these

communication
to access services execution in to

IPC
an

classes

for

only

be

procedures If these

by
to

an

application

object-oriented

respective service

procedural

interfaces

program
procedural

needs

manner
other

operating threads

system
run-time

communicate
of the application

with
in

provided
then the

by one of must

oper
to This to

during

systems
the

program

include

statement call

computer
synchronixation classes for enabling

make
is

appropriate

operating the software

system procedure program etc
is

an

application

to

the

case

whether

object-oriented conventional

access vices

in to

an

procedure-oriented
operating in

rule

based

Thus

object-oriented execution

manner

operating

system

ser

systems provide
to

procedure-oriented execute

environments

synchronize

of threads
enabling

which

develop
of

and
are

software an
in
all

Some

of

the

scheduling access vices in to

classes

for

an
operating

application

to

advantages

OOT
This
is

lost

when

object-oriented procedure-oriented

pro

an

object-oriented execution for enabling

manner

system

ser

gram
dural

is

developed

and

executed
since

schedule

of threads an
application to access in

environment
operating calls

true

accesses

to

the

proce

fault classes object-oriented

an

system must by
the

be implemented systems of
the

using proce
native

manner
user-defined classes

operating processor for enabling

system
faults

services

to process

dure
dural

defined

operating

proce
20

system

and

and
to access to

interface

Consequently and
reusability are

some
lost since other

modularity
with to their

machine
in

an

application

maintainability object-oriented utilize fullest classes extent

advantages
it is

associated not possible to

an

object-oriented

manner
host

operating processor

system
sets present various

services

programs
objects possible to
this

define

and

modify
features

and

and

OOT
is

features

Further as well as

and advantages and

of

the of

invention

the

structure

operation are

embodi
below
in the

One
ented

solution

problem

to

develop

object-ori inter
it

25

ments of with

the present to

invention
the

described

in detail

operating

systems having
this

native

object-oriented the best the

reference the

accompanying
identical similar

drawings

and

faces

While
is

ultimately practical
all

may
the

be

solution resources operating

claims In
identical

drawings

reference

numbers

indicate

currently required

not

solution

since

or functionally

elements

to

modify

of

major

procedural

systems
these

would

be enormous
operating

Also such
systems would
software

modification

of

30

BRIEF The
the present

DESCRIPTEON
invention will

OF THE
be
described

DRAWINGS
with
reference to

procedural

render

useless

thousands fore what

of
is

procedure-oriented

programs an

There
object-

needed

is to

mechanism
interact in

for enabling

accompanying

drawings block
of the flow

wherein diagram
present chart

oriented

application procedural

an

object-oriented native

manner
proce35 in

HG
which

illustrates

of

computer

platform

with
dural

operating

system having

wrapper
is

invention illustrating

operates
the operation

interface of

HG
the

high-level

present
is

invention

SUMMARY OF THE INVENTION
The
present invention
is

FIG
tion 40

more
present

detailed

flowchart

illustrating

the

opera

of

the
is

invention diagram
library

directed

to

system and method
to access in

HG
FIG
present

block
class class

of of of

code
the

library

containing

an

of enabling an
object-oriented ing native

object-oriented

application

an

object-oriented
is

present

invention
task classes

manner
procedural

procedural interface

operating

system

hav

diagram

thread

and

of

the

The system
in the

includes

invention
is

computer
library includes oriented prises cation
is

and
stored

memory
in the

component

computer

code
library

HG
present cation

class

diagram

of

virtual

memory component The code
logic

memory

classes

of the

invention
are class the

computer
class related to

program

implementing
class

an

object-

library

The

object-oriented classes object-oriented

library the

com
appli
the

HGS 79
classes

diagrams

of

interprocess

communi

of

object-oriented in

for enabling

present

invention of
synchronization classes of

access

an

manner

services

HG HG
present

10

is

class

diagram

provided
classes services native

by
include

the

operating

system

The
the

object-oriented operating

present 11

invention
is

methods
procedural

for accessing function of the calls

system
with the

class

diagram

of

scheduling

classes

of

the

using

compatible

invention

procedural also includes contained

interface

operating

system
object-oriented defined class

The

FIGS
present

12is
16

are

class

diagrams

of

fault

classes

of

the

system

means
in the

for processing application

invention
is

statements class

and from

by

the

HG HG
class

class

diagram
the present

of

host

and

library

by

executing

methods

processor

set

the

library

machine
17

classes

of

invention
icons in class

and
for representing

corresponding Preferably
thread

to the the

object-oriented library

statements

illustrates

well-known
cardinality

class

includes
relationships

and

diagrams

classes

for enabling

an

application

to access services to

in to

60

an

object-oriented

manner and
obtain

operating information

system
relating

spawn

control
task

threads
in

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Computing Environment
directed to

classes

for enabling

an

application

to access services to

an

object-oriented

manner

operating the

system
tasks

refer

ence

and

control

tasks wherein
for

each

represents

an

65

The
for

present

invention

is

system and method
to procedural interface

execution with
the

environment tasks

threads

respectively

associated

providing

an

object-oriented native

interface procedural

operating

system having

The

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 23 of 42

5519867
134

present

invention

emulates an

object-oriented

software procedural invention

envi oper
is

the

application in

programs

130

132

are

adapted

to

ronment
ating directed oriented

on

computer

platform

having
the

execute the

different

operating

environments

For

example
to

system
to

More
system

particularly

present enabling

application in

programs
object-oriented

130A and 130B
environment
to

may be adapted
The
in application

and

method
in

of an

an

object-

operate

an

application

to access

object-oriented native the

manner
procedural in

program

132

may As
the

be

adapted an

operate

Microsoft
or

procedural interface

operating run-time present

system

having
of

Windows

environment
will

IBM

PSI2

environment by
those

Unix
in the

during

execution
invention
is

application part the

environment
relevant art

be

appreciated

skilled

computer
run-time cation tion
is

The

preferably in

of

the

application directly

programs
the

130A 130B
an

and

132

environment executes
In
this

of

the

computer
application

which

appli inven
10 since
it

cannot
the

interact

with 114

operating

system 114 and

unless in are
is

patent

the

present

operating the to to

system

implements

environment 132 132 then

sometimes
to

called

an

object-oriented operating

wrapper system an

which
adapted

application

programs For
in the

130A
if

130B

operates

wrap

procedural layer the

with

an

operate
operate

example

the

application

object-oriented application oriented

software

such

that

object-oriented in

adapted
application

iBM

PSI2

environment with
is

the

can

access

operating

system

an

object-

132
unless

cannot
the

directly

interact

the the

operating

manner
illustrates

system 114 block diagram
of

operating

system 114
If

IBM
an

PS/2

FIG
102
in

computer
present present

platform
invention invention in

which
It

operates

wrapper 128 129 of the should be noted that the encompasses
the

or compatible grams 130A and 130B are adapted
operating

system

the

application in

pro
object-

to

operate

oriented

environment
directly interact

then

the the

applications operating procedural

130A
system 114
interface

130B
since In the to

alternatively nation with

wrapper

128

129

combi
plat
as 20

cannot
the

with

the

computer

platform

form

102

includes

hardware

102 The computer 103 such components
108 and
that central the

operating

system 114
in

has
the

random
unit

access

CPU
also

memory 106 It should

RAM
but

example
operate ating as

shown
in the

FIG

application

134
created

is

adapted
the
is

processing

be noted

CPU

computing

environment
the

by 134

oper

106

may

represent
tiple

single

processor

preferably

represents

mul
to

system

114 and

therefore

application operating

being

connected 128

directly
is

to the to

system

shown 114

processors includes

operating peripheral

in parallel devices

The

computer
are

platform

102
the

which

connected

The wrapper
the operating

directed

mechanism
object-oriented

for providing interface applications

hardware an

components
device or

103
data

These

peripheral as

devices

system 114 128
enables

with an
the

include

input

devices

such

keyboard 120

mouse
hard

light disk

pen
floppy

etc
disk

storage

device

or

display

124 and
with removable

printer

such as 126
30

The wrapper 130A 130B
the tion procedural of the

object-oriented in

to directly operating

access

an

object-oriented during run-time

manner

system 114

execu
plat
the

The
data

data

storage

device

120

storage

medium

122

may such as
floppy

interact

removable hard disk on
the

applications

130A
is

130B

on

the

computer

form

102

magnetic
type also native

tape

cartridge device

or

of

data

storage

used

disk depending The computer platform 102
system 114 having

wrapper
interface cation dural 35

The wrapper 129 128 The wrapper
for the operating directly

conceptually provides

similar to

129

an
that

IBM
the the

PS/2 appli

system
in

114
PS/2

such

includes procedural includes

132

can

access

manner
that the

procedural interface procedural

operating

proce The
to

not

shown The
which
operating

procedural called to

operating
is

system
to operate the present

114

assuming

application

interface access

functions the

are

132

adapted of

in the

IBM

PS/2 environment be
limited herein

services

provided
platform

by

system

102
driv

discussion the face

invention

shall

The computer
ers

102

further

includes

device

wrapper
to

128

which

provides an
operating

object-oriented

inter native

116

called required the

code 112 also microinstruction may include in performing their in FIG firmware As indicated and
functions the device drivers

procedural interface

system

having

40

procedural

116

may

interact

with

The wrapper
library

128
is

is

preferably in the

implemented

as

code
library and/or

operating

system
further

114

Application preferably

programs
interact

130
but

132
the

110 which
also

stored

RAM

108 The code
device library

134

described
drivers

below
the

with

110
the 45

may
data

be

stored

in the

data

storage

120 110

device

116

via

operating

system
device

114

alternatively

interact

directly

with

the

drivers

may 116 It

storage

medium

122
class

The

code

imple
In

ments an

object-oriented

library

402
the

see FIG
object-oriented classes as the

should be noted
substantially

that the

operating

system 114

may

represent as the

accordance
class library

with 402

the

present

invention

full-function

operating

system
the

such

includes

related

object-oriented

for

Disk

Operating

System
the

DOS
systems
is

and

UNIX
may

operating represent 50

enabling cations

an

object-oriented

application to access the in

such
an

appli

system
other

However
of
the

operating

system 114

130A
services

and

130B

object-oriented

types

operating only

For purposes of
that the

the present

manner

provided
classes

by

operating

system which
the

114 The
include

invention 114 be

requirement
operating

operating

system
native

object-oriented procedural dural

comprise

methods with

procedural interface limited as the

system
the

having

function of the

calls

compatible

native

proce

procedural represents

Preferably
functionality

operating

system
operating

114 sys

interface

operating the

system

114

Object-oriented class library

procedural

statements 55

defined

by

object-oriented statements

402
or

tem such
which
is

Mach

micro-kernel skilled

developed
in the relevant

by

CMIJ
art

such
more
into access services

as

object-oriented the

which

invoke
are

one

well-known purposes
herein

to those

For be
In

of
the

methods

of 130

the to

class

library the the

402

insertable

illustrative described preferred puter

only

the

present to the

invention

shall

application

enable

application operating application class

130

to

with

reference

Mach micro-kernel
invention Business
the

in

an

object-oriented run-time

manner

system 130 on
library

embodiment 102
or
is

of an

the

present

com
60 In

during

execution

of the

platform

International

Machines an

the

computer
is

platform
described library

102 The
in

object-oriented

IBM
platform

computer

an of

IBM-compatible
the present

computer
the

402

further

sections preferably logic

below
includes

alternate

embodiment 102
is

invention

computer

The

code

110

compiled
the

an Apple Overview

computer of Wrapper
65

executable object-oriented logic

computer
class

program
library

which The

implements

402
is

computer
to

program

of

the

code

library relevant

110

not

linked of the

application library

Various operate

application

programs
the

130

132

134

preferably

programs
are

Instead
into the

portions

code

110

in parallel

on

computer

platform

102 Preferably

copied

executable

address

spaces

of

processes

Copy provided

by

USPTO

from the PIRS

Image

Database

on

0511

5/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 24 of 42

5519867
flow an

during Since
not

mn-time This
computer
to

is

explained logic

in

greater

detail library

below 110
is

substantive statement ing

step

of

the

chart

202

object-oriented

the

program

of

the the

code

which
is

accesses located

service in the

provided

by

the

operat
the

linked

application
at

programs

computer
to

program modify

system 114 of
the

application the

130A
computer by

during

logic

can

be modified
and/or to the relink the

any time without having
the application

execution

application

130A on
statement
is

platform
object-

recompile
the

programs does be
not

interface

code

library invention

110

as long as As change
herein the

102

The

object-oriented class library

defined the

the

oriented statement classes

402

For example method

object-oriented

noted with
the

above
reference

present

shall

described

may
of
the in

reference library

defined

by one
steps

of

the

to the

Mach micro-kernel
to the

although

use

class

of the

402

The following
is

describe

manner

which

the

statement

executed

by

the

present the

invention

wrap
present

other

operating

systems

falls

within

scope

of

invention
users the

computer
In

platform

102
object-oriented
call

The Mach
services

micro-kernel are

provides into

with

number
categories

of

step

208

the

statement

is

translated native

to

procedural following cedural

function of

compatible
operating

with

the

pro
corre

with

grouped

interface to the the

the

system statement
to the

114
In

and

threads tasks

virtual

memory

interprocess fault class

communication processing 402
for

IPC
present the

scheduling
set

synchronization processing
set

and of
the of
15

sponding
step

object-oriented
is

performing program
the the

208

statement the

translated

host/processor invention

The
of

computer

library classes to

logic includes categories related

from

code
in
at

library the

110

which

implements

each

Mach
402

service

Referring

FIG

method method
is

referenced includes

statement
procedural

As noted
function

above
call

the

class

least the

one

which of
the

library

includes
classes

compatible

with

native In step

procedural

interface procedural

thread access vices in to

404

for

enabling

an

application

to 20

operating call to

system
step

114
is

210
in the

the

function

an

object-oriented control

manner and
obtain

operating information

system ser
relating to

from

208

executed
operating the the

computer 114
to

platform 102 provide
Step the
is

spawn

thereby

cause
behalf

the

system

threads
task in classes

service

on

of

application

130A
discussed call to

210

406

for enabling

an

application

to access services to 25

performed
thereby

by

executing the

method

in step

208

an

object-oriented

manner tasks

operating

system
the tasks

causing operation in

procedural preferred detail

function

be invoked

reference sents

and

control

wherein
for

each

repre

The
described

of

embodiment
reference flow to

shall

now

be

an

execution with the

environment tasks
classes

threads

respectively

more
detailed

with

FIG
302
is

which of
the

associated

illustrates

operational the present the

chart

virtual to access in to

memory
an
access

408

for enabling

an

application

present in the

invention
context the of

Again

invention

described

object-oriented

manner

operating

system
in

executing

object-oriented

application particularly the

services

and

manipulate

virtual

memory

130A on
present

computer
is

platform

102 More
in the context the

computer

invention object-oriented

described statement

of

executing

IPC
in

classes

410

for enabling

an

application

to access services to

single cation

of

object-oriented

appli

an

object-oriented with application

manner
other in

operating during

system

130A on
includes

the

computer

platform access
it is

102 The
services

application

communicate
tion

processes

run-time

execu

130A
the

statements

which

provided
that

by

of

the

computer 412
for enabling

operating are

system
defined

114
by

and
the

assumed 402

such

statements

class the

synchronization tion to access to in

classes object-oriented

an

applica system

library application will entity

an

manner

operating

words
reference greater

the

programmer
to the class

created library the

in other 130A with
in

services

synchronize classes

execution

of threads
enabling

402 As
The

be

discussed in the

detail
is

below
called

executable

Mach

scheduling access vices in to

414

for

an

application

to micro-kernel

thread
micro-kernel threads

processing
is

organization

an

object-oriented execution

manner
of

operating

system

ser
entity includes

in

the

Mach
or

called

task
in

task

schedule

threads an
application to access
to

one

more

which
threads tasks

may execute
block execute on
the

paral
virtual

fault classes in

416

for enabling

lel and an memory
time
in there

address

space
the

which

represents

of

an

object-oriented

manner
user-defined

operating

system
faults

services

which

tasks

can

At

any

process

system and machine

processor enabling

and
to

classes

418

for

an

application

platform

may be 102 When
application

multiple executing

active the

computer
platform entire task

on

computer an

access vices

in

an

object-oriented

manner
host

operating processor additional

system
sets classes

ser

102

the

130A

could
or

represent

to define class service

and modify 402

and

having
for the threads

one which

or are

more
part

threads of
task

could
this

represent the task

few would

The
other

library

may
that

include are

in
or

case

categories

offered are class

by

Mach

in

have

other

threads of the

which

may
case

future

For example
for

security

services the

currently library

being

operation invention
is

application the

130A
few

may not be related to the The scope of the present
the application

developed
also to include

Mach
an

Accordingly
classes

402

may
ss

encompasses task
or just to

when
threads

130A

security in

420

for enabling

an

application

an

entire

of

task
it is

access

object-oriented

manner appreciated
in the class

operating the library exact

system number depends system

Referring

now
the

FIG

in

step logic

308
also which
is

determined computer
the task If the

security

services

As

will

be

whether

the

computer code
in

program
library the

called

and on

type the

of

classes

included
of

402

code
method
address

from

110

implements
in the

implementation

the

underlying

operating

referenced

statement with the

present

space

associated logic
is

application in the task

130A
address If the

Operational

Overview of
the

of

Preferred

Embodiment
shall

60

computer then
step

program 316
is

present

space

processed
is

described
present logic in the
is

below
task transferred

com
space
task
it is

The
generally trates

operation described high-level

present reference

invention to

now

be

puter

program
the

logic

not

address to

with

FIG
202

which of
the

illus present context 65

then

computer
space

program

the

operational invention

flow
is

chart

address

in steps

310

312

and
server
is

314

In

step

310

invention

The

present the

described

in the

determined
ated

whether
the

the

library

of executing computer

object-oriented

application step

130A
is

on
the

the
first

with

code

library

110

not shown known The code
libraries

associ
library

platform

102

In

206

which

110

may

represent

multiple

code

not

shown

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 25 of 42

5519867
10
related libraries to the

wrapper
the

128
of the

wherein program
class

each
logic

of
for

the

code
of the

particular

compiler which

compiles

the

application

program
specify

include

computer

one

130A
that service library

For

example
an

the

run-time conventions
accessing

may
from

object-oriented skilled other in the

classes relevant

library

402

As

those

when
is

instruction

an

operating

system
the

art will

appreciate

there

may

also

be

encountered should be

corresponding
transferred to the

code
task

code space

code

libraries

not shown

completely

unrelated

to the

110

address

wrapper

128
with
the

via code
libraries are library servers

the

associated

library are

server
generally

and
well are

executed

Compiler

Associated
of

each
library

run-Lime conventions appreciated
ticular

known
specific

As
to

will the for

be

which

manages

the resources

of

designated access to

code
the to

run-time

conventions

par
use

processing

entity of

which code

desires

computer
the

compilers used
present

The

run-time

conventions
particular art

program
librarys

logic

library

makes
request desired to

request

code
for

with would

the

invention to

and

with

compiler on
the

library

server

The
of
the

may
which

include

be

apparent of
the

one

skilled invention

in the

based

example
logic

description destination

computer
the server

program computer
processes logic
15

disclosure ticularly in

present

contained

herein
flow chart

par
302
the

and
logic

address

to the

disclosure described
is

associated

with
the as logic

the

program

should
accessing library to the

be

sent
the

The

library

FIG

As
invention includes

above

wrapper code

128

of

the request

by code
logic

desired

computer
the

program

present

implemented program

library

110
the

from

the

and
area

sending of

desired designated

computer by of
the

which

computer
class

implementing
the

program
destination servers

memory
and
skilled

object-oriented

library as

402

Alternatively

wrapper which 302 of
the

address
well

The

structure to those

operation in the the

library art

128

may be implemented
operates in to translate library calls

hardware

mechanism flow
chart

are

known
it

relevant library contains

essentially server the class
is

accordance with

the

Thus

in step

310

is

determined code
library logic

whether 110
is

20

FIG
function

object-oriented in application

statements

defined by
to

associated relevant

with

the

which

402

programs
the the procedural

procedural interface

computer
for

program by

known
library servers

Step

310

compatible system
as

with

of be on

performed which

example
the they
is

referencing library If the

server the
is

table

the

operating

114

Or

wrapper
process
all

128

may

identifies

known
service

and

code implemented
the

background

software

operating accesses

libraries then step ciated the step

which 314
is

library

server

known

processed
In

discussed

below
library

computer

platform 102 which 114

captures

to the

Otherwise
operating server

system by
to the

made
library

by

object-oriented

statements translates the the

312

processed
the

step

312
is

the

asso
of

defined accesses

class

402

and which
calls

with

code

library

110

identified for

The

identity

procedural interface of the

function the

compatible system be

with

library

server the

may be

apparent

example which

from
is

the procedural

operating

114

Other
to

content

of

object-oriented

statement

being

30

implementations of
those skilled

processed
After the library or server
if

in the relevant

128 will wrapper art based on the herein

apparent

disclosure

of the

associated library server

with

the

code

library

present

invention

contained

110
then the

is

identified

the

was

already
is

known
sent to the refer

step

314

is

processed
asking logic

In
the

step

314
with

request server the to

Mach
This
services are section provides

Services

library

server

library

copy

computer ence
in

program
the

associated to the task

method space

an overview
the

of

the

abstractions

and

statement

address server the task shared

Upon
the

provided
for

by

Mach
of the

micro-kernel major
these areas

The
of

services

completion
requested

of

step

314

the

library logic to

has copied
address library

described

each

the

Mach

micro-kernel space That is by
virtual 40

As noted above

include

threads tasks
services

computer
the

program
library

Preferably
the

code 110

110

is

memory
faults

IPC
and

scheduling

synchronization services
is

hardware
accessed

host/privilege

also

called

code

multiple

may be simultaneously the threads However preferably
library

computer
stored

pro
in

machine cussed
in

services

The Mach
available

micro-kernel

further

dis

gram

logic

of

the

code

library

110

many
editor

publicly

documents

including

is

physically server

only one
copies task

physical

memory
program

area
logic

The
from

library the

virtually

Loepere

Mach
Carnegie

Kernel Principles Mellon 1992
University

Open Software
Drafi Indus

computer

code

library

110

Foundation
to
trial

and

address

spaces That
logic

is

instead

of

physically of physical task

copying

Specification editor

September

and

November

1992

computer
to

program
the to

from one
places

part

memory
space
the

Loepere

Mach

Kernel Interfaces Mellon 1992
University

Open Software
Draft Indus

Foundation
trial

and Carnegie

another
pointer

library

server

in the area step

address

the

physical

memory
logic In the

containing

rel
50

Spec

jfication editor

September

and

November

1992

evant

computer
logic

program
associated the

316

the

computer
statement

Loepere

Mach

Server

Writers Mellon 1992 Server and

Guide Open
University

program
is

with

Software Foundation
Industrial Specification

and Carnegie

Draft

object-oriented

executed
case

on

computer
the

platform

102 As noted above
statement accesses logic the

September

and

November
Inter Mellon 1992

1992 faces
University 55

Loepere

editor

Mach

Writers

in the

where system
the

object-oriented the

operating ated with

114

computer
at

program
least the

associ

Open Software
Draft

Foundation

Carnegie

Industrial

method
is

contains

one
native

Specification

September Peterson
July

procedural procedural the

function interface

call

which

compatible

with

and

November

1992

Silberschatz

Galvin

of the

operating

system 114 Thus logic
thereby the

by

Operating and

System

Concepts

Addison-Wesley Operating

1992

executing

methods
call is

computer

program

procedural the

function

Tanenbaum 1992

Modern

Systems

Prentice

Hall
operating applica60

invoked
to

and executed
provide the

causing
behalf

system 114
lion

service

on

of

the

Threads

130A
above-described steps

The

performance

in the

computer
is

plat

The
Threads
the 65

executable

entity

in

Mach
that

is

known
them
in

as to

thread execute
in

form 102 of part
puter in the to the

306308310312
environment
will

and 314
established

due
those the

in large

have

several thread

aspects
is

enable

run-time

in the

com
skilled

system

always

contained

task
address

which space

platform relevant

102 As

be

appreciated

by of

represents of

most of
the thread
is

the

major

resources

e.g
machine

art the run-time
is

environment

computer
of the

which

can

make use
the set of

thread

has

an

execution

platform

102

defined

by

the

run-time conventions

state

which

basically

registers

and

Copy provided

by

USPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 26 of 42

5519867
11
other data that

12
thread
is

make up

its

context

always
to

in

one
or

Tasks

of

several

scheduling for

states

executing
are

ready
intended

execute
to

blocked weight

some

reason
entities

Threads
This
is

be

The
resources

basic are

organizational

entity

in

Mach

for

which

light

execution

to

encourage

the

managed
attributes

is

known

as with

task Tasks

have
task

many
funda

programthus has objects

and

associated three things

them
task

mer

to

make

use

of

multiple

threads into the

in applications

introducing

more

concurrency
operating

system

than

been
are

mentally

comprises
are

contains in the

multiple

threads which
threads task also has the take 10

the

executable

entities

system
virtual

found

in traditional

systems
really are in

Although
fairly

an

address
its

not without some
typical application of
this

cost

they

minimal and can

space can

which execute
the

represents

or server capability

Mach environment

memory in which name space port
through which Each

threads

And
valid

task

has
ports

which can
these

represents

IPC

advantage Threads

threads

communicate fundamental
in

with

other in

threads task
is

do

have

some

elements

associated address

with
as

them
well as

in the

system

of

objects

however The
the

containing state

task

and

space

discussed that task

in greater
is

detail

the

following

sections entity are the in

Note

execution has
often

have

already

been

discussed

Each
15

not can has

of

itself

an

executable

Mach
with
of

thread

scheduling the thread

policy
will

which

determines
processor in

when and
which
detail to in

However
entities
it

tasks task the

contain

threads which
of other

execution

how
run

be

given

on

number

entities

associated Several

The

scheduling

services tied

are discussed to the set

more

besides

fundamental
to

ones

noted

above
decisions

later thread

section
is

Closely optional with

scheduling

policy

of can
20

these

entities to

have

do

with

scheduling contained set

the kernel

the

processor multiple

designation
to

which

needs

make

for

the

threads processor to

by

the

task The and
the host

be used
control
tially

in the

systems

processors to

more
for

scheduling information

closely poten-

parameters
all

designation of

contribute also

the

assignment
application space

of

scheduling

tasks

threads

processors

greater

performance can
contain

As
zero

indicated or

before
threads

threads
cess

task

has

number
that aspects

of

distinguished certain interprocess

interpro pre-defined

an

address

task

more
no

commumcation
Ports are

ports other

serve

functions The
kernel

and

of

which
lions

execute about
the

concurrently relationship entire

makes
in

assump25 space

nication
it is

discussed to

at length that port these

in

later section are

For

commu now
by

of

the threads

an
it

address schedules

sufficient in

know The

resources are

accumulated
explicitly

or

indeed
the

in the threads

system

Rather

and

over time
the

task

Most of

managed
ports connections

executes associated in the

according

to the available there
is

scheduling processor

parameters
resources

programmer have
to

distinguished establishing the

mentioned

above

with them
In

and

the

generally 30

do with
in

to several three

system of

particular in

no

arrangement and

e.g
order

important

functions ports

system

Mach
is

supplies task self

hierarchical tions to

threads they order useful

an

address

space

no assumpIn

special
which

with each task used
the to

The

first

the

port

about

how
the

are to interact

with each other and
the

can

be on port

ask

the

kernel

to

perform
port

certain
is

control to

of

execution

coordination several

of

operations bootstrap 35

task

The be

second used

special for

the

threads nization

some

end Mach The
suspend count
operations

provides

synchro-

which

can but

anything its
to locate
is

OS
other host

mechanisms
thread-level has

simplest

and
resume
is

coarsest

mechaEach and

environment-specific
services

generally port that

serves

nism
thread

is

and

operations incremented whose count

The

third

special allows

each

task

has

the

suspend by
these

which

name port which
tion

the

task

to obtain
it is

certain

informa

decremented count zero Finer
is

thread until the

suspend goes
to 40

about

the

machine
several

on which registered
in the in the

running

Additionally task that with

positive

remains

blocked

Mach
allow
certain

supplies the

ports task to

with each communicate

threads

contained
servers

synchronization objects allow

can

be

obtained or

through

the

use

of

higher-level

system and

e.g
the

the

Network

synchronization

semaphores
variety

monitors and

con-

Name
Two

Server

the

Service

Server

Environment

ditions
styles to

which be used

of
also

different interact services

synchronization via
is

Server
other fault useful processing sets of ports exist for

Threads

can
of

inter-process described exist in to 45

each

task to

that

communication

IPC
in later

Each

these

allow

and
of

program
task

state

sampling

be

more
support

detail

sections

Basic and

operations getting

performed
for processor

The

fault ports

provide
threads

common
in the fully task in

place to

creation for threads that

termination
Several

and

setting exist has

faults Fault

encountered
is

by

be

attributes

other

control

operations thread that

processed section
so edly

processing

described

more

later

on

threads

can

be performed threads They can

by any
control also

The PC sample
the

port allows state for

profiling

tools

to repeat-

send be
the

right to the

intended

port

Threads

can from

monitor

execution are possible

of

the

threads

in the

task

terminated various

explicitly possible walt

be

interrupted to

Many some
the 55

operations

tasks Tasks
task for

can be

created

situations that

and
they

caused were

resume

and terminated
existing

Creation as

of

new new

involves
initial

specifying contents of

execution Threads marked
they

with can
as

an

indication

interrupted that they are

task

prototype the

the

also

be

wired
with

which
to

means
kernel

address

space which
as

of

task
the

task

can

also
to

be be be be

privileged

respect

resources
free

i.e
is

terminated
terminated

causes

all

of

contained in

threads task

can

consume
is

physical

memory
in the several

when
default

memory

well and

The

threads

contained

can can

scarce
Finally

This

used
also

for threads

page-out

path

enumerated
extracted the 60 threads

information execution

about of

the task

threads

threads the

have

important
to these

lit ports
thread

more
are has certain set

Coarse-grain in the

more
through

precisely

precisely

send

or receive

rights In

ports which
each

task

can

be

controlled

suspend count
that

used
thread

for

certain

functions which
thread
is

particular

and
is

resume operations Each

task

has
the

suspend suspend
execute
is

self

port
the

can by

be

used

to

perform
also

incremented

and decremented
threads for
is

by

and resume
as

operations fault ports

on

itself

thread the

has

of

operations suspend suspend
65

The

in the

task

can

long

as the the

which

used
its

when

thread

encounters also
distin-

count count
until

the

containing
all

task threads

zero
the

When
will

processor guished threads
as

fault during port that

execution used

There

is

positive task
is

in

task

be
the

can

be

for gathering

samples
other threads

of

the

blocked
various

the

subsequently attributes

resumed
associated

Finally with

execution or

state

for

monitoring by

such

parameters
scheduling

and

task

debuggers

program

profilers

e.g

priority

can

be

queried

and

set

as desired

djj

provided

by

USPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 27 of 42

5519867
13
Virtual

14
with
in virtual interfaces that the data

Memory
features external
its

from

the

corresponding To

byte

addresses
this

in the kernel

associated

Mach

memory
engages pager
it

object

accomplish

the

VM
as the

supports

several

memory
as well are not

actually with the

in

well-defined
it

and
to get to the also

onerous
data for

protocol faults

subsystem
internal in

Both

the

client

whenever
to

needs
data

page

implementation
other operating

offer

features In

or

found
the

many

systems
supports

broadest large the tasks

when

needs

terms This protocol
sparsely

page-out
is

due
as

page

replacements

which
Interface for

known

External handles they

Mach

Memory
the are initial

virtual virtual

memory
address are

system
space for

populated
in the

each of with

running
for

Management
ization

or
the

EMMI
objects

system
the

Clients

provided of
are of

general

services

sequences
tusks

memory

when

managing
aspects

composition

the

address

space

Some
by
10

by

client

and

termination are

sequences by

mapped when any
tasks

of

the

VM
are

system
outside

actually the

implemented

associated

memory

regions

deallocated

client in the

components allows
great

that

micro-kernel
policy

which
to

There can be any depending
various

number of memory
that also are

pagers objects

running
are

system by
the

flexibility

in tailoring certain

functions

on

which

in

use

different the

system

environments system has

The
been

internal divided

architecture into for

of

client
file

tasks Pagers systems

will typically

be
at

associated

with
for

Mach

VM
Porting

machine-

the various
15

mounted

given
certain

time

independent
portability generally functions tures

and machine-dependent
to

modules

maximum
is

example
applications

Pagers could which

exist

to support

database

new processorIMMU
of
the ported attesting virtual

architecture

might have needs by
the
file

for operations

beyond
also exist in

small that

matter

implementing
basic to to

number

of

manipulate
has

hardware

MMU
of

what

is

supported
servers

system
to

Pagers could
data

struc
for certain

that

wish

supply

to their clients

Mach

been

number
the

different of the 20

non-standard
ally rather micro-kernel

ways

e.g

generating
it

the

data

computation-

processor overall

architectures kernel

portability

than

retrieving

from
to

storage

subsystem The
distinguished in the

and space

the

The

address

of

memory system Mach task contains
regions allocated only All in the are in

in particular

always
as the
is

expects default

have

certain

number

of pager

known
pager

pager running
for

system
the

The

virtual address

memory
space
the

regions These
that

pieces various

of virtual

default objects

responsible

managing
virtual
is

have

been
the

ways

for associated

with Such
task

anonymous

memory memory such
and only of
the

use can

by
be

task They

are

locations references address fault

where
to space

memory
addresses will result

stacks use

heaps

etc
client

memory
is

temporary
described are

legitimately

accessed
regions

while entities

running

As

above

outside in

of

the

defined

main
objects

in the

Mach Most

VM

system

regions
will

memory
deal

an

improper has

memory
address size

reference

virtual
It

memory
pagemultiple 30

and

pagers

clients

however
could

with

region
aligned

several

interesting

attributes

has

virtual

memory
be

through
portion in that

operations

on ranges of
or
it

memory
multiple are of as

starting

and

size

which
in the

must be
region
all

of

the

system page
access

The pages
these

have can

range can
contiguous

of
the

region address users

span

the regions

space
to allocate

Operations

same

protections read-write or

access

protections in

be provided
also virtual

by

Mach

allow

new ranges
ranges

read-only have
the

execute

The pages
the in

region

same new

inheritance tusk
is

characteristic

which
current region

when
inheritance indicate the

created for

from pages

may be used tusk The
can be
set to

memory
to

in the

address

space

and

deallocate allows virtual

desired
object

Another be

important
into

operation

memory memory
to as the

mapped
on

range
are also

of

characteristic that that

described

above

Operations ranges of

available

change

new
it

task

should
inherit

inherit virtual

read-write

copy

of
protections

region
it

should

copy

of the

region

characteristics physical

and wire
It is

memory or lock
also or

change
the

the of read

inheritance

pages
to

range ranges
in
is

into of

or that

should
region

inherit in

no

copy

of

the

region

read-write fully 40

memory
from
that

possible write port into

copy

of

new
the

address

space

provides

memory
task Additional specify

another the

task

ranges task

another

shared mapping
virtual
tially

of

region

between

the

tasks

while provided essen

control are

for

the

available user to

copy
gives

provides

copy-on-write mapping
its

that

services the

available reference

that pattern kernel to

allow
for as

the

each

task

own

copy of
the

of

the

region

but with expected
the

range on

of

efficient

copy-on-write

sharing

pages

constituting

memory
45 to adapt

This can
the

be used

by

the

advice

ways

region Every
abstract
is

page
service

replacement
is

policy

different

situations the

virtual entity

memory known as
of

region

is

really

mapping

of an
object

Yet

another of

available

to synchronize

or flush
obtain

memory
data that

object can be
the

memory
addressed kernel

contents

range

of

memory
are to

with

the

memory
to contents regions

objects informa of tusks

simply

collection fashion
It is

in

some
no
50

backing
tion

it Finally regions

services

available the the

byte-wise

and
best

about thought

which
of as stored

makes

about

and

enumerate
in

assumptions
that

can

either in

be

explicitly fashion as

some pure piece of data some place or can be Many
different things familiar or

address

space

described

terms

of

it

contains

produced can
serve

some

needed

as

memory

objects disk

Some

Interprocess

Communication
that central to

examples

include objects are

files

ROMs
to

partitions operations data

foats

Memory
that they

Mach

has

four

concepts
facilities these

are

its

interprocess

have

no Fe-defined follow

or protocol in tied

communications Messages by
the

Ports

Port Port

Sets Port Rights Rights
is

and used
in

expected can

The

contained
it

memory
to

One of
as

concepts

also

object region

only

be accessed

when

has

been

VM

Mach

means
as

to identify

certain

common

resources

through
to

mapping
region and
the write

After data

memory
can be and store by
or

object

has been
via

system such

threads tasks

memory

objects

etc.

mapped memory

accessed

normal
60 task
is is

read

load

operations special

Ports

is object memory known as an external

generally

managed manager
of
It

memory
outside

pager

pager

Threads
basically

use

ports

to

communicate queue
inside

with each other
the kernel that
if

port

task

that

executes task in the

the
is

micro-kernel

much
entity

like

message
to or

threads

any job

other
is

system

user-mode
data

whose
65

can
the

add messages proper
port port

remove
to

message

from

they

have
are

to

handle

certain

requests threads the

for the in

of the

memory
the the

permissions rights rights

do

so These

permissions with
of

objects

it

supports As given

client

task

reference
fills

called besides

Other
include

attributes limit

associated

port

pages

in

region

kernel

logically

pages

on

the

number

mes

Copy provided

by IJSPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 28 of 42

5519867
15
sages that

16
the

can

be

enqueued message
rights

on
that

port be
sent

limit to

on

the

Port
the

rights

have

several

attributes

associated

with
port the

them
set
or

maximum
count of
exist port

size of

can

port

and
Ports via

type of

the

right

send
reference

send-once count
acquires for

receive each
right

how many
in the

to the port

are in existence

dead
types

name
of
it

and

of
for

ahove
port to

solely rights

kernel

and

can

only be

manipulated

rights already

When
has send count

task

which
ing

or receive associated

rights port

the

correspond
is

reference

for the

name name

incre
its

mented
Port associated Rights senting thread
it

port port
is

name

becomes That is
rights for

dead
all

when

destroyed

port port

names

repre
receive request kernel

send
is

or

send-once

whose
can

can

add
to

message
that

to

ports Likewise

message
it

queue remove

if

right

deallocated

become dead names
its

task

has

send from port an

right

port

can

notification

when one of
system-wide
rights as
this

rights

becomes
the

dead The
of
holds

message
to that

ports message
rights are

queue

if it

has

receive resources

right

keeps send-once
right sent

count each port

of

number
that

send

and

Port

considered

to

be

of

for

Any

task

receive

task
to

not port

individual

thread There
different

can be

held by
receive

many

tasks
In

many send rights however there can
port
is is

such when

server can

request to for

notification indicating

message
that there

be
are

number goes
clients

zero
the

only

be one
allocating the

right to right
is

port and

fact

created only or

no

more

senders

port

This must

is

called

no send

by

receive right the task

port

destroyed

more
right

senders for

notification to

The
the

request

include

when

receive

deallocated In

either the

explicitly attributes

port

which

notification

should

be

sent

implicitly port threads the are

when

dies
through

addition
receive

of
20 ets

manipulated
the

the

right

Multiple
port
at

on

same and
port

or different multiple at the

tasks can

send same

to

same

time from
or

threads

on

the

task
act

can
as Port ports 25 port sets

receive

same
to

time

Port

rights to or

provide

the

ability

to receive receive
is

from

collection

of
to set set the

permission messages form of
task task the that to

capability

send
they

messages

receive

simultaneously
set

That is

rights

can be on
the

added
port

from
security holds

port
for the the

and

thus

implement
of

low-level port for
is

such
will of

that

when

receive

done
the

system
right

The owner The
is

the

message

be
the

received receive

from one of
right receive

ports

in the

receive right for

only
if it is

way
task

another

The

name
is

whose

port

provided

get

send

port or

explicitly that

given

message

reported

by

the

operation

righteither send
right

by
for

the the

owner port

by

any
is

holds

valid

This and

primarily the
it

done message

by
to

30

including another to

the right in

message
task to

sending

Messa

es

task Giving
as

send
the

right grants port as
it

permission There
is

send

many messages
port right to holder

wants

Mach IPC message
data regions rights

comprises some message
then
it

header

and

an

in-line

another allows

kind of
the

called

send-once
to the

right that

only

portion and nor

and

optionally If the

out-of-line contains
is

memory
neither port

send one message
right

port cant

at

which used by task
or

port rights

time again

the

send-once
that

become
of right in

invalid port

and be

be

out-of-line otherwise

memory
it is

said

to

be

simple simple

Note
the

ownership
receive

can

transferred to another

message
message
the 40 in-line

complex header message
optional

message
directly

sending Tasks
receiving created

ports

message by

contalns data port

the

message

followed
contains to

by

acquire

port in

rights

either

creating rights

them
only

portion send
sent right

The
an

header send

them

message

Receive
port

can
as

be

destination reply length

right

which
the
is

explicitly

by
can

doing be

allocate

described

may be
of
the data length

usually of
the to

send-once message

right

and
data

above
existing transmitted

send send

rights or

created right or

either

explicitly

from an being
created

portion

The

in-line

receive

implicitly right right specify

while can be

of

variable

subject
is

maximum

specified

on

in

message from
the or

send-once
receive sender

per-port 45 plex

basis

and

copied
of

without message

interpretation

com
the

explicitly right
is is

or implicitly in

only

When
the

message
as for

consists

header

with

same of
the

sent

message

can

that the right

format

simple

message memory kemels
containing

followed
regions

by
of

count

either

copied

moved

new
can sender

right created

by of
right

send

number of
arrays

out-of-line the arrays

and ports

disposition regions

operation

Receive
is it

rights the

only be

moved
the

course
and
the the 50

describing

processing the

these

When
receiver but

right gains

moved When copied
right
is

looses

and and

ports
the

and

out-of-line

descriptors

the

sender

retains to the

right

port port

rights right disposition right the array contains
it

copy

of

the the

created provides created right ports

and given
receive

receiver

The

the

desired

When
send

created
or

sender
right
is

right

and

new

processing

of

the to

i.e
target for

whether task each

should
out-of-line

be

copied

send-once
task
it

and

given

to the

receiver

made
55 or

or

moved
array

The

memory
whether

When
assigns

acquires

port that

by whatever themselves
this

means Mach
are not the

disposition

specifies

memory
the

range
is

name

Note

named
of
the

not

it

should be
the

de-allocated

when
into

message
into the receiving

queued
address

but

their port

rights
to

are
to

Despite
the the

fact port

creators

and whether tasks space

memory
space
or

should be copied

receiving

Mach decided
term
port
is

refer

name

of

right

with

address via

mapped

the

name
scalar

instead value

of

obvious on

port right

name
means
the

This
is

virtual

memory
specify

copy-on-right the

mechanism The
and
align-

name

32-bits within

Intel task

machines

that

out-of-line 60

descriptors out-of-line the the

size address

guaranteed
several

unique
could but

only each
that
is

which
to

that

ment of

the

memory region When
in-line

task

receives are

tasks value

have

port port

name with
rights

same
dif-

message
copied
receive virtual 65 into call

header

data

and

descriptor

arrays

numeric
ferent held

represent
at

totally

addresses

designated contains

in the

parameters data

to the then
is

ports
task to it right

and

chosen

random Each
have always have
rights

distinct port

right

If the in

message
the

out-of-line

by

does not Send-once Receive
will

necessarily rights

distinct

name name
same

memory
is

receiving

tasks
to

address the task

space
out-of-line to

assigned for

separate
to

automatically

allocated the

by

the of

kernel the

hold

each

and send
the

that refer

the

data
cate

It

responsibility regions

receiving are

deallo data

port

however

have

same

name

these

memory

when

they

done

with

the

Copy provided

by LJSPTO

from the FIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 29 of 42

5519867
17
Message Transmission Semantics nature
is

18
condition re-acquires
is

true
the lock

waiting before

thread continuing operation waiting

is

unblocked execution on
for

and

then

thread

Mach
sends

IPC

is

basically to

asynchronous and once
the

in

thread

can

also

perform
all

broadcast the threads

condition which
that

message

port

message execution

queued
receive

unblocks Optional

of

condition
wait for the

on on

the port port

the sending

thread there
is

continues are

time-outs to limit

can
the

also

be

set

on

the

condition wait

will

block

if

no messages

queued

on

the operations

time

thread

will

port For
wifi

efficiency

there

combined immediately
port set
if

send/receive

call that for

condition

send on

message
specified timeout

and

block

waiting

message

reply

providing
all

synchronous
operations 10

Scheduling Since

model
which
sent

can

be

on
the to
call

message
is

will abort
if

the operation
is

message

unable
within
if it its

to

be
the

Mach
of

is

multiprocessor in sets that

capable
multiprocessor to

it

provides

for the

or

no message time period whose
of
is

available

be received
will

scheduling

threads processor

environment
processors

specified send-right

send

block

uses maxiright port
is

Mach
defines

defines

group

and

it

corresponding messages
If to

port

has reached
uses

scheduling provides

policies

can be
policies
is

associated timeshare

with and

them
fixed

mum number
the full anteed there
is

send

send-once even
if

Mach

two

scheduling policy

message Message
to

guaranteed
delivery
is

be queued and
they

the are

priority

The
of

timeshare

based
the

on

the

exponential policy the also

reliable the in order

messages
are

guarthat

average
attempts

the

threads usage
the

of

CPU
priority

This on

be

received

in

sent Note

to optimize

time quantum

based

number does on use
not the the

special-case

code

Mach which

optimizes

for the the fastest receive the
its

of
20

threads

and processors
priority

The

fixed

policy

synchronous IPC
round-trip

model over time
is

the

asynchronous by
server in in

model
doing loop and loop on

alter the threads default

but does
at

round-robin priority
its

scheduling thread set

achieved

that

are

the

same of

can
or

followed by doing

repeated

send/receives send/receives

client

scheduling

policy the

processor policies

explicitly for
its

side

use

corresponding

any

one
set

of

scheduling priority the

enabled
setfor

processor Port

Rights

as

Identifiers

set 25

and

maximum thread In Mach
the

can be
the

processor

lower

priority

value

the

greater

urgency

Because be

the kernel

guarantees that

both

that

port rights

cannot
or Faults

counterfeited port

and
rights takes

messages

cannot be
very

misdirected

falsified identifier to

provide advantage
everything

reliable

and

secure

Mach

of
in

this the

by

using

port rights including 30

The Mach
flexible defined

fault

handling
for faults

services

are intended standard kernel to uses the

to

provide
user-

represent

almost

system

mechanism

handling both

and
facilities

tasks threads
permissions allocations to

memory objects
do
so

external

memory
operations
the kernel as

managers
processor

processor

The
ports

standard are

of
fault

system-privileged

threads messages handling where Such
the

and

used

provide
the

the

and

on In
itself

addition

since

can send

mechanism This document Mach
documentation has been
the uses

word

fault

and

receive the

messages
majority of

it represents
kernel services traps kernel

itself

special
via has

word

exception
to distinguish

task
services

the

are

accessed

terminology
faults

changed

herein

IPC messages
to

instead

of

system-call of the

This

allowed where

hardware

from

exception

mechanism
fault

of

the differ in

be migrated out

fairly easily

language
different

Threads and
rules Error

task

have

ports They
to

their inheritance appropriate

and

are

expected
is is

be used
to to

in slightly

ways
basis

handling

expected expected

be

done

on on
to

Synchronization Currently
nization

per-thread per-task

and debugging
fault ports fault

be handled from
parent

basis Task while

are ports

inherited are

Mach

provides

no

direct

support

for

synchrosysSyn-

child

tasks
to

thread

not

inherited

and

capabilities provide

However

conventional

operating

default

no handler Thread
fault

fault handlers thread

take causes

precedence
fault to
is

tems

routinely

synchronization

services

Such

over
kernel

task

handlers
thread via

When
and
the fault the

the the task

chronization

services

employ

many

well-known
blocks condisyn-

the

sends

fault

message
handler

mechanisms
tions

such
are

as

semaphores below which

and monitors and Semaphores both
are exclusive

threads
that

fault handier

port
fault the

which

described

receives

message

from
the

port

The message
the task

chronization shared released access

mechanism
to either

allows

and
contains

information the fault

about

fault

thread and
its

resource an

Semaphores
or

can be

acquired

and causing
they 50 ing to the

The handler performs
fault If appropriate state

function handler that

accord-

in

exclusive thue-out are

shared periods

mode
on
the

and

type

of the

the thread fault

can

get the the

can

optionally

specify

acquire in the

and modify
fault Possible

the

execution actions the are fault types

of

the the

caused

operations sense that

Semaphores

optionally that
is

recoverable

to clear

to terminate

when

thread the

holding
associated threads are

semaphore with
the

thread
are

or to pass

onto and

the

task-level

handler
defines

Faults

terminates

prematurely
are adjusted

counters waiting

identified

by

data
that

Mach
are

some
for
all

semaphore
as

and

unblocked machine-independent
fault types

supported bad

appropriate

Mach
and
conditions are relatively than synchronization

implementations etc. Other
f-line

e.g
fault

bad
types

access can be

instruction

Monitors nism safer which
style

mecha-

breakpoint dependent

implementation etc.

implements of
synchronization called

more

disciplined

and

e.g

co-processor

violation

simple semaphores
is

monitor lock also semaphore data
the that

mutex
mutually can be used

essentially access for

binary to

60

Host and

Processor of
the

Sets

enables variables

exclusive to wait

some Mach
an
exports the for notion

Condition
truth of

and

signify

host which on which on
task the
it

is is

essentially

certain the

programmer-defined of
the

Boolean

expres
that the 65

abstraction

the

computer

executing depending
the

sions holds

within

context

monitor
to

When
for
is

thread

Various on
the

operations specific that

can be performed
port
is

host for

monitor lock
lock
is

needs

wait
the

condition blocked

rights

that

has

host
task

monitor

relinquished thread that

and

thread

Later
that the

Information
that

not

sensitive the

can be

obtained

by any

when

another

holds

the

lock

notifies

holds

send

right to

host

name port Examples

of

Copy provided

by LJSPTO

from the PIRS

Image Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 30 of 42

5519867
19
such
information gain access include to the
is is

20
version

the value

of

the

kernel

or

the

library classes

402

may

include

additional

classes services

such

as

security

right to
all

of

the

system clock and

Almost
higher the

420
class of

depending
operating

on

the

provided
area the are
list is

by

the

other of

information privilege This

considered required level the to

sensitive get or

underlying with
function defined also tional

system and

114

Each

described

degree

manipulate

diagram each
class

text

detailing

purpose
presented

and and
is

information
task holds host

added

of privilege host control

send

right to

is implied when port also known

Selected the

methods parameter
provides of the in the

where appropriate Thus
and
definition

of

method

as the

privilege

port This
to

right

must be given having
possible

out
this

very right

provided

this section description of

complete
class the

opera
library

carefully enables

and

selectively to

tasks because
everything

wrapper
of

task thus

do

virtually the

to

the io

402
class

The implementation
library class icons

methods

wrapper

kernel

by-passing the

security

aspects

of

the

system can be
the

402

is

discussed are

later section using the

supported performed systems
resource

by
with clock

IPC

services

Various

operations

The Booch
nality

diagrams
for

presented class are

well-known and cardi

this

added

privilege

including

altering

representing icons

relationships in are

setting
statistics

obtaining for the

overall

performance and
causing

and
the
15

These

Booch
purposes

presented icons

FIG

17

for in

usage
to

system

convenience Object

The Booch
With
class

discussed

machine

re-boot the notions to

Oriented Design above

Applications

by Grady 402 C-His

Booch
prefer

Mach
sets

also exports allow

of

processors

arid processor

referenced ably

The wrapper
using
the

library

which what

tasks
its

more

carefully

specify

when

and

implemented

well-known
other

computer lan
class

on and
the

processors sets

threads

should

execute and

Processors

programming guages
20

language

However
be
into

programming
the

processor host

can port

be

enumerated
processor

controlled

with

could

alternatively are

used SPI

Preferably

privilege in of the

represents set to

particular represents

descriptions

grouped

System

Programming Inter

processor
collection cessor sets

system

and
Services

processor exist to

Interface nal and

API Application
code

Programming

Interface

processors
to

create

new pro
them
as or

Noose
the

methodsindicated
in question are

by ifndef

statements for

and

add
also

processors exist

set or entire

remove
tasks

bracketing

or by comments
specific to the

Noose
cornthe

desired

Services to set

to assign these

particu can
that 25

methods
puter

SPI

interfaces

particular

lar threads control constitute

Through grain

services the get

programmer and
tasks

platform class to

being
library

used 402
is

For

illustrative

purposes

on
an

coarse

when when

threads to

wrapper with with

presented

and

described in

herein

application
to

actually

execute
threads

This

allows

respect the or
it

computer

platform

operating
is

accordance

programmer executed ment
for

specify in

certain set not

should

be

IBM

MicroKernel

which
the

based
in the

on

Mach Version
art

in parallel tasks
is

processor that

The

default

assign
these 30

3.0
find other

compatible
apparent to

Persons modify

skilled

relevant to

will

and
to

threads

do

explicitly processor

use set
that

SPI on

classes the

accommodate contained

capabilities generally

the

system

default

which arent

computer

platforms

based

teachings

contains in other

any

processors

in the

system

herein

being

used

sets

API 402
Security

interfaces of

are the

included platform

in the the

wrapper
is

class

library

regardless

system
for

running by

on The

Internal

interfaces

are

intended

use
are

only

low-level solely to to

implementors

The Noose methods
130 an
operating

provided
the

Mach may
to those services security
is

include

other

categories

of

services

in addition

enable an communicate
written 40 the to

application

with 134

wrapper

128

described relating services value the to

above

For

example Mach
accordance
security

may
token

include

with run on

application

or server
provide
that they
fail

that access

was
to

security task

In

with

the

Mach
which
is

Mach

114
in

directly

They

every
that
is

carries

raw
the

Mach

facilities

such

way
of

outside

scalar

uninterpreted port that trusted
is

by

Mach

There

of

intended

object-oriented

programming Use

model
is

estab
highly

port called task

host

security to the

given

to the

bootstrap

lished

by

the

and

passed on token
right

security

sever
task that

tasks
holds

discouraged
classes

128 The SPI and API and
wrapper
are or sufficient

Noose methods
perhaps
the

Internal

security

can be
to the

set host

or

changed

by any port
the

and methods component

to

implement

any appli

send

security to

while
value

no of

special tasks

cation

subsystem Thread

permissions
security

are

needed

determine
the

token other than
the

holding

tasks

control
is

port

of the

Classes

course At
security

time

Mach
sender
to

IPC

message message
is

received
as

token

of the

of the the

returned

one
that the

FIG
task

is

class

diagram

501

of

the

thread

classes

404

and an

of

the

output the host

parameters
security

receive

function message
so that

Tasks

classes

406 114 so

The
to

thread the

classes

404

provide

hold

port to

can
that

send message

and
it

object-oriented assign to tionality are that of

interface

tasking

and
the

threading classes

func
404

Mach
classes

number noted by

of

thread

different

security

token
another

appears

have upper

come from
layers

task These
to

services

can be used by
degrees of

handle
they

their the

name

which

means
kernel

of

the

system

implement

various

represent

reference

to

corresponding
classes object

entity

The

null constructors

on

the

handle handle

create

an
not

security

empty
initially

handle

object
to

An
any

empty
kernel

does

correspond streaming methods thrown each
of

entityit
or will

must be copy

initial

Wrapper This
section

Class

Library of the the the as

ized

via

an

assignment handle of
the

operation an
exception

provides interface

an

area-by-area the services

description

Calling to

on an empty Multiple which
are

cause

object-oriented

for

provided
interface

by
to

be

copies to

handle same

object

can

be

Mach Mach

micro-kernel
services

This

made
handle
kernel
it is

point

kernel

entity so that

The
the

object-oriented the

represents

wrapper

class

library

402

objects entity

internally deleted

reference-counted

implemented
library virtual tion

by

the

code
thread

library classes

110 404 414

The wrapper
task classes

class

can be

when

the

last

object

representing

402

includes

406
65

destroyed
is It

memory classes 408 classes 412 scheduling
classes

IPC

classes

410
fault

synchroniza
classes

TrhreadHandle
entity in the

concrete provides

class the

that represents

thread

classes

416
class

system

methods
the

for

controlling
It

and

machine

418

are

discussed

The

wrapper

and

determining

information

about

thread

also

pro-

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 31 of 42

5519867
21
vides the

22
new
killing threads in the

mechanism

for

spawning
include

SetThreadSchedule chedule
sets

const

flhreadSchedule
object in to the thread the

newSto the

system

Control

operations

suspending/reConstructing object

the

scheduling

suming
causes

and

doing and
thread

death
passing to

watch
in

on

it

newSchedule
thread
is

object This

allows

one

control

way

TFhreadHandle

TThreadProgram on
are the the current

scheduled

new
first

be

constructed

task

GetS

cheduleState allows

TThreadHandle
one
to

theBlocke
state

The

code

run
of

in the

the

new

thread

Prepare and
Destroying
it

Run
There

dOnThread
thread

query on

the

current

of

the
is

methods

TThreadProgram
not destroy operation the

object thread the

thefllockedOnThread

which

this

thread

TrhreadHandle

does be

represents

may
to the

also

cancel

on

TThreadllandle
contains information

blocked CancelWaitAndPostException
10
is

object Note
right not

that

each

TThreaclllandle for the in

object This but

send

const

causes

blocking
to

control

port

thread general

kernel

call

to

be

unblocked

and

TKernelException

be

exported

by

the

interface the

because

it

does

thrown

in the

thread

this
coast thread

contain

port

right

only stream
into other
is

object

flhreadPro-

WaitForDeathOf threadblocks
calling

performs
until creates the

death thread

watch

on

the

gram

can

be
to

streamed stream
into

TlPCMessageStream
objects will cause
15

this
thread

termi

Attempting an exception

TStream

nates
for the

CreateDeathinterest death

notification the

interest

to

be thrown.
provides

of

the

thread flnterest
is

this When
gets abstract

termi

TmreadHandle
debuggers
interactions

number

of

methods and

for

use by

nates

the

specified

notification

and

the

runtime environment

for supporting

flhreadProgram
laths
all

an

base
to create

class

that

encapsu

with

Mach
by

tasks the the

running wrapper
state

outside

of

the

envithe information the required

new thread This
information and
the

ronment
include

established getting thread

128

These

methods an
20 includes

code

to

be

executed
it

scheduling

and
in

setting another right

of

thread spawning
the

empty
ports
creating

task
the

getting

threads port
control

fault

and

the

threads stack and

To use
into

must be

subclassed

returning

to

threads

control thread

and
port

Begin
tion

Run methods
object

overridden
the

and then

an
for
is

instantia

T1hreadHandle

handle from

of

the to

passed thread

constructor routine

flhread
to

send

Handle
aid the

right

spawn

The Begin
Begin
is

provided
in the

As noted above
environment
brevity this in

wrapper
the

128

establishes

computing operate by For
the

startup

synchronization
the

executed

new

which

applications

130

thread and
the

before

TIhreadHandle
is

constructor after the

completes

computing
shall

environment

established regard to the thread another

Run

routine

executed

flhreadHandle

wrapper

128

be

called

CE
also

With

wrapper on
the

constructor

completes

The methods
the default

CopyThreadSchedule
thread schedule default

128

flhreadHandle task
of thread the the

spawns can

CE

runtime on
the in

and
30 stack

GetStackSize
size

return

and
these thread the

current instead

be spawned

task

lb provide should
and/or

values

different to

from

the

on

current

task by using
class thread

CreateThread
subclasses task
is

methods schedule following

be

overridden size

return

the

desired

methods

in

flaskHandle

and on

of not

stack

flhreadProgram

includes

flaskHandle

Creating
as general

another

methods const
text

recommended
To spawn

programming

model however
the

TmreadProgram
35 Description access via provides the

flext
description

taskDescripiion of
task that

Thsk
can be

CE

thread

on

another
is

CE

task

TCETa5kHanit

dleCreateThread Program
thread describing

method
the

used by
to

passing

Trhread-

ThskHandleGetThskDescription
if

method
con-

thread

be run does by
the of

To spawn
not operate

non-CE
in the the of has 40

Only

in effect

the

object

is

passed
is

TlaskHandle instead
the

that

is

thread

which

structor will

If default

constructor

used

interface

computing

environment method that is
to operate
is

established

the

wrapper

128
that

synthesize

unique

name

for

TraskHandle

GetTask

CreateThread flaskHandle heen
created

used

on

appropriate

subclass

Description

to return returns the this size of the
if

the

subclass the

T1askHandle

GetStackSize
for the

stack

to

be

set

up
the

with
to

other

environment
an

For

example
task

spawn

non-CE computing an IBM OS2 thread on
might use

thread Override
stack size

method

you

dont want

default

052

you

TOS2TaskHandleCreateThread
to

method
is

GetStack
is

Used
if

to

set to

It it

not

up

the

threads

stack

Override

possible this to run

run

CE

method

thread

on on

non-CE task nor

you

want

provide your
point for the

own
code
to

stack
to

possible

non-CE

thread

CE

task
the following

Run
the

represents

the entry

be run

in

thread
the

T1hreadllandle flhreadHandle

includes

methods code copyThread

OVERRIDE
is

THIS

METHOD

provide

the

thread

to

execute

const

TrhreadProgram
in the calling

Code
internal

creates

new
of
the

thread

taskmakes
which
is

an Thsk See
Classes

COPY

TmreadProgram
thread

deleted

upon

termination

of

the

FIG

for
is

class

diagram base of

of the class basic

task

classes

406
all

IThreadHandle
creates

TlhreadProgram
in the calling deleted

adoptThreadCode

new

thread
is

taskADOPTs
termination are also

TTaskHandle
55 the attributes to

concrete operations

that encapsulates

adopt-

ThreadCode

which

upon

of

the

thread

and
to

Mach task
task to

It

can be system task

The
copy

resources

owned

by

the

thread
is

discarded

used

refer

and

control

any

on

the

of

the

TThreadProgram EExecution thread

NOT

made
creates thead

flaskHandle

cannot
it

be

used have

directly

create

however because
60 object to

doesnt
It

any knowledge
sufficient

about any protocol
via

IThreadHandle handle
for the

yourself

runtime environment
protected

does

provide

calling in

methods
to

for

subclasses that

with can

specific

runtime
tasks

TStream

streams

TIhreadHandle

TIPC-

knowledge

be

created
is

spawn of such
into other

MessageStream CopyThreadSchedule
ing object to returns pointer to the

TCETaskHandle
Schedulthat for
is

below
can and
in

an

example

class and
out of

TTaskHandle

objects

only be
sent via

streamed IPC
to

e.g
schedule

TServcrSchedule
the object

TtJlSchedule
Allocates has to

etc

TlPCMessageStreams
65 they are returned

tasks and with

used

object which

memory

the the

collection control killing

associated

flhreadSchedule
caller

be disposed of by

TCETaskHandle
with

The

task

operations the

associated

flaskllandle

include

task suspending

and

Copy provided
-4

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 32 of 42

5519867
23
resuming
the

24
deathwatch
getting
its

task and methods

doing
include

on

the

task

The
and

TCETaskHandte

const

TTaslcHandle
task

aTask

creates

informational setting
its

host
ports

getting

CE

task

object

from

generic

object

registered

ports
getting

enomerating
its

its

or virtual
its

AddLibrarySearcher Searcher adds
library

const

ltibrarySearcher
for the
lib

newLib
uses the

memo

regions

fault

ports
the

enumerating methods
task

searcher to

taskloader
referneces the i.e

threads etc T1askHandle
for the

TlhskHandle

includes

following

newLibraryScarcher newLibrarySearcher
to resolve references

first is

resolve the top

EExecutionThread thread
the task

creates

handle

put

on

of

collection

used

specified

Suspend
the

suspends

i.e
the

all

threads

contained
all

by

GetTaskDescription
string
10

flext
the of
is

description the root to

const string thread

returns

task

Resume
by
the

resumes

task

i.e

threads description associated

of

taskgets
the

from passed

the to

contained
Kill task are

task
the

flhreadProgram

terminates

taskall

threads

contained

by

the

constructor
string will

The
be

string

guaranteed by
the

be
if

unique no

and

terminated performs blocks
until

synthesized

interface constructor

description

WaitForDeathOf

death the

watch
task

on

the

task
for the object

is

passed

to

the

flhreadProgram Tlnterest of every
task
is

The

calling

thread

this

terminates

NotifyupopCreation nously system
notifies the
is

notifyMe

synchro
in the task

CreateDeatbinterest

creates

notification in the

interest Tinterest

calter

new

task

creation

death
gets

of the

task

The

thread the

specified task

There

no
call

this

object the

involved of

The
the

notification

when

this
range of

terminates

from which cation
20

this

originates

receiver

notifi

AilocateMemory

size_t

howManyBytes
the

TMemorySur anonymous
space
vir-

allocates rogate newRange in teal memory anywhere desired starting size in bytes after
is

tasks
in

address

The The
Virtual

specified

howManyBytes
and
in actual

Memory
601

Classes

address allocated

page

alignment
are returned

size of the

newly

memory

newRange TMemorySurallocates reserved 25

HG
classes

is

class that

diagram

for
is

the class

virtual

memory
under
the

408 Note

TfaskHandle
has already

that represents

AllocateReservedAddressMemory

const

task TraskHandle Task
objects classes

been
virtual

discussed

rogate range TMemorySurrogate virtual memory range of anonymous
address specifies returns in the the the

newRange
at specified

406

section

For

memory
specify

operations
the of in the address virtual are

of
in

type

lTaskHandle
the operation that of that objects the
is

serve to

to

tasks

address

address

and

size

The range argument space of the request The newRange
and
size of the allocated 30

space

which

occur

Most The

memory
represented

operations as

can

be

performed

Mach

page

aligned

address

methods

T1askHandle
operate as

various

meth
take

memory
GetRemotePorts thePortSet TCollectioncRemotePortRightHandle of on this task The caller is responsible list ports
de-allocating virtual the gets for 35

ods of flaskHandle TMemorySurrogate methods
details structors that Ports the

on

virtual

memory
the for

parameters

See

various further

under number
and/or

ITaskilandle
the

description classes
It

of

memory
contain itself

have should
to

copy be

con
noted

memory

in the

returned

Collection

assignment
classes

operators

void

CreatepaultAssociationCollectiofl

memory
the actual are are

references

TCollectionCFaultAssociation
registered for
this

where retum

Fault

and not
class

memory
copied copied
class or

Therefore
only actual explicit

the memory when memory references

Thsk
is

objects

streamed not
the

the

TCETaskHandle
resents recall

subclass

of flaskHandle with
the the

that

rep

within 40

them

and

memory
methods

The
for

Mach
that that

task

executing represents

CE

ruotime system environment
the
It

TMemorySurrogate doing
copies

contains
it

CE
the

of

the

memory
is

references
that represents address

computing

established

by

wrapper
to set

knowledge can be used
into

required to
its

up

128 and embodies all environment the CE object
passing task the
is

TMemorySurrogate range
starting

class

contiguous
It

of

memory
to are

in

the size

virtual

space

has

spawn
constructot

gram
single object also

new task by The new
described

flhreadPro
created

address

and
specify to to

with

can

be used

in bytes TMemorySurrogates of memory on which certain ranges
They
are typically that associated supplied

thread passed

which
into the

is

by

TIhreadProgram There
to
is

operations as the

be performed methods
in the

TCEmskHandle
will

constructot

arguments
virtual

of flaskHandle
address

manipulate with
the

constructor

that

allow To with

TCETaskHandle
insure that

be
50 the the to

memory
class
is

space

constructed

from
task
is

T1askHandle
not

non-CE

task This with

used

to specify/supply class
itself

region of does
not

memory
any
is It

runtime
constructor

wrapped
the

TCETaskHandle
server

specific
It

size

The

allocate

consults server task

CE

loader/library in the has

that is

memory

just of
this

encapsulates the caller to

existing

memory
the actual

the

loader/library

operating

CE
been

environment
registered user

responsibility specified class
is

provide

memory
This

make
it

sure
is

the

being

wrapped

with

in

class

the argument

to the

constructor

This

done

automatically includes

without
the

any

interven

NOT
in

subclassable
is

tion TCETaskHandle
TCETaskHandle
creates

following

methods

TChunkyMemory memory
in

an

abstract

base
size

class

that
is

manages
allocated user
still

const and

flhreadProgram
thread the to

new
thread

task

execute
in

whatToRun code specified cur

chunks

of

specified

Memory
but

chunks
the

of
the

the

specified as

chunkSize
of

the

The new

executes

code

whatToRun
wraps
task of 60

views
includes

memory

series

bytes

TChunkyMemory

following

methods

TCETaskHandle
rently executing

EExecutionTask thread const

LocateChunk

size_t
looks

where
up
in the

TMemorySurrogate
collection the

TCETaskHandle
const

T1hreadProgram
and
ibrary thread

whatToRun
library-

theContainingRange and
returns in the

of chunks of
the

theContainingRange chunksize

address

Searchers
specified searchers ing

creates

new

task

to

execute
library65

memory

and

code

with the

specified
list

search

The
for

CutBackTo
taining

size_t
i.e

where
the

cuts
at

back
the

to

the

chunk where

con
will

specifies

of libraries to

be used

resolv

where
the
last

chunk
list

offset

names

become

chunk

in the

Copy provided

by

USPTO

from the PIRS

Image

Database

on

0511

5/20U8

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 33 of 42

5519867
25
AllocateMemoryChunk catedRange
is

26
theAllo
of

called

by

clients the

TMemorySurrogate to allocate new chunks
allocated

streamed
is

into

it

and

the

TiPCMessageStreamSend method
representing destination send-right

called

with an
as

object

memory

as

needed

Returns
is

range
class that

passed manages

an argument
is

To

receive

message Receive

TIPCMes
method called
the

THeapChunkyMemoly
chunky

concrete

sageStreani passing in

instantiated

and
object

its

receive-right objects

as

an argumenL
out

When
the

memory

on

heap
is

Receive
concrete class that

returns

can Note more

be

streamed
the

of

T1PC-

TvMChunkymemory
chunky

manages MessageStream
objects are

object

that

TlPCMessageStream
description of the

memory

using

virtual
is

memory
used with
It

reusable

detailed to

IPC

TMemoryRegionlnfo
regions attribute also the in

class

virtual

memory memory
etc.
It

classes 10 class
illustrates

410 follow with diagram
class classes

reference

FIG

which

illustrates

tasks

address

space

provides Protection

702

of

IPC message
802 which

classes

FIG
class

which

information access

like
to the

Inheritance

diagram

of IPC

out-of-line

memory
diagram

provides

memory
to the

object actual

associated

with region

and

PIG

illustrates

region

of

encapsulated
ryRegionlxifo defines
all

memory in the memoxyregion
is

and

memory
inside class

range

902

of

JPC

Nested

TMemo
that
15

port

right

classes

the

TMemoryAttributeBundle

the

This

is

useful

memory attributes of any memory region when one wants to get/set all the memory
to re-use

Message
is an MlPCMessage Mach IPC message It

Classes

attributes

or

memory

attributes
is

with

minimal
in the class into 20 the

abstract provides the

base
all

class the

that

represents for setting the
all

methods
array

changes TMemoryAttributeBundle
TlTaskHandle tasks lowing
address to deal

also

used

with mapping

memory

objects

tip the

fields

of

the

header

disposition
It

and

port the

space

TMemoryRegionlnfo

includes

fol

and

out-of-line for

memory

arrays

also

contains
It

methods kReadOnly
protection for the

protocol

message
protocol for

sending

and
as

receiving
protected

provides to

EMemoryProtection

kReadWrite

kEx

rudimentary
child classes

exported
tip

interface

setting

the

in-line

message

data

The

ecute

specifies

the

memory
kReadWritelnherit
attribute for the 25

classes derive

TlPCMessageStream from
data this to

and

TlPCPrimitiveMessage
the public

EMeinorylnheritance kCopylnherit
specifies

kDontlnherit
the inheritance

class and provide
the

methods
includes

for the

adding
following

message

IvllPCMessage

memory EMemoryBehavior
enceReverseSequential kReferenceSequential kRefer

methods TPortSendSideHandle
side

kReferenceRandom

specifies

how
30

GetReplyPort
valid for receive sent with after the

replyPort
port the

is

only Returns Only

reply
it

object
first

if

one
this

memory

might be referenced kCacheable
specific properties

was kMigrateable
of

message
is

returns

time

EMemoryAttribute
fies

speci might be

is

called

message

received

Otherwise

returns
is

false for that

how

machine

memory

TSecurityToken
receive side

GetSendersSecurityTokenO
the security

valid task

managed EMemoryAdvice memory
will

only Returns

token

of

the

kWillUse

kWontUse

specifies

how

sent

this

message TSecurityToken
hostSecuri
the

be used
is

SetSendersSecurityTokenconSt base
It

TMemoryObjectHandle notion of
data that class
cific

class

that represents the piece

the of

impostorSecurityTokenconstTPOrtSendRig11t8C tyPort
is is it

Mach memory
can be

object
virtual

embodies

valid

for

send
the that

side

only

The next time
security

message of
the

that

mapped

into

memory
to in order

System

servers

sent
for

will carry the task

specified actually

token send

instead

provide

TMemoryObjectHandles

clients to

will define

sub spe
the

40

one

does and

the then

Takes back

effect to the

from TMemoryObjectHandle
types

ONLY FOR THE NEXT
actual

SEND
token

reverts

of
the

memory
client of

objects general

such

as

ifies device

partitions

senders

security

value

etc main

For

virtual

memory
and
the

services various for

Methods
all

for sending/receiving

use of TMemoryObjectHandle
is

sub
data 45

these

methods

have

an

optional specify

IPC messages Note that TTime timeout value If
kPositivelnfinity All port in these

classes that

to

provide

common
into
is

type and
address class

protocol

you

dont want
replace those

timeout any

can

be

mapped

tasks
concrete

space

methods

existing that

value allow

for reply

msg
reply port

TChunkyStream

derived from random
access size

Than
stream can be
50

header port
the

For

methods of

specification as well

of
as the

domAccessStream
backed
specified

that

embodies

disposition
is

the reply

port right

by
or

chunks
default provides

of

memory used The chunks common
the If other

The

chunk can

right itself position since the

passed

via
is

be enumerated
of

object This
disposition

the
is

only only

way
valid

to

set

the

reply

port of
the

This
class

class

function

theTMemory
the of

state

for the

duration are

without
as
is

incurring

overhead
the

of

maintaining functionality

send

Objects invalid

for port

rights the

whose
takes

dispositions

MOVE

memory TMemory

contiguous
required

remaining could

become
Send
55 const

once

send

place
destinationPort
is

classes
is

be

defined
class that uses
it is

const

TPortSendSideHandle

TContiguousMemoryStream contiguous derived
operations

concrete the

TIinie

timeout
send

kPositivelnflnity

one-way

memory

supplied

by

client
all

Since

asynchronous Send
const

from

TRandomAccessStreaxn

random

access

const

TPortSendSideHandle replyPort an

destinationPort const

like

SeekO
objects

are

applicable

to

TContiguous
60

TReplyPortDisposition
kPositivelnflnity reply port
is

Tfime
send with

MemoryStream

timeout
send

asynchronous

-once

specified

InterProcess

Communication 410
that the the

IPC

Classes

Receive
const

const

TPortReceiveSideHandle8r
kPositivelnfinity
is

sourcePort

The IPC
abstraction

classes

represent
all

Mach

IPC message
is

Tfime

timeout

blocking

Note
classes the

messaging
right

behavior
are
is

on

the for as axe 65

receive SendAndReceive Port
const

message
addressing

port

classes

basically preferably objects

const

TPortSendSideHandle receivePort
sends

send
const

message

The usage
is

model

TPortReceiveSideHandle

follows

TlPCMessageStream

instantiated

TFime

timeout

kPositivelnfinity

message

Copy provided

by IJSPTO

from the PIRS

Image

Database

on

0511

5/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 34 of 42

5519867
27
blocks and
receives reply

28
port
is

reply

send-once

right

style

send

and then blocks ReplyAndReceive
reply

in

receive

to pick

up

the of

reply

constructed

from receivePort const TPortSendSideHandle receivePort

message

does and
then

server-side

send

pre
in that

SendAndReceive Port
const

send

sumably
receive destination the

message
the next

immediately
calls

blocks

TPortReceiveSideHandle receiveMsg send message
right into const

MIPC

awaiting port

request Both
port

require

Message
tiveinfinity port
is

TTime
and

timeoutkPosi
replyreply receivePort
to avoid

and

receive

be

specified

Additionally
creates receive the right

block

receive

SendAndReceive send-once
it

method
right the

automatically the supplied

send-once
is

constructed

from

appropriate

from

Message overwrite

received

new

message

object

and

passes

along

as

reply
is

port
concrete class that derives

TlPCPrimitiveMessage const TPortSendSideHandle
receivePort sends replyconst io

ReplyAndReceive ToPort
const

from
level

MlPCMessage
interface to to the the

and

provides

more

rudimentary Data
via
is is

low

TPortReceiveSideHandle
kPositivelnfinity

Mach
message

message

system

pro
and

T1ime
blocks

timeout
receives

back

reply

vided

and from There
is

header and body
capability

get

and

new message
const TPortSendSideHandle reply
15

set calls class

no streaming

This

concrete data
is

ReplyAndReceive ToPort
const

that to

represents the

Mach JPC message
by and using
passing in

In-line

TPortReceiveSidellandle receiveMsg
sends const

receivePort

added
Port

message arrays

TMemorySurrogate must be added and

MlPCMessage
kPositivelnfinity

Tlime
blocks

timeout
receives

rights

OOLdata
the

back

reply

and

extracted

explicitly

appropriate represents

methods an
out-of-line

new

message methods
for getting/setting port right fields in 20

TOutOfLineMemorySurrogate

Subclasses header

memory
uses

range

that

is

to

be
in

included
its

in

an IPC

message and and

It

Remote
specifies the

and Local
the

Ports

On SEND
port and

side

REMOTE REMOTE
to and
the

TMemorySurrogate
disposition infonnation

implementation
the in startAddress

only length

PORT

destination

LOCAL PORT
side

adds

to

specifies

reply the

port
reply

On
port

RECEIVE
port
to

information class
is

already

contained

TMemorySurrogate
except the
it

This
includes

PORT specifies LOCAL PORT
port

be

replied

the

same

as

TMemorySurrogate

specifies to

the port received
is

from The way

disposition 25

information used
the storage

when sending
associated with

message range
set/get

and This
the

was
It

or

is

be

transmitted

returned

in theDisposi-

may
class

represent includes

the to

tion

RECEIVE

values MACH_MSG_TYPE_MOVE_ MOVE_SEND_ONCE MOVE_SEND MAKE_SEND MAKE_SEND_ COPY_SEND can have

streaming operators
to set/get

methods

range

and

methods

disposition

information

ONCE
GetRemotePort
the disposition pass in the

Port

Rights
all all

remote

port right

and

specify

30

The

following
port rights

classes

represent classes

the share port

valid the right

types

of

PORT RIGHT
to the

methods sender Works on
is

Mach
giving

These
In

following object
is

MovePortRightDescriptor
right destination

away

the

port

general

behaviors
it

general
the port

when
kernels
right

Send

SendOnce

and
35

instantiated that right

increments

reference
is

count
destroyed

for
it

and
the

when
kernels

Receive

object

rights sender
is

decrements
creating

CopyPortSendRightDescriptor of
the

copy note
that right port right entities objects copies objects

port right reference are handles

count

However
kernel there right that the

send

right

at

the

destination

objects

for the in

real
case

MakePortSendRightDescriptor
created at the destination

new

send

right

will

be

port

They
that are

can

be copied
to the

which
kernel

may new
that
is

be two These
all

refer

same

port so

MakePortSendOnceRightDescriptor
right will

send

once

40

entity

reference to

counted

internally are

be

created

at

the
is

destination concrete abstraction class provides the

when

the

that refer reference

port tight
is

deleted

kernels

TlPCMessageStream stream-based

port right

count

decremented

When
port
it

IPC messaging
to

This
It

recom
from send
data 45

port

right

becomes
to is

dead

name
attempts

i.e
to

when

the

mended

class

be used

for

IPC

operations

derives

belonged

destroyed
object like will

use methods

on

the

MlPCMessageDescriptor

and

from

TStream
streams

To

representative those valid

throw
the

an

exception

excluding
that are

message
to

user

of

TlPCMessageStream
port-rights

in the

operations on dead

setting

reference

counts

be sent

including

TPortRightHandle

deriva

names
is

tives

out-of-line

memory
or
all

regions

TOutOfLineMemory
the 50 to

TPortRightHandle
notion of

an
It

abstract contains

base
all

class the

that represents

Surrogate
objects or data set

port-right

arrays of

TPortRightHandleAxray these and any
other object

port right of port

protocol the see

common
port
if

containing type

any

each

type

right

such

as

getting testing to

name
port as to

desired

TlPCMessageStream
data structures

will

automati

requesting right
is

dead dead

name

notification

the

cally port

up

the appropriate arrays put

for the port rights in the so

name

etc type
servers

The
and
not

port
is

name

is

returned as the to

right

and
place

out-of-line holder out

memory
in the the the

message
that these appro55

header elements
priate

and

stream

mach_port_name_t interact with Mach wrappers
generic
It

provided

way

written

using

object allow

will

be

streamed stream
sent using

of

message
data has

in the

also

serves

as

common
all

super

class to

place

in the
is

Once
the

been

streamed
the

type

representing

types

of

ports

be

passed

in the message
appropriate optionally

Send

method supplying
the

polymorphically Handle ods
60 for derive

TPortSenderHandle
these classes

and
class

TPortReceiver
includes

destination reply

port

right receive

TPortSenderHandle message
right

and Receive

from

This
class

meth
that

port

To

streaming
it

support

lhis

and

any
of the

classes

method

is

called the then

supplying port to

receive

TPortReceiverdata just

contain

can

only class

be streamed Attempting an

into to

or out

TIPCMes
any
other

Handle
received

for

be

received Out of the provides receive

from The

sageStream TStream

stream
at

into

can

streamed

TlPCMessageStream two methods
for to 65

will

throw methods

exception requesting that the

runtime
notifications
is

Getters

TlPCMessageStream doing provide combined send

also

Setters

and

for right

Must
be
sent

and

operation designed
transmission in the semantics

provide to

send-once

notification passing right

to

commonly-used
take

message of
fast-paths

MAKE
right

send-once

right

by

and

to

advantage

Mach

micro-

receive

MOVE

send-once

by reference by ADOPTING

kernel

SendAndReceive

does

client-side

synchronous-

send-once

tight

Copy provided

by

USPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 35 of 42

5519867
29
TPortSenderHandle
that port right that
is

30
class sent that represents

an

abstract

any
is

TPortSetflandle

represents

port

set the

It

has methods

for

an

IPC message

can be

to

E.g

this

the

adding Handle
the port

removing
objects set If
it

and enumerating
the getting
is

TPortReceiveRight
rights setting contained
its

takes as the destination MlPCMessageSend type and TPort The classes TPortSendRightHandle reply ports

and

representing for

receive

in

methods

and

make send
default If
it is

SendOnceRightHafldle
includes setters

derive

from

this

class

This

class

count

etc

TPortSetHandle
causes the set set
is

instantiated to

with

methods

for

streaming support

and

Getters

and

constructor instantiated

port

set

be an

created
alias
is

using port port

copy

constructor the
it last

created

for

TPortSendRightHandle
supports
all

represents operations that

port

send

right

It

the

same

When

object the

representing port set

the
It

typical
is

can be performed
valid into

on
10

particular class

deleted

destroys

This

send

right

created

by

passing

TPortReceivthe

cannot

be streamed
is

eRightHandle
tor class

or

TPortSendRightHandle
it

construc TportRightHandleArray This an
array descriptor reference right in the

concrete

class as

that represents

or by

streaming

out of
that

TlpCMessageStreanl
create affecting

of
in

port

rights

that

can
It

be

sent contain right

an

out-of-line port to

includes

methods
object

an

empty
kernel

TPortSend and

an

IPC message
of to the target

can

any kind of

RightHandle counts
current

without
that for

the

the

disposition

the

port
is

i.e how
for

it is

constructors

create

new

Send

Right and

be
Getters

transferred in the that

task

specified

each
of

port port

task

methods

Streaming

Support

right rights

array

This
sent as

class

implements
out-of-line

an

array in

and

setters represents typical right
It

can be

an

descriptor out-of-line

an

IPC

TportSendOnceRightllandle
right
It

port

send-once can be
20

message This ods
to class

along

with

port

rights for

and

supports

all

the

operations
is

that

includes

methods
to the

Streaming

memory Meth Support
and Methods

performed
valid

on

send-once

created the

by

passing or

to

add elements elements

array the

SEND SIDE
array

TPortRecieveRightHandle
it

into

constructor

by

remove

from

RECEIVE
class
It

SIDE
that not not
is

streaming
is

out

of

TlPCMessageStream
of this class attempts

When
the to this the

message
right will to

TRemotePortRightHandle
refer to the port usual to right port in

is

concrete

used

sent

to

an
all

object

making
to In

send-once
object object

another

task

does
it is

contain

invalid

subsequent
to

send

most of
will the for class 25 to of

right those

methods
types

since

intended
to

cause be

an

exception as

be thrown and

addition to

be used

marked
will

invalid

attempts to

use methods thrown

perform
or

of

functions port

but merely
right

act as ing

name
class

handle

for the

remote
create

Construct only task

object

also

cause

exceptions the that

be

except This

this

DOES
right

NOT
that

port exists in

rightit
another

methods
includes

for

initializing

object
create

obviously

Constructors object right

Handle

without on
the

Constructors

that

prt5endOnceRightnew Send create
for

represents

port

already

Wait
30

Once

current

task
setters

methods

Streaming

Groups
are classes to that for provide for

Support

and

Getters

and

MWaltable
class that represents

and TWaitGroup and
the

TPortReceiverHandle any
port this right
is

is

an

abstract

E.g
the

port

to

from IPC message can be received as takes that MlPCMessageReceive the type The classes TportRightReceivereceive from
that

message one
is

dispatching

ability
at

wait

more

than

an

type class

of message
that provides

source
the

the

same
to set

time TWaltGroup up
collection thread front

of use
the

ability

35

objects the

derived

from MWaitable
to
It

such

that

can of

Handle
class

and

TPortSetHandle methods
for

derive

from

this

class

This
Getters

Walt

method
objects received

receive also

message
for

any

includes setters

Streaming

Support

and

MWaitable
ing

provides

automatic

dispatch
are are

and

of

the

message
task there to so

Multi-Walt
receive

Operations

TPortReceiveRightHandle
It

represents operations as that

port receive

right 40

called multi

repeatedly thread safe

by

messages
than

They one

supports

all

the

typical

can

be performed

can
class the

be

more
includes

thread for

on

receive

right setting

such and

requesting the

no-more-senders

servicing

messages
the

This

methods

notification

getting

ports

maximum
its is

mes

manipulating

members of
returns
is

TWaitGroup For example
of MWaitables
that in this

sage

size

and queue
If

length

getting

and

setting

make-send
instantiated
it

GetListOfWaitables group
45 port
It

list

MWaltable

an

abstract

base

class

associates

count other
port

etc than

TPortReceiveRightHandle
the null to or

with an

internal

hatidler

method
class

HandlelPCMessage
for collecting together classes

with

copy

constructors

causes

also the

provides

common
class

base

and

receive another

right object

be

created
alias that

The copy
references

constructor via the

TWaitGroup on Receive

Receive

Rights

and

other

creates receive

an
last

same

based

Rights
is

right that

These

objects

are internally object
it

reference

counted
particular right to that class the
is

convenience

class

such
receive the to

when
is

the

referencing the receive rights concrete definition receive
is

right
it

destroyed

destroys
all

and
port that

that 50

derives
It

from
is

both
abstract

TportReceiveRightHandle base
to class

and can

MWaltable
be added
to

an

whose
for

subclasses

port

represents

causing This

extant
is

TWaltGroup

provide
with

multi-wait/dis

become

dead

names
receive
is

class

represents kernel port

port entity

right

By

actual

patching classes 55

of

Mach

message

IPC

other

MWaltable

sub

created

when
right

right

created
this

and
class
is

destroyed
is

when

receive

destroyed of
the

Since receive of

Synchronization
right

Classes

handle
necessarily

creation tied to

and

destruction

not

creation

and
the right

deletion default

TPor

HG
classes services 60 classes tions services

10

is

class

diagram
are

1002
to

of

the the the

synchronization synchronization synchronization

tReceiveRightHandle does not
actually class

For example
create includes receive

constructor

412
of 412

which

used

invoke above and
that

but
that

just create

an

empty TPorport or

Mach As
employ

discussed

object

This

Constructors

semaphores
is

monitors provides

and
the

condi
general

tReceiveRightHandle
affecting ate the kernel

object reference

without counts Ports

creating Constructors

TSemaphore
of
if

class

that to

cre an

counting other

semaphore
task already

When
has

acquiring the

new

Receive

Rights

and

methods
receive

make
right

phore phore
65
if

some

acquired

sema sema

uninitialized therefore Right/Port

object

valid

creating

and
and

the

calling

thread
is

blocks
for the

no
some

exception reason an

thrown But
exception
is

port

Streaming process Getters methods manipulation
in the requesting notifications

Support and

Receive

the

semaphore This

invalid includes the

thrown

class

following

methods

setters

Acquire

acquire

semaphore

in exclusive

mode

Methods

for

Copy provided

by LJSPTO

from the PIRS

Image

Database

on

05115120118

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 36 of 42

5519867
31
Acquire semaphore const

32
acquire the

flime
acquire

maximumWait
with

TMonitorLock monitor
It is

is

class into the to

that

represents

lock

on

in exclusive

mode
the

time-out
in shared

passed which

constructors indicate

for TMonitorllntry

AcquireShared AcquireShared
the

semaphore

mode
acquire

and TMonitorCondition
aquired or to

which
is

monitor
to

is

being

monitor Scheduling

condition

be

associated

const
in shared

flime
mode
previously returns

maximumWait
time-out
acquired true
if

semaphore Release

with

Classes

release

the

semaphore
the

FIG
414

11

is

class are

diagram
to

1102

of

the

scheduling

classes of

AnyThreadsWaiting
currently has threads waiting
is

semaphore

which

used

invoke

the

scheduling

services

to

acquire that in

it counting or shared 10

Mach
flhreadSchedule
the scheduling default
is

TLocalSemaphore semaphore
that

class acquired

concrete

base
It

class defines

that the

embodies threads
the set

represents

can

be

an

exclusive

behavior and
the

of

thread

mode The
optional operation

major

operations value

are

acquire specified
if

and on

release the

An

actual priority

maximum
the

priorities

The

lower

time-out

can
spent

be

acquire class

value

greater

urgency

Each

processor

to limit the

time

waiting

desired This
only

has

collection thread

of enabled

flhreadSchedules

and

default that
is

mplements
within tics task

local

semaphores space

which

may
no

be

used

one
15

may be may be
Specific

assigned set

any flhreadSchedule on which
the the thread
is

address

and have

recovery

seman

enabled

on

the

processor

running by dis

The

priority

TrhreadSchedule
is

set up to but use of

maximum
feature classes avallable are

value
is

defined

this

strongly

TRecoverableSemaphoreHandle semaphore
additional Recoverability that

class

that

represents

couraged
20

scheduling

TldleSchedule using
this class functions of
this

behaves
that that

like the

TLocalSemaphore semaphore
thread counts
is

with

the

TServerSchdule
the

property

recoverable
the

base

etc are made However since there
derived classes are

as

no pure be

virtual

means

when
the

holding are

sema

in this class

class
if

free to create not

objects to are

phore any
tion

terminates

abnormally
are

adjusted and

necessary

but
objects

it

may
for

required

do

so
to

waiting is raised

threads in

appropriately thread

unblocked
indicating that

each

such and

An excep the sema
user of 25

TrhreadSchedule
specify sented priority scheduling

using polymorphism
threads to

used

policy

The

subclasses the

pre

phore
data

was recovered

the

inlegrity for

of any

associated termination shared

below

should

be

used

determine

appropriate

may be suspect Note
that

that the

abnormal
in

and proper range
is

thread

had

acquired

semaphore
in other

fashion
since the

TldleThreadSchedule Schedule
is

concrete that are to

subclass

of

flhread
the

no

exceptions data

need
should

be

raised only
still

threads

for those

threads

run

when
in the

system

associated

have be

been
in

accessed
consistent

in state

read This
30

idle

They

only run
in

when

nothing

else

system can timing

only
class

fashion includes

and
the

should

run This category
maintenance
or

general would be used
threads subclass

for idle

following

methods
collection

diagnostic
is

GetCurrentHolders
threads

returns

of

the

current ule

TServerSchedule
for server are

concrete

of

TmreadSched
very

threads expected
that

Server
to

threads for

must be
short

respon
then

holding

the

semaphore of
the

SetRecovered removing Destroy system TMonitorEntry times
called for
this

sets state

semaphore
state

to

recovered

sive They block
helper

execute

time and
of

For

services

take

an

appreciable kind of

amount

time

previous

damaged
the

tasks

with

different

TThreadSchedule

removes

recoverable

semaphore

from

the

TSupportSchedule

should

be used
is

TUserlnterfaceSchedule
is

concrete tasks

subclass that

of be

class

that

represents

the

lock

some
40 to

TThreadSchedule
responsive

for those

application applications time

should

mutex
class the to If

associated actually

with
the

monitor monitor

The con
lock

and

handle run
for

the

human
block

interface until the

structor

causes the

be

They next

typically interaction

short

and then

acquired
the

and

act of exiting

local the

scope

which

causes to

destructor

be

called
task the

causes
is

monitor lock
in the

be
the 45

TApplicationSchedule
that support run

is

class

used

with

those parts

threads

relinquished
thread

another to enter

already

monitor

an
for or

applications appreciable
is

longer

running
of

Such an asso

attempting

monitor
until the

will

be blocked

in the

threads application ciated

amounts
the so that

time

When
in the

TMonitorEntry
leave delete the

constructor

preceding
operators

threads

window

activated

threads the

monitor

This

class that

includes

new and
can
only

task

become

more urgent

threads

become

which on
the

are private the

so

TMonitorEntry automatic
acquire

be and
50

more responsive
TpseudoRealTimeThreadSchedule
tasks class to specify setting the their relative their level of
is

allocated exit

stack

thus

providing lock

entry

class in the

that fixed task

allows priority

and

associated

monitor
exit
is

and

release

urgency
its

with scope

entry

and

by

within levels
is

range
are

The

schedule

TMonitorCondition
variable operations tion causes that are the
is

class with

that

represents

condition exports

number
level If

that

allowable that

and cause
will

the the

associated

some

monitor

The major
wait

default value

base
to

level the

requested range

would

wait
current

notify thread thread

and broadcast
to
is

The

opera
to

be This

outside class

class the

an

exception

be

wait

for the the

condition

be
is

thrown

includes

following Set

methods
the level

notified

and

while Notify the

the

blocked
are

monitor lock by

SetLevel task
all

PriorityLevels

theLevel

of

the

relinquished executing
of the

and

broadcast

called

thread

lower

number

is

more urgent
Return
object the

inside

monitor on
the

to indicate condition

that either

one

or

threads the

waiting

should
thread

be unblocked
the

RetumNumberOfLevels
of 60

number of

levels

when
tor

notifying waiting

or broadcasting
thread
is

exits
it

moni
to of the

urgency

for this scheduling

When
the

unblocked
at

attempts in the case in

ReturnDefaultLevel urgency
relative for to the this scheduling

Return
object classs

the

default default

level level

of
is

reaquire

monitor lock
at

one

thread
it

time

The

broadcast monitor
the tion

which

point

resumes can be

executing specified than

scheduling

most urgent

priority

An

optional waiting

time-out for
all

value

to limit construc65

Fault

Classes

time and

spent

condition methods
within the

Other

destruction called only

of

TMonitorConditiOn

FIGS 1220

12

13 1402

14

and

15

present

class

diagrams

1202
which

must be

from

monitor

1302

and 1502

of

the

fault classes

416

Copy provided

by

uSPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 37 of 42

5519867
33
are that

34
of

used

to

invoke

the fault services

Mach

For

the

classes

TMC68OXOCPUFau1tState
fault state available for
all

which

encapsulates

the

68K

represent

fault

messages

for

example

TlPCldentity

68K

states

FaultMessage
sary to dedicate

TlPCldentityFaultMessage
single ensure port for

etc
message

it

is

neces
is

each

type That
will

Host and

Processor

Set

Classes

the user received Preferbly set

should on

that only port that

one type of message
is

be

any given each

used

for fault

handling

FIG 418

16

is

class also

diagram
called

1602

for the host

machine and

classes set the

the

fault classes for

416

which

are

herein

the

include

processor to

processor-specific that the operating

of

classes runs

processor

106
the

classes services

The machine
related to

classes

418

are

used and

invoke

system 114
include

on

Alternatively classes

fault classes

414

may
10

Machs
is

machine

multiprocessor

generally

generic

which

apply

to

multiple are

support TprivilegedHostHandle
the host holder privileged port
is

processors
sented herein

The

Motorola-68000-specific

classes

pre
to

concrete host

class

that

embodies
privileged

for illustrative in the relevant

purposes
art wifi classes

and
find

is

not
it

limiting

port the

to the of

kernels

object

The

Persons
generate

skilled

apparent processors

root

Machs
host

processor

management
access to

The
port

processor-specific

for

other

of

the

privileged

port

can

get

any

based

on

the

teachings
is

contained

herein
15

on
the

the

system
is

The

basic

privilege

mechanism

provided
to the

by

TFault1pe
It It is

an

abstract

base
the

class

that represents fault

fault

kernel

restriction

of

privileged the

operations integrity

tasks

subclassed

to

provide by

processor-unique

values

holding

control

ports Therefore
close class the

of

system port
host

identifies classes

the fault are

processor

and

fault

id

The

following

depends
Objects

on
of

the
this

holding

of

this

privileged information the

host

three

subclasses

of TFaultType
represents fault the possible type

can
system

get

boot

and

lMC6SOXOFault1pe Motorola 68K processor
values

on
20 type

statistics cessor ate the

reboot

enumerate

privileged

It

identifies

68K

sets

communicate

with non-CE

entities

and

pro enumer

and

CPU

descriptor represents

processors
is

TMC68OXOBadAccessFaultType 68K processor on Motorola type

bad

access

THostHandie embodies
the

non-privileged port to the

concrete host

class

that

name

kernels

object and

Objects the get

TMC68OXOAddressFault11pe represents 68K processor Motorola error type on
TFaultDesignation nation
for the
is

an

address

25

of

this

class

can

return set

some
Objects

host

information
this

return to

default

processor

of

class

are

useful

class

that

encapsulates

the

desti

information

from

the host

such
size

as kernel

version

maximum
but

format
the

for

fault

message
be on
sent

and
for

the

types task

of faults or

number cause
30 access leged

of any
to

CPUs memory
damage
objects to the

CPU
rather

type

etc
the

cannot

which
class

message you of
sent

should
to specify

thread
that fault right

host Users

should

be

provided privi

of

this class

than

highly

This

allows

task type

or thread

basis

TPrivilegedHostHandle
is

objects class representing

the fault types

message be

the requested to the port

for the

specified the

should

indicated set

by
fault

send

TProcessorHandle cessor
processor

concrete

pro
to

can

be

started return controls
is

exited

added

TFault1peSet TFaultData by
the kernel fault
is

encapsulates class that

of

types provided
all

TPrivilegedProcessorSetllandle encapsulates processor
is

information

and be

fault data state

sent

implementation-dependent

in addition

to the fault

Not
in

faults fault TPrivilegedProcessorSetflandle viding the protocol for enable processor concrete class

have

data
is

The
available

data the

provided
state

the

pro
set

set control scheduling set

port

Objects

message

and

from
class

thread

of
is

this class

can

and

disable

policies

TlPCFaultMessage message
the sent
It is

that behalf

encapsulates

the

fault the 40

maximum

priority

for the

processor

return

statistics

by

the

kernel

on

of

the to

thread the

that got

and information
threads

enumerate
to the

the tasks processor

and threads and
set Client

assign to the

Fault

used

to receive are

and

reply

Fault

Three
kinds objects

and of

tasks

access

subclasses

below
that

provided
sent

for the the

three fault of

possible

this class processors

should and
is

be
the

of

data

might be
include state

with

message
faulting

The
task

highiy

restricted set class Objects

to protect

individual

processor concrete

message

may

the

identification the faulting

the

TProcessorSetHandle of thread
or

providing

the class

and thread information
Fault the

or the

both

sets of the

45 protocol for processor set

name port
about

of

this

TlPCldentityFaultMessage
containing
is

encapsulates of the thread to Fault the

message Fault
It

the to

identity

that got

can

return

basic

information in the

the

processor

set

the
they

used

receive

and

reply the that

Fault

number

of

processors

processor processor

set

etc

but

cannot cause TlPCStateFaultMessage
containing
is

encapsulates state

message Fault
It

any damage

to the

set

the to

thread

of

the to

thread the

got

the

50

Implementation

of Wrapper

Methods

used

receive

and

reply

Fault
the Fault

TIPCStateAndI message
that got

dentityFaultMessage
taining the
It is

encapsulates state

con
the

As noted
interface the are

above
of been
the

the

Mach

and

the

Mach

procedural

thread

and

identity

of

the thread to the

well-known

The wrapper
of
the

class

library class detail

402

and

Fault

used

to receive
is

and

reply

Fault
the

operation

methods and

wrapper
in the

library

flhreadState
state

an

abstract

class

that

represents the class

CPU
work
will
at

ss

402

have

defined

described defined

above
class

of

thread forms
in the

Subclasses
is

actually

define in the for

processor All state

Implementation
library

of

the

methods

by

vrapper

specific
is

There
derived

no information
All

402

is

described the
art

below
class
it

by
library

considering

selected skilled other the

done

classes

queries

CPU
to

methods

from

wrapper
will find

402 Persons
implement 402
the

return

TMC68OXOState
to are the correct

pointer

which

has

be

cast

in the relevant 60

apparent

to

the

runtime
classes the

derived

class

object

Derived
as

sub

methods well-known
regarding

of

the

wrapper

class

library

based

on

specific

to particular in

processors

such and

many of
are

specification the

of

the

Mach

discussion the

above

subclasses

shown
the

FIGS

12

13 14
line of

15 which

wrapper
the

class

library

402

and
the

discussion

dependent
subclasses class

on

Motorola

68xxx

processors
is

Such

below

regarding

implementation of of
the

wrapper

meth
the in
is

include

TMC68OXOState
the

which
state

concrete 65

ods The

implementation
class of

kill
classes

method 404
is

from

that represents include

680x0

CPU
for

of

thread Other encapsu and

flhreadHandle

the

thread routine

shown

examples
lates the

TMC68OXOCPUState
state available
all

which

Code Example
shown
in

below

called

examplel

CPU

68K

states

Code Example

below

The examplel

routine

Copy

provided

by

USPTO

from the PIRS

Image

Database

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 38 of 42

5519867
35
includes

36
which
causes the

decomposition
to

statement

kill

THROW TRY CATCH
C-i-i-

and you

ENDTRY
to

are

part catch

of

the
C-i-i-

method

be executed

language

that

allow

throw

and

exceptions

The implementation of
Copyright
void Taligent

the

GetLevel
class

method of
the

from

the

Inc

1993 aThread

TPseudoRealTimeThreadSchedule
classes

scheduling

examplelTThreadHsasdlc

414

is

shown
is

in

TRY
aThread

called

example3
routine the causes

shown

below routine Code Example below The in Code Example
decomposition method
to statement

example3
aThread.KillQ
I/terminates isnmcdiatly

includes

which
10

GetLevel

be executed

CATClTKcrnclException
void

example3TPseudoRealTimeThreadSchcdulc

aSchedale

ptintfCCouldnt
II

kill trying

thcead\n
to
kill

error

occored

PsiorityLevels carPriority

curPsiority aschcdule.CletLevel current priority

ENDTRY
II

I/Get
II

threads

CODE EXAMPLE
void

CODE EXAMPLE
PriorityLevela

TThreadl-iandleKill

TPseudoRealTimoThreadScheduleGetLnvel

kern_yeturn......t

error

stroct

iferror threail_terminstefmreadControlPort TF1ROWrKernelException
II

20

KERN_SUCCESS
Error indicator

ad
void

task_thread_ached_info
sched info achcdlnfoPtr

aehedlnfo schedinfo
returnedSize

mach_msg_type_nutuhcr_t retumcdSize
thread_info tizenf

tehedlnfo

CODE EXAMPLE
25

frhccadControlPort
schedlnfoPtr

THREAD_SCHED_INFO
rctomcdSize
return

Where
fThreadControlPort flhreadHandle
port for the class thread the
is

achedlnfo.cur_prioiity

an

instance the

variable

of

the

CODE EXAMPLE

that

contains

Mach

thread

control

class
is

represents C-iigets exception class that
is

Where
30

TKernelException thrown

the

fthreadControlPort

is

an

instance class thread

variable
It

of

the the

TPseu Mach
is

when

kernel

routine

an

error are part catch

doRealTimeThreadSchedule of
the thread control port of the

contains

THROW
C-i-i-

TRY

CATCH
allow

and you

ENDTRY
to

for

which

the

class

language

that

throw

and

schedule

exceptions

The implementation
of
the task

of

the

GetKernelVersion
the

method 418
is

The

implementation
class

suspend
classes

method
is

from
in

the

from

the

THostHandle
in

class

of

machine

classes routine

TTaskHandle

of the

406

shown

Code
in

shown

Code
is

Example
in

below

called

routine called is shown below example2 Example Code Example below The exarnple2 routine includes

example4 example4
which
40 causes

shown

Code

Example decomposition

below

The

routine the

includes

statement to

decomposition method
to

statement

which

causes

the

suspend

GetKernelVersion

method

he

executed

be executed

void void

cxamplc4THostHandle

sHort

example2TTaakHandle

aTask kernel_vecaion_t version

TRY
45 aTask$uspendQ
II

aHost.GctKernelVcrsion
II

veraion
of kernel currently

suspend

all

threads

on

task

aTask II

get

veraion

mnning

CATCnrKemelExceplion

CODE EXAMPLE
void

printfCouldnt

suspend

threads\n

II

error

occured

TlloatliandleGetKernctVeraion 50

kernel_vcraion_t

theVeraion

ENDTRY
II

void

laost_kernel_vecaionfHostPnrt

thaVeraion

CODE EXAMPLE
void

CODE EXAMPLE

TraskEandleSospend
ss kem_retum_t iferror taak_suspendfraskControlPort TuRowcrKernelException
error

Where
fHostPortis

an
the

instance

variable control

of

the

THostHandleclass
the class

KERN_SUCCESS
I/Error indicator

that

contains

Mach

host

port for the host

represents

The implementation of CODE EXAMPLE
60

the

letMakeSendCount
class

method
classes called

from 410

the
is

TPortReceiveRightHandle
in
is

of

the

1PC

shown

Where
ITaskControlPort flaskHandle
port for the class task the
is

exampleS
an
instance the variable of the

Code Example 10 below shown in Code Example
includes

routine

below

The

exampleS
which
os causes

routine the evident the

decomposition method

statement to

that class
is

contains

Mach

thread

control

GetMakeSendCount
by
its

be

represents the

executed method
associated

As

name
to

TKernelException thrown

C-Hgets

exception

class

that

is

accesses

Mach

GetMakesendCount make send count retrieve
the

when

kernel

routine

an

errot

with

port

The GetMakeSendCount

method

Copy provided

by

USPTO

from the PIRS

Image

Database

on

05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 39 of 42

5519867
37
includes statement
is

38
mach_porLget_attributes system
In call that object-oriented object-oriented class library

corresponding

to

said

to

call

statements
object-oriented thread

and
class library including object-

which
returns

Mach
ffheThsk

procedurally-Oriented

status

information
is

about
instance that

port
variable

CountO
of
the

an

GetMakeSend of the TPortRe
control port instance that

means
oriented

in said

object-oriented

classes to access

for enabling said services to

said to

ceiveRightllandle associated

object

contains

the

task
is

application

spawn
of

task

and

ffhePortName

an

control execution

and

obtain

information

relating

thread

variable tains the

of

the

TPortReceiveRightHafldIe
right

object represented

con
the

port

name

of

the

port

by

The
comprise
10

apparatus
first

of

claim

wherein
class

said

thread

classes

TportReceiveRightflandle

object

object-oriented to create

encapsulating

infor
said

mation
first

necessary

new
base
said task of to

thread

of execution second
to

class

being an
class for

abstract enabling

class

and

object-

exarnples

PortReceiveB4gbtHand1

aReceiveRight oriented

application passing

spawn of and

new
said for

unsigned
count

long count aReceiveRight.GetMakeS511dC0tO
15

thread
first

of
class

execution to said

on
instance

by

subclass class

an

said

second

enabling

application existing

terminate suspend
of

resume and
second
run-time class

CODE EXAMPLE
unsigned long
II

schedule having
cessing theinfo
status info

an

thread

execution

said

instances entities

said in said

instances

representing

pro

computer wherein
said object-oriented classes for

snach_porLStfltuS_t

port

returned theSize
II

by

Mach
20 class

The

apparatus

of claim

rnacang_iype_number_-t

size

of info

library said said

comprises
application services to

object-oriented to access in

task

returned

by

enabling

an

object-oriented

void

InachporLget_attributestTheThsk

ffhePortNanie

manner
task

reference

and

control

task

said

MACH_PORF_RECEWE_STATUS
thelnfo

representing

an execution
associated

environment with
said

for at least

one

theSize
10

thread 25

of

execution apparatus
first

task
said task classes

returntheTnfo.rnpS_mSc0un

CODE EXAMPLE
Variations

The
comprise

of claim
task

wherein

_________
present relevant invention
art

object-oriented

class

encapsulating said
first

on

the in the

will

be
the

obvious
discussion the

to

attributes class
cific

and

operations protected

of an

existing to class

task

task

persons contained
invention

skilled

based
the

on

including subclasses

methods
first

enable run-time
to

herein
includes

For

example system
to access

scope

of of

present 30

of

said

task

spawn
said
first

spe new tasks
task to class

and
in

method

enabling

The
comprises

apparatus

of claim
for enabling task

wherein
said to

procedural
object-oriented oriented tion tion in

application

procedural

manner
native

an

methods

application

deter

operating during

system
run-time

having
execution

object

mine whether
said existing

possible

exists said

suspend

and resume
to receive

interface

of

the

applica inven

task

to terminate

existing to said

task

computer

This embodiment by
locating accesses translating function object-oriented to
is

of
in

the the

present

predetermined
35 identify thread

information of

relating

existing

task

to

preferably

operates

application

execution

contained virtual

in said existing

task
in

procedural the operating to

statement

which and

service the

provided

by

and an

to

performpredeterlflilled

memory
existing said

operations

system
object-oriented the native

procedural

state

ment

an

call

i.e method
of the

com
oper

address

space
apparatus

associated

with

said

task

The
class 40

of claim an

wherein
object-oriented

object-oriented thread class of for

patible ating

with

interface the procedural

system and corresponding
object-oriented function the operating
call

statement computer
the service

library said

comprises
application classes class

The

executed
to

in the

enabling

to further

create

new

thread

execu
objectfor

to thereby

cause
of the

system While been

provide

tion

said

task task said

comprising from spawn of
to said
first

second
task

on behalf
the present

application

various

embodiments

of

oriented enabling task 45

derived to thread class

class

invention that

have
they

described

above
by
the

it

should

application single

new
execution

run-time

specific

be

understood only
the

have

been

presented

way

of and

having of
said

by of

passing said

an

example scope of be
the

and

not

limitation

Thus
not

breadth

instance task class

thread

an

instance

second

of

present

invention

should

be

limited but

above-described
only in

exemplary with

embodiments
the following

by any should and

The
class classes

apparatus

of claim

wherein

said

object-oriented synchronization

defined

accordance

claims

library

comprises
said said

object-oriented application to to

their

for enabling

access

in

an

objectof

equivalents
is

What

claimed

is
for enabling including

so

oriented said

manner
of

services

synchronize

execution

An
tion
to ing said access

apparatus application in

an

object-oriented

applica statements operat
said

thread

execution
of

object-oriented

The
classes the 55

apparatus

claim

wherein
for

said

synchronization in synchronizing said

an by

object-oriented use

manner
object-oriented including logic

procedural

define

counting

semaphores
thread of

use

system

of

said

statements
procedural

execution
classes to

of

said

execution
for said

synchroni
said

functions zation cation in to access

system saved
said

providing as executable said

services

program
apparatus

that

are

called

acquire

comprising methods one or more of

enabling

appli

counting and

semaphores
said are

services

comprising

an

exclusive

mode

or in after

shared said

mode
counting

to release

computer

counting component
stored in said in said said

semaphores

semaphores

memory
code

computer

acquired

library

memory

component
program

60

The
semaphores

apparatus are

of

claim

wherein

said

counting

comprising means
logic in

for storing

executable

recoverable of claim wherein
for said

an

object-oriented said

class

library application said

and

means
said

for

10 The
tion said 65 classes thread

synchroniza

apparatus define of

interfacing cedural grain

object-oriented

to

pro
pro-

monitor lock
said

use

in synchronizing classes to acquire

operating

system

utilizing

executable

execution

synchronization said application to
is

corn and

logic
in said

prising release condition

methods
said

for enabling

means
oriented

computer by

for

processing

said

monitor
said

lock

and

block acquired

on
said

specified

objectsaid

statements

executing

methods

from

once

monitor lock

applica

Copy provided

by

USPTO

from the PIRS

Image

Database

on

0511

51200U

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 40 of 42

5519867
39
tion releasing said

40
when
and
said said application application

monitor

lock

22 The
comprise
identifying fault

apparatus

of claim

21

wherein

said

fault classes information

blocks
is

on

said

specified

condition of

after said specified

an

object-oriented destination said said

class

encapsulating fault class

unblocked
application

due

to

satisfaction said

condition resum-

port

message

format

and

said ing

reacquiring

monitor lock

hefore

types

object-oriented application to

comprising
said fault

methods port and system
to for to

for enabling

specify said

destination

execution

11 The
zation

apparatus further

of

claim

10

wherein

said said for synchronisaid

fault

message

format

and

types

enabling

said

application in said

to instruct specified port

said

operating

classes to

comprise
broadcast said

methods

enabling

send
said of said
to

application

perform

operation has

on

messages

fault

message
specified

format
fault

said

specified specified

destination

when 19

said

types

blocking

condition said

when

application

acquired
all

occur

monitor lock
threads

broadcast that

operation are

unblocking on
said

23 The
comprise
for obtaining

apparatus
first

of claim

wherein
class

said

fault

classes

of

execution

blocked

specified

object-oriented returning

comprising
state

methods
thread

blocking

condition
apparatus

and

processing

of

said

12 The
class for

of claim

wherein

said

object-oriented classes
15

of

execution

library enabling said

comprises
said

object-oriented to access in

scheduling

24 The
comprise
enabling

apparatus

of claim
object-oriented to

23

wherein
class

said

fault classes

application to

an

object-oriented of said thread of

second
said to

having

methods and

for to

manner

services

schedule

execution

application fault

receive

fault said

messages
fault task

execution

respond
apparatus

received information faulting

messages

messages and
said

13
uling

The

of claim 12
scheduling associated

in

which

an and

actual

sched-

comprising
faulting 20 tion thread of

identifying thread

faulting

priority

default are

priority

maximum
said priorifor

tasks

of execution

and/or said

inforina
faulting said

scheduling scheduling
ties said

priority classes

with
or

said

application

faulting

thread

of executions being

state

defining

one

more

scheduling

of

executions of
said
first

state class for

obtained

by

calling

object-oriented

class

library

including

methods

methods

setting ing

each

of

said said

actual

default to

and one

maximum
of
said

schedul-

25 An
face 25 to services

apparatus

providing

an

object-oriented said

inter

priorities

of

application

scheduling

procedural including logic

operating procedural

system
functions to

system providing
as executable services said

saved
said

priorities

14
classes

The

apparatus

of claim

13

wherein
class

said

scheduling

program
apparatus

that

are

called

access

comprise

an

object-oriented

defining said
is

an

idle of

comprising computer

scheduling execution
idle

priority that execute

adapted

for said

use

with

threads

when

computer

substantiaily 30

memory
code

component
library

in stored for

said in

computer
said said class

15
classes sive sive

The apparatu
comprise an

of claim

13

wherein
class

said

scheduling

memory
library application

component
program means and
for said

comprising means
defining highly responlogic responinterfacing 35 object-oriented to in

storing

executable

object-oriented

scheduling threads that

priority

adapted
that said

for

use with
for short

an

object-oriented

of execution following

execute short

time periods

an

object-oriented library

class said

defining insertable

object-oriented into said

and

block

time periods wherein
class for said defining scheduling

16 The
classes action

apparatus

of claim

13

statements
cation

statements said

appli

comprise
scheduling threads

an

object-oriented priority of

an

to enable run-time

application of

to access said

said

services in said

inter-

adapted

use

with

highly interface 40

during

execution

application

responsive between

execution

implementing
said

an

computer

and
in said object-oriented thread in to classes class for library including said

human

operator

and

computer
said scheduling longthreads of

means
cation

17 The
classes

apparatus

of claim

13

wherein
class for

object-oriented to access services to

enabling

appli

an

comprise
scheduling that

an

object-oriented

defining

object-oriented control of

manner and
obtain

operating

term

priority execute for

adapted long

use with of time
said task

system
tion

spawn
of

informa

relating

thread

execution

execution

periods

18
classes relative

The

apparatus

of claim
for of

13

wherein

scheduling to specify

26
oriented

The

apparatus library said

claim

25

wherein

said task

objectclasses

class

comprise
scheduling

methods urgency

comprises
to

object-oriented access in

enabling said

task
said object-oriented classes for so

for enabling

application to

an

object-oriented

19 The
class

apparatus

of claim

wherein

manner
task

said

services

reference

and

control for
at

task
least

said

library said said

comprises
application services to

object-oriented to access in

fault

representing

an execution
associated

environment with
said

one

enabling

an

object-oriented user-defined

thread

of

execution apparatus

task
said object-

manner
processor

process

system

and

27
oriented

The

of

claim

26

wherein

class classes

library for

comprises
said

object-oriented application to to

synchroni
access in

faults apparatus
first

20 The
comprise
said
first

of

claim

19

wherein
defining

said

fault classes generic fault ss

zation

enabling said

an

object-oriented virtual

class

object-oriented lion

manner
of

services

synchronize

execu

class

having

methods
fault

for setting

processor logic repre-

of

threads

execution of claim

computer
to

program
identify abstract apparatus

logic said

and
generic class

computer
said

program
class

28
oriented classei

The

apparatus library

27

wherein

said

object-

thereby an

fault

first

class for

comprises
said

object-oriented to access in

scheduling

senting

base
of

enabling said

application

an

object-

21 The
comprise
first

claim

20

wherein
class

said derived

fault classes

oriented 60 thread

manner

services

to schedule

execution

of

said

second

from

said

of execution

object-oriented class

object-oriented said

comprising

non-virtual logic

methods and
said

29
oriented classes oriented 65 defined

The

apparatus library

of

claim

28

wherein

said

objectfault

for setting fault lion

processor

computer
specific that said said to

program

logic

program computer in accordance
fault

class for

comprises
application to

object-oriented to access in

with

informaprocessor

enabling said

said

an

objectuser-

particular

of

particular

manner
processor

services

process

system

and

faults for providing

such
fault riding

said

second

class

represents

processor-specific

non-virtual virtual

methods
of

of
said

said
first

second
class

class

over-

30 An
face to

apparatus

an

object-oriented said

inter-

methods

procedural

operating

system

system providing

Copy provided

by

USPTO

from the PIRS

Image

Database

on

0511512008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 41 of 42

5519867
41
services including logic that procedural are called functions to access

42
saved
said as executable said enabling task said application single said thread to thread class

spawn of
to

new
execution instance

run-time

specific

program
apparatus

services

having of

by of

passing
said

an

comprising computer

instance task class

an

second

36
component
stored for in said in said

An
to

memory
code

computer

and
face

apparatus

for providing operating procedural

an

object-oriented said

inter providing

procedural including logic that

system
functions to

system
as

library

memory
executable library application

component program means and
for

services

saved
said

executable said

comprising means
logic in

storing

said class

program
apparatus

are

called

access

services

an
to

object-oriented

comprising computer

interfacing object-oriented ented thread

an

object-oriented class library said said

said
10

comprising
classes during

object-ori-

classes accessing said

thread

comprising
run-time said

memory
code

component
stored

in said in said

computer

and

methods execution
thread

for

services in said

library

memory

component
program means and
for said

of

application

computer
said

comprising means
logic
15

for storing

said class

executable library application

classes into access information apparatus
first

having
said said

statements
to to to

statements said applica-

in

an

object-oriented to

insertable tion obtain to

application services relating

enable

interfacing object-oriented ented classes during 20

an

object-oriented class library classes

spawn
said

control

and

comprising
said

object-ori

threads

of execution
thread classes

synchronization

synchronization said services in said

31 The
comprise mation
first

of claim

30 wherein
class

comprising methods
run-time said execution

for accessing

object-oriented to create

encapsulating

infor
said object-

of

said

application

necessary

new
base
said

thread

of

execution

computer

synchronization insertable to

classes into

having

state

class

being
class

an

abstract

class

and

second
to

ments
to

said

statements

said said

application services to

oriented thread
first

for enabling

application passing

spawn of and

new
said for

enable

said

application of

access

of class

execution to said

on
instance

task

by

subclass class

synchronize

execution

threads

of execution
said for

an

of
to

said

second

37 The
25 zation

apparatus define

of claim
counting

36

wherein

synchroni use
in

enabling

application existing

terminate suspend of execution
representing said

resume second
run-time

and
class

classes the

semaphores
said thread of

syn
said

schedule having
cessing

an

thread

chronizing

execution classes to

of

execution
for said

instances entities

said in said

instances

pro
inter 30

synchronization said application in said are

comprising one
or

methods more of

enabling

computer
providing

acquire

counting

32
face to

An

apparatus procedural

for

an

object-oriented said

semaphores
to release

an

exclusive

mode

or in

shared after said

mode

and

operating procedural

system
functions to

system
as

providing executable said

counting acquired

semaphores

counting

services

including logic that

saved
said

semaphores

program
apparatus

are

called

access

services

38 The
semaphores

apparatus are

of claim

37 37

wherein

said

counting

comprising computer

recoverable of claim wherein
for said in

39
zation

The

apparatus define

synchroni

classes thread

monitor lock
said

use

synchronizing
classes to acquire

memory
code

component
stored

in said in said

computer

and
said

of execution

synchronization said application to
is

com
and

library

memory

component program means and
for

prising release condition

methods
said

for enabling

comprising means
logic in

for storing

said class

executable library application

monitor
said said

lock

and

block acquired

on
said

specified

an

object-oriented to

once

monitor lock monitor

applica

interfacing object-oriented ented task for

an

object-oriented class said said library task

said

40

ion
blocks
is

releasing

lock

when
and
said

said

application application

comprising

object-ori

on

said

specified

condition of

after said specified

classes

classes during said said said

comprising
run-time

meth
unblocked
application

due

to satisfaction said

condition

ods
tion

accessing said

services in

execu
said task insertable to nccess said least task

said ing

reacquiring

monitor lock

before

resum

of

application

computer
statements application

execution

classes into said said

having

statements
to enable

40
zation

The

apparatus further

of claim comprise

39

wherein

said for

synchroni
said

application

classes to

methods

enabling

services

to reference

and

control

task
for
at

application

perform

broadcast said

operation

on

specified said

representing thread

an

execution

environment with wherein
class

one
blocking

condition said

when
broadcast

application

has

acquired
all

of

execution of

associated

said said

task
task classes

monitor lock
threads

operation are

unblocking on
said

of

said

33

Th

apparatus
first

claim

32

of

execution

that

blocked

specified

comprise
attributes including classes

object-oriented

encapsulating said
first

blocking condition

and

operations

of an

existing

task

class

41
face to

An

apparatus

for

providing

an

object-oriented said

inter

protected

method
class to

to enable

run-time

specific

sub

procedural including logic that

operating procedural are called

system
functions to

system providing
as

of

said

first

spawn

new tasks
wherein
said
first

services class

saved
said

executable
said

34 The
comprises

apparatus

of claim
for enabling task

33

program
to

access

services

methods

said to

application

deter
apparatus

comprising computer

mine whether
said existing

possible

exists said

suspend

and resume
to receive in said said

task

to terminate

existing to said

task

predetermined
identify thread

information

relating

existing

task

to 60

memory
code

component
stored

computer

and

of execution

contained virtual

in said

existing operations

task
in

library

in

memory

component
program means and
for said

and an

to

perform predetermined space
associated

memory
existing

comprising means
logic in

for storing

said class

executable library application

address

with

said

task
object-ori thread class

an

object-oriented to

35 The
ented for class enabling

apparatus library said

of

claim an

34
to

wherein

the

interfacing object-oriented 65

an

object-oriented class library said

comprises
application task

object-oriented create

comprising
scheduling said

object-ori

new

thread

of

ented
prising run-time

scheduling

classes for

classes services

com
during

execution

and

said task

classes

further

comprising
said
first

second
class for

methods
execution

accessing said

object-oriented

class

derived

from

of

application

in said

computer

Copy provided

by

USPTO

from the PIRS

Image

batabase

on 05/15/2008

Case 1:10-cv-00166-UNA Document 1-1

Filed 03/02/10 Page 42 of 42

5519867
43
said scheduling insertable to classes into

44
statements
to

having
said

said enable

state said

ods
tion

for accessing

said

services in

during

run-time

execu
fault

ments

application services in

of

said

application

said said said

computer
statements application

said

application

access

said

classes

having

statements
to enable

insertable to access

42 The
uling scheduling scheduling ties said

apparatus

of claim 41
scheduling associated

which

an

actual

sched

into said

said

application to

priority

default are

priority

and

maximum
said priori for

services faults apparatus
first

process

system

and

user-defined

pro

priority classes

with
or

said

application

cessor

defining

one

more

scheduling

49 The
comprise
said
10 first

of claim

48

wherein
defining

said

fault classes generic fault

object-oriented

class actual

library

including

methods

object-oriented

class

setting ing

each

of
of

said said

default to

and one

maximum
of
said

schedul
scheduling

class

having

virtuai

methods
fault

for setting

processor logic

priorities

application

computer
to thereby

program
identify abstract apparatus

logic said

and
generic class

computer
said

program
class

priorities

43
classes

The

apparatus

of claim

42

fault

first

wherein
class

said

repre

scheduling

comprise

an

object-oriented

defining said
is

an

idle

senting

an

base
of

scheduling execution idte

priority that execute

adapted

for said

use

with

threads

of

50 The
comprise

claim

49

wherein
class

said derived

fault classes

when

second

computer

object-oriented class

from

said

substantiaily
first

object-oriented setting said

comprising computer
logic in

non-virtual logic with

methods and
said

44 The
classes sive sive

apparatus

of claim

43

for

wherein
class

said

processor program

program

scheduling fault

comprise

an

object-oriented

defining with highly

respon
tion

computer
specific that said said to

accordance
of

informa
processor

scheduling
threads that of

priority execution following

adapted

for

use

respon
20

particular

fault

particular

such
fault said

that execute said short

for short

time periods

second

class

represents

processor-specific

and

non-virtual

methods
of said

of
first

said class

second

class

override

block

time periods wherein
class for said defining scheduling

45
classes action

The

apparatus

of claim

44

virtual

methods
apparatus

comprise
scheduling threads

an

object-oriented priority

an

inter highly

51 The
comprise

of claim

49

wherein

said

fault classes information

adapted

use

an

with

object-oriented destination said said

class

encapsulating fault class

responsive

of

execution

implementing
said

an

interface

identifying fault

port

message

format

and

between

human The

operator

and

computer
said scheduling said

types

object-oriented application

comprising
said fault

methods port and
for to

46
classes

apparatus

of claim

44

wherein
class for

for enabling fault

to specify

destination

comprise

an

message

format

and

said said

types

object-oriented

defining with

longthreads of 30 said to enabling said application in said to instruct specified port operating

term

scheduling that

priority execute for

adapted
long

use

system

send of time of claim

execution

messages

fault said

message
specified

format
fault

to the types

periods

47

Amended
classes relative

The

apparatus

44

wherein

specified

destination

when

scheduling specify

comprise
scheduling

methods urgency an

for enabling

task

occur

of

said

task
inter providing of executable said

52 The
comprise
for obtaining

apparatus
first

of

claim

49

wherein
class

said

fault classes

48
face to

An

apparatus

for providing operating procedural

object-oriented returning

comprising
state

methods
thread

object-oriented said

and

procedural including logic

system
functions to

system
as

processing

of

said

execution

services

saved
said

program
apparatus

that

are

cailed

access

services

53 The
comprise enabling

apparatus

of claim
object-oriented to

52

wherein
class

said

fault classes

second
said to

comprising computer

having

methods and

for to

application fault

receive

fault said

messages
fault task

memory
code

component
stored

in said in said

computer

and component program means and
for said

40

respond

received information faulting

messages

messages and
said

comprising
faulting tion thread

identifying thread of

faulting

library

memory

tasks

execution

and/or said

informa
faulting said

comprising means
logic in

for storing

said class

executable library application

of
of

faulting

thread

of executions being
obtained

state

an

object-oriented to

executionstate
of said
first

by

cailing

interfacing object-oriented

an

object-oriented class said library

methods

class

comprising

object-ori

ented

fault classes

fault classes

comprising

meth

Copy provided

by USPTO from the PIRS

Image Databasin

05115/2008

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 1 of 44

EXHIBIT B

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 2 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 3 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 4 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 5 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 6 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 7 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 8 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 9 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 10 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 11 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 12 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 13 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 14 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 15 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 16 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 17 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 18 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 19 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 20 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 21 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 22 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 23 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 24 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 25 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 26 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 27 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 28 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 29 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 30 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 31 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 32 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 33 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 34 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 35 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 36 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 37 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 38 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 39 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 40 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 41 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 42 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 43 of 44

Case 1:10-cv-00166-UNA Document 1-2

Filed 03/02/10 Page 44 of 44

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 1 of 93

EXHIBIT C

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 2 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 3 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 4 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 5 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 6 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 7 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 8 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 9 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 10 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 11 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 12 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 13 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 14 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 15 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 16 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 17 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 18 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 19 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 20 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 21 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 22 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 23 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 24 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 25 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 26 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 27 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 28 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 29 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 30 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 31 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 32 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 33 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 34 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 35 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 36 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 37 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 38 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 39 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 40 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 41 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 42 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 43 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 44 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 45 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 46 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 47 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 48 of 93

EXHIBIT D

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 49 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 50 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 51 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 52 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 53 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 54 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 55 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 56 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 57 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 58 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 59 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 60 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 61 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 62 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 63 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 64 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 65 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 66 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 67 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 68 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 69 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 70 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 71 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 72 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 73 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 74 of 93

EXHIBIT E

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 75 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 76 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 77 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 78 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 79 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 80 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 81 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 82 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 83 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 84 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 85 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 86 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 87 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 88 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 89 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 90 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 91 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 92 of 93

Case 1:10-cv-00166-UNA Document 1-3

Filed 03/02/10 Page 93 of 93

Sign up to vote on this title
UsefulNot useful