Download PPT

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Plan 9 from Bell Labs wikipedia , lookup

Mobile operating system wikipedia , lookup

RSTS/E 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

Unix security wikipedia , lookup

CP/M wikipedia , lookup

VS/9 wikipedia , lookup

Transcript
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