The University of Arizona

Courses

CS 340: Foundations of Computer Systems


Objective
  • To teach the basics of machine organization and low-level systems software, including an introduction to assembly language and C programming.
Pre-Conditions
Post-Conditions
(Topics)
  • [1 week] Basic machine organization: [CS422] [CS452]
    • registers & memory
    • software levels: source, assembly, machine
  • [2 weeks] Assembly code [CS452] [CS453]
    • Instruction set basics: operator/operand, addressing modes
    • Simple instructions: load/store, add/mult
    • Control flow: jump/conditionals, if-then-else, loops
  • [1 week] Execution Model: text, stack, heap [CS452]
  • [1 week] Stack: calling conventions, activation records [CS422]
  • [2 weeks] Heap: [CS422] [CS452]
    • Allocation algorithms
    • Fragmentation
    • Garbage collection and compaction
    • Introduction to C pointers
  • [1 week] Assembler: resolving internal references
  • [1 week] Object file formats
  • [1 week] Linking: resolving external references
  • [2 weeks] Interrupts and traps: [CS425] [CS452]
    • System calls
    • Interrupt handlers
    • Simple locking
  • [2 weeks] Virtual memory and loading [CS422] [CS452]
    • Loading
    • Segmented VM (mapping only)
    • Flat VM
  • Facility with ~50 line assembly programs
  • Facility with ~500 line C programs [CS425] [CS452]



Last revised on 27 February 1997 by John Hartman.