CS 417 Final Exam info

When & where

The final exam will be held on Monday, May 11 from 8:00pm-10:00pm. It will take place in our regular classroom.

If you plan to take the final, please be sure to bring your ID with you.

Exam rules

This will be a closed book, closed notes exam. Calculators, laptops, webpads, blackberry communicators, PDAs, or pagers are neither needed nor permitted.

No other electronic devices are permitted (for example, music players) except for hearing aids, pacemakers, electronic nerve stimulators, other implanted medical devices, and electronic watches.

The final exam will consist of a bit over 50 multiple choice questions covering topics from the entire semester. You will be able to omit questions to bring the total down to 50.

What's on the exam?

You are responsible for all the material presented in class. The final is cumulative with a concentration toward the latter half of the semester.

You might find it helpful to consult the past study guides:

Download an advance copy of the final exam

Here are some topics that you should know (disclaimer: some topics not listed may be on the exam and some listed topics may not, but if you know the list, you can do very well on the exam):

  • computation models
    • thin vs. thick client
    • multi-tier architectures
  • communication
    • connection-oriented, connectionless service
    • sockets - basic concepts, protocol control block
    • RPC semantics, operation
    • naming and binding
  • group communication
    • reliability
    • ordering
    • IP multicast
  • file systems
    • semantics
    • AFS, NFS, RFS, DFS (AFS v3), Coda, SMB/CIFS
  • logical clocks: Lamport's, vector clocks
  • clock synch algorithms: Cristian's, Berkeley, NTP
  • mutual exclusion: distributed (Ricart & Agrawala, Lamport), centralized, token ring
  • distributed deadlocks
    • dealing with them
    • centralized algorithm
    • distributed detection (probes)
    • wait-die, wound-wait algorithms
  • transactions, two-phase commit
  • concurrency control
    • two-phase locking, strict two-phase locking
    • timestamp ordering
  • distributed shared memory
    • consistency models
    • sequential consistency, strict consistency, entry/release
  • security
    • one-way hashes
    • key exchange
    • OpenID centralized authentication
    • digital signatures, certificates
    • public/private keys, symmetric keys
    • Diffie-Hellman
    • Kerberos
    • what can/should smart cards do regarding encryption/key storage?
    • biometrics: principles
    • steganography: watermarks, winnowing and chaffing, null cipher.
  • design
    • cluster architectures
    • web clustering with redirection
    • fault tolerance: types of faults, TMR
    • firewalling techniques: bastions, DMZs
    • packet filters
    • TCP wrappers
    • application proxies
    • virtual private networks
  • serverless architectures
    • peer-to-peer vs. hybrid serverless architectures
  • process migration & allocation
    • migrating process state
    • up-down algorithm (centralized)
    • sender & receiver-initiated heuristics

A bit over half the questions will be for material after spring recess. Questions about earlier topics are more likely to be high-level concepts. In particular, make sure that you understand public keys, certificates, nonces, and digital signatures. Have an understanding of file systems like NFS and AFS and properties of distributed file systems. Know what Byzantine faults are. Remember basic concepts of connection-oriented versus connectionless protocols. Don't memorize the details of Diffie-Hellman and Kerberos but understand what the mechanisms are.

I will not look for details. Know why TCP wrappers were designed and how they work, what a VPN does (what tunneling is), and what is meant by packet filtering.

Some review terms:

switched vs. bus interconnects, snoopy cache, sockets, transport layer, network layer, OSI stack, UDP, TCP, connectionless vs. connection-oriented, datagrams, virtual circuits, protocol control blocks, RPC, CORBA services, NFS, AFS, Coda, DFS, SMB/CIFS, callbacks, tokens, Lamport clocks, vector clocks, concurrency, Cristian's algorithm, NTP strata, Berkeley clock algorithm, two-phase locking, strict two-phase locking, false deadlocks, transient faults, permanent faults, intermittent faults, k-fault tolerance, two-army problem, distributed mutual exclusion, distributed shared memory, memory consistency models, sequential, weak, entry, release, distributed directory, digital certificates, key exchange (with public keys, with third party), public vs. private keys, digital signature, Kerberos tickets, screening router, proxy, DMZ biometric identification, distributed lock manager, VPN, tunneling, peer-to-peer networks, gnutella, napster, SETI@home.

Past exams

Get past 417 exams and information about exam taking here.