Page 1: Abstraction Inside the Computer
Unit 6, Lab 1, Page 1
Why this? AP talks about the abstraction hierarchy. This page shows some level of detail, but also highlights the two crucial abstraction barriers: between hardware and software, and between the analog domain and the digital domain.
Why here? This page is sort of preview of coming attractions. It’s a short page, with nothing really to do except read it and move on to the full story.
PG, on unit: This whole unit is a lot of reading and very little action. Of course, that’s true of most school courses so, for better or for worse, kids are used to it. We’ve thought about it and (currently) have no solution. I very much like all the content. I equally much want the entire unit to be optional extra. To me, it feels like the second course in computer science, not the attract-students-in course. For those who want to see what’s under the hood of the /computer/—the computer engineering interest—this should be available, but if it were not for CB, I’d leave it all optional.
BH, on lab: There’s hardly anything to do in this lab, and if we could improve on that it’d be great, but I don’t see how.
MF: lightly clean up to make the text more concise
In Unit 4 A Hierarchy of Open Protocols, you saw that the Internet software is arranged in several levels of abstraction, with application programs (like your email program) at the highest level and network hardware protocols such as WiFi and Ethernet at the lowest level. Recall that higher levels are closer to what users want to be thinking about; lower levels are closer to the way machines work.
Like the Internet, the way a computer works on the inside also has levels of abstraction.
In this lab, you will learn about the levels of abstraction in computer software and hardware.
On this page, you will learn get an overview of three groups (domains) of levels of abstraction.
There are a lot of levels of abstraction in how computers work. Here they are organized into three overarching domains:
Different people might draw this diagram slightly differently, so don’t try to memorize all the levels. The key abstraction levels to remember are software, digital computer hardware, and underlying analog circuit components.
Do we need this commented out content? –MF, 6/12/20
Software Domain
The programs you write and use are software, but underneath these programs is more software that helps them work. In this lab, we’ll look at four layers of abstraction in the software domain:
- applications that you write and use
- programming languages that are used to write them
- libraries of useful functions that hide messy details
- operating systems that interface with the hardware
Software is an abstraction—a way of thinking about the computer without thinking about how it works.
Similarly, an automobile driver is operating at a high level of abstraction when using the brake pedal. As long as the engineers and mechanics designed and built the car right, drivers don’t need to know the details about how the brake system works—they just use it at a high level.
Digital Domain
In the software domain, each level of abstraction is a different piece of software, but the levels of abstraction in the digital domain are different ways of thinking about the same physical object. The circuitry inside a computer is complicated, and to make building it possible, engineers think about it at several different levels of abstraction:
- The architecture is the instructions that software can send that the hardware will understand.
- The computer has components (such as memory, processors, video cards, etc.) that implement the architecture.
- Those components are built out of integrated circuits (chips), which are the black rectangles that you can see on this circuit board.
- Those integrated circuits are designed around logic gates, the fundamental building blocks that implement Boolean functions.
You learned about Boolean functions in <a href=“/unit-2/lab-1/a>.
Do we need this commented out content? –MF, 6/12/20
Analog Domain
Logic gates, which are the lowest abstraction level of the digital domain, operate on ones and zeros. In physical reality, those logic gates are built out of transistors, a type of circuit component. Transistors aren’t like light switches that are either on or off. There can be in-between values (like “only 23% on”). So, electrical engineers have to think about the laws of electronics to design digital circuits so that in-between values don’t happen.
: analog vs. digital
Digital and analog are opposites. Digital means information that is represented as ones and zeros. Analog means information that is represented by signals that vary continuously (that is, including in-between values).