How The Computer WorksBy drawing on one of nature's central principles --- levels of organization --- this website poses an answer to that question. The physical universe spans 46 known steps of dimension, from the smallest quark (10-18 meter) to the most distant quasar (1027 meters). By working with models and levels of abstraction that correspond naturally to objects of various sizes, scientists have learned to approach the enormous complexity and beauty of the universe one step at a time. The computer --- most often a desktop box embedded in the worldwide network --- spans 19 steps of time, from the logic gates in the microchip (10-12 second) to months-long Internet-wide business processes (106 seconds). Between these two extremes of time lie 16 levels of abstraction --- not so imposing as the universe, but daunting still.
We offer here a tour of the six highest levels, from the Internet down to the operation of concurrent computing processes. Each level deals with issues that are close to the experience of most users of computers, issues that come up when human processes of communication and coordination are automated, issues that people seem to solve readily but are devilishly hard to get machines to solve correctly. Our approach here is to examine these issues and show the Great Ideas of computing science and engineering that have been developed to deal with them. By proceeding from your experience with computing, we can peel away the layers of complexity one at a time and help you to understand the great ideas that make the computer work. Although we don't do it here, we could continue the process of peeling away layers until we reach the innermost core of the computer, the microchip. This process --- examining the layers from the outside in --- is the exact opposite of the usual engineering approach of building up from the basic components until finally the user domains of application are attained. Much of what is in these computer levels has been there for the past five decades, and much will survive the next five. Like the universe, these are durable levels. |
Level | Issues | Great Ideas |
Internet | How to send a message to someone? How to send a book or document? How to find the address of a person or object? How to guarantee delivery when network connections are unreliable? How to deliver mail or objects to addresses over unpredictable routes? |
|
User Interface | How do I tell the computer what to do? How does the computer translate my command into action? How does the computer let me manipulate facsimiles of objects? |
|
Information Security | How to prevent unwanted people from accessing my files? How to prevent sensitive information from flowing out of my system? How to prevent someone from sabotaging my system? My information? How to converse in secret? How to sign an electronic document? |
|
Virtual Machines | How does the computer set a command program into execution? How can a computer be divided into smaller identical copies of the original computer? How can programs like Java applets be universally portable? |
|
Virtual Memories | How does the computer incorporate many storage media into a single memory system? How to organize memory so that I don't have to reprogram anything if I add or remove storage devices? How to keep track of objects so they can be addressed at high speed regardless of location? How to speed up a computation when memory is too small to hold everything? |
|
Concurrent Processes | How to prevent two processes from entering a race that makes their combined result unpredictable? How to decide reliably which of two events has occurred first when only one event can be processed at a time? How to ensure that sharable memory objects are used by just one process at a time? How to prevent a group of processes from being halted by a deadlock? How to simulate many processes with a computer having only one computing engine? |
|
Credits:
Director: Peter J. Denning
Front Page Coordination: Jenna Farnham
Logo Coordination: Kyung Kim
Timeline Coordination: William Lemley
Internet Team: Patricia Ball, Jenna Farnham, Sean Iraca
User Interface Team: Andrew Fischer, Kevin Lee
Security Team: An Le, Hwei-Hsin Feng, Jeffrey Scanlon
Virtual Machines Team: Eric Kohlbrenner, Brett Morris, Dana Morris
Virtual Memory Team: Tuncay Basar, Kyung Kim, William Lemley
Processes Team: Brian Cornnell, Halleh Fatheisian, Eric Rosenberger
(c) Copyright 1999, Hyperlearning Center. All rights reserved.