Operating Systems Design and Implementation Andrew S. Tanenbaum Melanie Rieback Arno Bakker Vrije Universiteit Amsterdam Operating Systems - Winter 2012
Outline Introduction What is an OS? Concepts Processes and Threads Memory Management File Systems Vrije Universiteit Amsterdam Slide 4
Chap 1 - Overview What is an Operating System? Concepts System Calls Structure Vrije Universiteit Amsterdam Slide 4
What is an OS? Vrije Universiteit Amsterdam Slide 13
2 Views on OSes 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 OS System calls 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 Library functions System Calls Instruction Set Architecture Applications / Processes Libraries Operating System Hardware Bash libc Linux kernel x86_64 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) Storage devices are mapped into the file tree via mounting. Idea: do this for all devices. Mechanism: Special files in /dev Two types: Operating Systems 2011 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 Scheduling Processes Threads Vrije Universiteit Amsterdam Slide 1
Recall: Process Vrije Universiteit Amsterdam Slide 2
One CPU, Many Processes 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 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 Memory Management Paged Memory Virtual Memory Segmentation Vrije Universiteit Amsterdam Slide 1
Memory Management Simple Vrije Universiteit Amsterdam Slide 2
Memory Management - Complex Multiple processes in the same memory Vrije Universiteit Amsterdam Slide 10
Paged Memory Systems (1/2) Vrije Universiteit Amsterdam Slide 15
Paged Memory Systems (2/2) Vrije Universiteit Amsterdam Slide 17
Virtual Memory 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 N Stack 0 Data Code N 0 Code Data Stack 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 Files Directories File system implementation UNIX/MINIX filesystem Vrije Universiteit Amsterdam Slide 1
Directories i-node Vrije Universiteit Amsterdam Slide 5
File Attributes Vrije Universiteit Amsterdam Slide 4
Directories Pathnames Vrije Universiteit Amsterdam Slide 6
File System Design Vrije Universiteit Amsterdam Slide 7
File Storage: Disk Layout Vrije Universiteit Amsterdam Slide 8
File Storage Inodes Vrije Universiteit Amsterdam Slide 11
File Storage UNIX Vrije Universiteit Amsterdam Slide 13
File Storage Name Resolution Vrije Universiteit Amsterdam Slide 14
Disk Space Management (1/2) Vrije Universiteit Amsterdam Slide 15
File System Consistency Vrije Universiteit Amsterdam Slide 18
Buffer Cache Vrije Universiteit Amsterdam Slide 20
Log-Structured File Systems Vrije Universiteit Amsterdam Slide 21
MINIX Filesystem Vrije Universiteit Amsterdam Slide 31
MINIX Superblock Vrije Universiteit Amsterdam Slide 32