Copyright Dr Alan Solomon, 1986-1995


John Mortimer    - DP Manager
Mary Timford     - Systems programmer
Jim Roberts      - Chief operator
Sarah            - Operator
Ron              - Chief applications programmer
George Sanderson - Applications programmer
Mike and Jeff    - users
Parritt          - Chief Accountant
Sally            - Parritts secretary
The machine
PROLOGUE

In  the  cool  dark, the machine hummed.  The operating system worked on
the overnight housekeeping, compacting the disk and doing  the  extended
CPU  diagnostics.   Occasionally,  a  batch  job  triggered into action,
suspending the housekeeping temporarily, but soon the  machine  returned
to optimising itself, ready for tomorrow.

John  Mortimer  hummed as he drove in to work.  He was planning his day;
things that must be done, things that should be  done  and  things  that
would  be  done  only  if there was enough time.  There never was enough
time - not enough of his time and not enough computer  time.   Too  many
users  expecting  too much computer time from the computer, and too many
users expecting too much from too few computer staff.  People complained
when the computer response time was too long, but when he asked for more
hardware, there was never any money.  Last month's memory upgrade should
have helped, but it really needed an operating system upgrade to Version
4.0 to take advantage of the new facilities.   And  upgrading  operating
systems took a lot of work, and caused a lot of user resentment if there
were any hiccups, which there always were.  He really didn't have enough
staff  to  run the department properly;  everyone was occupied full time
in putting out fires.  Perhaps when the Version 4.0 is  installed  there
will be less to do ?  John smiled.  Fat chance.

Jim  Roberts tapped out the access code on the door lock and walked into
the machine room, switching on the light.  The machine itself was  never
powered  down  (except  for  maintainance) as the power surges that this
caused would do more damage to the electronics  than  leaving  them  on.
The  overnight  time  was  not  entirely  wasted,  though, as users were
encouraged to submit batch jobs for overnight running, and  the  machine
did its housekeeping during this slack period.

He  switched on the console VDU, and checked the overnight log.  Nothing
unusual  there;   eight  batch  jobs,  of  which   three   had   crashed
prematurely.   Users  never  worked  out how to set up jobs, they always
seemed to use a process of trial and error.   It  meant  that  far  more
machine  time  was  used  than necessary, and meant more work for the DP
department.

He powered up the lineprinter, and moved the print files one at  a  time
into  the  print  queue.  The lineprinter roared into life, churning out
the reams of paper that he knew users never read.   When  the  operating
system  was  upgraded, this part of his job would become uneeded;  print
files would automatically be queued.  Many other routine aspects of  his
job  would  disappear  too, and he would be spending more time trying to
optimise the use of system resources.

Mary Timford sat down at her desk and switched  on  her  terminal.   The
system  prompt  was  up,  so  she logged on.  Her desk was in a complete
shambles, so she threw out the disgusting  coffee  cups  and  piled  the
printouts  in  a  neat  heap  on  the  floor.  She ripped off a sheet of
lineprinter paper, and began to write down her idea.

While in the bath last night, she'd come up with a  brilliant  idea  for
automating  the  system  upgrade.   Everyone  agreed that an upgrade was
necessary, but no-one could see how they'd  find  the  time  to  do  it.
Upgrading  the  operating system involves a complete system reconfigure,
and many of the user applications have to be rebuilt from scratch.   But
just in case the upgrade caused some catastrophic failure, you had to be
ready to go back to the previous version.  But users would scream if the
computer  was  out  of  action  for  any length of time, and scream even
louder if the system had to be restored.  A second  attempt  to  upgrade
would  meet  with  fanatical  resistance.  But in everyone's experience,
things seldom worked first time.

Mary's idea was to make the time taken to upgrade (or restore) invisible
to  the users.  It worked like this.  If we rented another disk pack for
a month, we could build the new operating system on  that,  while  users
continued  to  use  the old system.  When the system was built, we could
simply copy all the non-system files from one disk to the other,  change
the  device  logical name, and the users would perceive an instantaneous
change.  We would ask the users to log off at noon, and they  could  log
on  again  five minutes later;  doing things the orthodox way, the users
would be deprived of computing power for half a day, possibly more.  And
if  it  proved  necessary  to  go  back  to  the old system, it could be
switched back equally fast.

Mary was a systems programmer.  Systems  programmers  aren't  paid  very
much,  but that's only because they don't usually want much money.  What
they really want is a computer to play with.  Mary really understood her
machine,  and  could  write things that would make you say "How on earth
did you make it do that ?".  Mary had been pushing really hard for  this
operating  systems  upgrade,  because with Version 4.0 you had access to
many more systems services.  Mary was aware that she had patched the old
operating  system  so  many  times that some of the patches had patches.
Where other people could only see a slow computer, Mary could see inside
the  machine,  and  could see what was slowing the machine down.  It was
having to spend too much time on housekeeping, and  ot  enough  time  on
doing useful computation.  A lot of Mary's patches to the system were to
remedy this, by deferrring much of the  inessential  housekeeping  until
the  night, when the computer was lightly loaded.  But Version 4.0 meant
less need for housekeeping, which would speed up operations  during  the
day, and would mean that the overnight time wasted on housekeeping could
be used more productively.

The coffee machine hummed to itself, gurgled,  and  spat  out  its  hot,
brown  liquid,  very  like coffee.  Round the machine, a group of people
were deep in conversation.  Mary  was  explaining  her  idea  to  George
Sanderson,  who  was  so  distracted  by  her  presence  that  he wasn't
listening to a word she said.   To  George,  the  very  idea  of  anyone
modifying  the  operating  system  was  awesome.   He had enough trouble
patching up the ageing accounting system.   Mary  was  something  magic,
like  a unicorn.  George struggled hard to pay attention to what she was
saying, and wished he had the courage to ask her to  go  out  with  him.

"What  do  you think ?" Mary said.  George thought fast.  He had no idea
what she had been saying, and certainly had no intention of telling  her
what  he had been thinking.  "It sounds like a good idea", he said, "but
you'll have to convince John." There, that got him  off  the  hook.   If
Mary  had  an idea, it must be a good one, but the problem was always to
convince the DP manager, especially when spending  money  was  involved.
"But  do  you  think  it'll work?", she said.  "There's no point getting
John going unless the whole idea is feasible."  Mary  hated  talking  to
John;   he always seemed to be in such a hurry that she tried to explain
things too quickly, skipping over important bits and getting herself  in
a tangle.  Lots of people made her feel nervous, but with John she was a
bag of twitches before she'd even  started.   George  had  a  stroke  of
genius.   "Lets  go back to your desk and you can explain the idea to me
in detail." The prospect of Mary explaining things to him in detail make
him feel warm all over.

Back at the coffee machine, Mike and Jeff watched them go.  "Alright for
some" Mike said.  "Some  of  us  can  spend  hours  playing  about  with
computers, but some of us have to do the actual work around here." "Damn
right," Jeff said, "They've got no idea  what  it's  like  in  the  real
world.   They  mess up our screens for a few hours and we've got to work
all hours to make up for it.  And Parritt always thinks it's our  fault,
never  the bloody computer department.  I wonder what they're cooking up
now - last time it was the Bought Ledger upgrade that was going to  take
an hour to put in that put us a week behind."

"One  thing's  for  sure",  said  Mike.   "What's that ?" "He'll not get
anywhere with her.  She's too wrapped up  in  her  bloody  computer.   I
asked  her out once;  waste of time." "Didn't get anywhere ?" "I'll say;
come five o'clock I goes to pick her up and she says she's got  to  mess
about with her screen.  I wait till half past, and she's still at it, so
I left her to it." "What a waste, though." "Yeah".

John was sitting at his desk, writing a  reply  to  Parritt's  complaint
about  the  computer  crashes.   These accountants cannot understand the
difference between hardware problems and software problems.  How do  you
explain to a Luddite like Parritt that the problem was caused by his own
staff?  Obviously,  the  system  was  designed  to  weed  out  duplicate
entries,  but  the wretched accountants had sent two copies of an entire
batch of Purchase Orders to Data Entry, and the problem  had  come  when
two people tried to enter the same form at the same time.  How could you
anticipate an idiocy like that ?  He'd put George Sanderson onto the job
of  changing  the  programs  so  that  if it happened again, it would be
trapped and rejected.  But sorting out the mess that it had  caused  had
taken  a  week,  and  had  meant  dragging  everyone  off what they were
supposed to be doing to lend a hand.  And he also had to go and  explain
to  the  order  clerks  what  had gone wrong;  if only he could delegate
things like that, but George was too junior, and Mary was incoherent.

He chucked the third draft of his memo to Parritt into the  bin.   There
was no way of explaining it in a way he would be able to understand.  He
wrote a straight apology and promise that it wouldn't happen again.   He
was  halfway into the promise when the phone rang, and he had to explain
to yet another salesman that  he  wasn't  in  the  market  for  desk-top
computers right now, but maybe in a few months.  When he finally got rid
of the man, Jim Roberts walked in with a requisition for ten more  boxes
of  lineprinter  paper.  "I reckon they take it home for their kids", he
joked.  "Isn't there anything we can do ?" John asked.   "Truth  is,  if
they  gave  a  few  minutes  thought  to what they were asking for, they
wouldn't want nearly so much.  What we ought to do is ration them to  so
much  printout  per  month." "That's an idea," John said, "why don't you
come up with some sort of scheme ?" Just then  the  terminal  on  John's
desk beeped.  "You have new Mail from MARY" it said.

"Well,  there  it  goes",  said Mary to George.  They'd discussed Mary's
idea, and could see nothing wrong with it.   All  it  would  need  is  a
program to fool the computer into thinking that the two disk drives were
actually one.  Whichever drive was actually powered up would be regarded
as  the  System disk.  George couldn't really see how you could do that,
but if Mary said it was easy, he was sure she could  do  it.   Actually,
Mary  thought  it  might  be a bit tricky, but she had a couple of ideas
about how to do it, and she seemed to remember reading in  the  magazine
about  someone who'd done something similar with tape drives.  Mary made
a half-hearted attempt to get George to go see the DP  manager,  because
she  felt  such  a fool whenever she tried to talk to him.  George would
have been willing to fight dragons for her, but drew the line at  trying
to  explain  an  idea that he only half understood.  All it needed was a
detailed How question, and he'd look a right wally.  And he couldn't see
why Mary didn't want to talk to John herself, since it was her idea.

So Mary decided to write it all down and send it to him.  She started up
the system editor and started to type.  George watched her  fingers  fly
over  the  keyboard  and wished he could type properly.  It took him far
too long to key in programs,  and  sometimes  he'd  lose  his  train  of
thought  as he was doing it.  Mary finished the note, went into the Mail
utility and sent it to her boss, with copies  to  the  other  DP  staff.
Then  she  put the whole thing out of her head, and went back to working
on her own special improvement to the operating system.

George was reluctant to leave.  He saw that Mary was looking at the code
for her add-on, so waited a bit and asked "How's the Optimiser going ?".
Mary looked up, irritated.  When you're working on  a  complex  program,
you build up an equally complex model in your mind of what's going on in
the computer;  rather like building a house of cards.  George  had  just
knocked  it  down, and furthermore had asked a very silly question.  "It
isn't an Optimiser", she said.  Any fool could write an  optimiser,  and
many  of  them did.  "It's a program that will write optimisers." George
had heard this before, didn't understand, and said so.  "If I  write  an
optimiser, it will speed up the machine for those parts of its work that
I concentrate on.  But if I write a program that writes  optimisers,  it
will  monitor  all  the  tasks  that  the  machine  does, and then write
optimisers for those parts that can benefit most.  Then I  can  look  at
the optimisers that it writes and do a final tune-up job on them."

"But why does it run only at night?" said George.  "Surely it should run
during the day."

"It runs night and day", Mary answered.  "During the  day,  it  collects
statistics  on  disk access, comms usage and core management.  This runs
concurrently with the user processes, but as it doesn't do very much, it
only  slows  the  machine  down  by  0.1%.   At  night, it does the real
number-crunching, sorting out the statistics collected during  the  day,
and  working  out  what  would  most benefit from optimisation.  Then it
calls the code generator to write memory resident  routines  to  improve
resource management.  I look at these, and decide which ones to install;
sometimes I can see that it's going  down  the  wrong  road.   What  I'd
really  like  is  to  be  able  to  let  it  work completely without any
intervention."

"So what you'll have is a self-modifying system?" "Exactly", said  Mary.
"But  I  was  taught  never  to write self-modifying code", said George,
"because it can be very hard to trap any bugs."

"That's true, but you were probably also taught I before E except  after
C.   Like  all rules, the important thing is to know when to break them.
You  certainly  shouldn't  be  writing  self-modifying  code  for   your
applications  programs,  but  it's  different  for systems programmers."
George felt depressed.  It was  rather  like  being  told  "when  you're
grown-up...".   Like all applications programmers, he was aware that the
job he did was kids stuff compared with the  sophisticated  patching  of
the  operating  system  that  systems  programmers  did.   Sometimes  he
wondered why what he did was called programming at all;  all he did  was
turn  the incoherent specifications that he was given into code that did
roughly what seemed to be required.  Actually, his code  generator  took
care  of all the gritty details for him.  "Isn't there a danger that the
system will modify itself and introduce bugs ?  And what happens if  the
system changes while a user is trying to do something ?" "No, the system
can't change while a user is on, as all this is done at night.  As  soon
as  someone  logs  on,  the  meta-optimiser  goes  into background mode,
passively collecting statistics.  And yes, there might be bugs, but this
is  true  of any big system.  They're probably no worse than some of the
bugs I've already got out of the system.  Haven't you got  any  work  to
do?"

George  went  back  to his desk.  As he sat down, Ron Pollard, his boss,
looked up and said "There's some mail for you.  Tell me what you think".
George  couldn't  understand  why  Ron was a systems designer and he was
only a programmer, unless it was because Ron couldn't be trusted to  use
a terminal without crashing the whole system.  All he was fit to use, in
George's opinion, was a plastic flowcharting template.  George went into
Mail and found himself reading the note that he'd just watched Mary type
in.  The thought that Mary had typed the words he was reading  made  him
feel warm all over.

Ron  watched  George  clumsily bashing the keyboard, and wished he had a
programmer that knew how to program, or even how to type.   He'd  though
of  sending  George  on  a  typing  course, but since the great Purchase
Ledger Cockup, the thought of speeding up the rate at which George could
screw  up  the system made him queasy.  Now he was staring vacantly into
space wearing that idiotic grin of his.  "Well, what do you think?", Ron he
asked sharply.

George  stopped thinking some rather private thoughts, and looked at the
untidy, balding wretch facing him across the two desks.  Once again,  he
wondered  how he'd got promoted to a senior position if he couldn't even
understand a simple memo.  Patiently, he began to explain.   "What  this
means   is   that   we   can   upgrade   the  operating  system  without
inconveniencing the users.  And if we need to go back to the old system,
we  can snap back immediately without spending a day reloading it.  It's
a brilliant idea."

"Yes, I understand the principle.  The  question  I  have  is,  will  it
work?".   Ron  had  more than a suspicion that the great Purchase Ledger
Disaster had been partly caused by the systems programmer  changing  the
operating  system in the middle of the update.  Any decent system should
be able to cope with data collisions automatically, and he knew that  he
had tested that part of the Purchase Ledger and it had worked fine.  All
this tinkering with the operating system to speed it up by a few percent
was  to  no  avail  if it caused the loss of a weeks work.  And the flak
that he  personally  had  taken  from  Mortimer  had  been  out  of  all
proportion.

George  had no idea how Mary would go about convincing the computer that
two disk drives were actually one.  He only knew that she  had  said  it
was  a  piece  of  cake.  "I don't see why not," said George.  "Mary can
certainly write the drivers for  combining  the  volumes.   And  if  the
computer  is  fooled into thinking that the two drives are the same one,
then we can load the new operating system up on the rented drive over  a
period of several days, test it thoroughly, and then one day just switch
over.  And if we have any problems at all,  we  can  just  switch  back.
It's a brilliant idea."

Ron  had  heard  these  brilliant ideas before.  In his experience, they
usually went wrong because they hadn't been fully thought through by the
enthusiastic originator.  "I don't think it'll work.  There are too many
unknowns", he said.  "What happens if one of the  systems  corrupts  the
other  by  them both contending for the same resources?  What happens if
something that is updated on one disk is not updated on the other?  What
happens if the operating system notices that there is a day missing ?  I
say we should stick to the tried  and  tested  upgrade  method,  not  go
messing around with things we don't understand."

George  gritted  his  teeth.   Maybe Ron didn't understand the operating
system, but Mary knew it so well she  could  make  it  do  whatever  she
wanted.   Ron  was  just  being  stupid  and luddite, not willing to try
anything new for fear it should be better.  But this idiot was his boss,
so he'd better not tell him what a fool he was.

Mary   pulled  down  the  three  manuals  describing  the  system  build
procedures that she'd need to install  the  new  operating  system  from
scratch  on a new disk.  Usually, the OS was just upgraded;  only when a
computer was first comissioned was it necessary to install the  OS  from
square  one.  She'd always inherited a going concern, so it would be the
first time she'd done the OS build.  She hadn't the faintest  idea  what
was  involved,  but  she knew that the manuals would lay it all out, and
she hadn't the slightest doubt  that  she'd  cope.   After  all,  people
installed machines all the time, and if there were any difficulties that
the manual didn't cover, she could always call the hot line.   Steadily,
she  read  her way through the process of building an OS;  it was really
quite fascinating.  Configuring the disks - that was  in  volume  three.
She  read  how  you  set up the pointers that make the computer aware of
what disks are available.  Disk setup procedure, yes,  that  had  to  be
done first;  see volume 1A.  Soon, her desk was a sea of manuals open at
various pages, with bits of paper marking other procedures.  There  were
a  lot  of procedures that she hadn't done for a long time, or had never
done.

Her mental model of the OS build gradually increased in  complexity,  as
she  worked  out  what  procedures  needed to be invoked.  Obviously, it
would have to be written out, but for now, she just wanted an  overview.
"When setting up the I/O configuration file, ensure that the lineprinter
descriptor has been  included."  She  opened  the  lineprinter  hardware
reference  manual,  and a voice broke her concentration.  She lost track
of why she was setting up the I/O configuration file, and realised  that
she'd  have  to  backtrack.   "What ?", she said crossly.  "I said, what
about lunch then?" "No time", she snapped, and went back to  volume  1A,
chapter 14, disk partition requirements.

Mike  went  off to lunch, resolving that no matter what she looked like,
she wasn't worth the trouble.  Only interested in one thing, and it  was
the  wrong  one.  Sally, now, that was altogether a horse of a different
colour.  Not exactly pretty, well not pretty at all, well actually horse
was  probably  the  right  word.  But with the right attitude.  He aimed
himself at the accounting department on the  fourth  floor;   he  needed
someone to admire him.

George  walked  by,  and saw Mary deep in a pile of manuals.  He guessed
she was working out the details of how to make the machine believe  that
two  drives  were  actually one, and knew that he'd better not interrupt
her until she was done.  As he passed the machine room, Jim  called  out
"Hang   on,  I'll  join  you".   John  Mortimer  looked  at  the  clock.
"Hellfire", he said, grabbed his  jacket  and  ran  to  keep  his  lunch
appointment with Parritt.

The  machine  purred.  CPU usage was always very slack between 12.30 and
14.00.  This regular pattern had been accumulated by  Mary's  Optimizer,
and  after checking it's reliability for several weeks, it had scheduled
that time for disk compaction.  If you listened hard, you could hear the
read/write  head moving back and forth as it consolidated files that had
become fragmented during the morning,  ready  for  the  heavy  afternoon
peak.   Jim had noticed this purring noise occasionally when he got back
from lunch, but it always stopped fairly soon, so he ignored it.

Down in the canteen, Sally purred.  It wasn't often  she  got  asked  to
lunch  by  one  of the accountants.  Parritt treated her like a piece of
furniture, which really upset her.  She listened  to  Mike  explain  how
he'd  told the computer people what to do.  She didn't understand a word
of what he was saying, and wished that she was a bit more clever.  She'd
heard  that  these  accountants earned a fortune, and she knew that they
deserved to.  SHe wondered if she'd have to get Parritt a bun for tea.

George was explaining Mary's idea to Jim.  Jim was objecting.   "There's
no  room  for another disk drive.  Even if it's temporary, it'll have to
go somewhere".  George was thrown.  He hadn't thought about that, and he
suspected  Mary  hadn't  either.   To  them,  a disk drive was where you
stored data, not a physical object with weight and size.  That  sort  of
thing  was  something  you  just  didn't  think  about.  But it would be
appalling it such a good idea were wasted  because  of  such  a  trivial
point.   "There  must  be space somewhere in the machine room", he said.
"What about behind the line-printer?" "No", Jim  replied,  "Not  if  I'm
going  to  be able to change the paper.  We simply haven't got any space
at all." "I know", said George, "move the lineprinter  out  temporarily.
Then put the new disk in there." "You're joking, of course.  Where would
you put it?  Have you any idea how  much  noise  that  thing  makes  ?".
George  knew.   He'd  often complained about it himself.  "Well, put the
new disk outside the computer room"."Don't be silly.  The data path  has
to be less than five meters, or you'll get crosstalk."

George  was  worried.   The machine room certainly was crowded, but that
had never been his problem before.  Jim was right, there was nowhere  to
put  the  new  disk.   All  Mary's brilliance and hard work would be for
nothing unless some way could be found to solve this problem.

He  rushed back to the third floor, to tell Mary the bad news.  "There's
no room, there's no room!" he cried as he  rushed  to  her  desk.   Mary
looked up.  "What?".  "There's no room".  "What are you talking about?".
"There's not enough space in the computer room for another disk  drive."
Mary pictured the computer room in her mind;  he was right.  "I was just
talking to Jim, and he said there's no  room,  and  you  can't  put  the
lineprinter  outside because of the noise".  "Stack them" said Mary, and
went back to her manual.   George  didn't  understand  what  she  meant.
"Stack what?" "The drives".  Mary was working out how to ensure that the
system tracks were defined in the same absolute area on the  two  disks;
she opened the disk hardware reference manual.

George  thought  about what she'd said.  Was she suggesting that you put
one drive on top of another?  "You mean put one on top of another?   You
can't  do  that!"  Mary looked up briefly.  "Why not?" "Well, you can't.
What about the vibration?  How will you get at the controls?  What if it
falls  off?   "  Mary  put down her pencil.  "You put it on some sort of
holder.  Please George, I'm trying to work something out here."

Mary clearly regarded this as a non-problem.  Some sort of  holder?   He
tried  to imagine what it would look like.  Back at his desk, he grabbed
a pencil and drew some sketches.  You could use some sort of angle iron,
like  they  used for shelving.  Have the uprights start six inches below
the lower disk, then a sort of shelf, cut away so you could get  at  the
lower  disk's  controls,  then a six inch gap, then another shelf to put
the top disk on, with the uprights extending thirty inches more to  hold
it  in  place.  He used a ruler to make a neat drawing, and went proudly
back to Mary to show her his design.  "Like this." he said.  Mary didn't
look  up,  but  glanced  at  the  drawing.   "Whatever", she said, still
thinking about how you set two system clocks to the same date and  time.

George  went into the machine room with his ruler, and started measuring
the disk drives.  He noticed a purring noise, and wondered what it  was.
There  weren't usually many people on-line during the lunch-hour, so the
disk drives shouldn't be very active.  Anyway, the purring noise was too
regular  to  be  ordinary disk accesses.  He wrote down the measurements
and went back to his desk.

"What are you up to?" asked Ron.  George had been messing about  with  a
pencil  and  ruler  for  the  last  half  hour, when he should have been
getting on with the redesign of the bought ledger  data  entry  screens.
"I'm  working  out  the  details  of  a disk drive stacking frame", said
George.  "A what?" "A disk drive stacking frame.  It's so  that  we  can
mount  one  disk  drive on top of another." "What?" "We'll have to stack
the disk drives, as there  isn't  enough  space  in  the  computer  room
otherwise."  Ron  couldn't understand what on earth George was on about.
Not enough room for what?  "Why do we  need  to  make  more  room?",  he
asked.

George  wondered  how  Ron  had  ever convinced anyone that he even knew
which end of a pencil was sharp.  Patiently, he  explained  Mary's  idea
yet  again,  explained that it needed another disk drive, explained that
the only place to put it was on top of the existing  system  disk.   Ron
interrupted  before  he  was  half done.  "You can't stack disk drives".
"Yes you can", George answered, "Mary told me how to do it."

Ron's hackles went up.  He'd had problems like  this  before.   If  some
ivory-tower systems hack thought she could order his staff around, she'd
better think again.  "I think I'd better have a little chat with her" he
said, grabbed George's drawing and stamped off.

John  Mortimer had just come back from a very trying lunch with Parritt.
The man was a fool, and how he had got to be chief accountant  was  hard
to  imagine.   If  it was up to him, everyone would still be counting on
their fingers.  John's tentative sounding out on the  possibility  of  a
CPU  upgrade  had  gone  like  water  off a duck's back.  His warning of
degradation of response time had been ignored;  his explanation  of  the
likelihood of needing a further 4 megabytes of main memory had gone down
like a lead balloon, and the extreme shortage of staff had brough  forth
a  snort of disbelief.  Parritt seemed to think that a computer could do
everything,  instantaneously,  and  with  people  to  run  it.    John's
suggestion  of  a  rewrite  of  the inefficient bought ledger system was
turned down flat;  "We want another Purchase Ledger  disaster,  do  we?"
asked Parritt, sarcastically.  The only thing that had gone at all right
was his explanation about the necessity for an operating system upgrade.
Parritt had said "I suppose that will cost a fortune?", and he'd replied
"No, actually it comes as part of our maintainance  contract".   Parritt
made  it  very  clear though;  there must be no downtime.  "I don't want
ledger entries stacking up while you fiddle about with your toy" was the
way he'd put it.  John assured him there would be no down time, although
he wasn't quite sure how he'd accomplish this.  Asking the staff to work
night  shifts  might  provoke  a  revolution.   Alternatively, there was
Mary's idea, but who could tell if that would work ?  Her memo had  been
totally  incomprehensible,  and  full  of  vague waffle;  she really was
incapable of communicating, except with the operating system.  He phoned
Jim up, and asked him to pop round.

Jim,  chief  operator,  soon arrived.  "What's up, Doc", he asked.  John
frowned, to show that  he  was  talking  seriously.   "It's  the  system
upgrade.   It's  time  we  started having serious thoughts about it.  We
can't put it off much longer - it'll help with the  overload.   And  you
can  forget  about  the extra 4 megabytes we discussed;  Parritt's in no
mood to spend money."

Jim humphed.  "But we need  that  memory  to  improve  throughput.   The
system spends more time swapping between memory and disk than it does on
actual jobs.  And as the load goes up, it gets  worse.   Last  week,  it
spent  ten  minutes  just  thrashing,  until  I  killed  some of the low
priority stuff."

"Actually thrashing?  I hadn't realized that.   The  situation  is  even
worse  than  I  thought.   What's  causing the extra load, and can it be
spread out ?"

Jim though for a few moments.  "It's the three o'clock rush hour.   They
get  back  from lunch, do some paperwork, then they all try to log in to
the machine at once.  You get it on all systems;  one peak  round  about
11, then a bigger one at 3.  There's only two ways round it.  Either you
raise the price of machine time at the peak periods, or  else  you  tell
some of the users or programmers not to log on between 2.30 and 4."

"Well,  neither  of  those  are  on.  But there is a third way, increase
throughput.  Which brings me back to the system upgrade.  When would  be
a good time to do it?"

Jim  looked morose.  He'd suffered through system upgrades before.  They
were never as straighforward as the supplier claimed.  There were always
programs  that  weren't  written  to strict compatibility standards that
would stop working under the new system.  And the only way to  find  out
was  the  hard way.  "The best time to do a system upgrade is never", he
said.

"Come on Jim, we don't have that option."

"Then do it over Christmas, when the machine isn't in use"

"Be serious"

"Well, at least do it over a Bank Holiday weekend.  We can all  come  in
and work over three days.  Day one, put the new system in.  Day two, run
all the software.  Day three, put the old system back when we find  that
half the programs have to be re-written." Jim wasn't grinning.  And John
knew that he was right.  Last time they did a system upgrade,  they  had
to  put  the  old  system  back  in  place three times before they could
finally use the new system.  And even them, they'd spent the next  three
months debugging.

"What  about  Mary's idea?" Jim laughed.  "The trouble with her is she's
too airy-fairy.  If she ever deigned to  step  into  the  machine  room,
she'd  know that there just ain't the space for another disk drive, even
temporarily."

John's feelings were mixed.  Mary's idea had looked like it might be the
way  out  of  a  vicious  dilemma.   But  he'd  been  worried  about its
unorthodoxy.  He'd had visions of  an  unworkable  system,  and  a  huge
monthly  disk  rental bill.  Now it looked like he wouldn't be forced to
take a difficult decision.

"I like the long weekend idea.  But the  others  won't  like  giving  up
their  holiday.   We'll  have  to  offer them some kind of quid pro quo.
There's no money in the budget for that kind of thing."

Jim knew exactly what he wanted.   "Suppose  we  offer  time-and-a-half.
But  not  in cash, in leave.  In return for three days overtime, you get
an extra week's leave."

"Brilliant!  Thats what we'll do.  OK, when's the next Bank holiday?"

Ron slapped his hand down on Mary's desk.  "I want  a  word  with  you."
Mary looked up.  "I'm fed up with you giving jobs to my staff."

Mary blinked.  "What staff?  What are you talking about?"

"You  know  bloody well what I'm talking about.  We've got work to do as
well, you know.  Real work, not the  tinkering  that  you  do.   If  the
ledgers  are  late,  the  users  jump  all over us.  And we can't get on
because you're forever getting my staff to work on your jobs."

Mary guessed he meant George.  But what's this about him doing work  for
her?   "If it's George you mean, we were just chatting.  In fact, he was
keeping me from my job, but since he seemed  to  be  learning  something
useful,  I  didn't  mind.   I  certainly  didn't ask him to help me;  he
couldn't anyway, he doesn't know systems stuff.  So I  don't  know  what
you're talking about."

"Don't  give  me  that.   He's  just  spent the entire afternoon doing a
blueprint for you."

Mary was totally baffled.  Blueprint?  "Now look.  I have no  idea  what
you're  talking  about.   I don't know about or want a blueprint.  And I
have work to do, so if you'll excuse me ..."

"Not till we get this sorted out.  Do you deny you got George to do some
drawings for you, some kind of frame?"

Mary felt like she was going in circles.  "I can't talk now, I've got to
get this finished by five, or the system won't  work  properly  tonight.
Come round and see me tomorrow".  By tomorrow, she could ask George what
this was all about.

Ron was furious.  This arrogant girl, ordering him and his staff around!
Thinking  she  was  better than the applications programmers who did all
the real work!  He stamped off, thinking of all  the  things  he'd  have
said to her if she was a man.

Jim  watched  the  system  console,  as the users logged off the system.
Soon, there were only five people logged on, and they didn't seem to  be
doing  anything.   Probably,  they'd just gone home without bothering to
log off.  Logged-on terminals still mean some system  load,  though,  as
the  machine  had  to keep polling the terminal to see if there were any
keystrokes to process.  Users thought that there was no need to log  off
when they weren't actually using, but to Jim it was like leaving a light
bulb on in an empty room.  He killed the users, and ran  the  usage  log
off on the lineprinter.

Glumly,  he  gazed  at  the log.  The three o'clock overload was getting
longer, and the eleven o'clock peak was beginning to reach 95%  loading.
There  hadn't  been  any  thrashing,  but  he knew that it was likely to
happen again at any time.  Disk space usage was  up  again;   users  not
deleting  unwanted  files again.  Soon he'd have to do a purge.  Most of
the users didn't even know that he did this,  but  every  three  months,
files  that  hadn't  been accessed for a year were rolled off onto tape.
The chances were, nobody would even know what the file was,  yet  nobody
could  authorise  its  deletion.   Without the quarterly purge, the disk
would fill up quite quickly.

Mary's special Optimiser account was still  using  more  CPU  time  than
anyone else, but that was OK, as it was all dead time overnight.  George
had logged no time at all today, lazy blighter.   All  right  for  some!
Probably  spent the day mooning about Mary again.  Couldn't really blame
him though.  "If I weren't a happily married man", Jim thought.

Sarah came into the machine room.  Jim looked at  his  watch  pointedly,
but Sarah ignored him and started to load the first backup tape onto the
drive.  "When are we getting autoload drives?" she asked.  "As  soon  as
we  get  a  tape  loading  machine, then we won't need you at all." This
routine exchange didn't involve Jim looking up from his print-out.  When
he  did  look up, his eyebrows rose.  "Good grief, what have you done to
your hair?"

"Like it?"

"It's different.  Don't forget to change the temperature chart, and keep
an eye out for remote logins, in case you have to mount a tape."

"OK",  said  Sarah,  and  settled  down in the operator's chair with her
book.  "Goodnight" "Goodnight"

On the way home, John hummed happily to himself.  It  had  been  a  hard
day.   It'd  started  badly,  with  Mary's  crazy  second-disk idea, and
Parritt's obstructiveness at lunch.  That man really needed  seeing  to;
he  had  absolutely  no  idea  about the problems of running a computer.
Thank goodness for Jim;   good  old  solid,  dependable  Jim.   Not  the
brightest  man  in the world, but very experienced, and knew his onions.
He could see that Mary was going to be  a  problem,  especially  if  she
carried  on  flirting  with  the  younger  men  on  the team.  Tomorrow,
tomorrow he'd start detailed planning for the upgrade.  Mary  hummed  to
herself  as  she  worked.   This was the best time of the day;  the only
time of the day for doing anything at all difficult.  No-one around,  no
George to endlessly pester her, no Ron with incomprehensible grievances,
no John to arbitrarily summon her into his office at a  moment's  notice
and   expect  her  to  explain  some  complex  point  in  one  sentence.
Eventually, Mary could see that she had it licked, except for tidying up
a  few straightforward points.  She put down her pencil, put on her coat
and walked out.

As she passed the machine room, she stuck her head in  the  door.   "Hi,
Sarah"  she  said.  "Everything OK?  What on earth have you done to your
hair?"

"D'you like it?" "Well," Mary said, hesitantly.  "Not really."

"No, neither do I.  Backup's going OK." "Goodnight" "Goodnight"

In  the  dark,  the machine hummed.  The noon-time slack period had gone
well;  all the fragmented files had been collected and the sales  ledger
had  been  packed.   It  looked like some 10% of CPU time had been saved
during the afternoon, and the 3pm overload had been avoided again.

The machine continued to analyse system usage during the  day,  so  that
the optimisation procedures could adapt to any change in the patterns of
usage.  Files were moved around on the disk, to speed up the  access  to
more  frequently  used  data.  Users were analysed for their patterns of
data access;  this information was fed into the program  that  predicted
data  needs,  and  pre-fetched data from the disk.  Users with a regular
pattern of data access would have much better run times, as  when  their
programs  needed data, they would usually find it already retrieved from
disk.

Terminal usage was analysed also, and on this basis, the  response  time
of  the more heavily used terminals could be improved, at the expense of
response time on the less often used ones.

The net effect of all these  changes  was  to  improve  overall  systems
performance, and in particular to improve performance for heavy users.

The  analyses  and  optimisations  took  a  lot  of calculation.  It was
important not to place too heavy a weighting on one day's data,  but  at
the same time, the optimiser had to be sufficiently flexible to react to
changes in the pattern of use.  Eventually, further changes were  having
a negligible effect on expected performance;  the optimisation had found
a maximum.  A log  of  the  findings  was  written,  and  the  optimiser
exitted.  Now the machine looped, polling each terminal in turn, looking
for a logon, waiting for the morning.