Professional Documents
Culture Documents
Hardware Concepts
Taxonomy (Fig. 9-4) MIMD (Multiple-Instruction Multiple-Data) Tightly Coupled versus Loosely Coupled
Tightly coupled systems (multiprocessors) oshared memory ointermachine delay short, data rate high Loosely coupled systems (multicomputers) oprivate memory ointermachine delay long, data rate low
Bus versus Switched MIMD Bus: a single network, backplane, bus, cable or other medium that connects all machines. E.g., cable TV Switched: individual wires from machine to machine, with many different wiring patterns in use. Multiprocessors (shared memory) Bus Switched Multicomputers (private memory)
Bus-based Multiprocessors
Bus-based multiprocessors (Fig. 9-5) cache memory hit rate cache coherence write-through cache: propagate write immediately snoopy cache: monitor when its entry becomes obsolete
Switched Multiprocessors Switched Multiprocessors (Fig. 9-6) for connecting large number (say over 64) of processors crossbar switch: n**2 switch points omega network: 2x2 switches for n CPUs and n memories, log n switching stages, each with n/2 switches, total (n log n)/2 switches delay problem: E.g., n=1024, 10 switching stages from CPU to memory. a total of 20 switching stages. 100 MIPS 10 nsec
Multicomputers
Bus-Based Multicomputers (Fig. 9-7) easy to build communication volume much smaller relatively slow speed LAN (10-100 MIPS, compared to 300 MIPS and up for a backplane bus)
Software Concepts
Software more important for users Three types: 1. Network Operating Systems 2. 3. (True) Distributed Systems Multiprocessor Time Sharing
Network Operating Systems loosely-coupled software on loosely-coupled hardware A network of workstations connected by LAN each machine has a high degree of autonomy orlogin machine orcp machine1:file1 machine2:file2 Files servers: client and server model Clients mount directories on file servers Best known network OS:
NFS
NFS Architecture Server exports directories Clients mount exported directories NSF Protocols For handling mounting For read/write: no open/close, stateless NSF Implementation
tightly-coupled software on loosely-coupled hardware provide a single-system image or a virtual uniprocessor a single, global interprocess communication mechanism, process management, file system; the same system call interface everywhere
Multiprocessor Operating Systems (Fig. 9-12) Tightly-coupled software on tightly-coupled hardware Examples: high-performance servers shared memory single run queue traditional file system as on a singleprocessor system: central block cache
1. Transparency How to achieve the single-system image, i.e., how to make a collection of computers appear as a single computer. Hiding all the distribution from the users as well as the application programs can be achieved at two levels: 1) hide the distribution from users 2) at a lower level, make the system look transparent to programs. 1) and 2) requires uniform interfaces such as
Types of transparency
Location Transparency: users cannot tell where hardware and software resources such as CPUs, printers, files, data bases are located. Migration Transparency: resources must be free to move from one location to another without their names changed. E.g., /usr/lee, /central/usr/lee Replication Transparency: OS can make additional copies of files and resources without users noticing. Concurrency Transparency: The users are not aware of the existence of other users. Need to allow multiple users to concurrently access the same resource. Lock and unlock for mutual exclusion. Parallelism Transparency: Automatic use of parallelism without having to program explicitly. The holy grail for distributed and parallel system designers. Users do not always want complete transparency: a fancy printer 1000 miles away
2. Flexibility Make it easier to change Monolithic Kernel: systems calls are trapped and executed by the kernel. All system calls are served by the kernel, e.g., UNIX. Microkernel: provides minimal services. (Fig 9-15) 1) IPC 2) some memory management 3) some low-level process management and scheduling
3. Reliability Distributed system should be more reliable than single system. Example: 3 machines with .95 probability of being up. 1-.05**3 probability of being up. Availability: fraction of time the system is usable. Redundancy improves it. Need to maintain consistency Need to be secure Fault tolerance: need to mask failures, recover from errors.
4. Performance Without gain on this, why bother with distributed systems. Performance loss due to communication delays: fine-grain parallelism: high degree of interaction coarse-grain parallelism Performance loss due to making the system fault tolerant.
5. Scalability
Systems grow with time or become obsolete. Techniques that require resources linearly in terms of the size of the system are not scalable. e.g., broadcast based query won't work for large distributed systems. Examples of bottlenecks
oCentralized components: a single mail server oCentralized tables: a single URL address book oCentralized algorithms: routing based on complete information
Communication Networks
Computers are connected through a communication network Wide Area Networks (WAN) connect computers spread over a wide geographic area point-to-point or store-and-forward -- data is transferred between computers through a series of switches switch -- a special purpose computer responsible for routing data (to avoid network
Packet Switching versus Circuit Switching i) circuit switching -- a dedicated path between a source and a destination e.g., telephone connection. wastes bandwidth (bandwidth = amount of data transmitted in a given time period) ii) packet switching -- message or data is broken into packets packets are routed independently better network utilization