Unit 6 Lab 1 - Computer Abstraction Hierarchy
The abstraction of software...
is what makes a computer usable for more than one purpose.
special-purpose languages
languages designed for specific tasks (HTML, Word macros)
kernel
low level language that manages when computer processes run (scheduling, security, input/output)
machine language
low level language understood by computer hardware
bits
number of wires
width
number of wires that connect the processor and the memory
circuit gate
performs boolean function
library
a piece of code written by another person that you can import into your code without needing to know the specifics of how it works
Software is...
an abstraction
Architecture
an abstraction, a specification of the machine language. It also tells how the processor connects to the memory. It doesn't specify the circuitry; the same architecture can be built as circuitry in many different ways.
flip-flop
circuit that has two stable states, on and off (changed by input signal, output reflects it's state)
data mining
combining info from different sources
Uses of software
communication, audio, pictures, video, etc.
machine learning
computers being taught to generalize the info they find to find patterns and predict the future
The software domain is made of...
different softwares - programming languages used to write them, libraries of useful functions that hide details, operating systems that interface with hardware
The digital domain is made of...
different things that make up the same object - architecture is the instructions that software can send that the hardware will understand, components like memory implement architecture, integrated circuits that make up components, and logic gates, which are what circuits are designed around that implement boolean functions
transistor
fundamental building block of electronic circuits that are used as on/off switches
general-purpose languages
have basically the same arithmetic operators and boolean operators
high-level language
have lots of built in abstraction to focus on the problem instead of the computer hardware (reduce bugs)
software domain
programs you write and use and levels included within them
operating system (OS)
programs your apps interact with to communicate with your computer (Windows/iOS for computers/tablets), mostly based off of Unix
garbage collection
puts computer in charge of knowing when a block of memory is no longer in use
fanout
the output voltage is reduced to the point that those inputs might not be sure whether they're getting a zero or a one
application program interface (API)
the record of what the user of a library needs to know about it: describes the library's purpose and its inputs and outputs, but not its algorithms
The analog domain is made of...
transistors, which make up logic gates and have in-between values
compilers and interpreters
translate human programming languages in to machine language to be run by the computer
OS handles...
window system, file manager, communications, utilities