A89: Re: Assembly-89 Digest V1 #775


[Prev][Next][Index][Thread]

A89: Re: Assembly-89 Digest V1 #775




In addition to the comlications below, it also results in a side effect
called program writeback, which automatically saves data stored in the
bottom of the program, which is a good thing for most programmers, but in
some cases, it is undesired

-Alan


     Webpage- http://www.bigfoot.com/~mastermind5
     Get paid to surf the web-
           http://www.alladvantage.com/go.asp?refid=cww952
           http://www.gotoworld.com/getpaid/default.asp?rid=1028769125
           http://www.epipo.com/signup_form.asp?mastermind5

Original message:

------------------------------

Date: Mon, 11 Oct 1999 01:43:51 -0400
From: "Scott Noveck" <noveck@pluto.njcc.com>
Subject: Re: A89: Ram vs. Archive

>>  When a program is to be run, it is moved from the
>>  "hard drive" - the archive - to the RAM and executed.  When it is
done,
it
>>  is copied back to the archive.
>
>Is this why whenever i typically run a large archived program (ie:smq)
or
in
>some cases even a small program not much more than 3k, w/ plenty of
archive
>space free, i get a "warning: about to garbage collect archive" message
upon
>exit of the program...if i select yes then it garbage collects (can't be
too
>healthy to garbage collect every time a program is run) and then returns
back
>to the shell...but if i select no it gives a memory error and exits BUT
W/O
>re-archiving the program???

Exactly.  If when an archived program is unarchived, it isn't truly
"deleted" from the archive - TIOS just conveniently forgets about it
while
it remains in the archive.  When the archive is full, TIOS does a garbage
collect where all the unarchived programs are deleted from the archive
and
the other programs are moved closer together to eliminate wasted space -
making room for the program to be archived.  If your archive is full and
you
unarchive a game to play, then when you finish and the game is to be
rearchived the archive is still "full" - so it garbage collects.
Afterwards, the archive is full again so the next game will cause a
garbage
collect.  The end result is a garbage collect after EVERY time you exit a
program.  Too many garbage collections is NOT healthy for the archive
memory
at all. . .

If you refuse to garbage collect, then the archive remains too "full" to
fit
the program and you get a memory error because there isn't enough free
archive memory to fit the program.  And since the program couldn't be
fit,
it will remain in RAM.

>  oh, and what complications then are you referring to?

As I wrote above, garbage collections are NOT good for the archive
memory.
After some 10,000 times being written to, each bit in the archive will
stop
functioning.  If you emptied and refilled the entire archive - causing a
garbage collect - once a day, it would still take some 27 years or so to
fully destroy the archive memory, so it's NOT something to worry about,
but
it's not a good idea to test the system to the limits anyway.

Also, Fred - one of the guys writing Archive Utility - has been
complaining
that if the program is unarchived to be run, then if it crashes it will
be
lost even with Archive Utility.  I'd think that if a program crashes it
shouldn't be on my calc, but the principle remains.  Archive Utility 3
has
an undelete feature meant to handle an instance like this that can
restore
some lost programs that were archived.  This works like the old undelete
program I used to use back on my old Windows 3.1 system (which recently
stopped booting and gives a CMOS checksum error - the thing is shot.
Couldn't quite make it to be 10 years old =(  I learned to program on
that
thing in QBASIC <sniff>). . .
___________________________________________________________________
Get the Internet just the way you want it.
Free software, free e-mail, and free Internet access for a month!
Try Juno Web: http://dl.www.juno.com/dynoget/tagj.