Skip header and go to main content

Classification Resources
 

 [Search a list of Patent Appplications for class 718]   CLASS 718,ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: VIRTUAL MACHINE TASK OR PROCESS MANAGEMENT OR TASK MANAGEMENT/CONTROL
Click here for a printable version of this file

SECTION I - CLASS DEFINITION

GENERAL STATEMENT OF THE CLASS SUBJECT MATTER

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.

The class includes the following subject matter:

A. Virtual Machine Task or Process Management

B. Task Management or Control in General.

SECTION II - REFERENCES TO OTHER CLASSES

SEE OR SEARCH CLASS:

235Registers,   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.
326Electronic Digital Logic Circuitry,   appropriate subclassesfor generic digital logic devices, circuitry, and subcombinations thereof, wherein operations other than arithmetical are performed upon discrete electrical signals representing a value normally described by numerical digits.
340Communications: 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.
341Coded 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).
345Computer 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.
360Dynamic 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.
365Static Information Storage and Retrieval,   appropriate subclassesfor addressable static singular storage elements or plural singular storage elements of the same type (i.e., the internal elements of memory, per se).
369Dynamic 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.
370Multiplex Communications,   appropriate subclasses, for the simultaneous transmission of two or more signals over a common medium, particularly subclasses 351 through 430for multiplex switching.
375Pulse or Digital Communications,   appropriate subclassesfor generic pulse or digital communication systems and synchronization of clocking signals from input data.
377Electrical Pulse Counters, Pulse Dividers, and Shift Registers: Circuits and Systems,   appropriate subclassesfor generic electric circuits for pulse counting.
379Telephonic Communications,   appropriate subclassesfor two-way electrical communication of intelligible audio information of arbitrary content over a communication link.
380Cryptography,   appropriate subclassesfor cryptographic apparatus or process in general which includes electric signal modification.
381Electrical Audio Signal Processing Systems and Devices,   appropriate subclassesfor wired one-way audio systems, per se.
382Image 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.
388Electricity: Motor Control Systems,   cross-reference art collection 907.5for computer or processor control of DC motor acceleration or speed.
455Telecommunications,   appropriate subclasses for modulated carrier wave communication, per se, and subclass 26.1 for subject matter which blocks access to a signal source or otherwise limits usage of modulated carrier equipment.
700Data 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.
701Data Processing: Vehicles and Navigation,   appropriate subclassesfor applications of computers in vehicular and navigational environments.
702Data Processing: Measuring and Testing,   appropriate subclassesfor applications of computers in measuring and testing.
703Data Processing: Structural Design, Modeling, Simulation and Emulation,   appropriate subclassesfor compatibility, emulation, or simulation of systems or system components.
704Data Processing: Speech Signal Processing, Linguistics, Language Translation, and Audio Compression/Decompression,   subclasses 1 through 10for applications of computers in linguistics, subclasses 200 - 278 for applications of computers in speech signal processing, and subclasses 500 - 504 for applications of computers in audio compression/decompression.
705Data Processing: Financial, Business Practice, Management, or Cost/Price Determination,   appropriate subclassesfor applications of computers and calculators in business and management environments.
706Data 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).
707Data Processing: Database, Data Mining, and File Management or Data Structures,   particularly subclasses 609 through 686for database maintenance including backup synchronization, subclasses 687 through 704 for database integrity, subclasses 713 through 721 for query optimization, subclasses 759 through 768 for query statement modification, subclasses 790 through 812 for database design including data structures and database structure management for version management of nonexecutable files, in particular subclasses 802 and 809 through 811 for database and data structure management involving transformations, and subclass 831 for virtual directory structure.
708Data Processing: Arithmetic Processing and Calculating,   subclasses 1 through 9for hybrid computers; and subclasses 100 - 714 for calculators, digital signal computer, and arithmetical and logical computer, per se; and subclasses 800 - 854 for electric analog computers.
709Electrical 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.
710Electrical Computers and Digital Processing Systems: Input/Output,   appropriate subclassesfor computer input or output.
711Electrical Computers and Digital Processing Systems: Memory,   subclass 6 for accommodating addressing requirements for software emulation of a target computer or digital data processing system on a base computer or digital data processing system, and subclasses 202 - 210 for address mapping and virtual addressing, per se.
712Electrical Computers and Digital Processing Systems: Processing Architecture and Instruction Processing (e.g. Processors),   subclasses 220 through 248for control functions such as subroutine calling and control, including subclass 228 for context preserving, and subclass 229 for mode switch or change.
713Electrical Computers and Digital Processing Systems: Support,   subclass 1 and 2 for digital processing system initialization and configuration (e.g., initializing, set-up, resetting), subclass 100 for reconfiguring digital data computer system (e.g., changing system settings), subclasses 150 through 181 for multiple computer communication protection by cryptography, subclass 187 for computer program modification detection by cryptography, subclass 188 for computer virus detection by cryptography, subclasses 300 -340 for computer power control, subclasses 400 and 401 for synchronization of computer clocks, data timing signals, or pulses, and subclasses 500 -503 for computer clock, pulse, or timing signal or analysis.
714Error 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.
715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   appropriate subclassesfor document processing.
719Electrical 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).

BUS

A conductor used for transferring data, signals, or power.

COMPUTER

A machine that inputs data, processes data, stores data, and outputs data.

DATA

A representation of information in a coded manner suitable for communication, interpretation, or processing.

Address data: data that represent or identify a source or destination.

Instruction data: data that represent an operation and identify its operands, if any.

Status data: data that represent conditions of data, digital data processing systems, computers, peripherals, memory, etc.

Streamed data: data consisting of a more-or-less continuous series of bits, bytes, or other small, structurally uniform units.

User data: data other than address data, instruction data, or status data.

DATA PROCESSING

See PROCESSING, below.

digital data processing system

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.

SUBCLASSES

[List of Patents for class 718 subclass 1]    1VIRTUAL MACHINE TASK OR PROCESS MANAGEMENT:
 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.

SEE OR SEARCH THIS CLASS, SUBCLASS:

100,through 109, for task management, per se, particularly subclasses 107 and 108 directed to multitasking and content switching.

SEE OR SEARCH CLASS:

703Data Processing: Structural Design, Modeling, Simulation, and Emulation,   appropriate subclassesfor compatibility, emulation, or simulation of systems or system components.
711Electrical Computers and Digital Processing Systems: Memory,   subclass 6 for accommodating addressing requirements for software emulation of a target computer or digital data processing system on a base computer or digital data processing system, and subclasses 202-210 for address mapping and virtual addressing, per se.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclass 228 for context preserving, and subclass 229 for mode switch or change.
  
[List of Patents for class 718 subclass 100]    100TASK MANAGEMENT OR CONTROL:
 This subclass is indented under the class definition.  Subject matter comprising means or steps for administrating over processor or job execution in a digital data processing system.
(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

SEE OR SEARCH THIS CLASS, SUBCLASS:

1,for virtual machine task or process management.

SEE OR SEARCH CLASS:

700Data 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.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclasses 220 through 248for control functions such as subroutine calling and control.
  
[List of Patents for class 718 subclass 101]    101Batch or transaction processing:
 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.

SEE OR SEARCH CLASS:

705Data Processing: Financial, Business Practice, Management, or Cost/Price Determination,   subclasses 7.11 through 7.42for operations research, per se, including systems directed to generalized linear programming problem solving and cost function analysis, resource allocating in business transaction processing and scheduling of interrelated processes.
707Data Processing: Database, Data Mining, and File Management or Data Structures,   subclasses 705 through 789for database accessing and control.
712Electrical 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
717Data Processing: Software Development Installation and Management,   subclasses 136 through 161for code translators (e.g., compilers).
  
[List of Patents for class 718 subclass 102]    102Process scheduling:
 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.

SEE OR SEARCH CLASS:

710Electrical Computers and Digital Data Processing Systems: Input/Output,   subclasses 36 through 51for input/output access regulation, subclasses 107-125 for bus access regulating, subclasses 240-244 for access arbitrating, per se, and subclasses 260-269 for interrupt processing, per se.
711Electrical Computers and Digital Processing Systems: Memory,   subclass 169 for memory access pipelining.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclasses 28 through 31for distributed computer system architecture, subclasses 220-248 for control functions such as subroutine calling and control, particularly, subclasses 237-238 for instruction prefetching.
719Electrical Computers and Digital Processing Systems: Interprogram Communication or Interprocess Communication (IPC),   appropriate subclassesfor interprocess communication.
  
[List of Patents for class 718 subclass 103]    103Priority scheduling:
 This subclass is indented under subclass 102.  Subject matter for determining an order of execution of jobs to be done based on the level of relative importance or precedence assigned with each job.
(1) Note. For the purpose of this subclass, scheduling constraints may include resource characteristics, e.g., performance, availability, data coherency, etc.
  
[List of Patents for class 718 subclass 104]    104Resource allocation:
 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.

SEE OR SEARCH THIS CLASS, SUBCLASS:

103,for priority scheduling.

SEE OR SEARCH CLASS:

711Electrical Computers and Digital Processing Systems: Memory,   subclasses 170 through 173for memory configuring.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclasses 214 through 215for instruction issuing.
715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   subclasses 804 through 805for interwindow links and communication.
  
[List of Patents for class 718 subclass 105]    105Load balancing:
 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).

SEE OR SEARCH CLASS:

710Electrical Computers and Digital Data Processing Systems: Input/Output,   subclasses 15 through 19for polling of peripherals, and subclasses 36-51for input/output access regulation.
711Electrical Computers and Digital Processing Systems: Memory,   subclasses 133 through 136for cache memory entry replacement strategies.
715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   subclasses 804 through 805for interwindow links and communication.
  
[List of Patents for class 718 subclass 106]    106Dependency based cooperative processing of multiple programs working together to accomplish a larger task:
 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.

SEE OR SEARCH CLASS:

713Electrical Computers and Digital Processing Systems: Support,   subclasses 400 through 401for synchronization of computer clocks, data timing signals, or pulses.
714Error 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.
717Data Processing: Software Development Installation and Management,   subclasses 136 through 161for code translators (e.g., compilers).
719Electrical Computers and Digital Processing Systems: Interprogram Communication or Interprocess Communication (IPC),   appropriate subclassesfor interprocess communication.
  
[List of Patents for class 718 subclass 107]    107Multitasking, time sharing:
 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.

SEE OR SEARCH THIS CLASS, SUBCLASS:

101,for batch computer and transaction computer where complete programs are executed in their entirety from start to finish.

SEE OR SEARCH CLASS:

700Data Processing: Generic Control Systems or Specific Applications,   subclasses 2 through 7for generic data processing control systems including plural processors and fault recovery.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclass 228 and 229 for instruction and register level context preserving, context swapping, mode switching and mode swapping.
714Error 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.
  
[List of Patents for class 718 subclass 108]    108Context switching:
 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.

SEE OR SEARCH CLASS:

710Electrical Computers and Digital Data Processing Systems: Input/Output,   subclasses 260 through 269for interrupt processing, per se.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclass 228 for context preserving at the instruction computer level.
  

FOREIGN ART COLLECTIONS

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.]

FOR 157VIRTUAL MACHINES TASK AND PROCESSES MANAGEMENT:
 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.
  
FOR 159TASK MANAGEMENT OR CONTROL:
 Foreign art collection including subject matter comprising means or steps for administrating over processor or job execution in a digital data processing system.
  
FOR 160Batch or transaction processing:
 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).
  
FOR 161Process scheduling:
 Foreign art collection including 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.
  
FOR 162Priority scheduling:
 Foreign art collection including subject matter for determining an order of execution of jobs to be done based on the level of relative importance or precedence assigned with each job.
  
FOR 163Resource allocation:
 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.
  
FOR 164Load balancing:
 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.
  
FOR 165Dependency-based cooperative processing of multiple programs working together to accomplish a larger task:
 Foreign art collection including 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.).
  
FOR 166Multitasking, time sharing:
 Foreign art collection including subject matter comprising means or steps for dividing processor time of a computer or digital data processing system between multiple executing programs or processes.
  
FOR 167Context switching:
 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.