Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Plan 9 from Bell Labs wikipedia , lookup
Mobile operating system wikipedia , lookup
Burroughs MCP wikipedia , lookup
Library (computing) wikipedia , lookup
Spring (operating system) wikipedia , lookup
Copland (operating system) wikipedia , lookup
Security-focused operating system wikipedia , lookup
Distributed operating system wikipedia , lookup
Process management (computing) wikipedia , lookup
Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC http://www.cs.illinois.edu/class/cs423/ Based on slides by Sam King and Andrew S Tanenbaum 5/23/2017 1 Facilites Lab: EWS Machines Virtual Machine Emulator ssh –Y <netid>@remlnx.ews.illininois.edu Qemu: http://wiki.qemu.org/Main_Page Executable available from ~cs423/bin Will use Linux Kernel 2.6.37 http://www.kernel.org/ 5/23/2017 2 Course Objectives Understanding Major Concepts of Operating Systems Threads and synchronization Virtualization and Virtual Machine Monitors I/O and Device Drivers File Systems Distributed Systems Security Understanding of Interaction Between Hardware and Kernel Understanding of the Layers of Abstraction and Virtualization of Operating Systems 5/23/2017 3 What is an Operating System? Most basically, what is an operating system are the main things it does? 5/23/2017 4 What is an Operating System? Software layer between hardware and application software Application Software Virtual interface Operating System Physical interface Hardware 5/23/2017 5 What Does an Operating System Do? Abstraction Presents application with uniform, (relatively) simple access to resources Regulation Governs access to resources to guarantee proper use 5/23/2017 6 What Does an Operating System Do? In any OS area, ask: What What What What 5/23/2017 resource(s) is involved? is physical reality of resource? abstraction to present to user apps? protections to guarantee? 7 Dual Relationship Between OS and Apps User app main program; calls kernel for services OS main program; calls user programs as subroutines 5/23/2017 8 Main Roles of OS Illiusionist Make resources seem better than they are Examples? Government Parcel out shared resources to multiple apps in a fair, safe, efficient way Tax: Costs CPU, Memory, Maintains Protections Allows good programs to just mind their own business 5/23/2017 9 Why Study Operating Systems? Some day, you may write one (or part of one) OS concepts ant techniques common in other domains OS is huge multi-threaded, event drive app Designing and implementing abstractions and protections Caching, indirection, concurrency, atomicity, … Fun to “open the hood and look inside” 5/23/2017 10 History of Operating Systems Two major forces in OS history Equipment was very expensive, steadily becoming cheaper People viewed as increasingly expensive Systems, including OS growing steadily in complexity Original OS Structure Simple, library of services, single “thread” operation Gave poor utilization of system 5/23/2017 11 Mainframes and Single Operator Computers Three groups interacted with computers Computer designers / developers configure computers for specific application Operators collects program, runs it on the computer, collects output and returns it to the user Programmers write programs, submits it to the operator, waits for output, looks for errors, repeat Wastes both computer and human time 5/23/2017 12 Batch Computers Decouple Input, Execution, Output One device reads in a collection of programs Second device (main computer) executes program batch and outputs results to a “relatively fast” storage (magnetic tape) Third device outputs results from tape to line feeder (basically a dot matrix printer) Allows for parallel processing of input, execution, output Executing multiple programs; protection starts to become an issue 5/23/2017 13 Main Time Sharing Allow multiple humans to interact at the same time Main Idea: Human are very slow I/O Switch / interleave other activities while waiting for human OS much more complicated Multiple sources of input Multiple jobs running in the same time interval Protection needs much more serious 5/23/2017 14 Personal Computers Computer hardware much much cheaper Single user Simple single threaded OS, basically library routines No time sharing between jobs Wait for printer No protection Gradually migrated to full multi-user OS 5/23/2017 15 Today’s Computer Everywhere – microwaves, sewing machines, washing machines, cars … Single User computers: Cell phones, gaming devices, TiVo. Etc Many start with modern complex OS (eg Linux) 5/23/2017 16 Common Modern OS Architecture Applications Libraries (e.g. C runtime) Portable OS Layer User Mode Kernel Mode Machine Dependant Layer 5/23/2017 17 Common Modern OS Architecture Applications Typical System/User Interaction Libraries (e.g. C runtime) Portable OS Layer Machine Dependant Layer 5/23/2017 18 Common Modern OS Architecture Applications Libraries (e.g. C runtime) Shared Libraries Portable OS Layer Machine Dependant Layer 5/23/2017 19 Common Modern OS Architecture Applications Libraries (e.g. C runtime) Portable OS Layer High-level OS Abstractions (eg File System, Processes) Machine Dependant Layer 5/23/2017 20 Common Modern OS Architecture Applications Libraries (e.g. C runtime) Portable OS Layer Machine Dependant Layer 5/23/2017 Low-level (eg process switching, register management) 21 Common Modern OS Architecture OS developer need to be paranoid Application software buggy Hardware unreliable Users untrustworthy (naïve / malicious) OS developer need to be engineers More is better Use as much memory as possible Faster is better Indirections take time, users don’t like to wait 5/23/2017 22 Monolithic OS Architecture Applications Libraries (e.g. C runtime) Portable OS Layer User Mode Kernel Mode Machine Dependant Layer 5/23/2017 23 Alternative: Microkernel Architecture Protection: How much, what cost? Windows NT, Mac OS X microkernel origins More common on embedded systems Client Client Process Process Process File Server Server Memmory … … Server Microkernel 5/23/2017 24 Alternative: Virtual Machine Monitors VMM like microkernel with simple interface Performance? VMM – Microkernel distinction increasing blurred Operating System Virtual Machine Monitor Identical interfaces Hardware 5/23/2017 25