Академический Документы
Профессиональный Документы
Культура Документы
spcl.inf.ethz.ch
@spcl_eth
spcl.inf.ethz.ch
@spcl_eth
Administrivia
Two parts:
Networks Adrian Perrig
Operating Systems Torsten Hoefler
Lecture:
Thu 8-10am, CAB G61
Fri 10am-noon, CAB G61
Thu 3-6pm, ML F 40
Thu 3-6pm, ML H 37.1
Fri 1-4pm, CHN D 42
Fri 1-4pm, CHN D 48
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
More Administrivia
Course webpage (the authoritative information source)
http://spcl.inf.ethz.ch/Teaching/2014-osnet/
All slides will be there before the lecture (so you can take notes)
Exercises are:
Theoretical: Analysis of performance properties
Practical: Trying out stuff + Programming exercises
spcl.inf.ethz.ch
@spcl_eth
Exam
(No mid-term.)
Final exam: tbd (Session)
Material:
Covered in the lectures, and/or
Learned during the lab exercises
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Course Outline
20.02.: OS Introduction
21.02.: Processes
27.02.: Scheduling
28.02.: Synchronization
13.03.: Memory Management
14.03.: Demand Paging
22.05.: skip
23.05.: Security
30.05.: New Internet Architectures
5
spcl.inf.ethz.ch
@spcl_eth
Birds-eye perspective
Networks
bridge space
Databases
bridge time
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
~200 sensors
Who knows what CAN is?
Controller Area Network - connects elements
Why do we care here?
This is a complex system
And it has been broken L (not this vendor)
spcl.inf.ethz.ch
@spcl_eth
Structure of an OS
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Goals
Demystify operating systems themselves
spcl.inf.ethz.ch
@spcl_eth
The Book
On the web:
http://ospp.cs.washington.edu/
10
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
11
spcl.inf.ethz.ch
@spcl_eth
12
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Introduction to
Operating Systems
13
spcl.inf.ethz.ch
@spcl_eth
14
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
15
spcl.inf.ethz.ch
@spcl_eth
16
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Systems calls
Concurrency and asynchrony
Processes and threads
Security, authorization, protection
Memory, virtual memory, and paging
Files and file systems, data management
I/O: Devices, Interrupts, DMA
Network interfaces and protocol stacks
17
spcl.inf.ethz.ch
@spcl_eth
18
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
19
spcl.inf.ethz.ch
@spcl_eth
Operating Systems
Applications
Parallel Programming
Operating
System
OperaCng
Systems
(rest
of
this
course!)
Hardware
20
10
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
21
spcl.inf.ethz.ch
@spcl_eth
OS roles
Referee
Illusionist
Glue
22
11
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
The Referee:
Resource Manager
Application
Application
Application
System
calls
Operating
System
Hardware
23
spcl.inf.ethz.ch
@spcl_eth
The OS as Referee
Sharing:
Multiplex hardware among applications
CPU, memory, devices
Applications shouldnt need to be aware of each other
Protection:
Ensure one application cant r/w anothers data
In memory, on disk, over network
Ensure one application cant use anothers resources
CPU, storage space, bandwidth,
Communication:
Protected applications must still communicate
24
12
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Efficiency:
Best use of complete machine resources
Minimize e.g. power consumption
Predictability:
Guarantee real-time performance
All in mutual
contradiction
L
25
spcl.inf.ethz.ch
@spcl_eth
Example: Threads
Threads are virtual CPUs
Physical resource: CPUs
Virtual resource: Threads
Mechanism: pre-emption, timeslicing, context switching, scheduling
26
13
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
The Illusionist
Virtualization:
OS creates illusion of a real resource
Processor, storage, network, links,
27
spcl.inf.ethz.ch
@spcl_eth
How?
1.
Multiplexing
2.
Emulation
3.
Aggregation
28
14
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Why?
1.
Sharing
2.
Sandboxing
3.
Decoupling
4.
Abstraction
29
spcl.inf.ethz.ch
@spcl_eth
30
15
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
31
spcl.inf.ethz.ch
@spcl_eth
Many uses:
32
16
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
33
spcl.inf.ethz.ch
@spcl_eth
34
17
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
VCI=346
Virtual
circuits
VCI=1044
VCI=1044
Real circuits
VCI=56
35
spcl.inf.ethz.ch
@spcl_eth
Example: VLANs
Methods: multiplexing
Mechanisms: port assignment, tags
B C D
I
J
M
S1
S2
S1
S2
N
N
G H
36
18
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Applications
Virtual machine
interface
Operating
System
Physical machine
interface
Hardware
37
spcl.inf.ethz.ch
@spcl_eth
The OS as Glue
Provides high-level abstractions
Easier to program to
Shared functionality for all applications
Ties together disparate functions and services
38
19
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Services provided by an OS
Program execution
Load program, execute on 1 or more processors
39
spcl.inf.ethz.ch
@spcl_eth
40
20
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
General OS structure
Application
Application
Server process
(daemon)
System Library
System Library
System Library
System calls
User
mode
Privileged
mode
Kernel
CPU
CPU
Device
Device
41
spcl.inf.ethz.ch
@spcl_eth
42
21
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
General OS structure
Application
Application
Server process
(daemon)
System Library
System Library
System Library
System calls
User
mode
Privileged
mode
Kernel
CPU
CPU
Device
Device
43
spcl.inf.ethz.ch
@spcl_eth
Kernel
That part of the OS which runs in privileged mode
Large part of Unix and Windows (except libraries)
Small part of L4, Barrelfish, etc. (microkernels)
Does not exist in some embedded systems
44
22
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
45
spcl.inf.ethz.ch
@spcl_eth
General OS structure
Application
Application
Server process
(daemon)
System Library
System Library
System Library
System calls
User
mode
Privileged
mode
Kernel
CPU
CPU
Device
Device
46
23
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
System Libraries
Convenience functions
strcmp(), etc.
Common functionality
47
spcl.inf.ethz.ch
@spcl_eth
General OS structure
Application
Application
Server process
(daemon)
System Library
System Library
System Library
System calls
User
mode
Privileged
mode
Kernel
CPU
CPU
Device
Device
48
24
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Daemons
Processes which are part of the OS
Microkernels: most of the OS
Linux: increasingly large quantity
Advantages:
Modularity, fault tolerance
Easier to schedule
49
spcl.inf.ethz.ch
@spcl_eth
50
25
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
Startup
Exception: caused by user program
Interrupt: caused by something else
System calls
51
spcl.inf.ethz.ch
@spcl_eth
User process
runs
Execute
syscall
Process resumes
User
mode
Privileged
mode
Execute kernel
code
System calls
52
26
2/20/2014
spcl.inf.ethz.ch
@spcl_eth
53
spcl.inf.ethz.ch
@spcl_eth
User-level upcall
Much like an interrupt, but to user-level
54
27