Overview
Last modified Tuesday, 07-Sep-2004 11:27:20 UTC.
- Introduction
- The Big Picture
- Foundations
- Religion
- Physics
- Chemistry
- Hardware - provides basic computing resources
(CPU, memory, I/O devices).
- Electronics
- Computer Systems
- Computer Science
- Operating Systems
- Programming
- Analysis
- Application Building Tools
- The World
- Information Technology
- Applications programs - define the ways in which the
system resources are used to solve the computing problems
of the users (compilers, database systems, video games,
business programs).
- Users (people, machines, other computers).
- The Software Picture
- Problems + Analysis and Design = Algorithms
- Algorithms + Programming = Programs
- Programs + Compilers = Relocatable executables
- Relocatable executables + Linker-loader = Executable
- Executable + Operating Systems =
Execution on hardware
- Execution on hardware + Time and Space and Randomness =
Solutions
- What is an OS? (SGG Ch.1.1)
- Operating system - controls and coordinates the use
of the hardware among the various application programs
for the various users.
- A program that acts as an intermediary between user
programs and the computer hardware.
- Operating system goals:
- Execute user programs
- Make the computer hardware convenient to use.
- Use the computer hardware in an efficient manner.
- Maintain protection and security
- Software Execution
- Executables
- Source code
- Compilation
- Linking
- Machine code
- Text segment - 0 base address
- Data segment
- Stack-heap segment(s)
- von Neumann architecture
(BH pp.11-13,53)
- CPU
- ALU
- Registers: MAR, MBR, PC, IR, SR, ACU, Base, Limit, R0 ...
- Cache
- CPU bus
- Interrupt vector (BH pp.143-152)
- MMU and RAM
- IO devices
- System bus
- DMA channel
- Computer system operation (SGG Ch.2.1)
- Memory read and write, using the MAR and MBR and MMU
- The interrupt?-fetch-decode-execute-increment cycle (BH pp.13-14)
- Interrupt handling
- Save state
- Branch to OS
- Restore state
- The startup sequence (BH pp.131-132)
- Initialize registers
- Put ROM start address (or indirect address) in PC
- Start fetch-decode-execute cycle
- Load boot block from boot disk
- Execute boot block
- Load OS from disk to RAM
- Start OS processes
- Wait for interrupt
- Tight loop
- "Halt" instruction (cooler :-)
- Interrupts
- The only way for the OS to gain control
- Sources of interrupts
- Devices, particularly IO
- Software (traps)
- Hardware (including errors)
- Clock
- Styles of handling
- Interrupt line, universal handler
- Interrupt line, handler chain
- CPU vector
- Saving the state - where does it go?
- Process control blocks
- Register banks
- Interrupt stack
- Interrupting an interrupt
- Interrupt stack (for nested interrupts)
- Disabling interrupts
- Queueing interrupts
- Interrupt levels
- History and Hardware
(Slides)
- The story that motivates multi-tasking (SGG Ch.1.2)
- Early systems (BH pp.5-7)
- Batch systems
- Offline operation
- Spooling
- IO system hardware
- IO interrupts (SGG Ch.2.2.1)
- Multiprogrammed batched systems
- Timesharing systems
- Hardware protection (SGG Ch.2.5)
- Dual mode operation (SGG Ch.2.5.1, BH pp.71-72)
- CPU protection (SGG Ch.2.5.4)
- Memory protection (SGG Ch.2.5.3)
- IO protection (SGG Ch.2.5.2)
- Other types of systems (SGG Ch1.3-8)
- Personal computer systems
- Multiprocessor systems
- Distributed systems
- Real time systems
- Handheld systems
- Feature migration (SGG Ch.1.9)
- OS structures
(Slides)
- System components (SGG Ch.3.1)
- Process management (SGG CH.3.1.1)
- Memory management (SGG Ch.3.1.2)
- File management (SGG Ch.3.1.3)
- IO system management (SGG Ch.3.1.4)
- Secondary storage management (SGG Ch.3.1.5)
- Network management (SGG Ch.3.1.6)
- Protection system (SGG Ch.3.1.7)
- System services
- For the user (SGG Ch.3.2)
- For the programmer (SGG Ch.3.3)
- For the system (SGG Ch.3.2)
- System programs
- Types of programs (SGG Ch.3.4)
- Command interpreter (SGG Ch.3.1.8, Ch.3.4)
- System structure
- Simple approach (SGG CH.3.5.1)
- Layered approach (SGG Ch.3.5.2)
- Microkernels (SGG Ch.3.5.3)
- Virtual machines (SGG Ch.3.6)
- Design and implementation (SGG Ch.3.7-8)
- UNIX
Exam Style Questions
- Draw a diagram showing how the operating system relates to users,
application programs, and the computer hardware.
- Why are interupts and interupt handling crucial to time-sharing
operating systems?
- What is SPOOLING?
- Explain the difference between synchronous and asynchronous IO.
- What OS features are required for multiprogramming?
- What extra acpability does a time-sharing OS offer over a
multi-programming OS?
- What is the difference between kernel and user mode of a CPU?
- Explain how dual mode operation is used in {memory,IO,CPU}
protection.
- How does a modern computer prevent a process from using the CPU
for ever?
- What OS feature is less crucial in PC systems?
- What extra capability does an OS require to be used on a SMP
machine?
- Explain the differences between OSs for hard real time and soft
real time computing.
- Name are the five core software modules of a modern OS?
- What activities is the OS involved with in {process,memory,
file, IO system, disk} management?
- Explain three ways that data may be passed from a user process
to the OS.
- Describe the layered approach to OS structure.
- What is the principle idea of a micro-kernel OS?
- Draw a diagram showing the architecture of a virtual machine
OS model.
- How can OS implementation affect the potential for porting to another
machine? How can the porting effort be minimized?
- What happens in OS sysgen?