Browse Prior Art Database

Maintaining Application Compatibility in Multiprocessor Environments

IP.com Disclosure Number: IPCOM000116203D
Original Publication Date: 1995-Aug-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 89K

Publishing Venue

IBM

Related People

Macon Jr, JF: AUTHOR [+3]

Abstract

Disclosed is a method for maintaining, in a multiprocessor environment, the compatible operation of an application using thread serialization techniques based on assumptions that are not valid in such an environment. Such an application is marked so that it is identified by the operating system as it is loaded. After such an application has been loaded, the scheduler insures that only a single thread of the application is allowed to run at a time.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Maintaining Application Compatibility in Multiprocessor Environments

      Disclosed is a method for maintaining, in a multiprocessor
environment, the compatible operation of an application using thread
serialization techniques based on assumptions that are not valid in
such an environment.  Such an application is marked so that it is
identified by the operating system as it is loaded.  After such an
application has been loaded, the scheduler insures that only a single
thread of the application is allowed to run at a time.

      In the absence of this method, an application may not operate
properly if it uses thread serialization techniques based on the
assumption that threads of a lower priority will never run when a
higher-priority thread is running.  In a multiprocessor operating
system, multiple threads can run simultaneously, since each processor
can execute a thread.  Thus, threads of different priorities can
execute at the same time.  If these threads are from the same
process, and if the application has been written assuming the lower
priority thread will never run while a higher-priority thread is
running, the application will fail to operate correctly.

      Furthermore, since the microcode of a processor is written so
that a currently-executing instruction is completed before any checks
are done to see if there are interrupts to be serviced, a thread
cannot be preempted or interrupted in the middle of an instruction
executed with a single-processor operating system.  In this way, the
execution of each instruction is guaranteed to be atomic, as the
instruction is allowed to complete execution before anything,
including interrupts, is allowed to gain control of the processor.
This property allows data to be manipulated using logical operations,
such as INC, AND, OR, or XOR, by multiple threads, as the data is
protected without the need of a semaphore.  Therefore, some
applications are written for single-processor environments with an
assumption that threads manipulating process global data, using
logical operations, do not require semaphore protection.

      However, in a multiprocessor environment, with multiple
processors contending for the single bus, there is no guarantee that
any mu...