Browse Prior Art Database

Process Swapping in a Pageable/Preemptable Kernel

IP.com Disclosure Number: IPCOM000108448D
Original Publication Date: 1992-Jun-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 2 page(s) / 97K

Publishing Venue

IBM

Related People

Auslander, MA: AUTHOR [+4]

Abstract

In AIX* 3.1 for the IBM RISC System/6000*, the scheduler is purely a priority-based algorithm. That is, each process in the system has an assigned priority which are ordered in some fashion to allow those processes with the more favored priority to gain the CPU to complete their task. Each process will require a certain amount of memory resident in order for the task to be completed without the delays of page faults. Since AIX 3.1 has a pageable and preemptable kernel, processes in kernel mode can be preempted with resources in an unknown state. These processes should not be suspended until the resources are freed.

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

Process Swapping in a Pageable/Preemptable Kernel

       In AIX* 3.1 for the IBM RISC System/6000*, the scheduler
is purely a priority-based algorithm.  That is, each process in the
system has an assigned priority which are ordered in some fashion to
allow those processes with the more favored priority to gain the CPU
to complete their task.  Each process will require a certain amount
of memory resident in order for the task to be completed without the
delays of page faults.  Since AIX 3.1 has a pageable and preemptable
kernel, processes in kernel mode can be preempted with resources in
an unknown state.  These processes should not be suspended until the
resources are freed.

      It is well known that paging systems need to control the number
of processes running simultaneously to avoid thrashing.  Thrashing
occurs when the sum of the required memory for all running processes
exceeds the available main memory.  The set of processes allowed to
run is often called the multiprogramming set.  This will be a subset
of all available processes when thrashing is being controlled.

      Swapping is the process of removing a process from the
multiprogramming set (swap out) or returning it to the
multiprogramming set (swap in).  The problem is to determine when
thrashing is, in fact, occurring, and to further determine which
processes should be swapped in or out to control thrashing.

      We will use repaging rate as a measure of I/O directly related
to lack of sufficient memory.  This will provide detection of system
thrashing and selection of processes which need to be swapped to
control thrashing.

      Current solutions require the Operating System to guess what
the needs of the system will be in the future and attempt to prevent
the contention by "swapping out" to disk an entire process's pages to
free the memory for other processes to use.  The process to be
"swapped out" could be in any state or mode.

      The scheduler, a process that runs as a kernel process in AIX
3.1, can determine which processes will need to be swapped to reduce
the overall contention for memory. The process(es) chosen to be
swapped out will be marked as candidates and when the process returns
to user mode or is resumed in user mode, execution for the process is
suspended and another process is chosen t...