ICL Technical Journal V01i01
ICL Technical Journal V01i01
S Journal
Contents
Foreword 3
Editorial 4
Wind of change
G.G. Scarrott 35
ICL Worldwide 90
The ICL Technical Journal is published twice a year by Peter Peregrinus lim ited
on behalf of International Computers Limited
Editor
J Howlett
ICL House, Putney, London SW15 1SW, England
Editorial Board
J. Howlett (Editor) D.W. Kilby
D.P.. Jenkins K.H. Macdonald
(Royal Signals & Radar Establishment) B.M. Murphy
M.V. Wilkes FRS J.M. Pinkerton
(University of Cambridge) E.C.P. Portman
C.H. Devonald
The views expressed in the papers are those of the authors and do not necessarily
represent ICL policy
Publisher
Peter Peregrinus Limited
PO Box 8, Southgate House, Stevenage, Herts SGI 1HQ, England
This publication is copyright under the Berne Convention and the International Copyright
Convention. All rights reserved. Apart from any copying under the UK Copyright Act 1956,
part 1, section 7, whereby a single copy of an article may be supplied, under certain conditions,
for the purposes of research or private study, by a library of a class prescribed by the UK Board
of Trade Regulations (Statutory Instruments 1957, No. 868), no part of this publication may
be reproduced, stored in a retrieval system or transmitted in any form or by any means
without the prior permission of the copyright owners. Permission is however, not required to
copy abstracts of papers or articles on condition that a full reference to the source is shown.
Multiple copying of the contents of the publication without permission is always illegal.
It is a pleasure for me to introduce this first issue of the ICL Technical Journal.
The electronic digital computer is one of the most important inventions of all
time. Its history is very short, scarcely 30 years, but in that time its development
has been dramatic, and one of the world’s greatest industries has been established.
This year marks the tenth anniversary of the formation of ICL; but in the work of
the companies from which it was formed ICL has been in this development from the
very beginning—I myself and many of my colleagues were personally involved with
some o f the first computers—and has made some of the most important contribu
tions. This has been possible only because we have always had on our staffs people
of great technical excellence and lively imagination, and we must always have
people of this kind if we are to continue as one of the leaders in this complex,
exacting and fast-changing industry.
Such people are always thinking independently and along novel lines, whether
producing new ideas or looking afresh, and often critically, at existing products,
practices and concepts. A great amount of this type of thinking, with attendant
discussion, is always going on inside ICL, far more than is generally realised. Much
of it should be more widely known because it contributes to the knowledge and
development of the computational art. Much does, of course, become known
through being incorporated in our products and a significant amount is published
in the regular technical literature. However, much remains, and it is with this in
mind that we are starting this journal. The papers will, in the main, be written by
ICL people and will concern the work and views of the individual authors. We have
an Editorial Board that includes two distinguished non-ICL members, to ensure that
high standards are kept, and it is open to any member of the company to submit a
paper for consideration. We shall invite a minority of papers from authors outside
the company, and I am very pleased to see that Professor Wilkes has a paper in this
first issue.
All the indications are that the journal will bring a great deal of interesting and
valuable information to a wide readership. I wish it every success.
Dr Christopher Wilson
Managing Director, ICL
J. Howlett
It is several years since the ICL 2900 series was first publicly announced
and already the second generation of both hardware and software systems
are being installed in customer premises. It therefore seems an appropriate
time to record how the 2900 came to be the way it is before the facts
become lost in the mists of folklore. Already almost all of the people
involved with the architectural design have moved on to other things and
the original reasons for particular features or the overall approach are not
necessarily obvious to their successors. This paper, then, is an attempt
to summarise the initial history of the ‘New Range’, the aims and objectives
that were given to the architectural designers, and some of the fundamental
design concepts that were adopted as a result of these constraints. Since
the author was concerned with the 2900 from its inceptiofl until after its
launch the history is complete in the sense that it spans the total incuba
tion period: nevertheless, since the author was obviously not privy to all
discussions or decisions that took place, it must be treated as a personal
interpretation.
1 Early history
The 2900 series arose directly from the formation of International Computers Ltd.
by the merger of ICT and English Electric Computers in 1968. At the formation of
ICL it was realised that within a few years the new company would need a range of
machines to replace the series currently being marketed by the individual compo
nents of the merged corporation. The 1900, System 4 and 4100 ranges inherited by
the new company were incompatible in almost every respect, and the cost of
maintenance of three production lines pointed to the need for some form of
rationalisation.
In addition, although there existed as-yet-unannounced developments of both
the 1900s and System 4s that could prolong the life of these ranges for several years
all three types of machine dated initially from the early 1960s. Major new design
enhancements would be needed to take advantage of improvements in hardware
and software technology over the past decade.
As a result of considerations such as these, one of the first corporate decisions
of the new company was to establish a New Range Planning Organisation under
M.LN. Forrest. The nucleus of this organisation, known by its initials as NRPO,
was formed by ‘professional’ planning staff drawn from the constituent companies.
To this nucleus were added experts in different disciplines from all the operating
divisions of ICL: development and manufacturing staff for both hardware and
This paper is based on extracts from the book The ICL 2900 Series by J.K. Buckle published by
MacMillan Ltd to whom we are grateful for permission to publish the paper.
© 1978 J.K. Buckle
The first category was the ‘aims’ team, who were responsible for establishing the
basic aims and objectives of the new range. They carried out market research,
determined trends, analysed competitive operations and technological develop
ments, and finally established a corporate marketing strategy.
The second category o f team was the ‘options’ team. Each options team had the
task of producing the outline design for an archetypal computer system that could
form the basis of a new range. The staff for each options team was drawn from as
wide a variety of disciplines as possible—hardware and software designers, techno
logy experts and marketing and planning staff. The teams were kept small to avoid
‘committee design’, but could call upon the services of a wide variety of experts
for advice from within ICL and outside. Each o f the teams had a specified ‘option’
that formed the framework for their design.
The final group consisted of ‘assessment’ teams. Their task was twofold. First
they extended the requirements laid down by the aims teams, by detailed examina
tion of particular aspects of computing with which the new range would be
expected to deal effectively. As an example, one o f these orthogonal investigations
was concerned with data management: the growth of data bases and the growth of
techniques for data capture, data transmission and data-independent programming.
Another group was concerned with ‘bridgeware’, the products necessary to ease
users’ transition from their current systems to the new range. The second task of
the assessment teams was to establish detailed criteria by which the output of the
options teams could be measured against the stated requirements.
2 Design influences
The very definition of the task of the Synthetic Option team meant that the result
ing design would be subject to a wide variety of external influences. In searching for
the best modem ideas in computing science and practice, and moulding them into a
whole, the team were subjected to various methods and techniques and, even when
these features did not appear in the final design, they had an effect on the team’s
thinking and its approach to solving particular design problems. External ideas were
considered and, if attractive, remoulded until they fitted into the partial design
edifice that was being built up. This process often introduced much greater genera
lity into 2900 concepts than had been present in the original source. For example,
the virtual machine combines a number of existing concepts into a single coherent
structure which is new, but the implementation of this new structure is by proven
individual techniques.
Many of the direct influences on the 2900 architectural design came, as one
might expect, from in-house systems. For example, concepts originating in Atlas
and its supervisor and developed on the large 1900s with the GEORGE operating
systems^ were well known to all the original team and provided a continuous
influence on the team’s thinking. Again, as already pointed out, there was con
siderable communication between the rival options. The Basic Language Machine
in particular was very carefully studied and many of Iliffe’s innovations became
foundations fox the 2900.
Of the competitive systems studied during the Synthetic Option design, those
most relevant were probably the large Burroughs machines. Although the funda
mental concepts of the 2900 architecture differ considerably from those of
Burroughs, similar design requirements have resulted in an overall design ‘shape’
that is quite similar. The Burroughs approach of a single high-level-language
machine was rejected for the 2900 series but the latter’s requirements for good all
round high-level-language performance led to the selection of some similar imple
mentation details. In the operating system area several Multics^ concepts had a
considerable influence on the 2900, particularly in the sphere o f protection where,
even eight years on, it still represents the state of the art.
However, the single most important external influence on the 2900 architecture
was almost certainly the Manchester University MU5 system.9- 10 This is hardly
surprising. The association between Ferranti Computers, a constituent of ICL, and
Manchester University went back to Mark 1 and had progressed through Mercury and
Atlas. At the time of the establishment of the New Range Hanning Organisation
a team at Manchester University had been working on the design of their fifth
The 1900 series was conceived from the start as a range of machines that would
cover a considerable spectrum of power and facilities. This made it necessary to
define the series in terms that were o f general application to all the members of the
range and not merely to design the first few models that were to be developed. The
range definition also had to be system-oriented and to cover items that might be
implemented in different ways-purely by hardware, or purely by software, or by
some mixture of the two—on different models of the range.
The description of the range in this fashion forms the basic architecture of the
2900 Series; it includes all the most important and interesting features and re
lationships of the components of a 2900 system. Because of the range and system
concepts underlying the 2900, these criteria are not always what one might expect
from older range definitions. For example, although all the early members of the
2900 range share the same order code, the order-code definition is not a part of
the basic architecture. (In practice, of course, the first implementations are likely to
become a de facto standard but alternatives are still possible.) On the other hand,
considerations of data storage and interchange, as well as international standards,
mean that the data formats do form part of the basic architecture: a 2900 is an
8-bit-byte, 32-bit-word machine, for instance. These considerations in turn place
restrictions on the features necessary in the instruction set, without actually de
fining its contents.
The basic architectural description of a 2900 forms a complex hierarchy. At the
top is the architectural model, which is a general description of a 2900 system. In
producing this model, the feasibility of actual implementations was of course
considered, but the model was kept as simple as possible, and any specific 2900
system design has to be a practical realisation of this. At the bottom level of the
hierarchy are descriptions of implementations of individual hardware and software
components which can be combined to form actual 2900 systems. Between the
extremes are a number o f range and subrange standards.
The guidelines for the design and development of the 2900 series specified by the
aims and assessment teams took the form of a catalogue of requirements, which
were of varying importance and seemed at times to the Synthetic Option team to be
too numerous and in some respects self-contradictory. In retrospect, however, it
can be seen that the requirements do indeed form a coherent set. Not all affect the
architectural model, some being more concerned with implementation details.
The requirements can best be considered as a hierarchy that has at its apex the
needs and wishes of the user of the system. This hierarchy is set out diagrammati-
cally in Fig. 2. ICL was out to make a system that would be financially successful
and it was realised that modem customers were not prepared to take an off-the-
shelf system, however good, and adapt it to their needs (or, worse, to adapt their
needs to it). The basic requirements for the new range were therefore specified by
the way in which its future customers wished to use their computers. The projected
customer base was not homogeneous and even wthin one customer installation the
needs of the management, technical staff and end users were liable to be different.
However, strong trends could be seen. At the grossest level the users’ needs split
down into cost-effectiveness and ease o f use. There are two possible approaches to
providing a cost-effective system, both of which were taken into account in the
2900 design. The first is to reduce the cost to the customer by reducing ICL
internal costs, the second is to make the end systems as efficient as possible in areas
of importance to the user.
5 Cost effectiveness
6 High-level interfaces
By the end of the 1960s, it had come to be realised that the man-machine interface
was far too close to the computer. To perform even relatively simple jobs required
programmers and operators with a great deal of knowledge and technical skill in the
particular hardware and software of the customer’s installation. As computer usage
increased such people became scarce and expensive. Accordingly there was a
tendency to raise the level of the man-machine interface and to make system input
as close as possible to the level of the natural statement of the problem or the
natural form of the data. This led to the almost universal adoption of high-level
programming languages in preference to assembler, the movement towards inte
grated data-management systems and databases, and in the idea of capturing data
where it occurs and delivering results directly to where they are needed.
Such developments eased the problems of scarce staff and long development
times but introduced new user worries in terms o f efficiency. A machine that has
been designed by assembler users for assembler users is unlikely to be well suited
to running structured high-level languages. In the data-handling area data-
management and communication subsystems tended to be grafted onto existing
hardware-software systems. The resulting ‘layers’, while providing some sort of
structured modularity, lead to unnecessary communication problems between the
subsystems and to duplication of code and effort in each.
The task set for the 2900 designers was to overcome these difficulties by start
ing from the outside with the user-interface requirements, and working inwards
towards a sympathetic hardware and basic software design. The data-related aspects
led to specific requirements on the hardware and supervisory system -the need to
To be useful for a compiler writer an order code must be regular in two respects.
First, it must be regular with respect to data type; integers, floating point, decimal,
single or double length. The hardware should provide the same instruction reper
toire for all data types wherever this makes sense. Secondly, order codes normally
provide several operand types: operands in store or in registers, operands accessed
indirectly via a register or store location, immediate operands contained within the
instruction itself. If these are to be effectively exploited by a compiler they should
be applicable to all instructions, not just an arbitrary subset, and to all data types.
An order code with these two types o f regularity, sometimes called an orthogonal
instruction set, is a prime requirement for providing simple but efficient compilers.
One tends to associate procedure handling with Algol and its derivatives but the
basic subroutine concept pervades all programming languages. Again with the
growth of complex operating systems and transaction processing, the interfaces
between the controlling system and the high-level-language application program itself
are of equal importance and these often show the same characteristics as a proce
Considered from the point of view of access, program data is essentially of two, and
only two, types.
Scalar data items are those that correspond directly to individual units of storage
(or small collections of such units). Structured data items, on the other hand, are
collections of scalar items that are treated in some sense as a named aggregate.
While a few languages provide facilities for dealing with these aggregates as entities
(APL, for example), in general the individual elements are accessed and manipu
lated by some form of indexing, slicing or mapping carried out on the named
aggregate. With the older scientific languages one tends to think mainly in terms of
arrays and with commercial languages in terms of records and character strings.
More modern languages have generalised these concepts to provide hierarchical
structures that can themselves contain arrays, strings or other structures as sub
structures.
Some special languages contain even more esoteric structures—lists, trees, etc.
These, and the need for efficient and convenient access to hierarchic structures, give
rise to a new scalar type - reference or pointer variables that can be used to access
other variables indirectly. Such scalars can o f course themselves appear in structures,
giving the possibility for extremely complex addressing patterns.
A ‘high-level-language machine’ thus needs to assist as much as possible in the
access of structured elements, and the detection of access errors. The only effi
cient and permanent solution to the latter is to provide some form of hardware
checking that can be done efficiently by overlapping it with other hardware opera
tions. Such considerations become even more important when the structured data
is in some sense self-defining, for example, in database -manipulation languages.
Although recent investigation of real programs (see, for example, Reference 11)
show that few contain complex arithmetic expressions, it would nevertheless be
nice if the ‘high-level-language machine’ did assist the compiler in this area. Of
7 Fundamental concepts
The remainder of this paper is concerned with the basic principles that underlie the
2900 design; how programs in practice work; how they are conceived by the
programmer, transformed into electrical or electronic patterns in the hardware, how
execution is then carried out and how this maps back on to the original algorithm.
It is in the light of these concepts that the basic architecture of the 2900 series can
best be understood.
In examining these aspects of program structure we are concerned with two
interrelated ideas. First, how does the program actually use the hardware resources
of store, peripherals and processors? Secondly, what is the relationship between the
program in the programmer’s mind and the actual hardware used and the software
that is executed? The second idea itself consists of two parts. We need to study
both the way that the final executable representation of the program is structured,
and the translation process that takes place from the conceptual to the actual.
Consideration of these ideas in as abstract a fashion as possible without the
constraints of existing hardware and software leads to some fundamental architec
tural decisions. These decisions are dealt with in outline in the remaining sections.
The way in which programs use store, processors and peripherals was perhaps first
examined systematically in the joint development of Atlas by Manchester Univer
sity and Ferranti. Essentially we have programs that wish to use more storage or
more peripherals than are available to them, or even than there is available on the
system as a whole. And conversely we have the fact that no individual program can
efficiently use all the available resources all the time.
The second problem was solved by what was originally called ‘time-sharing’,
but is now a generally accepted technique under the name of multiprogramming.
Essentially a supervisory system shares the available processor time between several
programs in order to maximise the use of other resources - peripherals, file devices,
store. Individual programs, however, are unaware of this process and believe that
they have the central processor to themselves - a virtual processor, in fact. The
solution to the peripheral problem appeared long before Atlas, in IBM machines
among others. If a program needs two line printers and the configuration has only
one we accumulate the data being sent to the two distinct outputs on two print
files and then print them sequentially on the single printer. We have created a
9 The process
The first step in using a computer to solve a problem is for a programmer to find or
invent an algorithm. This algorithm is then converted into statements in some
machine-translatable language. With knowledge of the requirements of the preced
ing sections we can assume that this is a high-level language of some sort. It is there
fore tolerably close to the programmer’s initial conception and this statement is the
‘highest’ level of expression of the program that we need to consider. This repre
sentation is then translated by a compiler into one or more sections of machine-
code representation. Some of this translation will be direct in the sense that there
will be instructions that correspond in a straightforward manner. In addition some
services (such as type-transformation code) that do not correspond directly to the
high-level language may be added by the compiler. In other words sections of code
have been added to the original statement to make the algorithm work at this
lower level of abstraction.
Applications programs
Compilers
Utilities
Library procedures
and subroutines
Operating system
interfaces
The next stage is to assemble and load the program. Unless the program is very
unusual this will result in more code being added to satisfy library calls. However,
even this loaded manifestation is not a complete statement of the algorithm in
terms of the hardware since the program will during execution also use code in the
operating system. Such use may be explicit, as in a ‘get-time’ command or an I/O
initiation, or implicit in the allocation of resources to allow the algorithm to be
executed. This conventional software model is shown in Fig. 3. The operating-
system code is as much part of the program representation as the square-root or
sort routine but it is not ‘added’ to the program in the same way as the other.
Communication between the operating-system code and the rest is slow and ineffi-
Application programs
e.g. Cobol program for information retrieval
Record management
blocking/unblockingfiles—serial,
indexed sequential etc.
Catalogue management
user, file, volume-management services etc.
Hardware
10 Program structure
The final set of fundamental concepts arises from consideration of the structure of
programs in their high-level-language form and attempting to find ways to pro
vide a system on to which this natural structure can be easily mapped. What then
are real programs actually like? Examination shows that most are often badly and
illogically structured, but that modern programming techniques are attempting to
eliminate this. The basic unit of structure tends to be a subroutine, procedure or
module; that is, a set of code for carrying out a well defined subset of the algorithm
with its own constants, named scalars and data structures. The data structures could
be simple things like an individual array or a complex entity such as a Fortran
common block.
Fig. 5 shows the structure of a very simple 2-module process. The two modules
each have their own code and constants and a set of named items. Some of these
latter are scalar variables, others are the names o f structures that are represented
separately. In addition, there is a need for general work space for use during the
process execution. The size of this area will, unlike other areas, vary dynamically
as the modules are executed. In the diagram module 1 calls module 2 as a procedure
and passes to it a scalar parameter, which is referenced in module 2 as the first of
its named items, A2. Note also that the two modules share access to data structure
Y. This is common since passing complete data structures as parameters is time-
consuming. Sharing scalars is less common but possible, and they can be considered
as degenerate structures. In addition, in some block-structured languages at least,
it may be possible to access the local names of module 1 from module 2.
What we require in an architecture, then, is a natural support for this form of
m o d u le 1 m odule 2
call
code-1 code-2
c o n stan ts-1 constants-2
work sp a c e 1-------------------------------F w o rk sp a c e
These then are the basic constraints and fundamental ideas that led to the archi
tecture of the 2900 Series. Singly, or in combination, they gave rise to the intro
duction o f a procedural stack, hardware-supported descriptors, virtual-machine and
process-support mechanisms, a sophisticated protection system and the other,
now well known features that distinguish a 2900 system. Anyone wishing to follow
the steps through the formulation of the basic architecture to the first manifesta
tions of the 2900 Series is invited to consult Reference 12.
Abstract
Component Loading
%
processor 44
input magnetic tape 27
output magnetic tape 27
disc controller 1 25
disc unit 1 57
disc unit 2 3
disc unit 3 -
disc controller 2 9
disc unit 4 -
disc unit S 9
disc unit 6 -
Component Loading
%
processor 45
magnetic tape 1 -
magnetic tape 2 -
disc controller 1 9
disc unit 1 8
disc unit 2 -
disc unit 3 6
disc controller 2 52
disc unit 4 -
disc unit S 6
disc unit 6 46
The first point to notice is that some hardware components (processor, discs
and disc controllers) are shared by both jobs. Consider the effects of sharing the pro
cessor. From time to time job A will need to use this; sometimes it will be able to
do so without delay, at others the processor will already be occupied by job B and
therefore A will have to wait (ignoring for the moment questions of priority
scheduling). Similarly job B will, on occasion, have to wait for job A and similar
processor 44 45 89 31 32 63
magnetic tape 1 27 - 27 19 - 19
magnetic tape 2 27 - 27 19 - 19
disc controller 1 25 9 34 18 6 24
disc unit 1 57 8 65 40 6 46
disc unit 2 3 - 3 2 - 2
disc unit 3 - 6 6 - 4 4
disc controller 2 9 52 61 6 36 42
disc unit 4 - - 0 - - 0
disc unit 5 9 6 15 6 44 10
disc unit 6 - 46 46 - 32 32
elapsed time (min) 42 40 82* 59 57 59*
Ideally the throughput (the amount of work done in a given time) should
increase more or less linearly with the number of jobs in the system. But this could
be realised only on an idealised ‘infinite’ machine that could give every program the
service it needed whenever it needed it. On a real finite machine contention for
shared components results in queuing delays and, clearly, the contention and delays
increase as the number of programs increases. In practice a state is reached at which
increasing the number o f programs yields little further increase in throughput and
may even decrease this. A quantitative understanding of the situation, which
depends on the particular configuration and the particular program mix, is clearly
important for the efficient scheduling of the jobs. Sizing techniques enable this to
be obtained objectively and with acceptable accuracy. Used in this way, sizing can
be helpful in many ways:
(a) assisting in scheduling jobs that do not have deadlines for completion
(b) for jobs that do have deadlines, indicating which other jobs, if any, can be
run concurrently without delaying unacceptably the time-critical job
(c) explaining quantitatively why certain jobs do not multiprogram together
successfully, thus enabling corrective action to be taken
2 Levels of sizing
Implicit in all the foregoing is the fact that there are two distinct levels of sizing:
(a) application-level sizing, concerned with individual applications or jobs
running essentially in isolation, in particular, not contending with other jobs
for shared resources
(b) installation-level sizing, concerned with the performance of a complete
workload, and taking account of the contention for shared resources.
This can be used for several purposes. It can give a quantitative comparison of
the costs, in machine terms, of different design approaches for a given application,
e.g. serial versus random. It can reveal the elements of a job that are most costly in
terms of machine resources, thus highlighting the elements that will yield most
benefit from optimisation. It can form one element in the cost-benefit justification
of the application. It can enable the effects of increases in data volumes to be
predicted accurately.
This too has several purposes, notably in scheduling for multiprogramming and for
planning the optimum nature and timing of enhancements as described earlier. It
can also be used to help in planning file placement when disc units, disc controllers
and magnetic-tape controllers are shared by concurrent jobs.
Important though each level is in itself, their full potential is realised when
they are used together, essentially in an iterative loop (Fig. 1).
.application-level s i z in g
c o n s t r a i n t s on t h e r e so u rce d e m a n d s of
v a r i o u s jobs th e v a rio u s jobs
in stallatio n -lev el s i z i n g
It is important to distinguish between two distinct but related activities: sizing and
tuning.
Sizing can be defined as ‘the continuous process of matching a configuration’s
power to the demands made by the various jobs’.
Tuning can be defined as ‘the continuous process of obtaining the optimum
throughput from a given configuration with a given work mix’.
4 Data collection
An essential adjunct of sizing and tuning is the collection of data. The data required
relates to:
(a) the current workload
(b) the projected workload
(cj the hardware and software characteristics o f the configuration.
For the projected workload (i.e. principally the new applications) the quantity and
quality of the data will change as each application’s design progresses. At the
feasibility-study stage, one may have only a rough idea of data volumes, hit rates,
amount of processing etc, and many assumptions and ‘guesstimates’ must be made.
The sizing will necessarily be subject to wide tolerances. As design progresses,
assumptions can be replaced by firm decisions, estimates can be refined or even
replaced by definite values, eg program path lengths. To aid the corresponding
refinement of the sizing, all assumptions and estimates must be recorded and, as
far as practicable, the sensitivity of the sizing results to errors in the assumptions
and estimates should be assessed.
5 Monitoring
Part at least of the data collection relating to the existing workload and the way it
runs on the configuration can be done by actual measurement during practical
running.
There are three principal sources of data:
(a) the applications themselves. Many applications record data about their own
running, such as file sizes and numbers of transactions processed, often for the
purposes of auditing and control. Such statistics can be very useful for sizing
and tuning.
(b) the operating system. Most large, comprehensive operating systems, such as
GEORGE 3 and the Virtual Machine Environments for 2900 Series, include
data-collection facilities, measuring and logging such things as processor utilisa
tion, peripheral and file-store transfers and paging.
(c) ad hoc monitoring, that is, making measurements specifically for the
purpose of sizing and tuning.
Monitoring can be by special hardware or software. For hardware monitoring, a
special item of hardware is connected to the configuration being monitored (the
‘host machine’). Probes from the hardware monitor are connected to selected
6 Sizing techniques
The range of techniques available for sizing studies is outlined below. The principal
groups are:
(a) gross sizing
(b) modelling
(c) analytical methods
(d) experiment
This uses simple, quick methods to obtain approximate answers. It is based on rela
tively crude measures such as ‘I estimate that this job is equivalent to 500,000 Post
Office work units (POWUs) of processing and involves 20,000 random accesses to
a disc. The processor power is equivalent to 400 POWU per second, and an average
disc access takes about 120 ms. Therefore, the job will take 1250 s for processing
and 2400 s for the disc accesses. Assuming an average concurrency o f 1*5, then the
run time will be about (1250 + 2400) -r 1-5 s i.e. 2400 s or 40 min. The loadings
6.2 Modelling
Modelling embraces two principal methods: barcharting and simulation. A bar chart
is a diagrammatic representation of the activities in a program. A line is drawn for
each hardware unit used by the program, and on that line are marked the periods
when that unit is actually functioning. The bar chart in Fig. 2 is part of the com
plete chart for the case of an update program with main files double-buffered on
magnetic tape in which, for each block of the main file, there must be a random
access to a reference file on disc. The relatively infrequent accesses to the file of
input transactions and to the print file are ignored. It will be seen that the bar chart
reveals a regular cycle, from the start of processing one block to the start of proces
sing the next. Once that cycle has been discovered from the bar chart the required
results follow easily. The run time is simply the duration of that cycle multiplied
by the number of blocks in the main file. The loading of each component is given
by the percentage of the cycle time for which the component is active.
input
m agnetic tape ,-1- B
35ms j 35ms 35ms 35ms
processor
disc unit
" >-*-1
20msj
22msj
LA 62ms
T
B
71
20ms 22ms.
B 62 ms^ | Fi
B_L C
— j20ms
'Ic 62ms r
disc i 1 9 m s^^j i i
controller 63 82 19ms
output I A I B
magnetic tape 35ms 35 ms
A bar chart is also valuable in providing a clear picture of how the program uses
the hardware. Fig. 2, for example, shows clearly the large proportion of the cycle
time that is due to accessing the reference file, suggesting that thought could well
Experimental methods are in principle the most accurate and reliable methods for
sizing. Perhaps the best known is benchmarking, in which a job or a mix o f jobs is
run on an appropriate configuration and the performance measured. There is, of
course, the problem of obtaining time on a suitable machine. More significant,
perhaps, is the difficulty o f ensuring comparable standards o f operating and tuning
between the benchmark and the everyday, production running o f the job. Also, the
jobs in a benchmark are often ‘typical’ jobs rather than ‘actual’ jobs, introducing
a further degree o f uncertainty into any conclusions that may be drawn.
Another experimental technique is the so-called ‘network simulator’ intended
for testing and measuring the performance of online systems (TP or MAC). To test
a TP or MAC system in real operation necessitates having the mainframe computer,
the network, N terminals, N trained terminal operators and N observers to monitor
the operators, and to have them all available for a period long enough to give a
realistic test. Assembling those resources may not be easy. A network simulator is
a program that generates messages as though from terminals and loads them at a
controllable rate directly onto the mainframe machine in the absence of the
communications network etc.
Since the mainframe and its software are being exercised under (reasonably)
normal operating conditions, the results are, in principle, very accurate. However,
if the network simulator program runs in the mainframe itself, then it absorbs some
Application level j 7 7 X X J X
batch
Application4evel j X 7 7 X J 7
communications
Installation-level 7 *>* 7 ?t 7 J X
batch
Installation-level j X J J ?f 7 7
communications
The principal uses and benefits of sizing and tuning have been suggested in the
foregoing discussion. Essentially, they can be expressed as the use of objective,
quantitative measures of the current and future workload and of the capacity of the
configuration, to provide a basis for decisions relating to the effective exploitation
and development of a computer configuration.
It is important to realise that sizing and monitoring are tools to aid decision
making. Therefore every sizing activity should have explicit objectives—essentially,
a question that can best be answered by a sizing study and the answer to which can
lead to beneficial action. Therefore the effective use of sizing requires a perception
of the type of question that sizing studies can answer, together with the ability
to interpret the results and use them as a basis for decision and appropriate action.
In that, sizing is no different in kind from many other activities in data processing,
and in commerce and industry generally.
The paper has given examples of the types of question that can be answered by
sizing studies. Anyone whose reponsibilities require the answering of such questions
could well consider sizing as a helpful tool.
Abstract
The paper outlines the analytical arguments underlying the selection of the
projects undertaken at the ICL Research & Advanced Development Centre.
The arguments are derived from consideration of the potential scope of the
business of ICL regarded as an information-engineering company. Four of
the recent ICL projects are described in outline: Variable Computer Sys
tem; Content-Addressable Filestore; Distributed-Array Processor; and man/
machine interaction by speech.
1 Introduction
The ICL Computer Users’ Association took for its 1978 conference* the theme
T he wind o f change’. It is, therefore, appropriate that we from the Research &
Advanced Development Centre (RADC) should discuss this theme, since it is our
responsibility to be aware of the ‘win ds o f change’ and to ensure that the Company
is prepared for them. I should emphasise that industrial research departments such
as ours do not blow these winds; it is the worldwide community of users and
suppliers of information systems who collectively determine events and decide
when change shall be inhibited, which changes shall be encouraged and when
change shall become a hurricane. It is the role of industrial research to forecast the
inevitable and prepare for it: in a word, to be the barometer and not the tempest.
I shall first discuss the role of ICL Research and our point of view. This leads
naturally to a consideration of techniques for technological forecasting, a ten year
forecast for information engineering, some consequential ICL research projects and
conclusions for the Company and its customers. I have used the term ‘information
engineering’, which I feel best describes the field covered by ICL research; perhaps
an unfamiliar term but an appropriate description o f the computer business now
that it has become of age. Let us look into the precise meaning. According to
Webster, an ‘engineer’ is an ingenious fellow who puts scientific knowledge to prac
tical use-indeed the very word ‘engineer’ is simply derived from ‘ingenious’. Thus
an ‘information engineer’ is concerned with the deployment o f available technology
to meet the information-handling needs of society. I suggest that each of us in this
industry could legitimately cherish an honourable ambition to be such an engineer
by cultivating a deep understanding of the social purpose of our wares as well as
skills in designing and making use of them.
♦This paper is based on a presentation made to the ICL Computer User’s Association at their
Annual Convention, 1978
3 Systematic forecasting
We must first consider which way the wind of change is blowing and which appar
ently well established practices are likely to be swept away, so that we are prepared
to ride the events when they occur. To do this, we must endeavour to forecast
events well before they occur. Such forecasting is hazardous in any business, but
particularly so in the computer business, with its feverish rate o f technological
innovation and incomprehensible jargon. It is possible to minimise such hazards but
only by cultivating a sense o f history—a feel for the technological evolutionary pro
cess. We can never achieve certainty but forecasting based on an analysis of the
historical record is certainly more trustworthy than science fiction over the period
of about ten years for which systematic forecasting is possible and necessary. A
longer term forecast is of somewhat academic interest, since, even if we got it
right, few would believe it and fewer still would regard such a forecast as a spur to
action. I propose first to take a broad view o f the general technological evolution
ary process and then concentrate on the expected events in our particular field of
information engineering.
Let us consider the technological evolution o f a typical product in the four
phases: birth, adolescence, maturity and senility. When the new product first
appears, the technology for making it is primitive, but, if it serves a useful purpose
at all, pioneering users exist whose needs for the new products are so pressing that
they are willing to adapt their practices to take advantage of it. Thus, in the begin
ning most o f the discussion is concerned with ‘how’ to make and use the product
and there is very little discussion of ‘what’ purpose the product should serve or
what should be its technical specification to serve such a purpose. In the adolescent
stage the main population o f users begin to appear. Many of these do not have such
a clearly recognised need, and, indeed, some of them may be only following fashion.
As a result o f this, discussions regarding the new product begin to tackle the more
The first useful electronic information engine was developed during the Second
World War. Since that time, the physicists and electronic engineers have done a
splendid job introducing solid-state devices and large-scale-integrated fabrication
techniques, which have removed many of the technological constraints that shaped
the early information engines. However, the refinement of technology has not yet
been complemented by an understanding of the natural properties of information
adequate to guide the deployment of our new found technological mastery, so that
a first approximation to an understanding of the present situation in information
engineering would be to liken it to the situation in the evolution of steam engines
in the early 19th century after techniques for casting, forging and machining had
provided the “means’ but before theoreticians such as Carnot and Rankine had
illuminated the ‘ends’ for steam-engine design.
5 Constructional technology
So much for the present situation; what is going to shape the future? It is easy to
summarise the technological situation. The essence of the matter is that planar
microfabrication techniques have rendered the constructional units for processor,
fast store and lst-level backing store so similar that all three elements can now be
assembled in any mixture that we need. There is no longer any over-riding construc
tional reason for continuing the traditional practice, pioneered by Von Neumann,
of concentrating each type of element—main store, backing store and processor—
in a separate box and interconnecting the boxes via bottlenecks. Thus, technologi
cal advance permits us to design our systems to meet our up-to-date understanding
of the users’ requirements but it does not tell us how to do this. Only a deep
understanding of the interface between the system and its human users can do this.
6 Essential requirements
It is now possible to see clearly that an effective solution o f such problems can be
devised only by cultivating an attitude of humility in the design of our information
systems. We must first recognise that there is an underlying unity in the tangle of
computer applications and that it is derived from their common factor-people.
Information structures appear at first sight to be arbitrary and ad hoc, invented
on the spur o f the moment for each specific purpose. However, such structures are
heavily influenced by habits that have been evolved over a long period to create and
maintain co-operative social groups. One such habit, the use of tree-type data
structures, obviously derived from the wide use o f tree-type social organisation
structures, is well known to the designers of high level languages but has seldom
been reflected in computer design. A consequential and less obvious habit arises
If we extrapolate from the present situation taking into account the analysis of
requirements and available technology that I have outlined, a forecast for the next
decade of information engineering is almost obvious. The prime objectives for
system design will be data management and keeping complexity under control. The
essential technique for ensuring that complexity is manageable is to arrange that the
quantity of information handled by the designers or users at one time is within
human capability. Thus the design o f both hardware and software must be modular.
The modules must not be too large and they must be separated by clean and tidy
interfaces so that errors in one module cannot sabotage others. Above all, it will be
For several years the work of RADC has been selected to prepare for the situation
that I have described. We have put most of our efforts into four projects: variable
computer system (VCS), Content-addressable file store (CAFS), distributed array
processor (DAP) and interactive man/machine communication by speech.*
The conceptual origin o f this project was the recognition that the natural way that
people access information is not by the use o f a fixed reference framework, as in
the von Neumann machine, but by the use o f a reference map that can be created
and continuously updated by the user to suit his purpose. The objectives were
twofold:
* Papers dealing in more detail with these and possibly other RADC projects will appear
in subsequent issues of this journal
We now know that the first objective is similar to the ‘capability’ systems designed
at the Universities of Chicago and Cambridge.! The provision of a secure map
makes impossible many o f the programming errors the unmonitored accumulation
of which accounts for the severe difficulties that are commonly encountered in the
development and maintenance o f complex software.
The VCS system has been demonstrable in the Research Department since 1974
and recent work has shown how it could be implemented on standard Company
hardware (the MICOS 1 processor in the 2903). We have compared the performance
of the VCS/M1COS 1 system obeying COBOL programs with the performance of
1900/M1COS 1 (2903) on the same COBOL programs and find that VCS offers:-
Over the past few years we have designed and built such a searching device based on
the use of disc files and have conducted extensive experiments on methods of using
this to meet difficult requirements such as telephone directory enquiries, biblio-
1 jo b s m a n
se lec to r 2 a g e 28
3 b o n u s 750
B oolean
expression 1 ; 8.2 s& 3>
re tr ie v e r . n a m e pc
1;
search & search
control 2< ■v
m icrocode control
&
I
o utput
b u ffer
I
r e s u l t ; Brown n um ber 186
This project was originated about 5 years ago in direct response to the recognised
requirements of weather forecasting and meteorological research. Since that time
the scope of the work has been broadened to include a very much larger range of
problems, for example plasma physics and associative information retrieval.
The great majority of present computer systems can be regarded legitimately as
direct descendants of the Von Neumann machine in the fundamental sense that
they are characterised by four features:
(a) the processor is primarily designed for arithmetic operations, with logical
operations regarded as a byproduct
(b) the store and the processor are separate
(c) the store-processor combination can obey only one instruction at a time,
each requiring not more than two operands
(d) the essential objective in programming such a machine is to represent the
overall task by a serial string o f such instructions.
These primary features have been somewhat blurred in some powerful machines by
tactical measures such as pipe-lined operations on ordered strings of operands, but
the fundamental principle that strings of individual instructions are obeyed sequen
tially is still valid. Hence the connection between store and the processor inevitably
imposes a well defined upper limit to the rate at which the whole assembly can
operate. In short, it is a bottleneck.
With the introduction of semiconductor storage and large-scale integrated
circuits, the original reasons for separating processor from storage are no longer
valid. Furthermore, most of the information in the world is not numeric and
consequently a growing proportion of computer operations are not arithmetic, so
that we should now regard arithmetic processing as a specialised use of more
general and fundamental logical operations. Accordingly, to deploy up-to-date
technology to meet a broad spectrum of users’ requirements, it is now appropriate
to revise all four features of established system design practice. In the DAP all these
changes have been made.
The conventional semiconductor store inevitably is made in many elements, each
typically storing a few thousand bits. In the DAP each element has its own very
simple processor primarily designed to carry out logical operations on one bit
operands. It writes its results into its own storage element and can use, as input,
information from its own store, its immediate neighbours or elsewhere via row or
column highways in a matrix o f storage elements. Thus the DAP offers the follow
ing fundamental advantages over current methods:
(a) the simple processing elements are easy to design and build, and are
flexible in use
(b) the physical distance between each processor and its store can be very short
(c) there can be many such store-element/processor-element connections
operating simultaneously
(d) real problems are commonly parallel by nature: the DAP provides a
parallel processing capability that can match the structure of the solu
tion to that of the problem. The DAP Fortran language gives a concise
All the processing elements obey a common program but each element can be
instructed or instruct itself to ignore any command in order to provide sufficient
flexibility to enable the apparently rigid matrix to be adapted to the needs of
different problems.
The complete assembly can be regarded as a store that has all the properties of a
traditional store but with the extra facilities that have been described. It can there
fore store its own instructions in the normal way. Moreover, the DAP store can be
incorporated as part of the store of an existing host computer of conventional
design that is responsible for putting the problem in the DAP part of its own
store and also obtaining the answers. In this way it is possible to take advantage of
the power of the DAP to tackle difficult processor intensive parts of real problems
without requiring complementary development o f a new operating system.
The proposal was conceived in 1972 and a 32 x 32 pilot machine has been
working in RADC since 1976. This has given firm information on basic perfor
mance and has made it clear that the DAP can be applied to a wide range of infor
mation processing tasks; and indeed that intrinsic serialism in real problems is quite
rare. Table 1 shows estimates of the performance of a 64 x 64 machine, derived
from detailed studies, for a number of complete calculations, as compared with
existing implementations on particular machines.
Table 1 Performance of 64 x 64 machine
Arithmetic-dominated programs
Structural analysis (finite-element method) 6 x IBM 360/195
Meteorology (complete suite of operational programs) 13 x IBM 360/195
Many-body problem (galactic simulation) 10 x CDC 7600
Magneto-hydrodynamics (3-dimensions) 14 x IBM 360/91
Decision-dominated programs
A table look-up problem 3 x CRAY-1
A pattern-matching problem (binary strings) 300 x IBM 360/195
Operational research (“the assignment problem”) 1200 x IBM 370/145
Abstract
1 Introduction
Until quite recently, the traditional computing scene was dominated by installa
tions that were planned and implemented as self-contained, ‘closed’ systems.
Some resource-sharing systems with elements from several different commercial
origins have been made to operate successfully but the agreement of the rules for
interconnection have required delicate negotiation, and, more often than not, the
complete adoption of the rules of the dominant supplier in the mix. Even these
systems, for all intents and purposes, operated in a closed-system environment.
A significant change can now be detected as some users begin to explore the
possibilities of ‘open working’. This is defined as the ability of the user or the
program of any computer to communicate with the user or the program o f any
other. The awareness of the possibilities o f open working is a direct consequence
of the planning for data networks which has been carried out in many countries
over the last few years. Data networks will follow the same pattern of evolution
as voice networks and they will have the same degree of ‘openness’ as the tele
phone and the Telex networks, with complete freedom of interconnection.
The International Telegraph & Telephone Consultative Committee (CCITT)
has defined a standard network-access protocol (X25), which was originally aimed
at packet-switched networks, but it will undoubtedly be offered by all future
packet- or circuit-switched data networks. It is widely believed that this new
protocol will immediately solve all interconnection problems, once the basic hurdle
o f introducing the interface has been overcome. This is not so! The interface and
the data networks behind it will be transparent to the interchange between users.
The need for mainframes to be aware of how alien subsystems are driven is un-
This paper is an updated version of a paper published in Computer Communications in
February 1978. We are grateful to the Editor and the publishers for permission to use this
earlier material
Fig. 1 gives an impression of an open network o f the future and the broken line
shows typical intercommunication paths. In a truly open concept, each terminal,
small processor and host processor will be able to intercommunicate freely and may
agree to delegate, accept or share tasks. Even the systems that were previously
regarded by the CCITT as message-transfer services, such as facsimile and the pro
posed enhanced Telex service (Teletex), are coming under the open network
umbrella. The latter is bound to grow and merge with the general word processing
environment. Ultimately, all data-communication services will be enveloped.
It is essential that a strict architectural approach to the design o f the overall com
munication process is adopted. Using this approach it is possible to hide the particu
lar facilities of each network from the higher levels, thus allowing the terminals and
processors to use the communications facility as a subnetwork that is totally trans
parent to the actual data-communication process. Common high-level application-
oriented protocols, which are network independent, can only be designed when this
approach is used.
All the functions involved in the overall communication process can be broken
down using the ‘onion-skin’ architecture technique. This was developed during the
original work by ICL on data-communication protocols which led ultimately to the
User Level: the user himself or a program in a computer that initiates or controls a
transfer o f data either manually or automatically.
Commands: the commands that determine the type o f communication, the attri
butes or characteristics o f a particular transfer and the control of actions.
Data and its structure: the coding o f information, the formats of messages and the
creation and display of messages, especially in interactive operation where a
terminal is involved.
Files and their structure: database structures, the format of stored data, the means
to access files, sorting sequences and file labelling.
Operating system: the basic software in a processor that controls all processes and
operations. Virtually all processes are routed through this. Access methods must
blend with all the proprietary operating systems.
Command protocols: currently three major types are recognised. These are proto
cols to handle files of data (including the activation of input/output devices),
job-control command protocols (including the loading of new programs into a
remote computer), and message protocols, especially for interactive operation.
Message protocols will include the virtual-terminal protocols mentioned above.
Network management: the method of establishing a transmission link between
sender and recipient. This may involve switching, including the addressing of the
sender and the recipient, and the establishment of the identity of the calling and
called parties. It also includes flow control, recovery from line errors and faults,
alternative routing, means for internetwork operation, priority, security and the
method of terminating a call.
Block or packet structure: the method of distinguishing line-control signals from
data by adding some form of ‘envelope’ with a header (to include addresses and
other link-control data).
Link control: once a transmission link is established, its control, including error
control and retransmission, is referred to as link control. The basic mode and the
HDLC procedure standards that have been produced by ISO are typical of this
level.
Coupling equipment: the means within the data terminal equipment (DTE), which
may comprise a simple terminal or a whole computer, to connect to the line. This
may include the connection to concentrators or multiplexers.
Connection to the PTT network: the PTT equipment is often referred to as the
data-circuit terminating equipment (DCE). In existing systems this will be a modem
but new data networks may have a unit known as a network terminating unit
(NTU). Transmission, timing and synchronisation are provided at this level. It will
also include the circuit into the local concentration point or the switching centre
of the network.
P TT network: includes all the switched or leased network facilities provided by the
PTT. In packet-switched systems it includes all the exchange equipment which
controls the calls and the packet switching exchanges or nodes. It also includes
user-support services, such as testing and fault-finding facilities and the monitoring
of the performance and the quality of the service.
It may be noted that in some cases certain of the above levels may be bypassed
(e.g. an interactive message may not involve a data file) or the route may be
predetermined (e.g. point-to-point communication over a leased circuit).
There are three main views of a computer network: the administrator looks at its
value to his users, the computer man sees only the computers and the telecommuni-
cator looks outwards from the network. The architectural concept clearly relates
each function and permits these three viewpoints and perspectives to be combined.
The architectural diagram defines the chain of functions that make up overall
process. If any link in the functional chain is weak—or, worse still, omitted—the
efficiency of the whole system is impaired.
Fig. 2 reveals clearly where interfaces should be established (the term is used
with its proper meaning o f an imaginary surface at which the form, function and
procedures for signals that cross the interface are specified). They should lie
between an adjacent pair of the functional units.
The approach also shows ‘regions’ where standards may be prepared effectively—
to fall within one or a few adjacent functional units and fit neatly between pairs of
interfaces.
6 Implementation
It is emphasised that the levels o f Fig. 2 are functional levels. Some of them corres
pond on a one-to-one basis with items of equipment, e.g. ‘connection to PTT
network’—to a modem and a circuit to the exchange; others correspond to identifi
able items of software, e.g. the operating system.
There are others, however, that have to be grouped together for implementation
and Fig. 4 shows a typical example o f the arrangements for one user at a simple
terminal to communicate either with another similar user, via the operating system
of a host processor, or directly with a disc-based service in a remote host computer.
In this, the functions between ‘network management’ and the ‘DTE coupling’,
inclusive, are termed the ‘transport service’ and those from ‘connection to PTT
network’ to the telecommunications facility are termed the ‘telecommunication
function’.
In most data networks the preferred interface between the transport service and
the PTT network will be CCITT, X25, which is described below. However, simple
unbuffered character-mode terminals, such as teletypes, will not be able to handle
messages in the form of synchronous packets and the transport-service function
must include a packet assembly and disassembly (PAD) level which can be pro
vided either by the user, the terminal supplier of the network implementer. The
interface between the PAD function and the network can then be at the X25
packet level. The PAD function ensures that characters can be transferred between
the character-mode terminal and the packet network but the actual control o f the
mechanism and the display formats are a bigger problem.
Network implemented are busily defining the basic functions of the ideal
character-mode terminal and this notional terminal will be known as the Virtual
terminal’. Users will expect to encounter this virtual terminal, and any physical
terminals that do not conform will be handled by mapping at the command proto
col level. Certain basic functions such as speed control and specific control charac
ters will have to be incorporated at the command protocol level in the PAD func
tion at the terminal end o f the link. These functions are shown as VTP in Fig. 4.
o p e r a t i n g s y s te m
v i r tu a l - te r m i n a l (CEPT/
c om m and pro to co ls DEVTP
protocols EEC)
( E u r o n e t ) X29
t r a n s p o r t service X29 (PAD control) SG VII
interface netw ork SC6
m anagem ent level 3 of CCITT X25
WGI&2 SG VII
The other function that is shown at the command protocol level in Fig. 4 is
the file-transfer protocol requirement (FTP). If the FTP characteristics are different
in the two hosts more mapping will be required at the command level to interpret
the commands that control the interchange and it may be necessary to carry out
even more mapping conversions at other levels such as the file structure level.
The following Sections outline the progress that is being made by ISO, CCITT and
the network implementers, and highlight the important network standards. It is
important to distinguish between a genuine attempt to create standards that fit the
architectural concept and those that are produced to handle the existing population
of terminals and processors.
These are in two generations, both of which were originally aimed at star-connected,
multipoint links, with centralised mainframe control.
The first generation, known as ‘basic mode’, was produced between 1962 and 1973.
This is a character-oriented protocol which uses transmission-control characters to
identify significant events in the flow of data and control information.
Basic mode defines only the data-transmission mechanism and is intended to be
‘more or less’ transparent to the data that are being transmitted.'
Most manufacturers have developed basic-mode compatible equipment. They
all used the same generic standard but the interpretations have been different and
most implementations embody terminal and device-control functions. It is likely
that the best features of the most popular interpretations will be lifted by the
network implemented and regarded as virtual protocols for interactive and RJE
operation. This is discussed later under virtual-terminal protocols.
It should not be forgotten that since the basic-mode protocol defines only the
link-control aspects of the system it can be fitted very neatly into the architectural
pattern described above. Indeed the existing ICL architecture was developed in
association with the basic-mode standard and the higher levels will be transported
to other link-level protocols, such as HDLC.
The ‘Elements of Procedure’ standard contains several options and the user must
select the appropriate parts for his particular application. To limit the variety of
implementations, and to improve the chances o f compatibility between systems, ISO
has generated two ‘class of procedure’ standards, for point-to-point and multipoint
operation, respectively. These are still passing through the ISO voting process but
the one that is of direct interest in the network context is the point-to-point version,
which has been adopted by the CCITT for the link level of the X25 network-access
protocol.
The node-to-node transport protocol within a data network is invisible to the user
except for the end-to-end delays which are introduced. Standards in this area are
always regarded as the business of the carrier, who may use time-division multi
plexing, circuit switching or packet transmission to achieve what he believes to be
the most effective system. Sometimes the choice is political and is only loosely
related to economics. ‘Gateways’ will exist between networks to take care of any
differences between transport protocols, and these should also be invisible to the
users. However, it should be noted that a fully comprehensive gateway must also
take care of the mismatches between codes and higher-level protocols. This is
mentioned later under virtual-terminal protocols.
It is generally thought that the CCITT X25 recommendation covers the net
work-transport protocol area, but this is not the case and the CCITT is producing
a specific recommendation for this function.
11 Virtual-terminal protocols
Virtual-terminal protocols are being developed by the CCITT, Euronet and others
with loose co-operation and much overlap. These recognise that certain classes of
terminals already exist and attempt to map the popular classes and their current
protocols on the packet-switched networks.
Virtual-terminal protocols aim to create a situation where all mainframes know
the characteristics of a standard notional terminal and the differences between the
virtual terminal and the physical terminal are sorted out by conversion equipment
to produce a sensible presentation. The idea has been derived from network standard
terminals which have been developed for resource sharing networks, such as
Arpanet.
Ultimately it may be possible to remove the virtual-to-physical-terminal conver
sion, when virtual- and physical-terminal protocols correspond directly. It is there
fore important that the virtual-terminal protocol should be specified with the
overall architectural concepts of open networking in mind since this is the real-
terminal protocol that the world will inherit.
It is also important to note that any differences between the virtual-terminal
protocols which are used in separate networks must either be known by the host
which is driving them or be handled by conversion at the gateway between the
networks and, unless the VTPs in the various networks are harmonised, gateway
conversion for all classes of operation will be an almost impossible task. The Inter
Network Working Group of the IFIP is carrying out very good work in identifying
the VTPs that exist in the various worldwide networks and analysing their differ
ences.
X3: defines the facilities of the PAD. In addition to the basic packet assembly
and the virtual call-control functions of X25, which it performs on the behalf of
the terminal, it also includes user-selectable functions such as ‘echo’, a range of
message terminations, idle timer periods, suspension of output, discarding of
output, line folding, “padding’ after carriage return etc. The PAD specification
also includes parameters that are predefined for each terminal connection, such
as the line speed (up to 300 bit/s in the present recommendation).
X28: defines the interface between asynchronous terminals and the PAD. It
specifies the call establishment and clearance procedures for the terminal and the
interchange of control and service signals. It also describes how the PAD select
able functions are controlled and checked by the terminal and the responses by
the PAD. All the control and service information to and from the terminal is
transferred by character sequences.
A draft Euronet Standard for a scroll-mode virtual terminal (ESP25) was close to
agreement before the CCITT produced its recommendations X3, X28 and X29 but
this has now been discarded since the CCITT recommendations satisfy the Euronet
requirements.
Arpanet already has a standard for teletypes and display terminals which operate
in scroll mode, known as Telnet. Telnet differs from the CCITT PAD recommenda
tions. The most fundamental difference is that Telnet embeds all control characters
in the data stream and identifies them by an escape character, whereas the CCITT
recommendation uses separate sequences for control and parameter signalling.
This gives a clear indication that, even at the simple scroll-mode-terminal level
a lot o f work still has to be done.
CCITT X25 makes adequate provision for the connection of synchronous terminals
and the CCITT is not currently working on synchronous virtual-terminal protocols.
This will be the responsibility o f the ISO in the long term but, because adequate
standards do not exist, network implementers are making their own provision for
the connection o f the existing population of terminals.
Euronet is studying the synchronous-terminal area and, in particular, single and
clustered interactive terminal systems and remote job entry. Nearly all existing
terminals in these two classes use a derivative o f the basic-mode link-control proto
col with some differences of interpretation. However, the reconciliation of the
differences in link protocol is a small problem compared with those that exist at the
the higher levels where each manufacturer has introduced very sophisticated facili
ties.
In video display systems, the accent is on screen-manipulation facilities involving
cursor.-movement liinctions, text manipulation (such as ‘rack up’) and hard-copy
features. If a virtual-terminal protocol is produced for this class of terminal, all the
facilities that are considered to be desirable in the real terminal of the future must
be standardised, including the size and basic geography of the display screen. In the
meantime, the mapping between the virtual and the physical terminal will introduce
many problems. For example, if the application level in this host processor produ
ces a tabular format for a virtual-terminal standard screen size it will, undoubtedly,
produce an illogical format on a screen o f a different size, regardless of how clever
the mapping function tries to be. At present it is also necessary for the interactive-
terminal operator to be aware of the formal dialogue that has to be exchanged with
each specific host operating system and no amount of translation by a VTP conver
ter can replace this.
Euronet has produced a screen-mode specification for synchronous interactive
terminals known as the data-entry virtual-terminal protocol (DEVTP). Like the
scroll-mode VTP the specification defines a basic set of functions but the DEVTP
contains more sophisticated elements such as operator interrupt and activation
sequences and screen-manipulation facilities. It also specifies a range of screen
sizes. Although the current specification will be implemented by Euronet it can
only be regarded as a first attempt and improved versions have been proposed that
conform more strictly to the architectural model that is being proposed for open
system operation.
The same synthesis problem exists with RJE terminals but it is compounded by
the range and characteristics of the peripherals on the terminal and its degree of
intelligence. In the open-network concept, the RJE system may be either a simple
passive input-output terminal or a host system which transfers batch jobs on a
resource-sharing basis, although it could be argued that this latter extreme is
covered better by the host-to-host protocols, described below.
It has not yet been decided whether Euronet will provide a ‘black box’ for each
style of VTP that is supported or whether it will be up to the user to provide his
own conversion to the X25 packet interface. It is assumed that the latter will never
be precluded. Whichever is adopted, the basic input/output and display characteris
tics of the terminal will still be visible to the mainframe software and any sophisti
cated features at the terminal must be known before advantage can be taken of
them.
15 Host-to-host protocols
For some years Arpanet has been using a file-transfer protocol (FTP) which in
cludes facilities for full access control and identification of the file name in a
standardised form. Arpanet has developed the idea of carrying control information
on a separate logical channel from that used for data and this requires careful
examination against the architectural ideas mentioned above.
Arpanet also has a generalised host-to-host ‘interprocess’ communication proto
col, known as NCP, that simply conveys control information in the leader field of
each data message, but a new version is now being tested called ‘transmission-
control protocol’ (TCP) which, like FTP, uses separate logical channels for control
and data.
The EIN network implementers have specified a Bulk Function Transfer (BFT)
which is intended for more general host-to-host transfer and which can also be
applied to file transfer. EIN has copied the idea of using separate logical channels
for control and data but there is no direct compatibility between Arpanet FTP/TCP
and the EIN BFT and mapping between them will be difficult.
Considerable work is needed in the area of file transfer and interprocess com
munication for general compatible standards and this work is only just beginning.
Fig. 3 shows the international standardisation groups involved in the various aspects
of this subject and shows the distinctions and the interrelationships between their
work. It also shows some of the important existing standards at their relevant
levels. This list is by no means exhaustive.
The work on structured high-level protocols began in the British Standards
Institute (BSI) in 1975 as a result of the architectural studies which had already
isolated the link-control functions and led to the generation of HDLC. The BSI
has been- a prime mover within ISO on this subject and has been directly responsi
ble for the establishment of the new ISO/TC97/SC16 high-level-protocol committee.
The ideal structure for high-level protocols, based on the onion-skin architecture,
which was proposed by the BSI, has been consolidated by the ISO committee and
a provisional model of open-systems architecture has been produced. This separates
the user tasks and working data, the activation of the network and the interface to
the transport service. Ways of expanding this structure into detailed specifications
have already been considered. These extend far beyond the scope of the virtual-
terminal protocols to cover the entire problem o f task interchange.
One possible way that has been considered for distinguishing at the command
level between the different classes and different messages in the same class is to
use command verbs with different semantics, i.e. put/get for straight message
transfer, take/give for RJE operation etc.
The interface to the transport service (Fig. 4) has been considered and the basic
functions that should be provided within the transport service have been defined in
outline, including the commands which interface the higher levels to the transport
service. A standard transport-service interface that is independent of the commu
nication network has been identified.
As these standards mature in the international arena, they will lead to a new
dimension in networking. It will be possible to add new application-oriented
interchanges within the same basic procedural structure. The need to perform con
versions at several architectural levels for each new terminal type which is intro
duced will be avoided. However, it will be necessary to pay great attention to
device characteristics, and the need for knowledge of special sophisticated terminal
features at the application level is inescapable, even with this approach.
17.1 Economic
During the next ten years it has been estimated that $1,000 million will be spent
worldwide in the areas considered in the paper by computer users, manufacturers,
software houses and the PTTs. Even if standards can save only a tiny percentage in
this sum, their economic value is indisputable.
Conversely, if the absence of standards contributes to extra work, such as
reprogramming to meet different procedures, or to any increase in confusion, the
wastage will be on a grand scale. Most importantly it will be the wastage of the
world’s most valuable commodity: skilled manpower!
It is not apparent how any effective degree of open working can be attained with
out network standards.
Clearly, users and manufacturers will not be able to implement the full range of
the new standards overnight and a major aim of network standards will have to be
the harmonisation of related equipment and procedures, to make conversion of
existing equipment as simple as possible.
17.3 Commercial
The major owners of distributed computer systems and the major manufacturers
are currently having to provide packages relevant to the most critical functional
levels of Fig. 2, from ‘command protocols’ to “link control’, inclusive. For example,
the airlines (SITA, IATA, ARINC), the European banks (SWIFT), and several other
commercial networks, for the lack of any alternatives, are being oriented towards
their own immediate needs. The generation of international standards at all the
levels discussed could prevent further drifting apart and will, hopefully, bring these
users more closely together in the future.
18 Conclusions
Acknowledgments
The most siginificant contribution in this area was the original input on system
architecture by David Ackerman o f ICL which set the pattern for all this work.
Bibliography
Much of the information that has been described is currently only published in the
papers o f the relevant standards organisations or the handbooks o f the network-
implementation groups and is not all freely available. The basicmode and HDLC
link-control standards are available from the BSI under BS 4505 (parts 1 to 7) and
BS 5397 (parts 1 and 2), respectively. The CCITT X series recommendations have
been published in Vol. VIII of the CCITT plenary records for 1977 (known as the
‘orange’ books), and a special supplement containing recommendations X3, X25,
X28 and X29 is available from the CCITT publications Department.
Abstract
1. Introduction
In the computer field, as in other fields, we have our OK terms. The current one is
distributed computing. Everybody is talking about how minicomputers are be
coming more and more powerful and less and less costly, and we keep reading
articles about things that the semiconductor industry has up its sleeve. Some people
will tell you that the big centralised computer centre is already out of date, and
that the work could be done better and more cheaply if every department or office
had a minicomputer or two of its own. All that it necessary, they say, is that people
should stop being reactionary and get on with it. More sober heads point out that,
even if the trend is admitted, you cannot break down an organisation and replace it
by a new one overnight, and that there are other factors besides the availability of
equipment to be taken into account when comparing the advantages o f decentrali
sation with those o f centralisation.
Before one can form a rational view o f what is likely to happen and decide how
immediate the threat to established interests really is, one has to understand clearly
what the technical developments are and what part of a data-processing installation
they affect. A data-processing installation consists partly of mechanical equipment
and partly o f electronic equipment ; often the two elements are mixed in the same
box. On the whole we are much happier nowadays with the electronic part of our
data-processing systems. This was not always the case, and it is a benefit that has
come to us as a result o f the development of solid-state circuits.
2. Disc files
We would dearly like to see the replacement o f the rotating disc file by something
3. Semiconductor electronics
In spite of the fact that the semiconductor revolution has still some considerable
way to go, the minicomputer is well and truly with us and has been for some time.
Indeed, the name is fast losing its point. It once meant a computer at the very
small end of the range—off the end of the range, perhaps—but now the mini
computer, given sufficient memory and a full range of peripherals including disc
files, is indistinguishable from a medium-scale computer. In fact, one may expect
that all but a few of the biggest and fastest mainframe computers of the future
will be seen as descendents of the modern minicomputer rather than as descendents
of the mainframe o f today.
Some people take the view that there will, for economic reasons, be no future
for the superfast mainframe. The ground is certainly being cut from beneath its
feet by the grown-up minicomputers to which I have just referred. These will be
produced in quantity and therefore at low cost. The argument is that there will
no longer be a cost advantage in using the single superspeed processor and that it
will be better to use a number of slower but still fast processors. This may well
be true in business data processing and in much scientific computing where it is
possible to break the work down into self-contained jobs—indeed, in business
data processing this would only reverse the process that originally brought a large
number of such jobs together in order to achieve economy of scale. There are some
scientific tasks, however, that are indivisible, although no-one seems to knowhow
many. Possibly the superspeed computer will survive for these. Another possibility
is that those who have long scientific calculations to perform against a deadline will
5. Access to data
The day will undoubtedly come when there is no longer any economic need for
computers to be shared between large numbers o f different applications. In many
applications, however, a connection to a central filing system will be essential in
Abstract
1 Introduction
This paper arises from ICL research concerned with loosely coupled and distributed
multicomputer systems. The subject of integrity control is a vital issue which is
general to all computer systems, but particularly taxing in this environment.
We start with a brief survey of the problem area. This is a set o f intractable prob
lems of concurrent access control and recovery, which are the main aspects of
integrity control as considered here. The subject matter will be new to some readers:
to others it will already be very familiar. What is less generally understood is that
the difficulties are now seen to be diverse surface symptoms of a deficiency in the
deep structure of systems. For this there is a simple structural solution.
The appropriate structure and its implementation are described. It is general to
all systems, and is also readily integrated into distributed systems and their protocol
structures.
The ideas presented here have been taking shape for several years in the database
field. They are now beginning to appear in DBMS products, e.g. the latest ICL 2900
IDMS,1 but they have only recently crystallised into a coherent and general model
for integrity control.
Many different researchers are working on this same problem area, and have
reached essentially the same conclusions at about the same time. Another conver
gent factor is the application of these concepts to standardised ‘open system inter
connection’, which is being studied by the International Standards Organisation
(ISO TC 97/SC 16), and by participating bodies such as the British Standards
Institute (BSI) and the American National Standards Institute (ANSI). The paper
also draws on this work, in which ICL is actively involved.
The purpose of this section is to provide an agreed summary of the state of the
art and its difficulties before breaking any new ground. We are concerned here with
three different but related problems:
Each problem is first introduced individually and then the crucial interrelationships
are described. Finally, we consider why the associated difficulties are particularly
acute in loosely coupled systems.
The description is mainly in terms of file data and its processing. This is the most
familiar manifestation of the problems. From it we can correctly generalise to all
kinds o f processing involving shared resources.
• whenever otherwise correct and separate processes share access to the same
data, chance data interactions can cause errors, e.g. inconsistent inputs and
double/lost updates.
Each problem has many solutions, and there is a corresponding diversity of solu
tions to the complete set. Even within the same system, different parts (e.g. differ
ent applications, programs and packages, the DBMS, and various aspects of the
operating system) tend to use different techniques. The resultant implementations
are usually complex, and often demonstrably lacking in integrity.
Techniques for the data-recovery aspect of this are well known. They include:
• transient data and files that automatically vanish after failure, and by their
complete absence restore consistency
• fallback to previous file generations
• spare copies of current files/volumes (static data redundancy)
• multicopy files, updated continuously in parallel (dynamic data redundancy)
• systematic copying of files to dumps (periodic data redundancy)
• continuous logging of the systems state to recovery journals
• logging of new data to journals when updates are written (after-looks)
• restore files after catastrophic failure by using previously secured dumps or an
older generation
• roll-forward from a restored dump to the most recent acceptable correct state,
by re-applying the after-looks secured since the dump, or by applications
rerun
• logging of old data to recovery journals when updates are written (before
looks).
• roll-back after localised failures to re-establish the most recent acceptable
correct state, by using the recent before-looks to undo updates.
Techniques for process recovery are well known. The two main lines o f approach
are:
• discard all results so far, rerun from the ‘beginning’ (however defined)
• secure designated intermediate states o f a process (checkpoints), and restore
and restart at the most recent suitable one.
• when a process fails or abandons, this usually requires any data changes
made by it to be undone. Both data and process must then recover
• when data fails, this likewise usually requires any process accessing it to
fail, and both must recover
• the states restored by process recovery and data recovery must be mutually
consistent
• there is a technical similarity. Process recovery is essentially the restoration of
some previous state of process memory. This can be viewed and implemented
as a particular case of general data-recovery provisions.
• if any resources allocated to the process might since have been released, but
may be needed for the restored previous state
• if any inputs which it uses might since have been changed by other processes
• if any of its outputs might already have been used by other processes
• if any of its recovery journal information might already have been discarded.
Fig. 1 Profile illustrating that backwards recovery is not generally possible across a period in
which resources have been released.
These constraints generalise to the form illustrated in Fig. 1. Moreover, this is not
just a matter o f consistent behaviour within the one individual process concerned.
Recoverability and concurrent-access integrity are also dependent upon the be
haviour o f any other processes which might chance to access the same data. There
fore the whole population of all processes in a system must be subject to one
universally consistent integrity-control scheme.
Despite the need for accurate consistent integration of integrity control, its
provisions tend to be poorly integrated in most state-of-the-art systems, even
disjoint. Consequently, they are difficult to use in the necessary coherent manner,
and this generally requires extensive error-prone and ad-hoc user involvement.
With hindsight, it is easy to see what has happened. As shown above, there are
intricate and reflexive relationships between the three aspects of integrity control,
between them and the individual user applications, and among the many user appli
cations. This readily degenerates into complex convoluted situations. However,
given an appropriate structure, it ought to be possible instead to turn this reflex
iveness into recursion, which is a source o f orderliness and simplicity.
Our analysis also clearly shows that the main problems are at the periphery,
In loosely coupled systems, a more natural model is for there to be many work-
stations/computers, generally of equivalent (peer) status, with control and authority
somehow distributed among them. Distributed control can also help avoid per
formance bottlenecks, and critical reliability dependencies. Further, it simplifies
effective exploitation of the natural marginal redundancy which is latent in multiple
computers.
Until the recent developments, which are the subject o f the rest o f this paper,
there was no general solution to the technical problems o f co-ordinating distributed
processing and distributed databases. There appeared to be an unavoidable necessity
for some central all-knowing hierarchy of intelligence to co-ordinate activity in a
distribute^system . This is all the more disturbing, because it would seem to
imply some deep-seated inconsistency between practicable computer technology and
the social and business needs which it must serve. This particular inconsistency
would vitally affect social issues such as autonomy and information privacy.
It is now realised that the state-of-the-art technical difficulty with integrity
control in loosely coupled systems is not intrinsic to them. Instead, this more
demanding environment can be seen as representative of the general case, which
reveals a structural inadequacy, already present and habitually patched over by
ad hoc solutions and by resort to the special case of central hierarchical control.
This completes the state-of-the-art summary. We are now ready to consider the
new findings.
• commitment units
• automatic integrity control
• custodians
• commitment-unit synchronisation
• recursion
Each user process defines its own commitment units, which can therefore properly
reflect applications characteristics.
The only essential criterion is that a commitment unit should comprise a
complete transformation from the generally prevailing stable and consistent state at
Fig. 2 Multiple concurrent series of commitment units, each distinct and asynchronous
The general nature of the requirement should already be fairly well apparent. There
is a formal definition of the rules for integrity control as ‘degrees o f consistency’
in Reference 2. The necessary behaviour of commitment units is described here
more informally. It is later explained how this is largely delegated to the custodians
involved.
To achieve distinctness of each commitment unit:
• any value input to a commitment unit is then automatically locked until its
end, to prevent others from altering it (defined exceptions)
• any value output by a commitment unit is then automatically locked until its
end, as uncommitted and inaccessible to other (defined exceptions)
• all commitment units are automatically constrained to respect these current
locks (some special exceptions).
This automatic distinctness (i.e. isolation) and deferred commitment not only
assures concurrent-access integrity. It also means that if a commitment unit fails or
is abandoned, its potentially erroneous outputs are already confined, and errors will
not have propagated.
• before the beginning o f a commitment unit (usually at the end of its direct
predecessor) a check point (or equivalent) is automatically taken and secured
(no exceptions)
• before each uncommitted output is recorded, a before-look (or equivalent)
is automatically taken and secured (no exceptions)
• the automatic locks prevent these uncommitted outputs from being over
written by others (no exceptions)
• a commitment unit is automatically prevented from releasing allocations
or locks before its end (defined exceptions)
• the automatically recorded journal entries supporting commitment-unit
recovery are not discarded until after its end (no exceptions).
3.4 Custodians
Fig. 3 Profile illustrating that complete dependable rollback coverage is possible if resources
are only released at defined 'instants'.
Rollback through such 'instants' is not generally possible
commitment
unit 0 1 2 3
roll forward
f
v.
-I assured
then roll forward OK
Fig. 4 Progressive ending of a commitment unit and its integration with recovery
The phases are:
0 = processing 2 = master commit
1 = securing 3 = general commit
ultimate
initiator
of this
commitment
unit
Fig. 5 Propagation of commitment unit ending phase messages in all dependant sessions to
all custodians involved and complete confirmation of the actions of all
A
/ current
/
not
current
^garbage
3.6 Recursion
The concept of recursion here is simply that the software and data structures used
to implement integrity control should themselves be subject to its own provisions.
This is technically easy to arrange if the need is properly forseen.
In this way the integrity-control implementation can itself be made fully distribu
ted and highly resilient.
We can generalise from this that control and operating systems (as well as
applications systems) could also be distributed and highly resilient. ‘Meta data’
such as catalogues, directories, schedules, journals and DBMS schemas and their
associated functions could be distributed, subject only to performance constraints
(which can be minimised by careful placement and suitable intercommunication
bandwidth).
4 Implementation characteristics
The general structure and its implementation have already been described. Excep
tions and deadlock are now considered.
Locks are automatically formed by a custodian when objects in its
custody are accessed. In general the scope of each individual access implicitly
defines the object to be locked (e.g. address, data record, block, set, predicate).
In principle, all objects accessed are locked, and in ways implicit in the mode of
access (read, write, etc.). However, in practice, some relaxation is necessary for
flexibility and efficiency. Allocations limit the permissible ways in which accesses
may qualify their locking effects, and can also frequently obviate the need for
locking (e.g. exclusive or protected allocation automatically inhibits locking).
The exceptions considered here are:
• unlocked inputs
• write without prior locking
• uncommitted input
• immediately committed output
• orthogonal sanctions.
There are many applications that can legitimately dispense with the automatic (not
overwrite) locking of most if not all of their inputs. This reduces overheads and the
likelihood of unnecessary collisions between processes sharing the same data. Also
there are some inputs that are dynamic and inherently unlockable (e.g. sensors and
time inputs).
If unlocked data are subsequently updated, it is then necessary for the commit
ment unit to prove to the custodian process that it knows the current value that its
4.2 Recovery
i/ i
Fig. 7 Profile further idealised from Fig. 3 so that deadlock can only occur in brief periods X
7 — — — p ro c e s s control------— — 7
6 — — — p r e se n ta tio n control— —“ 6
5 — --------s e s s i o n control------------- — 5
4 —“ — tr a n s p o r t control------------- 4
3 — network control- 3
2 link control 2
1 — — — physical control--------------- 1
Fig. 8 Seven protocol layers of the provisional model for open system interconnection
ISO/TC97/SC16 March 1978
Integrity control is driven from the highest level. Here the nature of the work
defines where commitment-unit boundaries should be. Most of the automatic
implementation of interprocess integrity control would be the responsibility of
session control (level 5 in the ISO model).
All that the end-user need essentially do for integrity control is to identify
begin/end boundaries, and to be able to utter restart requests. The units to be
specified are: sessions, successive commitment units within a session, perhaps
mini-recovery blocks within commitment units, and quarantine units for trans
port.
A block structure is clearly appropriate. For example:
Begin session
Begin commitment unit
End commitment unit
Begin commitment unit
End commitment unit
End session
There is some redundancy in this example. The items bracketed together are
indivisible. A condensed utterance may be preferable. At lower levels, not nec
essarily visible to end users these utterances would result in automatic sequences of
dialogue, e.g. ‘begin session’ (dialogue = initiate and accept), ‘end commitment
unit’ (dialogue = secure, confirm secured, write to journal, confirm, end, con
firm).
5 Conclusion
The deep structure for integrity control in computer systems has been introduced.
This comprises a few simple concepts, of which the main one is the commitment
unit.
Techniques for automatic concurrent-access control and recovery based upon
this have been described here in sufficient detail to demonstrate the possibility
of fully comprehensive distributed integrity control. This is generally applic
able, and suitable for distributed systems and open-system inter
connection. This integrity control provides some of the previously missing basic
technology needed to implement distributed databases, and for reliability en
hancement by systematic redundancy o f hardware, software and data, and their
resilient distributed control and co-ordination. The spinoff may also benefit com
puter security.
This integrity-control structure provides a systematic basis for related standard
isation, in which context, knowledge of it is now being rapidly disseminated and
generally assimilated into systems architectures.
References
1 ICL Manual TP 644 TOMS Implementation’.
2 GRAY, J.N., LORIE, R.A., PUTZOLU, G.R., and TRAIGER, I.L.: ‘Granularity and
degrees of consistency in a shared database* in Modelling in database management
systems (North Holland, 1976)
3 TOZER, E.E.: ‘Preservation of consistency in Codasyl-type database’ in database
technology ISBNO 903 796074
4 HOARE, C.A.R.: ‘Monitors - an operating system structuring concept’, Common.
ACM, 1974,17, pp. 549-557
5 PARNAS, D.L.: ‘On the criteria to be used in decomposing systems into modules’,
ibid., 1972,15 pp. 1053-1058
6 ESWAREN, K.W., GRAY, J.N., LORIE, R.A., TRAIGER, I.L.: “The notion of con
sistency and predicate locks in a database system’ ibid., 1976,19, (11)
7 GILB, T.: ‘Distinct software; a redundancy technique for reliable software’. Infotech
State of the Art Report: Software Reliability, 1977.
8 FISCHER, FIRSCHEIN and DREW: ‘Distinct software: an approach to reliable com
puting’. Japan • USA Conference Procedings, 1975
9 RANDELL. B.: ‘Systems structure for software fault - tolerance’ IEEE Trans SE-11,
1975, pp. 220-232
10 GRAY, J.N.: ‘Notes on data base operating systems’ in BAYER, R., GRAHAM, R.M.,
and SEEGMULLER, G. (Eds.): Operating systems. A n advanced course (Springer,
New York, 1978), pp. 393-481
and
Eurodata Ltd., Singer Building, 63 Stadium Street, Athens 111.
2 Authors
Anyone may submit a paper whether employed by ICL or not. The Editor will
judge papers on their merits irrespective of origin.
3 Length
Full papers may be o f up to 10 000 words, but shorter papers are likely to be more
readily accepted. Letters to the Editor and reviews may also be published.
4 Typescript
Papers submitted should be typed in double spacing on one side of A4 paper with
full left-hand margin. Mathematical expressions are best written in by hand. Care
should be taken to form Greek letters or other unusual symbols clearly. Equations
referred to in the text should be numbered. Detailed mathematical treatments
should be placed in an Appendix, the results being referred to in the text.
At least two copies should be submitted, both carrying the author’s name, title
and date of submission.
5 Diagrams and tables
Line diagrams supplied will if necessary be redrawn before publication. Be
especially careful to label both axes of any graphs, and mark off the axes with
values of the variables where relevant.
All diagrams should be numbered and supplied with a caption. The captions
should be typed on a separate sheet forming part o f the manuscript. Since diagrams
may have to be separated from their manuscript every diagram should have its
number, author’s name and brief title on the back.
All diagrams and Tables should be referred to in and explained by the text.
Tables as well as diagrams should be numbered and appear in the typed MS at the
approximate place, at which they are intended to be printed. Captions for Tables
are optional. Be careful to ensure the headings of all columns in Tables are clearly
labelled and that the units are quoted explicitly in all cases.
6 Abstract
All papers should have an abstract of not more than 200 words. This ought to be
suitable for the various abstracting journals to use without alterations.
B efore subm ission authors are strongly urged to have their MSS p r o o f read carefully
by a colleague, to d etect m inor errors or om issions; exp erience show s that these can
be very hard for an author to d etect. T w o co p ies o f the MS should be sent to the
Editor.
8 Referees
The Editor m ay refer papers to indep en d en t referees for co m m en t. If the referee
recom m ends revisions to the draft, the author w ill be called upon to m ake those
revisions. Minor editorial corrections, e.g. to conform to a h ou se style o f spelling
or n o ta tio n , w ill b e m ade b y the E ditor. R eferees are an on ym ou s.
9 Proofs
A uthors w ill receive printed p roofs for correction before p u blication date.
10 References
Prior work on the subject o f any paper should be acknow ledged, q u otin g selected
early references. It is an author’s reponsibility to ensure references are q u oted ; it
w ill be unusual for a paper to be co m p lete w ith o u t any references at all.
11 Style
Papers are often seen w ritten in poor or obscure English. The follow in g guidelines
m ay be o f help in avoiding the com m on er d ifficu lties.
• Be brief.
• Short sentences are better than lon g ones but on the other hand d o n o t
write telegram s.
• A void nested relative clauses; preferably start new sen ten ces.
• D efin e th e m eaning o f ordinary w ords used in special senses. D efin e acronym s
or sets o f initials b y quoting the full m eaning th e first tim e the initials are
m en tion ed .
• Include a glossary o f terms if necessary.
• A void w ords in brackets as m u ch as possible.
• A void the frequent use o f the typ e o f con stru ction k now n as a ‘bu zzw ord ’.
This often takes th e form o f a nou n fo llo w ed by a present or past participle
fo llo w ed b y another nou n e.g. ‘system con trollin g param eters’.
• Take care in using the word ‘it ’ that the reader will easily understand w hat
‘i t ’ refers to . A n unam biguous rule, that cannot always be applied, is that
‘i t ’ refers to the nearest preceding nou n in the singular.
• Several ‘its’ in on e sentence each used in a differen t sense can cause consider
able con fu sion . Similar remarks apply to ‘th is’, ‘th a t’ and other prepositions.
12 Copyright
C opyright in papers published b y the ICL T echnical Journal rests w ith ICL unless
specifically agreed otherw ise b efore p u blication. Publications m ay be reproduced
w ith perm ission and w ith due acknow ledgem ent.
13 Acknowledgements
It is customary to acknowledge the help or advice o f others at the end o f papers
when this is appropriate. If the work described is not that of the author alone it will
usually be appropriate to mention this also.