CIS 630 Distributed Systems
Fall 2006, TTh 12-1:20pm, Deschutes 200
Basic Information:
- Instructor: Yannis
Smaragdakis, DES 245, 346-3473
yannis@cs.uoregon.edu
- Suggested
Textbooks:
Distributed Systems: Concepts and Design,
Coulouris, Dollimore,
Kindberg, Addison-Wesley
Distributed
Systems Tanenbaum and Van Steen, Prentice Hall
Multithreaded Programming with Pthreads, Lewis and Berg, Prentice Hall
Pthreads Programming Nichols, Buttlar, Farrell, O'Reilly
Operating Systems Concepts, Silberschatz, Galvin, and Gagne, Sixth
Edition, John Wiley and Sons
- Syllabus
Class photo
Lecture Topics:
- Class introduction, Distributed Systems overview
- Introduction to thread programming (1+ lecture)
- Condition variables and monitor-style programming. Best practices
and techniques (1+ lecture)
- Thread design patterns (1- lecture)
- Pthreads tutorial (1- lecture)
- Implementation of thread libraries (1 lecture)
- Concurrent programming ideas: higher-level constructs (1 lecture)
- Webservers' architecture (1 lecture)
- Programming distributed systems (1 lecture)
- Remote procedure call mechanisms and middleware (2 lectures)
- Distributed file systems, leases, case studies (2 lectures)
- Time and synchronization in distributed environments (1 lecture)
- Distributed Agreement: mutual exclusion, voting, consensus,
byzantine generals (1 lecture)
- Distributed transactions?
- Distributed Shared Memory? Web services? Peer-to-peer?
Handouts, Papers
Pointers to Technical Information:
- JPEG manipulation:
- www.ijg.org
- Source
code library for JPEG manipulation (follow installation
instructions to compile it)
- Client
program using the library to create low-quality JPEG images from
regular JPEGs. Untar together with the library and follow the
instructions in README.lowres
- HTTP, Web Servers, and more:
- The C10K problem page
is an excellent resource for a discussion of server scalability
- Pthreads Resources (a little outdated but still a starting
point--do a web search and you can find better):