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.