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
© Copyright 2025 ExpyDoc