Courses/Computer Science/CPSC 457.F2013/Lecture Notes/SysArch

Jump to: navigation, search

System Architecture

This session will briefly consider a typical hardware environment that an OS is responsible for managing, with a focus on the x86 platform.


HW1 released. Working on defining HW2, HW3, and test1.

Sorry for the svn and VirtualBox image weirdness.

NB: Start with an overview of LXR and the source rpm and tarball in the course VM to finish off the "What is an OS?" discussion. redraw picture, motivate interrupts and exceptions.

We also note that, as the textbook says, OSs started out by replacing the human operator: which is one reason we emphasize part of the definition of an OS as something that loads and prepares software for execution. Main issue: how can the OS simultaneously time-multiplex the CPU(s) for all those processes? But there is another aspect, since sharing the CPU does not imply protection / isolation: space multiplexing memory and the isolation / protection implied.

Start with gdb on our silly programs, hello or addi. observe machine state (i.e., registers)

Focus Questions

  • How does a program become a process (cont.)?
  • How do low-level hardware primitives enable the higher-level resource management and isolation guarantees of an Operating System kernel?


  • Hardware support for protection
    • x86 CPU core architecture, data path, assembly language
    • DPL bits in segment descriptors help label memory pages as belonging to a particular privilege "ring"
  • System Architecture Environment and assembly programming (x86 legacy)
  • examine process creation via fork(2)

Scribe Notes


  • None - catch up on previous reading or svn tutorial material.

Background / Reference