Just a brief follow-up on our conversation (totally tangential to 573).
When I say "Distributed Systems", here are the topics I'm thinking of,
other than the obvious OS issues, and basic networking, and client/server
architectures and RPC. And I'm wondering whether/where they're covered in
Distributed shared memory, cache consistency including loose
consistency, release consistency, etc.
Process migration/process scheduling
(agreement procotols, two- or three-phase commit, byzantine agreement, etc.)
(Message passing/direct communication vs. Shared memory vs. hybrid schemes)
Data representation (dealing with heterogeneity).
There are plenty of basic topics I haven't hit on. I'd probably put causal
ordering or totally ordered communications systems into the agreement
protocol bin. Is that stuff covered in a distributed database course? I'm
sure there are plenty of topics covered in other courses that have
distributed systems spin, e.g. security, authentication (covered in
security), presentation protocols (covered in networking), logging and
transactions (covered in databases).