In previous articles in the History of the Computer series we discussed machine codes, programs, and memories. We also mentioned that many types of memory are volatile, that is, if we remove power, the memory loses it's data. So how did the data in your computer right now get there? Is this like the Big Bang theory of the universe? Did it just appear? If you've ever had to reload an operating system, plus all the other programs you use, you'll know it's no simple task to get it onto the disk! After that you have to get it into memory - every time you 'boot'!
What do we mean by boot? My old instructor on my first computer engineering course called it a 'bootstrap binary loader'. That's a clue! The term is said to have originated from fictitious tales of a German character you may have heard of, Baron von Munchhausen.
His exploits were serialised in comic strips and the like, along with Dick Tracey etc. One famous tale had him riding a cannonball and, deciding it wasn't such a good idea, swapping to an enemy cannonball going in the opposite direction, to return to his side.
The outrageous tale we are concerned with here refers to the time when he fell into a swamp, but was able to save himself by pulling himself out by his hair. Later versions of this tale had him lifting himself up by his own bootstraps. This expression 'pulling yourself up by your own bootstraps' was common at one time. It meant to get yourself out of your own problems.
All this doesn't have much to do with computers, but it describes the way they start up!
Early digital computers were loaded from paper tape or punch cards, later magnetic tape, and then disk. You may know that before Windows there was DOS, which refers to a Disk-based Operating System.
On a mainframe computer there is an operating system, which acts as an interface between the machine and the user. This OS is variously known as the 'Exec' (Executive) or 'MCP' (Master Control Program) etc. dependent on the proprietary computer system in use. (New employees were surprised to learn that they had to 'boot the exec every morning' - a high turnover of CEOs?). This is roughly equivalent to the Windows or Linux operating system on your PC.
The OS handles all input from users, allocates time slices and prioritises jobs, controls print jobs, allocates mass storage, etc. When you talk to the computer, it only hears what the OS tells it! The OS can talk to the computer in its own language. So the OS must be capable of loading itself from a disk or tape into memory.
To do this, we have a system whereby a block of data, known as a 'boot block', and located at the very first block of a paper tape, or magnetic tape, or address 00 on a disk, is read into memory at location zero onwards. This 'boot command' is usually a Read instruction from address 00 on device 00.
The data, contained in the boot block, loads the necessary buffer areas to handle an I/O transfer of data in the 'reserved' area of memory etc., ready for communication with the boot device, for example the disk containing the OS. Having set up all the necessary buffers, the computer reads and executes the instructions from 00 onwards. These instructions, just loaded from the disk boot block, finish the setup process.
The final instruction from the boot block is a read command to the disk, to load the rest of the data for the OS. This data overwrites the boot block data in memory with the normal data required for running the system. Once the data is loaded the OS can start operations.
It must initialise all the subsystems, and check what resources are available. It needs to know how much memory there is, what data is available on mass storage, what network resources are available, etc. To do this it may refer to a previous configuration, which it then compares to what it can see now. Alternatively, for a 'clean' boot it checks what resources it has and works from there.
The History Of The Computer
Of course there are differences in hardware, mainly in peripherals, depending on the application, but generally a modern computer is still a multi-purpose beast. The main difference is in the software.
One of the most critical applications, using the latest developments in a combination of hardware and software, is the Real-time system. It produces state of the art performances, and has to be reliable.
What is a Real-time System? The name says it all - everything this system does with the data you give it, it does right now, in real time.
NON REAL TIME SYSTEMS
It may be easier to understand the concept if we look at what is NOT a Real-time system. A typical use of a computer is to work out statistical information.
Say you want to do a comparison of the number of smokers in the community today, compared with 10 years ago. (Fortunately you have figures obtained 10 years ago!) You hire a consumer research organisation to interview a cross-section of the community, asking the same questions used in the original survey.
This company sends out researchers to stop people in the street and ask them the questions. In order to get a similar cross-section to the previous survey, they interview perhaps 25% more than the final number required.
The survey sheets are sent back to head office, where they are keyed in to a computer database by the head office staff. An analyst works out a program which will select the appropriate survey data, and compare to the original survey. It produces tables and charts of all sorts of things, to justify the cost and time involved.
This process has taken perhaps 3 months, and employed quite a few people. Total computer processing time? Maybe one minute. This is not Real-time as far as the computer is concerned.
These other uses for computers are no less important, their applications are many and varied. A computer at a university may be used for research, or administering examinations, and scheduling tutorials. One at an electricity supplier might be used for customer accounts and billing. There could be more to the uses applied than billing. A link may exist to a government agency for cross-referencing names and addresses - most people use electricity!
REAL TIME SYSTEMS
Now consider the following. An airline has a maintenance base for its fleet of aircraft. These aircraft are required to be serviced at regular intervals, based on the mileage flown. They also require repairs based on faults reported by the flight crews or maintenance engineers, on a per flight basis.
The maintenance base carries a large supply of parts ranging from nuts and bolts to complete engines, and including such things as radar equipment, and various navigational instruments. The warehouse is too large to be convenient for the technicians working on the aircraft, they have a smaller stock of frequently used parts on hand.
The inventory for this equipment is kept on a computer database, stored on disks. As with everything else these days, there is a lot of pressure on the maintenance base to keep costs down. One of the biggest costs is all that expensive equipment sitting in the warehouse, not earning a cent.
In part 2 we will look at how we can use a real-time computer system to reduce these costs.
College Students And Money Having a credit score and history that says good things about them will help them take pride in what they have learned and accomplished during their college years and will lay the groundwork for a su...