Operating Systems

Operating Systems
Design and Implementation
Andrew S. Tanenbaum
Melanie Rieback
Arno Bakker
Vrije Universiteit Amsterdam
Operating Systems - Winter 2012
Outline
Operating Systems 2012
• Introduction
• What is an OS?
• Concepts
• Processes and Threads
• Memory Management
• File Systems
Vrije Universiteit Amsterdam
Slide 4
Chap 1 - Overview
Operating Systems 2012
• What is an Operating System?
• Concepts
• System Calls
• Structure
Vrije Universiteit Amsterdam
Slide 4
What is an OS?
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 13
2 Views on OSes
Operating Systems 2012
• OS as a Virtual Machine
• Extending the HW functionality
• Hides the messy details of programming the HW
• OS as a Resource Manager
• Protects against simultaneous usage of resources
• Fair sharing of resources (scheduling)
• Resource accounting
Vrije Universiteit Amsterdam
Slide 15
How to View an OS
Operating Systems 2011
Program
System calls
OS
Vrije Universiteit Amsterdam
Slide 16
Concept: Processes
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 17
Multiple Processes
Operating Systems 2011
init
shell
Vrije Universiteit Amsterdam
some_
program
Slide 18
System Calls
Operating Systems 2011
• System Calls are the interface the Operating System offers to applications.
• Problem: Mechanics of issuing a system call are highly machine dependent
• Solution: Provide a library to allow system calls from C programs: libc
Applications / Processes
Bash
Libraries
libc
Operating System
Linux kernel
Hardware
x86_64
Library functions
System Calls
Instruction
Set
Architecture
Vrije Universiteit Amsterdam
Slide 27
System Calls: Process
Management (1/2)
Vrije Universiteit Amsterdam
Slide 28
System Calls: Process
Management (2/2)
Vrije Universiteit Amsterdam
Slide 29
System Calls: Signals
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 30
Concept: Mounting (1/2)
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 23
File System Mounting (2/2)
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 24
Special Files (1/2)
Operating Systems 2011
Storage devices are mapped into the file
tree via mounting. Idea: do this for all
devices.
Mechanism: Special files in /dev
Two types:
Vrije Universiteit Amsterdam
Slide 25
Special Files (2/2)
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 26
System Calls: Files
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 31
System Calls: Directories
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 32
System Calls: Implementation
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 35
OS Structure: UNIX
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 37
OS Structure: Linux
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 38
Operating Systems
Chapter 2 - Processes
Vrije Universiteit Amsterdam
Operating Systems - Winter 2012
Chap 2 - Overview
Operating Systems 2012
• Scheduling Processes
• Threads
Vrije Universiteit Amsterdam
Slide 1
Recall: Process
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 2
One CPU, Many Processes
Operating Systems 2012
•
•
•
•
Processes share the CPU(s)
A scheduler determines which process to run next
Keeps track of the process state
Following some scheduling policy (random robin, shortest
job first, etc).
Vrije Universiteit Amsterdam
Slide 3
Process States
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 5
Context Switching
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 39
Process Implementation
Operating Systems 2011
Process
Table:
ps -ef
Vrije Universiteit Amsterdam
Slide 7
Threads
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 10
Threads: Minimal Support
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 11
Threads – Some Problems
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 12
Mutual Exclusion
Operating Systems 2011
Vrije Universiteit Amsterdam
Slide 15
Operating Systems
Chapter 4 – Memory Management
Vrije Universiteit Amsterdam
Operating Systems - Winter 2012
Chap 4 - Overview
Operating Systems 2012
• Memory Management
• Paged Memory
• Virtual Memory
• Segmentation
Vrije Universiteit Amsterdam
Slide 1
Memory Management – Simple
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 2
Memory Management - Complex
Operating Systems 2012
Multiple processes in the same memory
Vrije Universiteit Amsterdam
Slide 10
Paged Memory Systems (1/2)
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 15
Paged Memory Systems (2/2)
Vrije Universiteit Amsterdam
Slide 17
Virtual Memory
Operating Systems 2012
•
Idea: Not all virtual pages have to be in physical memory
•
Instead stored on disk -> cheap storage
•
In swap partition
•
Much more memory available
•
Works if not all pages are used at the same time
Vrije Universiteit Amsterdam
Slide 24
Segmentation
Operating Systems 2012
N
Stack
Data
0
Code
•
•
•
N
Code
Data
Stack
0
Segments can grow independently
Hardware helps to map segments to virtual memory
Hardware helps to protect: read-only, no-execute
Vrije Universiteit Amsterdam
Slide 35
Operating Systems
Chapter 5 – File Systems
Vrije Universiteit Amsterdam
Operating Systems - Winter 2012
Chap 5 - Overview
Operating Systems 2012
• Files
• Directories
• File system implementation
• UNIX/MINIX filesystem
Vrije Universiteit Amsterdam
Slide 1
Directories
Operating Systems 2012
i-node
Vrije Universiteit Amsterdam
Slide 5
File Attributes
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 4
Directories – Pathnames
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 6
File System Design
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 7
File Storage: Disk Layout
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 8
File Storage – Inodes
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 11
File Storage – UNIX
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 13
File Storage – Name Resolution
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 14
Disk Space Management (1/2)
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 15
File System Consistency
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 18
Buffer Cache
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 20
Log-Structured File Systems
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 21
MINIX Filesystem
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 31
MINIX Superblock
Operating Systems 2012
Vrije Universiteit Amsterdam
Slide 32