This is the Computation Center at MIT,
which serves more than 40 New England
colleges and universities.
The heart of the center is this IBM 7090 high speed
general-purpose digital computer.
In addition to the routine work which takes place here,
experimentation is underway to develop
a new technique of computer usage called time-sharing.
At consoles like this one, located in laboratories
and offices throughout New England, hundreds of people
will one day be able to use tomorrow's computer
simultaneously.
This man has been using the computer
to solve a relatively simple mathematical problem
and while he thinks about what he wants to do next,
the computer is busy working on someone else's problem.
In this way scientists hope to break
one of the major bottlenecks in the use of computers.
[MUSIC PLAYS]
Hello I'm John Fitch, MIT science reporter.
I guess most of us are aware of the fact
that the computer has come to play an increasingly important
role in our everyday lives.
It processes the checks that we write, it handles our payrolls,
and it even keeps track of the availability
of airline reservations.
But in addition to solving our problems which revolve around
the relationship between the man and his machine.
I'd like to have you meet Dr. Fernando J.
Corbato who is the associate director of this center.
Dr. Corbato, maybe you can tell us about some of these problems
to put this whole business in perspective for us.
Well, to do that, we have to go back about a decade, about
the early 1950s.
And the real problem was to try and put together computers
of this size and speed.
Just to get computers to work.
That's right.
They were pretty unreliable in the beginning
and they had to be, or were afraid they'd be unreliable.
They managed to lick all those problems.
By about the middle 1950s, they were being used very heavily
already.
What would have been the next problem?
Well, the next problem was that of communicating
with the computer.
The computer basically only understands numbers.
I mean, you put numbers into it and these represent something.
Well, the next major improvement was in the language
that one talked to the computer with.
You could teach the computer to understand English?
Well, no, but we can actually put
a particular synthetic language which is largely technical
and which is, to some extent, algebra, too.
And this jargon, which is understandable to a person,
is much easier to work with than numbers.
I see.
So once you're able to talk to the computer, then what next?
Well, the next major problem is that of the ability
to interact with the computer.
The man-machine interaction is very poor.
Now this largely stems from a problem of the fact
that we must put only one problem in the computer
at a time, fundamentally.
Now, in the process of trying to put one problem in the computer
at a time, in the early days we wasted a lot
of time putting in each problem and taking him out and bringing
in the next man.
And these computers cost a lot of money.
Yes, indeed they do.
They're between $300 and $600 an hour.
So you don't want to waste time.
No, we don't want to waste time.
So we, as most other centers, have
resorted to a procedure of batch processing.
What is that?
Well, we combine a great many people
who want to submit a job to the computer on a single input
magnetic tape.
Now, these magnetic tapes are made
using computers such as this one here.
And they're prerecorded and they're
taken to the main computer and used as an input tape
to the main computer.
Oh, I see.
So you solve everybody's problem in turn.
Well, in a batch.
A group of people, like catching a bus.
And the computer calculates this batch through
and produces an output tape and then the output tape
and brought over to the computers
and the results are printed out.
Well, as you might imagine, this takes
a few hours to get anything through the computer at all.
And that raises more problems.
That raises a lot of problems and people
are very frustrated with this type of interaction.
So what do you plan to do?
Well, what we are trying to develop
is a new scheme of using the computer
that we call time-sharing which consists
of attaching a large number of consoles
to the central computer.
It's a little noisy out here.
I think it would be a lot easier if I could explain
to you in my office, how to use one of these, where
I have one remotely attached.
The idea, I gather, then is to allow
a whole lot of different people to use the computer
all at the same time.
That's right.
And this is one of the consoles they
might be using in the future.
It looks very much like just a regular typewriter,
electric typewriter.
Well, that's right.
That's what it really is, it's a small amount of electronics
in the bottom and it's attached to the computer.
That's the real distinction.
So you might have one here in this office,
and I might have one in say, my office,
and it might be one in some University,
or something like that?
That's our hope.
We think that can be done.
How many might you have all together?
Well, at the moment we're just working with,
at the very moment, 5, and in few weeks
we should be up to about 20.
And ultimately, we hope to see 100s
but we'll probably have to have a better
computer before that is.
But I still don't understand now, how all of these
can be using the computer at the same time?
Well, to really explain that I have to backtrack a bit
and talk about a little bit about how a computer really
works.
OK?
Sure.
So.
Let me show you.
The blackboard.
First of all, let me explain just
for a moment what a program is and how a computer really
works.
The computer's organized around a large set
of pigeonholes which is really called a memory, usually.
In each memory, the memory consists
of these various cells or pigeonholes,
which I can put a number into.
Now the computer, say, has a particular numbers
in each cell.
And it's very hard to read this way, of course,
but some of the numbers represent
instructions and some of the numbers
represent data and the person who prepares these instructions
and data is the one who keeps it straight what they are.
I see, those numbers might not mean numbers,
just as they might mean to add something in one pigeonhole
to something else and something other pigeonhole.
That's right.
Some of them are instructions, some of them are data.
Now, the real computer, in the sense
that the, oops, device that does the computation
is a central processing unit which has the calculating part,
and this is usually called CPU.
That's where the work is actually done.
That's right.
This is the device that really does the work.
And it is able to operate on one instruction at a time.
And it does, the arrangement is that it does the first one
instruction, then the next instruction, whatever
that one might be, and keep doing instructions
and then some of the instructions
cause the program to go back in a loop.
Now this collection of instructions, as I just said,
is called the program and they do a particular job for it
and somebody has to prepare them in advance.
How do you get it into this memory?
Well normally one is read it in from punch cards or something
of this sort.
And this comes back to the problem
of how do you use a computer.
And in the past, what we used to do is,
we have a computer, like 7090 for example,
and we used to read them in by cards
but then we got a little more worried about efficiency
and so we now read them in from magnetic tape which
has been prerecorded.
Now this calculates inside the computer
and it's just one problem at a time, remember,
that's the problem.
And after several minutes the output results
are accumulated on magnetic tape and they're
taken over to another computer and printed later.
Now this is the older batch processing technique.
One problem at a time.
One problem at a time and it's pretty clumsy
because of the weak interaction between the man
and the machine.
Now what we're trying to do is superimpose on this.
Instead of parallel consoles which are not
all near the computer, in fact.
In fact, most of them are remote.
And let the users use these with a reaction
time of a few seconds rather than a few hours.
It takes a few hours to get through this path because
of the batching and queueing, and it takes, we're hoping
and we're actually able to do it at the moment a few seconds.
We'd like to get it down to a fraction of a second,
eventually.
Most of these are typewriter consoles much like we saw,
and we actually are getting to 21 consoles.
Eventually, we'd like to see graphical display
on this kind of a console, there are technical problems still,
but.
As an experiment, to try out some of these more elaborate
advanced ideas, we actually are trying
to tie two small computers to this one.
We have one, a PDP-1 computer of the DEC Corporation
and we have also a 1620 computer of the IBM Corporation.
These are more experiments which are a little too advanced
to explain today.
Oh, I can see now what you'd like to do.
But I don't see how you do it.
OK.
Well, I have to go back then a little bit more.
Let me come back here to the same drawing
of the memory and the processor, which can only
be at one place at a time.
And let me redraw this a bit.
What we have is one master program,
which I'll call a supervisor.
And this is the program that is going to run everything.
And normally this computer, when it's in the time-sharing mode,
is operating a program in the supervisor.
We also have a program for each of the typewriter
users, so u1, u2, u3, u4, and so forth.
They might not be the same size.
No, they're not all the same size, that's quite right.
That's what I meant to try and convey.
Now the consoles have to type in to the computer and they
type into the supervisor and back out.
So the messages are handled by the supervisor
for each of the programs.
Now the supervisor is going to relay these messages
to the particular programs as they are, and keep track
of which user's talking to which typewriter, of course,
and so forth.
And this would be straightforward enough,
except that quite often we'll get more programs
than we have room for.
Yes.
So we have a problem.
And what we have here is another device
called a disk, magnetic disk memory,
which I can illustrate this way.
Of course, schematically.
The big whirling disk on which you can put--
That's what I meant to suggest.
--a whole lot of tape?
Right.
Well, it's a magnetic material much like magnetic tape
on the disk and it uses essentially a comb of reading
heads to read material off the tracks like a phonograph pretty
much.
I see.
It has a very large capacity.
Here we're talking about 9 million words
of computer memory.
A word is basically the information
of 6 letters or 10 numbers.
This is the kind of thing we're talking about.
The basic memory of the computer is 65,000 words.
So this gives some idea of the scale that we're talking about.
And in particular, the supervisor
can cause programs to read back and forth from the disk memory.
So this is the magnetic disk memory.
And we are keeping all the old programs of the different users
on the magnetic disk.
As well as-- whew the chalk, it's a little soft.
That's where the supervisor tells the magnetic disk
to put something into the active memory
when I hear this regular--
So it's playing a juggling game, to some extent, keeping
all of the right programs in at the right time.
But I still haven't really explained the idea to you.
No because as far as I know, that computer
can still only do one thing at a time.
That's right.
And it does just that.
It runs one program at a time.
And, in particular, it proceeds to start one program,
operate it for a short burst, just a burst of time.
By a burst I mean maybe, and at the moment
we're dealing in about 2 seconds.
That may not be enough to do the whole program.
No, it may not.
And the way it, now if it isn't enough,
there's a special device we have,
which is essentially an alarm clock.
I use the term alarm clock, it isn't
like the conventional one.
What it does is as soon as the program has
run for a certain period of time,
the computer is brought back to the supervisor,
automatically, without the user's program saying anything
and the supervisor now can reassign the computer back
to another user.
Now this simple round-robin is the basic principle
of the computer and time-sharing.
This computer's fast enough to get
through all the different users and still maintain
a reasonably continuous service at the different consoles.
I see.
It just seems as though the computer is handling
all these programs simultaneously
but actually it's just going round and round very fast,
one to the next.
Yes, you can draw several analogies.
One nice one is that of, say if the supervisor program
could be compared to, say, a chess master in a tournament.
And the chess master is playing a large number of people
all at once.
Now the chess master is usually very fast and clever,
and he can essentially analyze the situation rapidly and make
his move, and his opponents are normally
require considerable time to think it over
and figure out the implications.
And this is the way it is here, the opponents are essentially
the people at the consoles who need quite a bit of time
to ponder over what the computer's just done for them,
for it to not be under any pressure
and the computer can be racing back and forth, servicing
each one as he needs attention.
Does it give each one of them exactly 2 seconds
I mean, I was just thinking if somebody isn't busy,
somebody may have gone out to lunch, what
happens to that man's console?
Well, there are two things there First,
we don't bother to serve anyone who doesn't ask for anything.
You skip right over him.
Right, skip right over him.
But there's an addition, we've refined it already
a little bit.
The simple scheme will work, but we can actually
refine it a little bit.
And what we do is we say the man who
hasn't had any computation done for him at all gets
the first priority.
And so he gets served right away,
in a short burst of, say, 2 seconds.
But if he doesn't get, if he isn't satisfied with that,
and he needs more, then we put him in a second priority
and we give him lower, we give him lower priority,
but when he does run, he gets a longer burst.
Oh, I see.
So this sort of smooths things out
and gives the people that need the smallest
amount but high priority attention
first crack at the computer.
Incidentally, does this save time
by not having to re-enter a whole program every time?
Let's say you are really going to be
using the same set of instructions
for a number of problems.
Under the batch system you'd have
to put that setup's instruction in every time, wouldn't you?
That's right.
Every time it came your turn or your problem.
That's right and this is of course,
it would be a very difficult task
that we had to do it through the console.
So what we really are doing is we're
keeping all the old programs.
One of the things that are in the disk memory
is old programs of each user.
And they're all files so they don't get mixed up.
That's right and not getting them mixed
up is really the crux of the problem.
The disk memories have been available now for about a year
or so but not many people know how
to use them because you have to get awfully organized.
And the real difficulty is keeping each person
separated from the other.
And we have had to solve this.
In order to solve it we have one section
of the supervisor, which is nothing
but that responsibility, and it's a major job.
Just to keep things from getting mixed up?
Yeah.
Well, could we say, take an example
and actually try this out?
Why don't we call ourselves number 1
and actually go through a process here?
OK.
Well, I can illustrate this best by going--
this person would actually type something
into the console to the supervisor.
The supervisor would then start to take action
on the basis of that.
Now the way the person really initiates
anything in this system is he types
commands to the supervisor.
There are about, in the order of a few dozen commands.
We, and these are mostly fairly basic instructions like,
I want to log in to the system or something
or I want to start typing in a program
or I want to run a program or I want to put something away
on the disk.
These are rather basic manipulating commands.
So in general the commander types
to the supervisor and they cause something
to happen on the programs that are on the disk.
Now let me, actually, let me explain just a moment
what really happens.
What really happens is when a man types a command
into the supervisor, the supervisor
goes and gets a program out of the disk
which it starts running as say, u1's program.
It brings it in for him and starts
to run it as his program.
And, of course, at that point he's
got a program working for him it may do something standardized
in a standard way for him and then drop out of the picture.
Another command and a particular one of them
is he may want to start an old program so it's bringing
an old program for him.
Now that's what we saw at the beginning of the program
and I'd like to illustrate that first.
I'd like to see that now that we understand it a little better.
I'm going to type the start command
and that's the first one.
And that will bring our old program
which is already on file into a position where we can actually
use it.
That's right.
Now as soon as I type start, I've
actually started my program.
So in order to see this clearly, I
think we'll have to bring the camera in for you close.
Oh, yes.
We can do that, all right.
Get a look at what's being typed out.
I'm moderately familiar with this keyboard.
Of course, one gets more and more faster
when you get used to it and this is one of the problems.
We have to study the human engineering, too,
of people learning to use equipment.
Too often the equipment in the past
has sort of been designed for other machines,
really not for people.
But I start off by pushing one button and then I'm off,
I think I'm off to the races.
Let's see how this goes.
Wow.
Now, the computer is pausing there,
the little pauses are actual hesitations
when it's switching from one user to another.
Oh that "wait," for instance, meant
that it wasn't ready for you just at that moment.
Well the "wait" meant that the supervisor had gotten
my command, "start" and it actually
started pulling in that program.
If I wanted to type there, I would really
be trying to put input into that command program.
Now that particular, well it's actually an old program
that I wrote, that particular program that I illustrated
on the board doesn't need any input
and so it would have been ignored by that,
if I tried to type.
Instead it wanted to talk to me.
In particular, it says, "Hello.
I do square roots and compute hypotenuses.
Please type either root or triangle."
Now would this be a typical program
or this is a particularly simplified
one for our purposes?
This is an extremely simple one and not at all typical
of what we'd use.
That gives us a chance to understand it.
But I have to pick an example, which
is good for pretty much everyone, in a language
that everyone understands.
But it's illustrative of the technique
of man-machine interaction.
I think it's very clear that this is the technique that
would work in, say, an airline reservation or a small business
asking about a payroll problem or something of this sort.
So, why don't we do a square root, then?
OK.
So we type "root."
[PRINTER CLATTERING]
"Please type a number up to 6 digits, with decimal point."
Want to pick one?
I'm trying to think of one I know the answer to.
How about 49?
49.
OK.
I don't think, the computer, of course,
doesn't have to have the simple ones.
I have no way of checking it, if it was
any more complicated than that.
Now, one thing that's important here
is that we could spend considerable time arguing
about what the right number to have picked
was and it really wouldn't have mattered
because the computers is working for other people
and we're not losing any of this rather valuable computer time.
I guess the computer's right, it said 7.
Now what does it say?
"Do you wish to continue?"
Sure.
Oh, let's type that.
[PRINTER CLATTERING]
Huh.
Please type yes or no.
Well I think the point here is that we didn't really
have to know exactly what to type, see the program was
prepared to check and see if we made
one of what it expected us to assume
was the right answer, yes or no.
But when we didn't do it, it's able to come back and ask
us a question about it.
That's interesting, because this would be one of the problems,
I imagine, in the batch system.
That it might have taken you 24 hours
to find out that you had given the wrong instruction
or the wrong answer on your part.
That's all too true.
That's completely the case.
And it's one of the infuriating features of the older
way of doing things and what slows down
most problems with preparation.
That's good.
So let's say what we should have said, I guess.
[PRINTER CLATTERING]
It says, "Please type either root or triangle."
So we're back there again.
All right, well, why don't we do a triangle this time.
OK.
Well this is going to give us the hypotenuse of a triangle?
I remember earlier it said something.
Yes, that's right.
[PRINTER CLATTERING]
It says "Give me two sides and I'll give you the hypotenuse.
Type up the 6 digits, with decimal point.
The first side is."
Oh, let's pick something a little more
difficult than ones we know.
All right, you pick one out.
OK.
Let's try.
Typing 1.0
"And the other side."
Say, the other side, let me make 12.
All right
I'm not sure, I think the answer is going to be 13.
But I don't remember for sure.
No, it's not 13.
12.04.
Well, we better tell them no, we're finished.
"Do you wish to continue?"
No.
OK.
We won't make any mistake this time.
Tell me one thing--
Now this is the program at this point.
It is sort of cleaning up the detail.
Now does this, it seems to me that this would actually
save a lot of time and that you might wind up
with the same problem had before the computer looping.
It's a complicated question about saving or using time.
We actually save quite a bit of time.
In the sense that the person is able to be more selective
and be more shrewd in the use of the computer.
He doesn't set it on brute force approaches to problems
but actually can probe around and examine
some of the smaller answers first
before he decides to go ahead.
So this saves time but then there are other factors which
make it look the other way.
And one, well one of them is the fact
that we do have a certain amount of overhead switching
between one user and another.
Now this is controllable but, and we can keep it,
say, down to 10%, but it's one aspect of the system that
uses more time.
Probably the most frightening part, though,
is the fact that we really made the computer extremely easy
to use here and so it's very clear that in the long run,
we're going to increase the need for computer time
by a large amount.
Well, we already have increasing needs for a computer.
They're being used more and more and all sorts of businesses
and science and events and so on.
What would happen if we don't institute
such systems as time-sharing?
Well to see that better, I really
ought to show you our present operation with a high speed
printer.
[PRINTER CLATTERING LOUDLY]
Oh, that is really printing out a lot of material, isn't it?
What is all that?
This is output from the computer and the people using it
in the conventional way.
Notice a tremendous amount of material has to come out.
That might all be one problem, one person's problem?
Yes, it's just one person.
The reason he has to ask for so much
is that he really couldn't anticipate
having what he needed to know, so he
asked for more than enough.
So what's likely to happen in the future?
Well just imagine having 10 times as much computer here,
we'd have 10 times as much paper.
This would leave us with freight cars of paper
coming up to the Computation Center.
Well, by time-sharing, for instance, in the demonstration
that we did, how much time did we use up on the computer?
Well, the output here is when we logged out
it said it only used 18 seconds.
Well, thank you very much, Dr. Corbato.
So, next week we're going to visit the Bathyscaphe
Trieste, which is in Boston to help
locate the ill-fated submarine, Thresher.
We're going to meet some of the Naval officers
who operate the Trieste, and learn about some
of the scientific experiments that they've
conducted in the ocean at depths as much as 7 miles.
This is John Fitch, your MIT science reporter.
I hope that you'll be with us then.