Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Multi-Function Input/Output Processor Fairness Algorithm

IP.com Disclosure Number: IPCOM000100733D
Original Publication Date: 1990-May-01
Included in the Prior Art Database: 2005-Mar-16
Document File: 2 page(s) / 73K

Publishing Venue

IBM

Related People

Schoeberl, DF: AUTHOR [+2]

Abstract

A multi-function input/output processor fairness algorithm is a technique to divide processor time fairly among requesting tasks. The algorithm exists as a portion of a control program executing in a multi-task environment. This control program dispatches requesting tasks to run in the processor.

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

Multi-Function Input/Output Processor Fairness Algorithm

       A multi-function input/output processor fairness
algorithm is a technique to divide processor time fairly among
requesting tasks. The algorithm exists as a portion of a control
program executing in a multi-task environment.  This control program
dispatches requesting tasks to run in the processor.

      The algorithm is based on priority and the concept of well
behaved tasks.  Well behaved tasks means a task never possesses the
processor for more than a specified amount of time without giving
another task a chance to get the processor.  A task gives up control
by going to a "swapping" loop.  This swapping loop is part of the
control program's overall responsibility.

      In the swapping loop, the control program checks the various
task ready lists for a task waiting to run.  When it finds a task
that is ready to run, it gives them control of the processor by
dispatching the task.  This searching through of lists is where the
fairness algorithm is useful.

      The main idea of the fairness algorithm is to give tasks at a
lower priority a chance to get the processor.  By having higher
priority tasks, these tasks get the processor for more time than a
lower priority task.  To accomplish this, a "fairness table" is
needed.  This table is nothing more than a series of flags.  There is
one flag for each priority level.  When a task is dispatched, the
flag for its level is set, meaning it has used up its right to run.
When it sets a flag for its level, flags associated with the levels
above it must be reset.  By resetting the flags above its level, it
gives the higher priority levels a chance to run on...