Operating Systems Design and Implementation Andrew S. Tanenbaum Melanie Rieback Arno Bakker Outline Introduction What is an OS? Concepts Processes and Threads Memory Management File Systems Vrije Universiteit Amsterdam Operating Systems - Winter 2012 Vrije Universiteit Amsterdam Slide 4 Chap 1 - Overview What is an OS? What is an Operating System? Concepts System Calls Structure Vrije Universiteit Amsterdam Slide 4 Vrije Universiteit Amsterdam Slide 13 1
2 Views on OSes How to View an OS 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 Program OS System calls Fair sharing of resources (scheduling) Resource accounting Vrije Universiteit Amsterdam Slide 15 Vrije Universiteit Amsterdam Slide 16 Concept: Processes Multiple Processes init shell Vrije Universiteit Amsterdam Slide 17 Vrije Universiteit Amsterdam some_ program Slide 18 2
System Calls 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 System Calls: Process Management (1/2) Library functions System Calls Instruction Set Architecture Applications / Processes Libraries Operating System Hardware Bash libc Linux kernel x86_64 Vrije Universiteit Amsterdam Slide 27 Vrije Universiteit Amsterdam Slide 28 System Calls: Process Management (2/2) System Calls: Signals Vrije Universiteit Amsterdam Slide 29 Vrije Universiteit Amsterdam Slide 30 3
Concept: Mounting (1/2) File System Mounting (2/2) Vrije Universiteit Amsterdam Slide 23 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. Special Files (2/2) Mechanism: Special files in /dev Two types: Vrije Universiteit Amsterdam Slide 25 Vrije Universiteit Amsterdam Slide 26 4
System Calls: Files System Calls: Directories Vrije Universiteit Amsterdam Slide 31 Vrije Universiteit Amsterdam Slide 32 System Calls: Implementation OS Structure: UNIX Vrije Universiteit Amsterdam Slide 35 Vrije Universiteit Amsterdam Slide 37 5
OS Structure: Linux Operating Systems Chapter 2 - Processes Vrije Universiteit Amsterdam Slide 38 Vrije Universiteit Amsterdam Operating Systems - Winter 2012 Chap 2 - Overview Recall: Process Scheduling Processes Threads Vrije Universiteit Amsterdam Slide 1 Vrije Universiteit Amsterdam Slide 2 6
One CPU, Many Processes Process States 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 Vrije Universiteit Amsterdam Slide 5 Context Switching Process Implementation Process Table: ps -ef Vrije Universiteit Amsterdam Slide 39 Vrije Universiteit Amsterdam Slide 7 7
Threads Threads: Minimal Support Vrije Universiteit Amsterdam Slide 10 Vrije Universiteit Amsterdam Slide 11 Threads Some Problems Mutual Exclusion Vrije Universiteit Amsterdam Slide 12 Vrije Universiteit Amsterdam Slide 15 8
Operating Systems Chap 4 - Overview Memory Management Paged Memory Virtual Memory Segmentation Chapter 4 Memory Management Vrije Universiteit Amsterdam Operating Systems - Winter 2012 Vrije Universiteit Amsterdam Slide 1 Memory Management Simple Memory Management - Complex Multiple processes in the same memory Vrije Universiteit Amsterdam Slide 2 Vrije Universiteit Amsterdam Slide 10 9
Paged Memory Systems (1/2) Paged Memory Systems (2/2) Vrije Universiteit Amsterdam Slide 15 Vrije Universiteit Amsterdam Slide 17 Virtual Memory Segmentation 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 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 24 Vrije Universiteit Amsterdam Slide 35 10
Operating Systems Chap 5 - Overview Files Directories File system implementation UNIX/MINIX filesystem Chapter 5 File Systems Vrije Universiteit Amsterdam Operating Systems - Winter 2012 Vrije Universiteit Amsterdam Slide 1 Directories File Attributes i-node Vrije Universiteit Amsterdam Slide 5 Vrije Universiteit Amsterdam Slide 4 11
Directories Pathnames File System Design Vrije Universiteit Amsterdam Slide 6 Vrije Universiteit Amsterdam Slide 7 File Storage: Disk Layout File Storage Inodes Vrije Universiteit Amsterdam Slide 8 Vrije Universiteit Amsterdam Slide 11 12
File Storage UNIX File Storage Name Resolution Vrije Universiteit Amsterdam Slide 13 Vrije Universiteit Amsterdam Slide 14 Disk Space Management (1/2) File System Consistency Vrije Universiteit Amsterdam Slide 15 Vrije Universiteit Amsterdam Slide 18 13
Buffer Cache Log-Structured File Systems Vrije Universiteit Amsterdam Slide 20 Vrije Universiteit Amsterdam Slide 21 MINIX Filesystem MINIX Superblock Vrije Universiteit Amsterdam Slide 31 Vrije Universiteit Amsterdam Slide 32 14