Next: Management of Titles
Up: Packages
Previous: EXTRACT
Contents
ZEBRA was developed to address the single most serious fault of FORTRAN 77: its
lack of any dynamic data structuring facility. During ZEBRA initialisation the
user passes it one or more standard, fixed length FORTRAN COMMONs. These form
the basis for all dynamic memory allocation. Application software requiring
storage passes a request to ZEBRA specifying the size and the memory required.
ZEBRA creates a bank, which is simply a contiguous set of words in a memory
array and returns a link (i.e. an array address) to this bank to the caller who
can then fill it with whatever data is required. A bank may contain links to
other banks and in this way a data structure of arbitrary complexity can be
developed. The size of the bank can be extended or reduced, or the bank
deleted altogether thereby
allowing its space to be reused. Creating and deleting banks
asynchronously usually leads to memory fragmentation, so the system includes a
garbage collector to move banks together, squeezing out all dead space back into
a single pool ready for further memory requests. Garbage collection is
relatively time consuming so ZEBRA also allows memory wiping; a fast way to
erase an entire data structure from memory.
Along with dynamic memory allocation, ZEBRA provides a wide range of
support facilities. These include data structure I/O which can be machine
independent to allow the data to cross machine boundaries. There is even a
clear text format that allows the data to be transported over a network.
There are a range of utilities to search, edit and display a data structure
and provide debugging services. ZEBRA also contains a general purpose error
recovery system that considerably simplifies the code needed to manage error
conditions.
ZEBRA has developed a number of concepts from several earlier memory management
systems. It is more powerful and sophisticated than any of its predecessors
but is, necessarily, more complex. Having said that, all the average user
really needs to understand is the concept of a bank plus an appreciation that
ZEBRA must be kept informed of the whereabouts of all bank links at all times
so that it can update them during memory management.
A complete description of ZEBRA can be found in a set of ZEBRA reference
manuals available from CERN. For most needs, the following will suffice:-
ZEBRA User Guide.
ZEBRA Reference Manual TZ Title Handling.
Next: Management of Titles
Up: Packages
Previous: EXTRACT
Contents
sno Guest Acct
2009-09-09