计算机网络与分式系统
计算机网络与分布式系统 北京大学计算机科学与技术系 王建勇 Email: jwang@ URL: HTTP:///~jwang/course/cnds.html Chapter 2 Design Goals & Issues Introduction Basic technical issues Users’ requirements Summary 2.1 Basic design issues Naming: - global meaning & scalability Communication: - how to optimize the implementation of communication in distributed system - while retaining a high-level programming model for its use Software structure: - how to structure a system so that new services can be introduced >> that will interwork fully with existing services >> without duplicating existing service elements Workload allocation: - how to deploy the processing and communication resources in a network to optimum effect in the processing of a changing workload Consistency maintenance: - maintenance of consistency at reasonable cost 2.1.1 Naming name vs identifier resolved name is an identifier together with other attributes - internet communication: IP+PORT number - UNIX file system: index node number - Mach communication system: Port number naming design considerations - choose an appropriate name space - use name service to resolve names to communication identifiers - scalability considerations name contexts are represented by tables or databases - file system: /etc/a.out vs /usr/a.out - internet: vs names maybe structured or flat, readable or unreadable, location-independent or containing location clues naming schemes can incorporate security mechanism - file systems’ directory 2.1.2 Communication Communication between a pair of processes involves: - transfer of data & synchronization activity Communication primitives: send & receive may be: - synchronous(i.e. blocking) or asynchronous(i.e. non-blocking) Two communication patterns: - client-server model between pairs of processes - group multicast model between groups of cooperating processes Client-server Communication it’s oriented to