June 1973 - Vol. 16 No. 6

June 1973 issue cover image

Features

Research and Advances

Efficient multiprogramming resource allocation and accounting

Although sometimes thought of as only a component of time-sharing operation, multiprogramming can involve broader questions of resource allocation, since fairness is not required to meet a response criterion. In a multiprogrammed system, it may serve maximal resource use to be unfair, for example by holding an input/output channel idle for a program while it completes a small amount of processor usage, enabling further use of the channel. Several applications of this principle are given, and it is suggested that a multiprogramming executive might dynamically adjust its allocation algorithms to gain efficiency. Allocation of resources is closely connected to accounting for those resources, raising the problems of repeatability, minimal uncharged overhead, and relative weighting of charges for dependent resources. Since weightings may depend on allocation algorithms, these are not arbitrary accounting parameters. Often the only repeatable accounting is one which omits an extensive overhead; this overhead can be multiple-charged to all programs which benefit from it, so that in the worst case the overhead will be paid, and should multiprogramming prove efficient, overcharges will result. Multiprogramming turns on allocation of the memory resource essential to control of other resources. The general suggestions for allocation and accounting are applied to this question, and some details provided for the case of a monitor which controls a virtual-memory machine.
Research and Advances

Minimizing wasted space in partitioned segmentation

A paged virtual memory system using a finite number of page sizes is considered. Two algorithms for assigning pages to segments are discussed. Both of these algorithms are simple to implement. The problem of choosing the page sizes to minimize the expected value of total wasted space in internal fragmentation and in a page table, per segment, is then solved for a probability density function of segment size which may be expressed as a convex combination of Erlang densities.
Research and Advances

Synchronizing processors with memory-content-generated interrupts

Implementations of the “Lock-Unlock” method of synchronizing processors in a multiprocessor system usually require uninterruptable, memory-pause type instructions. An interlock scheme called read-interlock, which does not require memory-pause instructions, has been developed for a dual DEC PDP-10 system with real-time requirements. The read-interlock method does require a special “read-interlock” instruction in the repertoire of the processors and a special “read-interlock” cycle in the repertoire of the memory modules. When a processor examines a “lock” (a memory location) with a read-interlock instruction, it will be interrupted if the lock was already set; examining a lock immediately sets it if it was not already set (this event sequence is a read-interlock cycle). Writing into a lock clears it. Having the processor interrupted upon encountering a set lock instead of branching is advantageous if the branch would have resulted in an effective interrupt.
Research and Advances

On the near-optimality of the shortest-latency-time-first drum scheduling discipline

For computer systems in which it is practical to determine the instantaneous drum position, a popular discipline for determining the sequence in which the records are to be accessed is the so-called shortest-latency-time-first, SLTF, discipline. When a collection of varying-length records is to be accessed from specified drum positions, it is known that the SLTF discipline does not necessarily minimize the drum latency time. However, we show that the total time to access the entire collection for any SLTF schedule is never as much as a drum revolution longer than a minimum latency schedule.
Research and Advances

A computer generated aid for cluster analysis

A computer generated graphic method, which can be used in conjunction with any hierarchical scheme of cluster analysis, is described and illustrated. The graphic principle used is the representation of the elements of a data matrix of similarities or dissimilarities by computer printed symbols (of character overstrikes) of various shades of darkness, where a dark symbol corresponds to a small dissimilarity. The plots, applied to a data matrix before clustering and to the rearranged matrix after clustering, show at a glance whether clustering brought forth any distinctive clusters. A well-known set of data consisting of the correlations of 24 psychological tests is used to illustrate the comparison of groupings by four methods of factor analysis and two methods of cluster analysis.
Research and Advances

Optimum data base reorganization points

In certain data base organization schemes the cost per access may increase due to structural inefficiencies caused by update. By reorganizing the data base the cost per access may be reduced. However, the high cost of a reorganization prohibits frequent reorganizations. This paper examines strategies for selecting the optimum reorganization points.
Research and Advances

Threaded code

The concept of “threaded code” is presented as an alternative to machine language code. Hardware and software realizations of it are given. In software it is realized as interpretive code not needing an interpreter. Extensions and optimizations are mentioned.
Research and Advances

Algorithm 447: efficient algorithms for graph manipulation

Efficient algorithms are presented for partitioning a graph into connected components, biconnected components and simple paths. The algorithm for partitioning of a graph into simple paths of iterative and each iteration produces a new path between two vertices already on paths. (The start vertex can be specified dynamically.) If V is the number of vertices and E is the number of edges, each algorithm requires time and space proportional to max (V, E) when executed on a random access computer.
Research and Advances

Algorithm 448: number of multiply-restricted partitions

Given a positiver integer m and an ordered k-tuple c = (c1, ··· , ck) of not necessarily distinct positive integers, then any ordered k-tuple s = (s1, ··· , sk) of nonnegative integers such that m = ∑ki-1 sici is said to be a partition of m restricted to c. Let Pc(m) denote the number of distinct partitions of m restricted to c. The subroutine COUNT, when given a k-tuple c and an integer n, computes an array of the values of Pc(m) for m = 1 to n. Many combinatorial enumeration problems may be expressed in terms of the numbers Pc(m). We mention two below.
Research and Advances

Computer photocomposition of technical text

In computer assisted typesetting by means of photocomposition, special problems arise in highly technical material such as mathematical formulas. New solutions to several of these problems have been devised in the information system of the American Institute of Physics. They include: the representation of special characters (foreign alphabets, mathematical symbols, etc.) not available on input keyboards or on the photocomposer; the generation of such symbols, e.g. by overprinting; the precise positioning of accent marks (floating diacritics); line breaks, i.e. words or formulas placed partly at the end of one line and partly at the beginning of the next; and certain aspects of error correction.

Recent Issues

  1. November 2024 CACM cover
    November 2024 Vol. 67 No. 11
  2. October 2024 CACM cover
    October 2024 Vol. 67 No. 10
  3. September 2024 CACM cover
    September 2024 Vol. 67 No. 9
  4. August 2024 CACM cover
    August 2024 Vol. 67 No. 8