This class provides for an electrical computer or digital data
processing system or corresponding data processing method including
apparatus or steps for administrating over processor or job execution
in a digital data processing system whether in a virtual machine
or otherwise.

(1)Note. For clarification, a "process" and
a "task" are equivalent terms in the art. In addition, a
"thread" is a path of execution within a process.

(2)Note. Control functions such as subroutine calling
and control are classified elsewhere. See the SEE OR SEARCH
CLASS notes below.

Registers, appropriate subclassesfor basic machines and associated indicating mechanisms
for ascertaining the number of movements of various devices and
machines, plus machines made from these basic machines alone (e.g., cash
registers, voting machines), and in combination
with various perfecting features, such as printers and
recording means, and for various data bearing record controlled systems.

Communications: Electrical,
subclasses 1.1 through 16.1for controlling one or more devices to obtain a
plurality of results by transmission of a designated one of plural
distinctive control signals over a smaller number of communication
lines or channels, particularly subclasses 2.1-2.8
for path selection, subclass 2.81 for tree or
cascade selective communication, subclasses 3.1-3.9
for communication systems where status of a controlled device is communicated, subclasses
4.2 and 4.21 for synchronizing selective communication
systems, subclasses 9.1-9.17
for addressing, and subclasses 12.1-12.55
for pulse responsive actuation in selective communication.

Coded Data Generation or Conversion,
subclasses 50 through 172for electrical pulse and digit code converters (e.g., systems
for originating or emitting a coded set of discrete signals or translating
one code into another code wherein the meaning of the data remains
the same but the formats may differ).

Computer Graphics Processing and Selective Visual
Display Systems,
subclasses 530 through 574for visual display, and subclasses 30 through
111 for the selective control of two or more light generating or
light controlling display elements in accordance with a received image
signal.

Dynamic Magnetic Information Storage or Retrieval, appropriate subclassesfor record carriers and systems wherein information
is stored and retrieved by interaction with a magnetic medium and
there is relative motion between said magnetic medium and a transducer, for
example, a magnetic disk drive device, and control
thereof, per se.

Dynamic Information Storage or Retrieval, appropriate subclassesfor record carriers and systems wherein information
is stored and retrieved by interaction with a medium and there is
relative motion between a medium and a transducer.

Image Analysis, appropriate subclassesfor operations performed on image data with the aim
of measuring a characteristic of an image, detecting variations, detecting
structures, or transforming the image data, and
for procedures for analyzing and categorizing patterns present in
image data.

Data Processing: Generic Controls Systems
or Specific Applications,
subclasses 1 through 89for generic data processing control system, apparatus, or
process and subclasses 90 through 306 for applications of computers
in various environments where there is significant claim recitation
of the data computer system or calculating computer and only nominal
recitation of an external art environment (where significant
structure of an external device is claimed, classification
is in the appropriate device class), particularly
subclasses 99-102 for manufacturing control systems that involves
accommodating for interrelated control and manufacturing processes
and resource allocation.

Data Processing: Artificial Intelligence, appropriate subclassesfor subject matter directed to artificial intelligence
data computer which is disclosed or claimed in plural diverse arts
both in combination and in the alternative (e.g., digital
data computer system for use in image analysis or electrical audio
signal computer, and for artificial intelligence per se).

Electrical Computers and Digital Processing Systems: Multicomputer
Data Transferring or Plural Processor Synchronization, appropriate subclassesfor transferring data or instruction information
between a plurality of computers wherein the computers employ the
data or instructions before or after transferring and the employing
affects said transfer of data or instruction information and for
the synchronization of plural processors.

Error Detection/Correction and Fault
Detection/Recovery, various subclassesfor detecting or correcting errors in generic electrical pulse
or pulse data and for detecting and recovering from faults of computers, digital
data computer systems, and logic level based systems.

Electrical Computers and Digital Processing Systems: Interprogram
Communication or Interprocess Communication (IPC), appropriate subclassesfor exchanging data or messages between two executing
programs or processes, independent of the hardware used
in the communication.

SECTION III - GLOSSARY

ACCESS

To obtain entry to, or to locate, read
into memory, and make ready for, some operation, for
example, regarding disks, files, records, and
network entry procedures.

APPLICATION PROGRAM

A computer program designed to perform a certain type of
work, such as an application to manipulate text, numbers, graphics, or
a combination of these elements. An application differs
from an operating system (which runs a computer), a
utility (which performs maintenance or general-purpose
chores), and a language (with which computer
programs are created).

An arrangement of processor(s) in combination
with either memory or peripherals, or both, performing
data processing.

ENTITY

A computer or process that can be treated as a unit and, often, as
a member of a particular category or type.

ENVIRONMENT

A set of resources made available to the user of a system which
defines specifications such as the command path (where
to look for files), the system prompt and, sometimes, the
location of resources or working files.

iNFORMATION

Meaning that a human being assigns to data by means of the
conventions applied to that data.

INTERFACE

A connection between two elements so that they can work
with one another.

MEMORY

A functional unit to which data can be stored and from which
data can be retrieved.

MULTITASKING

A mode of operation in which a computer works on more
than one task at a time.

NETWORK

A group of computers and associated devices that are connected
by communications facilities which exists to provide computer users
with the means of communicating and transferring information electronically. Some types
of communication are simple user-to-user messages; others, of
the type known as distributed processes, can involve several
computers and the sharing of workloads or cooperative efforts in
performing a task.

OBJECT

A variable comprising routines and data that is treated as
a discrete entity.

OPERATING SYSTEM

Software responsible for controlling the allocation and usage
of hardware resources such as memory, central processing
unit (CPU) time, disk space, and
peripheral devices. The operating system is the foundation
on which applications programs (e.g., word
processing, spreadsheets) are built.

PERIPHERAL

A functional unit that transmits data to or receives
data from a computer to which it is coupled.

PROCESS

A coherent sequence of steps undertaken by a program to
manipulate data such as an internal or external data-transfer
operation, handling an interrupt, or evaluation of
a function.

PROCESSING

Methods or apparatus performing systematic operations upon
data or information exemplified by functions such as data or information
transferring, merging, sorting, and computing (e.g., arithmetic
operations or logical operations).

(1)Note. In this class, the glossary term data
is used to modify processing in the term data processing; whereas
the term digital data processing system refers to a machine performing
data processing.

(2)Note. In an effort to avoid redundant constructions, in
this class, where appropriate, the term address
data processing is used in place of address data data processing.

PROCESSOR

A functional unit that interprets and executes instruction data.

PROTOCOL

A set of rules or processes which enable computers to exchange
information with as little error as possible.

RESOURCE

Any part of computer system or a network, such
as a disk drive, printer, or memory, that
can be allotted to a program or process while it is running. In
programming, a resource can be used by more than one program
or in more than one place in a program. For example, dialog boxes, bitmaps, and
fonts are resources in many windowing programs.

ROUTING

Receiving transmitted messages within a network and forwarding
them to their correct destinations over a available route selected
according to a predetermined criteria.

SERVER

A computer running administrative software that controls
access to all or part of a network and its resources (such
as disk drives and printers). A computer acting
as a server makes resources available to computers acting as workstations
on the network.

SYNCHRONIZATION

Matching of timing between separate computers or among
the components of a system so that all are coordinated.

TASK

A standalone application or a subprogram that is run
as an independent entity.

THREAD

A path of processing execution within a larger process or
program.

TRANSFER

The movement of data from one location to another or the
passing of program control from one portion of a program to another.

This subclass is indented under the class definition. Subject matter comprising means or steps operating on a
computer or digital data processing system which enable a first
type of processor to emulate and execute instructions associated
with one or more different types of processors.

(1)Note. This subclass is directed to subject matter
encompassing one or more virtual machines that execute in single
task, or multitasking, operating system environments.

(2)Note. This subclass includes computers or digital
data processing systems executing a plurality of virtual machines that
are preemptively or nonpreemptively scheduled. For example, Microsoft
Windows 3.1 provides a Virtual Machine Manager which schedules
a plurality of DOS Virtual Machines (which emulate the
Intel 8086 real mode environment) along with a single System Virtual
Machine which cooperatively or nonpreemptively runs Windows applications. DOS
applications are preemptively multitasked by the Virtual Machine
Manager along with the System Virtual Machine, with each
Virtual Machine receiving a time slice. Other schedulers
that do not schedule virtual machines are classified elsewhere. See the
SEE OR SEARCH CLASS notes below.

(3)Note. This subclass includes means or steps for mimicking
the performance of one processing device within another processing
device. For example, this includes a software
program that allows applications written for a first computer to
be executed on a different second computer interpreting the machine instructions
for the first computer, thereby becoming a virtual machine.

Data Processing: Generic Control Systems
or Specific Applications,
subclasses 2 through 89for generic control systems, and subclasses
99-102 for manufacturing control systems that involve accommodating
for interrelated control and manufacturing processes and resource
allocation.

This subclass is indented under subclass 100. Subject matter comprising means or steps directed to (a) managing
processes by collecting, listing, and storing
jobs for later sequential execution as a group without user intervention (i.e., batch
processing), or (b) executing
jobs immediately after they are received by a system and occurring
in groups (i.e., transaction processing).

(1)Note. Data processing where jobs are executed on
a computer immediately after they are received by the system is properly
classified here, however, interpreters which interpret
and execute one instruction at a time are classified elsewhere. See
the SEE OR SEARCH CLASS notes below.

(2)Note. Subject matter of this subclass may include
transaction processing and job processing between multiple processors, computers, or
digital data processing systems and may involve user intervention.

(3)Note. The term "batch" historically
takes on slightly different meaning depending on the scale of the
data processing system. In a microcomputer, a
stored batch file contains a "batch" of operating
system commands to be executed automatically when the batch file
is invoked. On larger systems, jobs and their
associated data are typically collected and stored for later processing
as a "batch".

(4)Note. This subclass is directed to process transactions, per
se. Database transaction processing and business transaction
processing are classified elsewhere. See the SEE OR SEARCH
CLASS noted below.

Electrical Computers and Digital Processing
Systems: Processing Architectures and Instruction Processing (e.g., Processors),
subclasses 220 through 248for interpreters
which interpret and execute one instruction at a time

This subclass is indented under subclass 100. Subject matter comprising means or steps for scheduling
multiple tasks based upon any considered factors, e.g., priority
of execution, balancing the work load or resources, memory use, register
use, resource availability, time constraints, etc.

(1)Note. Included here is task assignment, (i.e., deciding
which processor or other resources will be used to execute one or more
tasks).

(2)Note. Signaling, semaphores, and
mutual exclusion mechanisms (i.e., mutexes) used
for program or process synchronization purposes are classified here. However, interprocess
communication (IPC) is classified elsewhere. Mutual
exclusion mechanisms are used to synchronize data access across
multiple processes. Mutual exclusion mechanisms can be acquired
or "owned" by only one process or thread at a
time. A semaphore controls access to a shared system resource
by using a reference count scheme.

This subclass is indented under subclass 102. Subject matter for allocating digital data processing
system resources for tasks and often including deciding how best
to use the available resources to get the job done.

(1)Note. This subclass is directed to deciding which
resources to use, the process of deciding which jobs to
do first and what order to do them in is classified above.

This subclass is indented under subclass 102. Subject matter directed to minimizing processing execution
time by efficiently distributing workload amongst operational computers, processors
and other system resources.

(1)Note. This may be done by a centralized mechanism
which monitors the system processors, or by a distributed
method, where idle processors query busy processors for
extra work to reduce idle time. Polling of peripherals, however, is classified
elsewhere.

(2)Note. This subclass includes initial task assignment
to certain resources based on utilization of the resources (e.g., sending a
task to the processor with the least utilization or load).

This subclass is indented under subclass 102. Subject matter comprising means or steps for identifying
and dealing with dependencies between executing programs, tasks
and processes (e.g., data dependencies, control
flow dependencies, etc.).

(1)Note. This subclass is directed to the analysis for
dependencies in executing programs, for example, for
situations where at least one executing program requires data from
at least one other executing program and wherein the requisite data
is used to make decisions affecting the operational sequence of
at least one program. Compilers that analyze program code
dependencies during compiling are classified elsewhere.

(2)Note. This subclass provides for signaling and communicating
which allows two executing programs or processes to cooperate. Signaling
and communicating between two computers/processors, independent
of the tasks being executed, for example, to synchronize
the processors, by handshaking is classified elsewhere. See
the SEE OR SEARCH CLASS notes below.

(3)Note. Signaling, semaphores, and
mutual exclusion mechanisms used for program or process synchronization
purposes are classified here. For clarification, mutual exclusion
mechanisms (i.e., mutexes) are used
to synchronize data access across multiple processes. Mutexes
can be acquired or "owned" by only one process
or thread at a time. A semaphore controls access to a shared
system resource by using a reference count scheme. Interprocess
communication (IPC) is classified elsewhere. See
the SEE OR SEARCH CLASS notes below.

(4)Note. Redundant systems for fault tolerance and fault
avoidance often include multiple, redundant processors
executing the same program so that if one fails, another
can be substituted. Cooperative processing such as this, done
for fault avoidance, is classified elsewhere. See the
SEE OR SEARCH CLASS notes below.

Error Detection/Correction and Fault Detection/Recovery,
subclasses 1 through 57for redundant systems where some fault-tolerant
systems may include multiple, redundant processors executing
the same program so that if one fails, another can be used.

This subclass is indented under subclass 102. Subject matter comprising means or steps for dividing processor
time of a computer or digital data processing system between multiple executing
programs or processes.

(1)Note. This subclass is directed to multitasking systems
characterized by operating system means or steps for managing or
supervising a switch between two or a plurality of discrete executing
processes or tasks. For the purpose of this definition, each
process or task has its own instruction data pointer and an address space
comprised of code, data and free memory, and may
include other data necessary to restore a process undergoing a context
switch. Since each process has its own instruction data
pointer and an address space comprised of code, data and
free memory, every process at any given point in time has
a state or context defined by the contents of its instruction data
pointer and address space. Multitasking systems classified
here facilitate the switching from one context to another. Recovering
a digital data processing system or computer process combined with
the detection of a fault, however is classified elsewhere. See
the SEE OR SEARCH CLASS notes below.

(2)Note. Preemptive multitasking (also called "time
slicing") is included under this subclass. For
clarification, preemptive multitasking is characterized
by an operating system periodically (i.e., according
to a set schedule) interrupting the execution of a process
and passing control to another waiting process and performing a
context switch after which the context for the next pending process is
restored, and the next process is executed for the duration
of its time slice or "quantum". Instruction
processing related to context switching and mode switching is classified
elsewhere. See the SEE OR SEARCH CLASS notes below.

(3)Note. Nonpreemptive and cooperative multitasking
are included under this subclass. Nonpreemptive multitasking
is where a currently executing task yields control to another task
when it is ready, rather than being forcibly preempted
by an operating system. Cooperative multitasking is where
one or more background tasks are given processing time during idle
times in the foreground task. In contrast, user-implemented
task or context switching between two or more applications programs
which are both resident in memory at the same time where only the
foreground application is given processing time and a user may manually
activate a background task by bringing the window or screen of the background
task to the front is classified elsewhere. See the search
notes below.

(4)Note. For clarity, time-sharing
is a form of multitasking. Time-sharing is generally
characterized by multiple users executing programs on a client-server system. A
client-server system is characterized by at least one server
computer and a plurality of clients or users which operate from
terminals or computers programmed to emulate terminals. Examples
of time sharing systems are systems which implement the UNIX (TM) or
Windows NT (TM) operating systems. On
a time sharing system the processing time allotted to each user
program is interleaved by the operating system, privileged
users can be assigned higher priority and will receive more processing
time than nonprivileged users. Access control determination
for process arbitration, per se, is classified elsewhere
in this class. See the search notes below.

Error Detection/Correction and Fault Detection/Recovery,
subclasses 2 through 24 for fault recovery, per
se, in computer systems and digital data computer systems, particularly
subclasses 15-22for recovery
from detected faults in a process or data file using stored state
data and history logs, and subclass 23 for resetting a processor
combined with fault detection.

This subclass is indented under subclass 107. Subject matter comprising means or steps for saving and
restoring state data (i.e., context) of a
task, process, or thread in a preemptive, nonpreemptive, or
cooperative multitasking system.

(1)Note. This subclass is directed to the specific implementation
details of performing a context switch in a preemptive, nonpreemptive, or
cooperative multitasking system.

(2)Note. Also included in this subclass is the user-implemented
task or context switch between two or more application programs
which are resident in memory at the same time. In this
arrangement only the foreground application is given processing
time. A user may manually activate a background task by
bringing the window or screen of the background task to the front. An
example of this type of task switch is when a user switches between
a WINDOWS 3.1 (TM) program and a MS DOS (TM) program
by invoking the Alt-Tab keypress combination.

(3)Note. A context switching is typically implemented
with interrupts and multitasking patents often use language directed
to interrupts to explain how time-sharing takes place. Therefore, a patent
directed to context switching and reciting interrupt processing
is properly classified here. Interrupt processing, per se, is
classified elsewhere. See the SEE OR SEARCH CLASS notes
below.

The definitions below correspond to abolished subclasses from
which these collections were formed. See the Foreign Art
Collection schedule of this class for specific correspondences. [Note: The
titles and definitions for indented
art collections include all the details of the one(s) that
are hierarchically superior.]

Foreign art collection including subject matter
wherein addresses are determined in a memory system accommodating
addressing requirements for software emulation of a target computer
or digital data processing system on a base computer or digital
data processing system.

Foreign art collection including subject matter
comprising means or steps directed to (a) managing
processes by collecting, listing, and storing
jobs for later sequential execution as a group with user intervention (i.e., batch
processing), or (b) executing
jobs immediately after they are received by a system and occurring
in groups (i.e., transaction processing).

Foreign art collection including subject matter
for allocating digital data processing system resources for tasks
and often including deciding how best to use the available resources
to get the job done.

Foreign art collection including subject matter
directed to minimizing processing execution time by efficiently
distributing work load amongst operating computers, processors
and other system resources.

Foreign art collection including subject matter
comprising means or steps for saving and restoring state data (i.e., context) of
a task, process, or thread in a preemptive, nonpreemptive, or
cooperative multitasking system.

This page is produced by the Office of Classification Support (Office of Patent Classification) for the Reference Tools Project.

The Inventors
Assistance Center is available to help you on patent
matters.Send questions about USPTO programs and services
to theUSPTO
Contact Center (UCC). You can suggest USPTO webpages
or material you would like featured on this section by E-mail
to the webmaster@uspto.gov.
While we cannot promise to accommodate all requests, your suggestions
will be considered and may lead to other improvements on the
website.