Distributed and Parallel Systems
Architectures
- The architectures of distributed and parallel systems are diverse and the following, at least, should be considered: Multiprocessors, Multicomputers, Multithreading, Pipelining, VLIWs, Superscaling, Vectors, SIMDs, Systolic architectures, Internetworking.
Programming Models
- A variety of models exist, supported by a range of language and environments. The following issues should be considered: Actions, Threads, Processes, Concurrency, shared Objects, Distributed Objects, Remote Invocation, Mutual Exclusion, Client/Server, Peer-to-Peer, Semaphores, Monitors, Message Passing, Co-ordination, Agreement, Safety, Liveness.
Performance
- Performance is often considered to be literally how fast a job runs, other issues need also to be considered, including: Service Support, Resource Management, Availability, Reliability, Security, Fault Tolerance, Recovery, Protection, Scaling.

