• Operating systems provide a virtual machine abstraction to handle diverse hardware
• Operating systems coordinate resources and protect users from each other
• Operating systems simplify application development by providing standard services
• Operating systems can provide an array of fault containment, fault tolera
Virture machine
1. Software emulation of an abstract machine
– Give programs illusion they own the machine
– Make it look like hardware has features you want
2. Two types of “Virtual Machine”s
– Process VM: supports the execution of a single program; this functionality typically provided by OS
– System VM: supports the execution of an entire OS and its applications (e.g., VMWare Fusion, Virtual box,Parallels Desktop, Xen)
3. Process VM
• Programming simplicity
– Each process thinks it has all memory/CPU time
– Each process thinks it owns all devices
– Different devices appear to have same high levelinterface
– Device interfaces more powerful than raw hardware
» Bitmapped display windowing system
» Ethernet card reliable, ordered, networking (TCP/IP)
• Fault Isolation
– Processes unable to directly impact other processes
– Bugs cannot crash whole machine
• Protection and Portability
– Java interface safe and stable across many platforms
What is an operating system?
• Special layer of software that provides application
software access to hardware resources
– Convenient abstraction of complex hardware devices
– Protected access to shared resources
– Security and authentication
– Communication amongst logical entities
What is an Operating System,… Really?
• Most Likely:
– Memory Management
– I/O Management
– CPU Scheduling
– Communications? (Does Email belong in OS?)
– Multitasking/multiprogramming?
• What about?
– File System?
– Multimedia Support?
– User Interface?
– Internet Browser?