Courses/Computer Science/CPSC 457.F2014/Lecture Notes/SysArch
This session will briefly consider a typical hardware environment that an OS is responsible for managing, with a focus on the x86 platform.
USB memory sticks will be available starting on Tuesday at the CPSC helpdesk.
Previous picture of "What is an OS" is a bit misleading because it takes both the processes and the kernel "outside" of memory.
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.
- 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)
- None - catch up on previous reading or svn tutorial material.
Background / Reference
- The Intel IA32 Developer Manuals, Volume 1: http://www.intel.com/products/processor/manuals/
- Section 2.1 (skim this)
- Section 2.2 (paying particular attention to the description of the pipelined microarchitecture)
- Chapter 3 (paying particular attention to 3.1 (and Figure 3-1), 3.2, 3.3, 3.4)
- The Intel IA32 Developer Manuals, Volume 3A: http://www.intel.com/products/processor/manuals/
- Chapter 2 (paying special attention to Figure 2-1, Section 2.2, Figure 2-3, and Section 9.1)