Transcript ppt

Last Class: Introduction



Operating system =
interface between
user & architecture
Importance of OS
OS history:
Change is only
constant
User-level Applications
virtual machine interface
Operating System
physical machine interface
Hardware
1
Today:
OS & Computer Architecture



Modern OS Functionality (brief review)
Architecture Basics
Hardware Support for OS Features
2
Modern OS Functionality

CPU management






Concurrency (multiple simultaneous activities)
How to achieve it? How to schedule? How to
avoid conflict?
Memory management
Disk management
I/O Device Management
Advanced: support for

distributed systems & networks
3
Operating Systems = Governments





Infinite RAM, CPU
Protect users from each other: safety
Fair allocation of resources
To each according to his needs
Manage resources efficiently
4
Canonical System Hardware




CPU: Processor to perform
actual computations
I/O devices: terminal,
disks, video, printer…
Memory: data & programs
System Bus:
Communication channel
between above
5
Services & Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
System Calls
Trap Instructions
I/O
Interrupts, Memory-Mapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
6
Protection

OS protects users from each other


Users cannot read or write other user’s memory
Protects self from users


Safe from errant or malicious users
Code & data protected
7
Kernel Mode:
Privileged Instructions

CPU provides “kernel” mode restricted to OS



Privileged instructions & registers:





Inaccessible to ordinary users
Kernel = core of operating system
Direct access to I/O
Modify page table pointers, TLB
Enable & disable interrupts
Halt the machine, etc.
Indicated by status bit in protected CPU register
8
Protecting Memory:
Base and Limit Registers

Hardware support to protect
memory regions


CPU checks each reference


Loaded by OS before starting
program
Instruction & data addresses
Ensures reference in range
9
Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
Traps
Trap Instructions
I/O
Interrupts, Memory-Mapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
10
Interrupts

Interrupt: Let CPU work while doing I/O
I/O is s..l..o..w for CPU
 I/O device has own processor
 When finished, device sends interrupt on bus
 CPU “handles” interrupt

11
CPU Interrupt Handling


Handling interrupts: relatively expensive
CPU must:






Save hardware state (why?)
 Registers, program counter
Disable interrupts (why?)
Invoke via in-memory interrupt vector (like trap vector, soon)
Enable interrupts
Restore hardware state
Continue execution of interrupted
process
12
Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
Traps
Trap Instructions
I/O
Interrupt vectors, MemoryMapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
13
Traps


Special conditions detected by architecture
 E.g.: page fault, write to read-only page, overflow,
system call
On detecting trap, hardware must:
 Save process state (PC, stack, etc.)
 Transfer control to trap handler (in OS)



CPU indexes trap vector by trap number
Jumps to address
Restore process state and resume
14
Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
Traps
Trap Instructions
I/O
Interrupt vectors, MemoryMapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
15
Memory-Mapped I/O


Direct access to I/O controller through memory
Reserve area of memory for communication
with device (“DMA”)

Video RAM:



CPU writes frame buffer
Video card displays it
Fast and convenient
16
Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
System Calls
Trap Instructions
I/O
Interrupt vectors, MemoryMapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
17
Synchronization

How can OS synchronize concurrent
processes?


E.g., multiple threads, processes & interrupts,
DMA
CPU must provide mechanism for atomicity

Series of instructions that execute as one or not
at all
18
Synchronization: How-To

One approach:




Advantages:



Disable interrupts
Perform action
Enable interrupts
Requires no hardware support
Conceptually simple
Disadvantages:

Could cause starvation
19
Synchronization: How-To, II

Modern approach: atomic instructions


Small set of instructions that cannot be interrupted
Examples:




Test-and-set (“TST”)
if word contains given value, set to new value
Compare-and-swap (“CAS”)
if word equals value, swap old value with new
Intel: LOCK prefix (XCHG, ADD, DEC, etc.)
Used to implement locks
20
Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
System Calls
Trap Instructions
I/O
Interrupt vectors, MemoryMapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
21
Virtual Memory

Provides illusion of complete access to RAM


OS loads pages from disk as needed


All addresses translated from physical addresses into
virtual addresses
Keeps track of which pages are in memory (“in core”)
and which are on disk
Many benefits, including:

Allows users to run programs without loading entire
program into RAM

May not fit in entirety (think MS Office)
22
Translation Lookaside Buffer

First virtual memory systems performed
address translation in software


On every memory access! (s..l..o..w..)
Modern CPUs contain hardware to do this:
the TLB



Hash-based scheme
Maps virtual addresses to physical addresses
Fast, fully-associative cache
23
Hardware Support
OS Service
Hardware Support
Protection
Kernel/User Mode
Protected Instructions
Base & Limit Registers
Interrupts
Interrupt Vectors
System Calls
Trap Instructions
I/O
Interrupt vectors, MemoryMapping
Synchronization
Atomic Instructions
Virtual Memory
Translation Lookaside Buffers
Scheduling
Timer
24
Scheduling & Timers

OS needs timers for:


Time of day
CPU scheduling



Fairness: limited quantum (e.g., 100ms) for each task
When quantum expires, switch processes
Uses interrupt vector
25
Summary

OS relies on hardware for many services







Protection
Interrupts
Traps
Synchronization
Virtual memory
Timers
Otherwise impossible or impractically slow in
software
26
From Architecture to OS to User

Architectural resources, OS services, user
abstractions
27