220 likes | 381 Views
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
E N D
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 M M P P P P P P P P M M M M M M M P P 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 • memory size • IO bandwidth • No global system view for application • performance and service not guaranteed the same everywhere Need a software to provide transparency to applications
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 Machine A Machine B Machine C • No single memory space • more complex in structure of OS Distributed applications Distributed OS service • Provides • Virtual multiprocessor machine • Message passing service Kernel Kernel Kernel
Distributed shared memory (1) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 2 5 1 3 6 4 7 11 13 15 9 8 10 12 14 CPU1 CPU2 CPU3 CPU4
Distributed shared memory (2) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 2 5 1 3 6 4 7 11 13 15 9 10 8 12 14 CPU1 CPU2 CPU3 CPU4 After a reference of CPU1 to memory 10
Distributed shared memory (3) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Tradeoff between efficiency and programmability 0 2 5 1 3 6 4 7 11 13 15 9 10 8 10 12 14 CPU1 CPU2 CPU3 CPU4 After a read-only reference of CPU1 to memory 10
Network OS Machine A Machine B Machine C • NOS provides facilities to allow users to make use of the services available on specific machine Distributed applications Kernel Kernel Kernel Network OSservice Network OSservice Network OSservice
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 Kernel Kernel Kernel Network OSservice Network OSservice Network OSservice 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 Same programming interface application application Middleware Middleware common protocol Network OSservice Network OSservice Network
Homeworks • Read section 1.5 “The client – server model” in reference 1 (Tanenbaum) • To understand • Why need the client-server model ? • Client-server architectures ?