Hardware/Software Concepts Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology Hardware concepts • Multiprocessor dimensions – Memory: could be shared or be private to each CPU – Interconnect: could be shared (bus-based) or switched M P M P P M P M P M P P P P P M M M M M P P P P P P M M M M Computer hardware models (1) • Bus-based multiprocessor • Homogeneous Multicomputer Systems Grid • MPP (massively parallel processor) • COW (Cluster of workstations) Hypercube Computer hardware models (2) • Heterogenous Multicomputer Systems – Different systems • processor type a software to • memory Need size provide transparency to • IO bandwidth – No global system view applications for application • performance and service not guaranteed the same everywhere Software concepts • Distributed systems similar to traditional OS – managing resources such a CPU, memory, peripheral devices, network, data, etc. – allowing multiple users, applications • OS for distributed systems classified into – Tightly-coupled: distributed OS (DOS) • for multiprocessor, homogeneous multicomputer – Loosly-coupled: network OS (NOS) • for heterogeneous multicomputer • Middleware needed to provide better distribution transparency Uniprocessor OS (1) • Structure of uniprocessor operating systems – Monolithic (e.g., MS-DOS, early UNIX, Windows) • One large kernel that handles everything – Layered design • Functionality is decomposed into N layers • Each layer uses services of layer N-1 and implements new service(s) for layer N+1 Uniprocessor OS (2) Microkernel architecture • Small kernel • User-level servers implement additional functionality Multiprocessor OS • Protect against concurrent access to single memory by multiple processors • Most of OSs have been redesigned from the start to handle multiple processors Multicomputer OS • No single memory space – more complex in structure of OS Machine A Machine B Machine C Provides Distributed applications Distributed OS service Kernel Kernel Kernel • Virtual multiprocess or machine • Message passing service Distributed shared memory (1) 0 0 2 9 CPU1 1 5 2 3 4 5 1 3 8 10 CPU2 6 6 7 8 9 10 4 7 12 14 CPU3 11 11 12 13 13 14 15 15 CPU4 Distributed shared memory (2) 0 0 2 9 10 1 5 2 3 1 4 5 3 8 CPU1 CPU2 6 6 7 8 9 10 4 7 12 14 CPU3 11 11 12 13 13 14 15 15 CPU4 After a reference of CPU1 to memory 10 Distributed shared memory (3) 0 0 2 9 10 CPU1 1 5 2 3 4 5 1 3 8 10 6 6 7 8 9 10 4 7 12 14 11 11 12 13 Tradeoff between efficiency and programmability CPU3 CPU2 13 14 15 15 CPU4 After a read-only reference of CPU1 to memory 10 Network OS • NOS provides facilities to allow users to make use of the services available on specific machine Machine A Machine B Machine C Distributed applications Network OS service Network OS service Network OS service Kernel Kernel Kernel Why middleware needed ? • DOS, NOS not yet qualify strict definition of a distributed system need a middleware for NOS in order to achieve scalability and openness of NOS transparency and easy-to-use of DOS Where to place middleware ? Machine A Machine B Machine C Distributed applications Middleware services Network OS service Network OS service Network OS service Kernel Kernel Kernel Network Middleware models • Everything as a file – keyboard, mouse, disk, network interface, etc. • Distributed file system • Remote Procedure Call (RPC) • Distributed object Middleware issues • Middleware services – high-level communication service • to provide access transparency – naming service • to allow entities to be shared and looked up (as in directory) – Storage – Security Openness Machine A Machine C application application Same programming interface Middleware Network OS service Middleware common protocol Network OS service Network Comparison between systems Item Distributed OS Multiproc. Network OS Multicomp. Middleware -based OS Degree of transparency very high High Low High Same OS on all nodes? Yes Yes No No Number of copies of OS 1 N N N Basis for communication Shared memory Messages Files Model specific Resource management Global, central Global, distributed Per node Per node Scalability No Moderately Yes Varifies Openness Closed Closed Open Open Homeworks • Read section 1.5 “The client – server model” in reference 1 (Tanenbaum) • To understand – Why need the client-server model ? – Client-server architectures ?