Distributed computing system is a collection of interconnected computers that appear as a single system. There are two types of computer architectures for distributed systems - tightly coupled and loosely coupled. In tightly coupled systems, processors share a single memory while in loosely coupled systems, processors have their own local memory and communicate through message passing. Distributed systems provide advantages like better price-performance ratio, resource sharing, reliability, and scalability but also introduce challenges around transparency, communication, performance, heterogeneity, and fault tolerance.