Showing posts with label RandomFacts. Show all posts

Operating Systems

Without an operating system, a computer would not be useful. Minimally, you need an operating
system to locate files and to start programs. The programs that you run need services
from the operating system to access devices and to interact with other programs. Operating
systems on large computers need to provide more services than those on personal computers.
Here are some typical services:


• Program loading. Every operating system provides some way of launching application
programs. The user indicates what program should be run, usually by typing in the name
of the program or by clicking on an icon. The operating system locates the program code,
loads it in memory, and starts it.

• Managing files. A storage device such as a hard disk is, electronically, simply a device
capable of storing a huge sequence of zeroes and ones. It is up to the operating system to
bring some structure to the storage layout and organize it into files, folders, and so on.
The operating system also needs to impose some amount of security and redundancy into
the file system so that a power outage does not jeopardize the contents of an entire hard
disk. Some operating systems do a better job in this regard than others.

Posted in | Leave a comment

The First Bug

According to legend, the first bug was found in the Mark II, a huge electromechanical computer
at Harvard University. It really was caused by a bug—a moth was trapped in a relay
switch.

Actually, from the note that the operator left in the log book next to the moth (see
Figure 13), it appears as if the term “bug” had already been in active use at the time.
The pioneering computer scientist Maurice Wilkes wrote: “Somehow, at the Moore
School and afterwards, one had always assumed there would be no particular difficulty in getting programs right. I can remember the exact instant in time at which it dawned on me
that a great part of my future life would be spent finding
                  Figure 13 The First Bug
mistakes in my own programs.”

Posted in | Leave a comment

The Therac-25 Incidents

The Therac-25 is a computerized device that delivers radiation treatment to cancer patients
(see Figure 12). Between June 1985 and January 1987, several of these machines delivered
serious overdoses to at least six patients, killing some of them and seriously maiming the
others.


The machines were controlled by a computer program. Bugs in the program were directly
responsible for the overdoses. According to [1], the program was written by a single programmer,
who had since left the manufacturing company producing the device and could not
be located. None of the company employees interviewed could say anything about the educational
level or qualifications of the programmer.

The investigation by the federal Food and Drug Administration (FDA) found that the
program was poorly documented and that there was neither a specification document nor a
formal test plan. (This should make you think. Do you have a formal test plan for your programs?)
The overdoses were caused by an amateurish design of the software that controlled different
devices concurrently, namely the keyboard, the display, the printer, and the radiation
device itself. Synchronization and data sharing between the tasks were done in an ad hoc
way, even though safe multitasking techniques were known at the time. Had the programmer
enjoyed a formal education that involved these techniques or taken the effort to study
the literature, a safer machine could have been built. Such a machine would have probably
involved a commercial multitasking system, which might have required a more expensive
computer.

Posted in | Leave a comment

The Explosive Growth of Personal Computers

In 1971, Marcian E. “Ted” Hoff, an engineer at Intel Corporation was working on a chip for
a manufacturer of electronic calculators. He realized that it would be a better idea to develop
a general-purpose chip that could be programmed to interface with the keys and display of a
calculator, rather than to do yet another custom design. Thus, the microprocessor was born.
At the time, its primary application was as a controller for calculators, washing machines,
and the like. It took years for the computer industry to notice that a genuine central processing
unit was now available as a single chip.


Hobbyists were the first to catch on. In 1974 the first computer kit, the Altair 8800, was
available from MITS Electronics for about $350. The kit consisted of the microprocessor, a
circuit board, a very small amount of memory, toggle switches, and a row of display lights.
Purchasers had to solder and assemble it, then program it in machine language through the
toggle switches. It was not a big hit.

The first big hit was the Apple II. It was a real computer with a keyboard, a monitor, and
a floppy disk drive. When it was first released, users had a $3,000 machine that could play
Space Invaders, run a primitive bookkeeping program, or let users program it in BASIC. The
original Apple II did not even support lowercase letters, making it worthless for word processing.
The breakthrough came in 1979, with a new spreadsheet program, VisiCalc (see
Figure 8). In a spreadsheet, you enter financial data and their relationships into a grid of rows
and columns. Then you modify some of the data and watch in real time how the others change.
For example, you can see how changing the mix of widgets in a manufacturing plant
might affect estimated costs and profits. Middle managers in companies, who understood
computers and were fed up with having to wait for hours or days to retrieve their data runs
from the computing center, snapped up VisiCalc and the computer that was needed to run it.
For them, the computer was a spreadsheet machine.

Posted in | Leave a comment

Artificial Intelligence

When one uses a sophisticated computer program such as a tax preparation package, one is
bound to attribute some intelligence to the computer. The computer asks sensible questions
and makes computations that we find a mental challenge. After all, if doing one’s taxes were
easy, we wouldn’t need a computer to do it for us.

Asimo


As programmers, however, we know that all this apparent intelligence is an illusion.
Human programmers have carefully “coached” the software in all possible scenarios, and it
simply replays the actions and decisions that were programmed into it.

Would it be possible to write computer programs that are genuinely intelligent in some
sense? From the earliest days of computing, there was a sense that the human brain might be
nothing but an immense computer, and that it might well be feasible to program computers
to imitate some processes of human thought. Serious research into artificial intelligence
began in the mid-1950s, and the first twenty years brought some impressive successes. Programs
that play chess—surely an activity that appears to require remarkable intellectual
powers—have become so good that they now routinely beat all but the best human players.
As far back as 1975, an expert-system program called Mycin gained fame for being better in
diagnosing meningitis in patients than the average physician.

Posted in | Leave a comment

Computer Graphics

The generation and manipulation of visual images is one of the most exciting applications of
the computer. We distinguish between different kinds of graphics.
Diagrams, such as numeric charts or maps, are artifacts that convey information to the
viewer. They do not directly depict anything that occurs in the natural world,
but are a tool for visualizing information.


 
Scenes are computer-generated images that attempt to depict images of the real or an
imagined world. It turns out to be quite a challenge to render light and shadows
accurately. Special effort must be taken so that the images do not look too neat and
simple; clouds, rocks, leaves, and dust in the real world have a complex and somewhat random
appearance. The degree of realism in these images is constantly improving.


Manipulated images are photographs or film footage of actual events that have been converted
to digital form and edited by the computer (see Figure 20). For example, film
sequences of the movie Apollo 13 were produced by starting from actual images and changing
the perspective, showing the launch of the rocket from a more dramatic viewpoint.

Computer graphics is one of the most challenging fields in computer science. It requires

Posted in | Leave a comment

The Pentium Floating-Point Bug

In 1994, Intel Corporation released what was then its most powerful processor, the Pentium.
Unlike previous generations of its processors, it had a very fast floating-point unit. Intel’s
goal was to compete aggressively with the makers of higher-end processors for engineering
workstations. The Pentium was an immediate huge success.

In the summer of 1994, Dr. Thomas Nicely of Lynchburg College in Virginia ran an
extensive set of computations to analyze the sums of reciprocals of certain sequences of
prime numbers. The results were not always what his theory predicted, even after he took
the Pentium in Intel’s lineup. This should not have happened. The optimal roundoff behavior
of floating-point calculations has been standardized by the Institute for Electrical and Electronic Engineers (IEEE) and Intel claimed to adhere to the IEEE standard in both the
486 and the Pentium processors. Upon further checking, Dr. Nicely discovered that indeed
there was a very small set of numbers for which the product of two numbers was computed
differently on the two processors. For example,

4,195,835 − ((4,195,835 3,145,727) × 3,145,727)

is mathematically equal to 0, and it did compute as 0 on a 486 processor. On his Pentium
processor the result was 256.
As it turned out, Intel had independently discovered the bug in its testing and had started
to produce chips that fixed it. The bug was caused by an error in a table that was used to
speed up the floating-point multiplication algorithm of the processor. Intel determined that

the problem was exceedingly rare. They claimed that under normal use, a typical consumer
would only notice the problem once every 27,000 years. Unfortunately for Intel, Dr. Nicely
had not been a normal user.

Posted in | Leave a comment

Standards Organizations

Two organizations, the American National Standards Institute (ANSI) and the International
Organization for Standardization (ISO), have jointly developed the definitive standard for
the C++ language.
Why have standards? You encounter the benefits of standardization every day. When you
buy a light bulb, you can be assured that it fits in the socket without having to measure the
socket at home and the bulb in the store. In fact, you may have experienced how painful the
lack of standards can be if you have ever purchased a flashlight with nonstandard bulbs.

Posted in | Leave a comment

The ENIAC and the Dawn of Computing


The ENIAC (electronic numerical integrator and computer) was the first usable electronic
computer. It was designed by J. Presper Eckert and John Mauchly at the University of
Pennsylvania and was completed in 1946—two years before transistors were invented. The
computer was housed in a large room and consisted of many cabinets containing about
18,000 vacuum tubes (see Figure 6). Vacuum tubes burned out at the rate of several tubes per
day. An attendant with a shopping cart full of tubes constantly made the rounds and replaced
defective ones. The computer was programmed by connecting wires on panels. Each wiring
configuration would set up the computer for a particular problem. To have the computer
work on a different problem, the wires had to be replugged.

Posted in | Leave a comment