ICL 1900 Series George 3 Operating System

Filestore

General

Using George 3

George 3 Commands

George 3 Editor

George 3 Filestore

A Brief History of ICL
(new window)

ICL 1900 Pages
(new window)

ICL 1900 Preservation
(new window)

Home Page

Filestore is the Backing Store of the machine and is controlled by George 3 and incorporates an automated backup system (Dumper). Users may store information in the Filestore by use of suitable George 3 commands. The user refers to these files by a name that he chooses and does not need to know anything about particular backing store devices.

There are two categories of files terminal files and directory files. Terminal files are set up and maintained by the user for his own requirements, such as text or binary storage. Each user has associated with him a single directory file, in which George 3 maintains as a record of his terminal files.

Usernames

All users of George 3 must be accredited and possess a 'Username'. All Usernames have the format :NAME, the colon being obligatory. For example, :BRIAN could be a valid username.

Filenames

Users are primarily interested in the names of their own terminal files. Such a name may consist of up to twelve characters the first of which must be alphabetic, e.g. DATAFILE2. A user may inspect his directory file, but does not need to know the name of that file.

Referring to Files

File names need only be unique to a particular user. If a user has started a 'job', he may refer to his own file by the filename as above, e.g. DATAFILE2. However, to refer to another user's file he must specify the second user in the filename. This is done by prefixing the filename with the appropriate username and a dot separator, thus :JOHN.RESULTS. Note that files :BRIAN.RESULTS and :JOHN.RESULTS are different, yet each of :BRIAN and :JOHN could refer to their own file, within a job, as RESULTS. RESULTS is referred to as a local filename, whereas :JOHN.RESULTS is an absolute filename.

In George 3 terminology these filenames are termed "entrant descriptions". For a full explanation of these the user is referred to manual 4345 - Operating Systems George 3 and 4.

File Generation Numbers

A filename has a generation number associated with it. Files are created with a generation number of 1, unless the user specifically requests otherwise. Any editing operation on a file produces a new file with the same name but generation number incremented by one. Thus it is possible to have several files with the same name but different generation numbers. This practice is not recommended but if files differing only in generation number do exist then the generation number must be specified to access the required version. If the generation number is omitted then the file with the highest generation number is assumed always. The generation number is written in parentheses following the filename, e.g. RESULTS(6).

If the generation number is preceded by a sign (+ or -) then the generation obtained is relative to the latest version. Thus RESULTS(-0) or (+0) gives the highest generation number while RESULTS(-1) specifies a generation number 1 less than this. Thus if the latest version of a file was RESULTS(9) then RESULTS(-1) = RESULTS(8).

Note that RESULTS(+1) refers to a generation number 1 higher than the latest. Clearly RESULTS(+1) cannot refer to an existing file but can be used to create a new file.

Language Codes

Files with the same file name may also be distinguished by a language code. This consists of up to four characters preceded by a solidus, and may be specified in parentheses as RESULTS(/ABCD) or, with a generation number as RESULTS(3/ABCD).

Traps

George 3 operates a system of file access traps, which define the ways in which a file may be accessed by a particular user.

The five possible modes of access are:
  EXECUTE   The contents of the file may be loaded into core and run
  READ   The file contents may be read
  APPEND   Information may be written to the end of the file
  WRITE   The contents of the file may be overwritten
  ERASE   The file may be erased

For example, compilers are held in files belonging to a special user :LIB. All users have execute access to these files, but very few users are allowed write access.

When a file is created the owner of the file has all these traps open to him unless a TRAPSTOP (TS) qualifier is used after the filename. An owner of a file can also give access to other users with a TRAPGO (TG) qualifier. The traps on a file can later be checked or modified with the TRAPCHECK (TC), TRAPGO (TG), TRAPLIST (TL) and TRAPSTOP (TS) commands.

Qualifiers

Sometimes, certain details need to be supplied in addition to the filename. These take the form of qualifiers which are specified in parentheses after the filename, e.g. RESULTS(APPEND)

APPEND is a qualifier that says that information should be added to the end of the file. Generation numbers and language codes may also be incorporated, e.g. RESULTS(3/DATA)(APPEND).

Terminal files

These are files for the owner's use as opposed to directory files. Terminal files may be used to simulate a peripheral device (e.g. George 3 allows a program to read data from the filestore when the program thinks it is reading cards).

There are 3 basic types of file corresponding to the 3 basic peripheral types:

  • Basic (slow) peripheral files.
  • Magnetic tape files.
  • Direct access files

Basic Peripheral files

These may be used to simulate slow peripherals such as card readers/punches, paper tape readers/punches and line printers. They may be subdivided into 3 types:

  • GRAPHIC
  • NORMAL
  • ALLCHAR

A GRAPHIC file contains only those characters belonging to the ICL 64 character set. All basic peripheral files will be of mode GRAPHIC unless the user specifies otherwise. This means, however, that if a file is created from paper tape then the user must restrict his use of characters to the 64 character set, otherwise information will be lost.

If it is required to use the full paper tape code (e.g. lower case letters) then the user must specify that his files are to be either NORMAL (i.e. they contain all the characters in the full set except runout and delete) or ALLCHAR (i.e. they contain all characters).

Users are strongly recommended to use GRAPHIC mode wherever possible, but NORMAL mode may be necessary for some tasks. ALLCHAR should rarely be necessary.

A typical use of basic peripheral files is where the output results from a program are preserved for use as input data for a subsequent program.

Magnetic Tape files

These may be used like real magnetic tapes. They are a convenient method of storing moderate amounts of data that is to be accessed in a serial manner. Where large amounts of data are to be stored a real magnetic tape may be preferable.

Direct Access files

These may be subdivided into two types, *DA (or disc) files and *DR (or drum) files. They are used where moderate amounts of information need to be accessed in a random way, e.g. compiler workspace. Where large amounts of data are to be stored a disc exofile may be preferable.

On-line and off-line files

A file that is immediately accessible is said to be on-line. At regular intervals the George 3 system dumps to magnetic tape those files which have changed since the previous dump. These magnetic (Dumper) tapes provide a back-up system from which a file can be Retrieved should the on-line copy be lost.

An on-line file can disappear for two reasons:

  • A system malfunction, (hopefully rarely)
  • A backing store jam (only if there exists a copy on magnetic tape).

The first reason is self explanatory. The second occurs when George 3 no longer has sufficient space on backing store to create new files. In this case files which have not been accessed recently and which are already preserved on magnetic tape are removed from the on-line filestore. A file which only exists on magnetic tape is said to be off-line.

A file which is off-line cannot be accessed immediately Any attempt to access the file will cause the file to be Retrieved (i.e. copied from magnetic tape back into the on-line filestore). This retrieval process can be explicitly requested by means of the RETRIEVE (RV) command.

It should be noted that Directory files are never put off-line and are written to magnetic tape in every dump. It is thus highly desirable to keep the size of Directories as small as possible and users are particularly encouraged to make regular use of the ERASE (ER) command to remove deadwood.