The working set model for program behavior

  title={The working set model for program behavior},
  author={Peter J. Denning},
  journal={Commun. ACM},
  • P. Denning
  • Published 1968
  • Computer Science
  • Commun. ACM
Probably the most basic reason behind the absence of a general treatment of resource allocation in modern computer systems is an adequate model for program behavior. In this paper a new model, the "working set model," is developed. The working set of pages associated with a process, defined to be the collection of its most recently used pages, provides knowledge vital to the dynamic management of paged memories. "Process" and "working set" are shown to be manifestations of the same ongoing… 

Figures from this paper

Caches versus object allocation

  • J. Liedtke
  • Computer Science
    Proceedings of the Fifth International Workshop on Object-Orientation in Operation Systems
  • 1996
Dynamic object allocation usually stresses the randomness of data memory usage; the variables of a dynamic cache working set are to some degree distributed stochastically in the virtual or physical

Memory equalizer for lateral management of heterogeneous memory

This paper presents a vision of memory management and its key component called fraction cache, which is a type of two-level exclusive cache that is flexible and encompasses a broad solution space.

Characteristics and models of program behaviour

By interpreting the execution of programs on a CII 10070 computer, data on the characteristics of program behaviour during their execution have been collected and these observations have been used to validate and to characterize models ofprogram behaviour such as the LRU stack, the life-time function and the working-set.

Online Working Set Change Detection with Constant Complexity: The Cornerstone for Memory Management Algorithms in Scalable Systems

A hardware-agnostic online working set change detection algorithm for each process in a system that perceives the occurrence of concavity in a program’s lifetime function as an outlier and heuristically attempts to classify such from the normal observations.

CPU-utilization and secondary-storage performance: the demand for a new secondary-storage technology

Use should be made of such devices as CCD storages in secondary-storage hierarchies, which offer themselves as the less costly solution to the problem of input/output bottlenecks arising from an insufficient number of storage devices.

CLAM: Compiler Lease of Cache Memory

Compiler Lease of cAche Memory (CLAM) is presented which augments the interface between software and hardware and lets a compiler control cache management, and enables optimization beyond what is possible in traditional memory system designs.

Replacement Policies for Heterogeneous Memories

This paper proposes the two variable-space heterogeneous VMIN (H-VMIN) and heterogeneous WS (H -WS) policies for flat DRAM-PCM heterogeneous architectures, which derive from the earlier VMIN and WS policies.

CARL: Compiler Assigned Reference Leasing

This article proves that CARL is optimal under certain statistical assumptions, and proves miss curve convexity, which is useful for optimizing shared cache, and sub-partitioning monotonicity, which simplifies lease compilation.

Prediction and bounds on shared cache demand from memory access interleaving

A theory to characterize the effect of memory access interleaving due to parallel execution of non-data-sharing programs is presented, which proves a lower bound for footprints of interleaved traces, and formulates an upper bound in terms of the footprints of the constituent traces.



An empirical study of the behavior of programs in a paging environment

This paper reports initial results from an empirical study directed at the measurement of program operating behavior in those multiprogramming systems in which programs are organized into fixed

The analytic design of a dynamic look ahead and program segmenting system for multiprogrammed computers

This work shall broaden the concept of the “look-ahead” function to the anticipation of the next “event” of a specified type whether it is a functional subroutine, instruction or an input-output function.

Segmentation and the Design of Multiprogrammed Computer Systems

The segmentation of procedures and data forms a model of program structure that is the basis of an address mapping function which will be a valuable feature of future computer systems.

A Study of Replacement Algorithms for Virtual-Storage Computer

One of the basic limitations of a digital computer is the size of its available memory; an approach that permits the programmer to use a sufficiently large address range can accomplish this objective, assuming that means are provided for automatic execution of the memory-overlay functions.

Dynamic program behavior under paging

In May, 1965, System Development Corporation (SDC) proposed to do some research to study program organization with respect to dynamic program behavior. Further, the proposal suggested that simulation


In this report thoughts are developed which form an adequate model of program structure which have grown out of many discussions with colleges in Project MAC, and the experience to date in the design and operation of multi-access computer systems.

Resource management for a medium scale time-sharing operating system

Task scheduling and resource balancing for a medium size virtual memory paging machine are discussed in relation to a combined batch processing and time-sharing environment. A synopsis is given of

Programming semantics for multiprogrammed computations

The semantics are defined for a number of meta-instructions which perform operations essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to

One-Level Storage System

An automatic system which in principle can be applied to any combination of two storage systems so that the combination can be regarded by the machine user as a single level is described.

An optimization model for time-sharing

  • D. Fife
  • Business
    AFIPS '66 (Spring)
  • 1966
The proper design of scheduling processes for time-shared computers has provoked much discussion, yet it is not feasible to experiment with many alternative procedures in operational systems and produce quantitative evidence of their relative merits.