1.   class meetings

1.1.   August 26

               1.1.1.  Input Assessment

               1.1.2.  "Today, most software exists, not to solve a problem, but to interface with other software. "
- I. O. Angell

Systems software consists of the programs that transform the raw hardware of a computer

system into an environment suitable for creating and running application programs. The most important

systems program is the operating system. Other systems software includes assemblers, linkers, loaders,

and compilers. This course is a detailed examination of the varieties of systems software and how each

functions on top of the hardware.  

1.2.   August 28

              1.2.1.  "In the development of the understanding of complex phenomena,

the most powerful tool available to the human intellect is abstraction. Abstraction arises

from the recognition of similarities between certain objects, situations, or processes in the

real world and the decision to concentrate on these similarities and to ignore, for the time

being, their differences." - C.A.R. Hoare

 

     Collapse node   1.3.   August 30

              1.3.1.  "In mathematics you don't understand things. You just get used to them."

  - J. von Neumann

"The code for a computer system provides the ecology in which [more] code is born, matures, and dies.

A well-designed habitat allows for the successful evolution of all the components needed in a computer

system." - R. Pattis

jump to CPSC3380 syllabus here or to course topics using the action menu above

complete discussion of chapter 2:

  1. interrupt handler timing, mechanism
  2. synchronous and asynchronous io
  3. device drivers, device status tables
  4. memory hierarchy, caches
  5. direct memory access--timing on the memory bus

     Collapse node   1.4.   September 4

          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

  1. management of devices, memory, cpu(s) [sharing cycles] (efficient use of capacity with
    protection against corruption or denial of service)
  2. OS structured into modules that relate in layers
  3. each module provides "services" that other modules use, each layer provides an abstract
    interface to the hardware, handling details that the upper layer ignored.
  4. Java illustrates virtual machine technique where actual machine is made to look like
    abstract machine.

 

     Collapse node   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

  1. Questions about running Java Programs
  2. Think about what happens when you use the RUN option on the START button to execute a
    program (*.exe file identified by BROWSEing).
  3. What happens when a program executes (what is the role of the instruction stream and the CPU)?
  4. How do you create an exe file?

 

     Collapse node   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

  1. virtual memory vs relocatable code
  2. partition (fixed frame) vs stack frame
  3. interplay of microcode (instruction set) and compilation
  4. clocking and RISC

 

     Collapse node   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.

  1. application files represent (hold) instruction streams. Executing the file means routing these
     instructions to the CPU.
    1. instructions are comprised of op codes and operand or operand addresses.
    2. op codes are "decoded" to trigger micro-coded routines in the CPU (its instruction set)
    3. 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).
  2. 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.
  3. 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.

 

Collapse node2.   Text summary slides

        2.1.  Introductory slides (chapts 1 & 2)  (author’s slides)

        2.2.  OS Structure (chapt 3) (author’s slides)

        2.3.  Introduction to Assembler (slides from CMU)

        2.4.  Linking and Loading (slides from CMU)