Malloy UnitHz Specification The Standard Storage Manager
Malloy UnitHz Specification The Standard Storage Manager
Lisa · PDF
| Filename | Malloy_-_UnitHz_Specification_The_Standard_Storage_Manager_19830311.pdf |
|---|---|
| Size | 1.55 MB |
| Subsection | development_history / memos |
| Downloads | 0 |
Contents
~10...---ch
U'nit1lz Specificatio.n - Page l
u, , q 93
r. M~llo~
6pecif icat:1on .for UnitRz ... The Standard Stot:age 'Manager
Overview
UnitBz p?,"ovides a client: with routines .to manage a piece of contiguous mem.ory,.
called a heap zotie (hz).. ·rn the case of 'Lisa, :this is usually but not necessarily
an MMU segment .. UnitB.z will mall&ge an arbitra.ry number Qf such zones-.. The zone.
is: made up of a zone beader (aMJ followed by au arbittary number .Qf storage
blocks (a:bk). The zone may be arbitrar.ily large.
A storage block consists Qf a: header followed by usable memory. Blacks are
;t1ways of even: length within a specif.fed min.am and maximunt. The curren"t
minim.um ts 12 bytelh the length ()f a m.±nimum f.ree block. This could be reduced to
4 bytes if desired by re¢oding portions of Unitiz. 'the aaxim\1111 size of an
allocated block i:s currently J2K bytes. This could be increased to 65K bytes
with mi.nor enhancements or to 231 bf ma.king the appropriate quaittitie.s a full 32
bits"
There al:'e four types of storage. blocltih.
relocatable and nam.ed.
They are free, non-relocatahtet
Free blocks are used by the implementation and not '1'isible to the c1ient. They
are kep:t: on a doubly ibked list through fields in tbe free ·1110.ck header.. Free
blocks maf be as large the entire. zone.
Non.. relocatable blocks behave like objects. allocated on a Paeca.l he•P with NEW
and DISPQS:X,. The user references a non-relocatable block through a pointet: to
the first data byte~
·
Relocatable blocks, as . the name suggests;, lil.ll.Y •be moved aroun.d in mem.ory
(relocated)- when necessary.
There are two prineipal advantages to using
relocatabl.e blocks rather than non•relocatable bloclts. First, relocatable
blocks can change size dynamieally. Second,. better utilization of available
memory is possible vitb a zone of reloca.table blocks than non-relocatable bloclti!J
because the storage m.anager 1 ~hen unable to find a free bll)ck l.ar.ge enough to
satisfy an allocation request will move bl.oeks around t.o create a large enough
free block. ln order to achieve this relGeatablility the user ref et:ences a
relocatable bloek tb:tough a l'landle (h) which is a pointer to the pointer tc the
first data byte. There is precisely one pointer to. the actu.al data, called t,he
111.aster pointer.. The handle points to it.. The storage manager remembers its
location ~nd U.pdates it whenever the block is :teloeated. Thi.s uniqul!! po:Lni:er. is
normally located in an array o~ po.inters at the end ol the zone header but the
user may specify, at Z«>ne irtiti&lfaation the, precisely one <>tber block of
menipry in wh:tch he wishes to alloea;te these ~aster po.inters. This atea is <• 32K
bytes long.. .A pointe'l', once allocated in this area, l'IPlSt never move; so a maste;
pointer cannot be allocated inside another ,relocatable object.
The Wo;d
Processor uses the Pascal sysglobal area to store master pointers. (Figure l)
Named objects ptovid:e the user a m…
Showing first 3,000 characters of 24,424 total. Open the full document →