1.4.1. "John von
Neumann draws attention to what seemed to him a contrast. He
remarked that for simple mechanisms, it is often easier to describe how they
work than what they
do, while for more complicated mechanisms, it
is usually the other way around."
- E. Dijkstra (Trip Reports, 213
"Everything
should be made as simple as possible, but not simpler." - A. Einstein
Chapter
3, Structure of OS
management
of devices, memory, cpu(s) [sharing cycles] (efficient use of capacity
with
protection against corruption or denial of service)
OS
structured into modules that relate in layers
each
module provides "services" that other modules use, each layer
provides an abstract
interface to the hardware, handling details that the upper layer
ignored.
Java
illustrates virtual machine technique where actual machine is made to
look like
abstract machine.
1.5. September 11
1.5.1. "At the source of every error
which is blamed on the computer, you will find at least two human errors, one of which is the
error of blaming it on the computer." - Anonymous
Questions about
running Java Programs
Think about what
happens when you use the RUN option on the START button to execute a
program (*.exe file identified by BROWSEing).
What happens when a
program executes (what is the role of the instruction stream and the
CPU)?
How do you create an
exe file?
1.6. September 13
1.6.1. "There are only 10 different
kinds of people in the world: those who know binary
and those who don't." - Anonymous
virtual memory vs
relocatable code
partition (fixed
frame) vs stack frame
interplay of microcode
(instruction set) and compilation
clocking and RISC
1.7. September 16
1.7.1. "He who asks is a fool for
five minutes; he who does not ask remains a fool
forever." - Anonymous Chinese Proverb
"Scientists build to
learn; Engineers learn to build." - F. Brooks
Users treat the operating
system as a black box. We double-click on an application file in Windows and
it executes in front of us. They don't give a second thought to what the
system had to do to cause that
reaction. If we want to understand how to extend this illusion to information
systems that we design and
configure, we must know the actual steps that are involved in providing this
service.
application files
represent (hold) instruction streams. Executing the file means routing
these instructions to the CPU.
instructions are
comprised of op codes and operand or operand addresses.
op codes are
"decoded" to trigger micro-coded routines in the CPU (its
instruction set)
operands may be
immediate data, register to register operations (such as add or move),
or
register to memory operations (to retrieve or store data in memory).
addresses must
reference the actual byte location of the data in RAM and jumps to new
instructions (branching) must reference the actual byte in RAM of the
new instruction.
programs are written
in segments and stored on disk. These segments allow mixing and matching
to accomplish processing without have to re-create the wheel. However,
this requires BINDING
the segments together, a process done at compile time or link time.