Table of Contents
Memory Structures
Overview
A fundamental understanding of memory structures used within the PLATO subsystem is crucial when working with most aspects of not only PLATO, but of related subsystems such as the CONDENSER, FORMATTER and PLATO Disk storage.
Referring to this topology, it is important to note that some structures are omitted to limit confusion. Some of those elements are referenced here as they support inter-subsystem communication.
Critical Elements
- Extended Memory (EM) is accessible to all components in the running NOS system.
- Central Memory (CM) is limited to the Field Length (FL)1) of each Control Point and Component.
Extended Memory (EM)
Extended Memory is used to pass data between components and to store larger blocks of data.
EM is divided into a number of sections:
- Special System Buffers: Not discussed here
- Station Banks: One subsection, a station bank, for each of the physical terminals defined. Currently, a single station bank is 30 words long. station bank is indexed by physical station number.
- Lesson Buffer2): A large area of managed memory divided into lessons. While a lesson may hold a TUTOR lesson binary, it may hold other kinds of data as well.
Examples of the various types of data stored in the lesson buffer are:
- Lesson Binary (filetype=binary)
- Lesson List (blocktype=leslist)
- Line Set (blocktype=lineset)
- Commons (blocktype=common)
- Storage
- Character Sets (blocktype=charset)
- Student Bank
PLATO CM
Concept: Time Slices
In PLATO, all users are given a slice of time (literally “time shared”) in which their 'context' is swapped-in, then swapped-out. This “swap space” is stored in Extended Memory and are loaded into Central Memory ONLY for the duration of the time-slice.
Between time slices ALL user data/buffers are held in Extended Memory.
During a users active time slice, the user's buffers from EM are loaded into Central Memory (CM) for processing:
- Station Bank
- Student Bank (a type of lesson buffer entry with user-specific information)
The Student Bank and Station Bank together are the users execution context.
See file pftext blocks 1-e
to 2-d
for the layout of Station Bank
The Student Bank is divided into two sections: -
- Temporary Session information
- Long-term information stored in the users records 3)
See on-line file platxt blocks 4-e
to 6-f
for layout of Student Bank
Other items held in CM:
- Unit binary being executed
- Storage segments
- Common segments
Central Memory Layout
As Of 2025 May 05
MOUT Buffer
Each MOUT Buffer entry has a header and zero or more words of extra data.
Header:
36/DATA, 12/LENGTH, 12/OUTCODE - Outcodes
LENGTH is the total length of the package (0 or 1 for header only).
Non-header words can contain anything.