CPS 196 Systems and Networks |
|||||||
|
|||||||
Topic | ppt | pdf6 | |
Course introduction.
|
|||
Slides for course introduction
| |||
Physical machines and privileged mode.
Review of instruction set
architecture (ISA) features to support virtualization and protected
resource sharing: protected mode, address space, context. Machine
event handling: traps, faults, interrupts. Use of protected features
by operating system kernels (OS supervisors).
Importance of common machine model and ISA standards, and ABI.
See more about this topic
|
|||
Slides for: Physical machines, privileged mode, address spaces
| |||
Classical OS structure and Unix.
Kernel abstractions
and system calls: processes and IPC, file systems, time management,
and event handling. Process states and blocking I/O.
The Unix operating system: fork, exec, pipes, signals, etc.
See more about this topic
| |||
Slides for: Classical OS structure and Unix
|
|||
Virtual machines.
Motivation for virtual machines.
Machine virtualization and virtual machine models: VMware, Xen, Java, C#.
Architectural alternatives for virtual
machines and isolation: virtualization vs. paravirtualization.
How a kernel or virtual machine hypervisor uses privileged instructions
to virtualize a physical machine. Cost of virtualization and isolation.
Challenges of virtualization:
devices, time, virtual-physical-real mapping, privileged
instructions in user mode. The Xen hypervisor and its
interactions with the operating system above and the
hardware below. How to use Xen.
(Discussion: operating systems as guest applications, virtualization
in hypervisor vs. in the operating system itself, hosting markets,
PlanetLab, VM innovation such as migration/ISR and replay.)
|
|||
Slides for: Virtual machines
| |||
Internet naming and addressing. Global vs. local name spaces. Uniformity vs. local control
and customization. The role of hierarchy in scale and administrative
control. Internet naming and addressing: domain
names and the Domains Name Service, IP addresses, and LAN/Ethernet (MAC) addresses.
Standards, interoperability, and Internet governance.
|
|||
Slides for: Internet naming and addressing
| |||
Networking and the Internet.
Packet flow and router structure, queueing, and bottlenecks.
| |||
Client/server networking and sockets. Unix/Java
networking: sockets, stream vs. datagram communication, connections, ports.
Rudimentary HTTP, Web servers and Web application servers.
|
|||
Slides for: Client/server networking and sockets
| |||
Server structure, concurrency, and performance.
Server blocking and its impact on performance,
concurrency models: events, threads, processes.
Introduction to performance and queuing behavior: arrivals, throughput and
response time, queue length, Little's Law.
Server overload, admission control, server clusters, distributed services.
|
|||
Slides for: server structure, concurrency, and performance
| |||
Threads and synchronization.
Java
synchronization: mutexes and condition variables. Synchronization
alternatives: semaphores. OS kernel synchronization: blocking,
interrupts, atomic instructions and spinlocks.
|
|||
Slides for: concurrency and synchronization
| |||
Scheduling.
Process/thread scheduling, batch/interactive, impact of
I/O. Overview of real-time
scheduling and continuous media: the problem of jitter, and streaming
vs. on-demand media. Service quality, reservations, and proportional
share scheduling.
|
|||
Slides for: basic scheduling
| |||
Network protocols.
Overview of protocols focusing on reliable and secure stream
communication on the Internet: TCP. Fundamentals of
TCP implementation: checksums, sequence numbers, ordering and
duplicate suppression, flow control. The problem of congestion: the
Internet's end-to-end congestion control architecture and the threat
of congestion collapse.
|
|||
Slides for: TCP and congestion.
| |||
Secure communication.
Fundamentals of secure communication:
properties of symmetric and asymmetric cryptosystems, digital
signatures, certificates, public key infrastructure (PKI). Secure
socket layer (SSL) protocol: certificate exchange, session key
exchange, secure HTTP, ssh. The end-to-end principle. Authorization:
capabilities and access control lists.
|
|||
Slides for: secure communication.
| |||
Slides for: end-to-end argument.
| |||
File systems and NFS.
Fundamentals of Unix file system
implementation: vnodes, inodes, blocks, block maps, directories.
Kernel extensibility: device drivers, file system drivers, mounting.
Introduction to the Network File System: remote procedure call (RPC)
and NFS protocol operations. Caching and the problem of consistency.
Covered in less detail or discussed briefly: Failures and failure model
in NFS. File system
recovery. Failure atomicity: logging and shadowing.
Disk striping and mirroring, error correction, and RAID. RAID
performance issues: small writes and hot spots. Implementation of
Network Appliance filers: WAFL and NVRAM.
|
|||
Slides for: file systems and NFS.
| |||
Distributed systems.
We spent a couple of classes on distributed systems topics sampling from
the intended lists of topics below.
|
|||
Slides for: Distributed consensus.
| |||
Slides for: Large-scale distributed systems.
| |||
Distributed systems.
Discussed in passing.
Byzantine vs. fail-stop failures, failure
detection, group membership, basic consensus results. The fundamental
choice of consistency vs. availability in a world with network
partitions. Approaches to cache consistency in file systems, DNS, and
the Web: polling, callbacks, time-to-live, and leases. Replication
and quorum voting. Distributed Hash Tables. The Google service
architecture.
|
|||
Storage cache management.
Discussed in passing.
Block caching: prefetching,
clustering, delayed writes, seek scheduling. Block/page cache
replacement: LRU, LFU, and approximations. Interaction with disk
layout and disk performance.
|
|||
Internet infrastructure and vulnerability.
Discussed in passing.
Security threats and the mechanisms to deal with
them: denial of service, viruses, worms, phishing, firewalls,
malicious or misconfigured routers, snoopers, man-in-middle, spyware,
promiscuous hosts, wireless/WEP. Robustness of the Internet to
physical attack: dynamic routing, Internet topology, scale-free
networks. (one class)
|
|||
Internet computing.
Discussed in passing.
Models for resource sharing: hosting utilities,
grids, peer-to-peer systems, file sharing. Example: Cereus utility
leasing service. Administrative domains, trust management, and
failure issues. PlanetLab and network overlays. Content
distribution, multicast, and large-scale services.
(one class)
|
|||
Pervasive and embedded computing.
Not covered.
Platforms and abstractions for pervasive, mobile, ubiquitous,
embedded. What can we give up? What new problems must we address?
Power management, user interfaces, programmability, disconnected
operation, failure handling.
|