DSM system
Shared memory
On chip memory
Bus based multiprocessor
Working through cache
Write through cache
Write once protocol
Ring based multiprocessor
Protocol used
Similarities and differences b\w ring based and bus based
Distributed shared memory (DSM) is a memory architecture where physically separate memories can be addressed as a single logical address space. In a DSM system, data moves between nodes' main and secondary memories when a process accesses shared data. Each node has a memory mapping manager that maps the shared virtual memory to local physical memory. DSM provides advantages like shielding programmers from message passing, lower cost than multiprocessors, and large virtual address spaces, but disadvantages include potential performance penalties from remote data access and lack of programmer control over messaging.
Message and Stream Oriented CommunicationDilum Bandara
Message and Stream Oriented Communication in distributed systems. Persistent vs. Transient Communication. Event queues, Pub/sub networks, MPI, Stream-based communication, Multicast communication
The document discusses several security challenges related to cloud computing. It covers topics like data breaches, misconfiguration issues, lack of cloud security strategy, insufficient identity and access management, account hijacking, insider threats, and insecure application programming interfaces. The document emphasizes that securing customer data and applications is critical for cloud service providers to maintain trust and meet compliance requirements.
Fault tolerance is important for distributed systems to continue functioning in the event of partial failures. There are several phases to achieving fault tolerance: fault detection, diagnosis, evidence generation, assessment, and recovery. Common techniques include replication, where multiple copies of data are stored at different sites to increase availability if one site fails, and check pointing, where a system's state is periodically saved to stable storage so the system can be restored to a previous consistent state if a failure occurs. Both techniques have limitations around managing consistency with replication and overhead from checkpointing communications and storage requirements.
Distributed shared memory (DSM) provides processes with a shared address space across distributed memory systems. DSM exists only virtually through primitives like read and write operations. It gives the illusion of physically shared memory while allowing loosely coupled distributed systems to share memory. DSM refers to applying this shared memory paradigm using distributed memory systems connected by a communication network. Each node has CPUs, memory, and blocks of shared memory can be cached locally but migrated on demand between nodes to maintain consistency.
- Substitution techniques involve replacing the letters of plaintext with other letters, numbers or symbols. The main substitution techniques are Caesar cipher, monoalphabetic cipher, Playfair cipher and Hill cipher.
- The Caesar cipher replaces each letter with the letter three positions down the alphabet. The monoalphabetic cipher uses a single alphabetic key for the entire message. The Playfair cipher encrypts pairs of letters based on a 5x5 grid generated from a keyword. The Hill cipher encrypts blocks of letters as numerical values using a matrix-based approach.
This document discusses interprocess communication (IPC) and message passing in distributed systems. It covers key topics such as:
- The two main approaches to IPC - shared memory and message passing
- Desirable features of message passing systems like simplicity, uniform semantics, efficiency, reliability, correctness, flexibility, security, and portability
- Issues in message passing IPC like message format, synchronization methods (blocking vs. non-blocking), and buffering strategies
program partitioning and scheduling IN Advanced Computer ArchitecturePankaj Kumar Jain
Advanced Computer Architecture,Program Partitioning and Scheduling,Program Partitioning & Scheduling,Latency,Levels of Parallelism,Loop-level Parallelism,Subprogram-level Parallelism,Job or Program-Level Parallelism,Communication Latency,Grain Packing and Scheduling,Program Graphs and Packing
This document discusses multiprocessor architecture types and limitations. It describes tightly coupled and loosely coupled multiprocessing systems. Tightly coupled systems have shared memory that all CPUs can access, while loosely coupled systems have each CPU connected through message passing without shared memory. Examples given are symmetric multiprocessing (SMP) and Beowulf clusters. Interconnection structures like common buses, multiport memory, and crossbar switches are also outlined. The advantages of multiprocessing include improved performance from parallel processing, increased reliability, and higher throughput.
This document discusses hardware and software parallelism in computer systems. It defines hardware parallelism as parallelism enabled by the machine architecture through multiple processors or functional units. Software parallelism refers to parallelism exposed in a program's control and data dependencies. Modern computer architectures require support for both types of parallelism to perform multiple tasks simultaneously. However, there is often a mismatch between the hardware and software parallelism available. For example, a dual-processor system may be able to execute 12 instructions in 6 cycles, but the program's inherent parallelism may only allow completing the instructions in 7 cycles. Achieving optimal parallelism requires coordination between hardware design and software programming.
Parallel and distributed computing allows problems to be broken into discrete parts that can be solved simultaneously. This approach utilizes multiple processors that work concurrently on different parts of the problem. There are several types of parallel architectures depending on how instructions and data are distributed across processors. Shared memory systems give all processors access to a common memory space while distributed memory assigns private memory to each processor requiring explicit data transfer. Large-scale systems may combine these approaches into hybrid designs. Distributed systems extend parallelism across a network and provide users with a single, integrated view of geographically dispersed resources and computers. Key challenges for distributed systems include transparency, scalability, fault tolerance and concurrency.
A Distributed Shared Memory (DSM) system provides a logical abstraction of shared memory built using interconnected nodes with distributed physical memories. There are hardware, software, and hybrid DSM approaches. DSM offers simple abstraction, improved portability, potential performance gains, large unified memory space, and better performance than message passing in some applications. Consistency protocols ensure shared data coherency across distributed memories according to the memory consistency model.
Mac protocols for ad hoc wireless networks Divya Tiwari
The document discusses MAC protocols for ad hoc wireless networks. It addresses key issues in designing MAC protocols including limited bandwidth, quality of service support, synchronization, hidden and exposed terminal problems, error-prone shared channels, distributed coordination without centralized control, and node mobility. Common MAC protocol classifications and examples are also presented, such as contention-based protocols, sender-initiated versus receiver-initiated protocols, and protocols using techniques like reservation, scheduling, and directional antennas.
This document discusses different memory management techniques used in operating systems. It begins by describing the basic components and functions of memory. It then explains various memory management algorithms like overlays, swapping, paging and segmentation. Overlays divide a program into instruction sets that are loaded and unloaded as needed. Swapping loads entire processes into memory for execution then writes them back to disk. Paging and segmentation are used to map logical addresses to physical addresses through page tables and segment tables respectively. The document compares advantages and limitations of these approaches.
The document provides an introduction to distributed systems, defining them as a collection of independent computers that communicate over a network to act as a single coherent system. It discusses the motivation for and characteristics of distributed systems, including concurrency, lack of a global clock, and independence of failures. Architectural categories of distributed systems include tightly coupled and loosely coupled, with examples given of different types of distributed systems such as database management systems, ATM networks, and the internet.
The document discusses various algorithms for achieving distributed mutual exclusion and process synchronization in distributed systems. It covers centralized, token ring, Ricart-Agrawala, Lamport, and decentralized algorithms. It also discusses election algorithms for selecting a coordinator process, including the Bully algorithm. The key techniques discussed are using logical clocks, message passing, and quorums to achieve mutual exclusion without a single point of failure.
IT IS ABOUT MULTIPROCESSING,COMMUNICATION BETWEEN THE PROCESS THROUGH MESSAGE PASSING AND SHARED MEMORY.SYNCHRONIZATION MECHANISM AND SYNCHRONIZATION USING SEMAPHORE
A multiprocessor is a computer system with two or more central processing units (CPUs), with each one sharing the common main memory as well as the peripherals. This helps in simultaneous processing of programs.
The key objective of using a multiprocessor is to boost the system’s execution speed, with other objectives being fault tolerance and application matching.
A good illustration of a multiprocessor is a single central tower attached to two computer systems. A multiprocessor is regarded as a means to improve computing speeds, performance and cost-effectiveness, as well as to provide enhanced availability and reliability.
Principal Sources of Optimization in compiler design LogsAk
This document discusses code optimization techniques used by compilers. It covers the following key points in 3 sentences:
Principal sources of optimization include common subexpression elimination, constant folding and propagation, code motion, dead code elimination, and strength reduction. Data flow analysis is used by optimization techniques to gather information about how data flows through a program. The document also describes local and global optimization, peephole optimization, basic blocks, and efficient data flow algorithms used in compiler design.
The document discusses various consistency models including strict consistency, sequential consistency, causal consistency, pipelined random access memory consistency, processor consistency, and weak consistency. It focuses on explaining the sequential consistency model, which requires that all processes in the system see the memory operations in the same order, and allows different interleavings of read and write operations as long as this requirement is met. The document also discusses different strategies for implementing sequential consistency in distributed shared memory systems, including nonreplicated nonmigrating blocks, nonreplicated migrating blocks, replicated migrating blocks, and replicated nonmigrating blocks.
The document discusses run-time environments in compiler design. It provides details about storage organization and allocation strategies at run-time. Storage is allocated either statically at compile-time, dynamically from the heap, or from the stack. The stack is used to store procedure activations by pushing activation records when procedures are called and popping them on return. Activation records contain information for each procedure call like local variables, parameters, and return values.
This document discusses various topics related to synchronization in distributed systems, including distributed algorithms, logical clocks, global state, and leader election. It provides definitions and examples of key synchronization concepts such as coordination, synchronization, and determining global states. Examples of logical clock algorithms like Lamport clocks and vector clocks are provided. Challenges around clock synchronization and calculating global system states are also summarized.
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.
System Interconnect Architectures,Network Properties and Routing,Linear Array,
Ring and Chordal Ring,
Barrel Shifter,
Tree and Star,
Fat Tree,
Mesh and Torus,Dynamic InterConnection Networks,Dynamic bus ,Switch Modules
,Multistage Networks,Omega Network,Baseline Network,Crossbar Networks
This document discusses block ciphers, including their definition, structure, design principles, and avalanche effect. A block cipher operates on fixed-length blocks of bits and uses a symmetric key. It encrypts bits in blocks rather than one by one. Block ciphers have advantages like high diffusion but are slower than stream ciphers. They are built using the Feistel cipher structure with a number of rounds and keys. Important design principles for block ciphers include the number of rounds, design of the round function, and key schedule algorithm. The avalanche effect causes a small input change to result in a significant output change.
1. Distributed transaction managers ensure transactions have ACID properties through implementing the 2-phase commit protocol for reliability, 2-phase locking for concurrency control, and timeouts for deadlock detection on top of local transaction managers.
2. The 2-phase commit protocol guarantees subtransactions of the same transaction will all commit or abort despite failures, while 2-phase locking requires subtransactions acquire locks in a growing phase and release in a shrinking phase.
3. Timeouts are used to detect and abort transactions potentially experiencing a distributed deadlock.
Distributed computing utilizes a network of interconnected computers each completing a portion of an overall task to achieve results more quickly than a single computer. It allows for resource sharing, concurrency, scalability and fault tolerance. Common architectures include client-server models and peer-to-peer networks. Benefits include increased speed, redundancy, scalability and cost-effectiveness. Challenges include complexity, network problems and security issues. Distributed computing has applications in databases, intranets, the internet and more.
Percona Cluster with Master_Slave for Disaster RecoveryRam Gautam
The document describes setting up asynchronous master-slave database replication between a production database cluster and a disaster recovery database cluster using Percona tools. It provides configuration details for the master and slave databases including enabling binary logging and setting the server IDs. The process involves taking a backup of the master database using Innobackupex, preparing the backup, and copying it to the slave database server. Replication is then started by configuring the master to replicate and the slave as a replica.
This document discusses multiprocessor architecture types and limitations. It describes tightly coupled and loosely coupled multiprocessing systems. Tightly coupled systems have shared memory that all CPUs can access, while loosely coupled systems have each CPU connected through message passing without shared memory. Examples given are symmetric multiprocessing (SMP) and Beowulf clusters. Interconnection structures like common buses, multiport memory, and crossbar switches are also outlined. The advantages of multiprocessing include improved performance from parallel processing, increased reliability, and higher throughput.
This document discusses hardware and software parallelism in computer systems. It defines hardware parallelism as parallelism enabled by the machine architecture through multiple processors or functional units. Software parallelism refers to parallelism exposed in a program's control and data dependencies. Modern computer architectures require support for both types of parallelism to perform multiple tasks simultaneously. However, there is often a mismatch between the hardware and software parallelism available. For example, a dual-processor system may be able to execute 12 instructions in 6 cycles, but the program's inherent parallelism may only allow completing the instructions in 7 cycles. Achieving optimal parallelism requires coordination between hardware design and software programming.
Parallel and distributed computing allows problems to be broken into discrete parts that can be solved simultaneously. This approach utilizes multiple processors that work concurrently on different parts of the problem. There are several types of parallel architectures depending on how instructions and data are distributed across processors. Shared memory systems give all processors access to a common memory space while distributed memory assigns private memory to each processor requiring explicit data transfer. Large-scale systems may combine these approaches into hybrid designs. Distributed systems extend parallelism across a network and provide users with a single, integrated view of geographically dispersed resources and computers. Key challenges for distributed systems include transparency, scalability, fault tolerance and concurrency.
A Distributed Shared Memory (DSM) system provides a logical abstraction of shared memory built using interconnected nodes with distributed physical memories. There are hardware, software, and hybrid DSM approaches. DSM offers simple abstraction, improved portability, potential performance gains, large unified memory space, and better performance than message passing in some applications. Consistency protocols ensure shared data coherency across distributed memories according to the memory consistency model.
Mac protocols for ad hoc wireless networks Divya Tiwari
The document discusses MAC protocols for ad hoc wireless networks. It addresses key issues in designing MAC protocols including limited bandwidth, quality of service support, synchronization, hidden and exposed terminal problems, error-prone shared channels, distributed coordination without centralized control, and node mobility. Common MAC protocol classifications and examples are also presented, such as contention-based protocols, sender-initiated versus receiver-initiated protocols, and protocols using techniques like reservation, scheduling, and directional antennas.
This document discusses different memory management techniques used in operating systems. It begins by describing the basic components and functions of memory. It then explains various memory management algorithms like overlays, swapping, paging and segmentation. Overlays divide a program into instruction sets that are loaded and unloaded as needed. Swapping loads entire processes into memory for execution then writes them back to disk. Paging and segmentation are used to map logical addresses to physical addresses through page tables and segment tables respectively. The document compares advantages and limitations of these approaches.
The document provides an introduction to distributed systems, defining them as a collection of independent computers that communicate over a network to act as a single coherent system. It discusses the motivation for and characteristics of distributed systems, including concurrency, lack of a global clock, and independence of failures. Architectural categories of distributed systems include tightly coupled and loosely coupled, with examples given of different types of distributed systems such as database management systems, ATM networks, and the internet.
The document discusses various algorithms for achieving distributed mutual exclusion and process synchronization in distributed systems. It covers centralized, token ring, Ricart-Agrawala, Lamport, and decentralized algorithms. It also discusses election algorithms for selecting a coordinator process, including the Bully algorithm. The key techniques discussed are using logical clocks, message passing, and quorums to achieve mutual exclusion without a single point of failure.
IT IS ABOUT MULTIPROCESSING,COMMUNICATION BETWEEN THE PROCESS THROUGH MESSAGE PASSING AND SHARED MEMORY.SYNCHRONIZATION MECHANISM AND SYNCHRONIZATION USING SEMAPHORE
A multiprocessor is a computer system with two or more central processing units (CPUs), with each one sharing the common main memory as well as the peripherals. This helps in simultaneous processing of programs.
The key objective of using a multiprocessor is to boost the system’s execution speed, with other objectives being fault tolerance and application matching.
A good illustration of a multiprocessor is a single central tower attached to two computer systems. A multiprocessor is regarded as a means to improve computing speeds, performance and cost-effectiveness, as well as to provide enhanced availability and reliability.
Principal Sources of Optimization in compiler design LogsAk
This document discusses code optimization techniques used by compilers. It covers the following key points in 3 sentences:
Principal sources of optimization include common subexpression elimination, constant folding and propagation, code motion, dead code elimination, and strength reduction. Data flow analysis is used by optimization techniques to gather information about how data flows through a program. The document also describes local and global optimization, peephole optimization, basic blocks, and efficient data flow algorithms used in compiler design.
The document discusses various consistency models including strict consistency, sequential consistency, causal consistency, pipelined random access memory consistency, processor consistency, and weak consistency. It focuses on explaining the sequential consistency model, which requires that all processes in the system see the memory operations in the same order, and allows different interleavings of read and write operations as long as this requirement is met. The document also discusses different strategies for implementing sequential consistency in distributed shared memory systems, including nonreplicated nonmigrating blocks, nonreplicated migrating blocks, replicated migrating blocks, and replicated nonmigrating blocks.
The document discusses run-time environments in compiler design. It provides details about storage organization and allocation strategies at run-time. Storage is allocated either statically at compile-time, dynamically from the heap, or from the stack. The stack is used to store procedure activations by pushing activation records when procedures are called and popping them on return. Activation records contain information for each procedure call like local variables, parameters, and return values.
This document discusses various topics related to synchronization in distributed systems, including distributed algorithms, logical clocks, global state, and leader election. It provides definitions and examples of key synchronization concepts such as coordination, synchronization, and determining global states. Examples of logical clock algorithms like Lamport clocks and vector clocks are provided. Challenges around clock synchronization and calculating global system states are also summarized.
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.
System Interconnect Architectures,Network Properties and Routing,Linear Array,
Ring and Chordal Ring,
Barrel Shifter,
Tree and Star,
Fat Tree,
Mesh and Torus,Dynamic InterConnection Networks,Dynamic bus ,Switch Modules
,Multistage Networks,Omega Network,Baseline Network,Crossbar Networks
This document discusses block ciphers, including their definition, structure, design principles, and avalanche effect. A block cipher operates on fixed-length blocks of bits and uses a symmetric key. It encrypts bits in blocks rather than one by one. Block ciphers have advantages like high diffusion but are slower than stream ciphers. They are built using the Feistel cipher structure with a number of rounds and keys. Important design principles for block ciphers include the number of rounds, design of the round function, and key schedule algorithm. The avalanche effect causes a small input change to result in a significant output change.
1. Distributed transaction managers ensure transactions have ACID properties through implementing the 2-phase commit protocol for reliability, 2-phase locking for concurrency control, and timeouts for deadlock detection on top of local transaction managers.
2. The 2-phase commit protocol guarantees subtransactions of the same transaction will all commit or abort despite failures, while 2-phase locking requires subtransactions acquire locks in a growing phase and release in a shrinking phase.
3. Timeouts are used to detect and abort transactions potentially experiencing a distributed deadlock.
Distributed computing utilizes a network of interconnected computers each completing a portion of an overall task to achieve results more quickly than a single computer. It allows for resource sharing, concurrency, scalability and fault tolerance. Common architectures include client-server models and peer-to-peer networks. Benefits include increased speed, redundancy, scalability and cost-effectiveness. Challenges include complexity, network problems and security issues. Distributed computing has applications in databases, intranets, the internet and more.
Percona Cluster with Master_Slave for Disaster RecoveryRam Gautam
The document describes setting up asynchronous master-slave database replication between a production database cluster and a disaster recovery database cluster using Percona tools. It provides configuration details for the master and slave databases including enabling binary logging and setting the server IDs. The process involves taking a backup of the master database using Innobackupex, preparing the backup, and copying it to the slave database server. Replication is then started by configuring the master to replicate and the slave as a replica.
Master and slave relationship in Robinson CrusoeDharaba Gohil
This is a part of my academic presentations paper no.2 The Neo classical literature.MA English MK Bhavnagar University. Submitted to Pro. Dr. Dilip Barad.
Estimado amig@ de Aries, tú signo es regido
por el planeta Marte (nombre romano), es decir, el
dios Ares, el guerrero de la mitología griega. Así
mismo, con el ímpetu de un guerrero, Tú, amig@
de Aries buscarás llegar al corazón de tu ser
amado siempre.
This chapter discusses database recovery techniques including log-based recovery and shadow paging. Log-based recovery involves writing log records to stable storage before modifying the database to allow transactions to be rolled forward or backward during recovery. There are two approaches - deferred database modification where writes are deferred until after commit, and immediate database modification where writes can be done immediately but require undo/redo logs. Checkpointing improves recovery by limiting the log that needs to be processed. Recovery is more complex with concurrent transactions since transactions may interleave.
This document provides an introduction to distributed systems, including their key features and some related concepts. It discusses how distributed systems build upon networking to allow independent machines to act as a single system transparently to users. The document also mentions client-server architectures, advantages like economies of scale and fault tolerance, challenges around naming, operating systems, shared memory, and other issues in distributed environments.
The document provides information on IO-Link, an industrial communication standard that connects sensors and actuators to controllers. Key features of IO-Link include digital data transmission, sensor parameter storage and transfer, simple replacement of sensors, and wire break detection. The document describes various IO-Link system components like IO-Link masters, modules, and displays that facilitate implementation of IO-Link networks. Ifm supplies the complete IO-Link system from sensors to PLC controllers.
ARIES is an algorithm that supports partial rollbacks, fine-grained locking, and recovery using write-ahead logging. It incorporates optimizations to reduce overhead during normal processing and speed up recovery. ARIES uses log sequence numbers stored in database pages to identify which updates have been applied. During recovery, it performs analysis, redo, and undo phases. The analysis phase determines the uncommitted transactions and redo starting point. Redo repeats the changes by reading the log forward. Undo rolls back the newest uncommitted transactions starting from the end of the log.
This document introduces soft computing and provides an agenda for the lecture. Soft computing is defined as a fusion of fuzzy logic, neural networks, evolutionary computing, and probabilistic computing to deal with uncertainty and imprecision. Hybrid systems combine different soft computing techniques for improved performance. The lecture will cover an introduction to soft computing, fuzzy computing, neural networks, evolutionary computing, and hybrid systems. References are also provided.
This presentation is an overview of points discussed in following research paper
Mohan, C., & Jose, S. (1999). Repeating History Beyond ARIES. 25th VLDB Conference, 1–17.
The document discusses various database recovery techniques including deferred update, immediate update, shadow paging, and ARIES. Deferred update involves no undo but may require redo after a crash since the database is not physically updated until transaction commit. Immediate update involves undo of uncommitted transactions but no redo since updates are written to disk during the transaction. Shadow paging uses shadow pages and avoids undo and redo by discarding dirty pages after a crash. ARIES uses a redo phase to bring the database to its pre-crash state followed by an undo phase to roll back uncommitted transactions.
This document discusses different distributed computing system (DCS) models:
1. The minicomputer model consists of a few minicomputers with remote access allowing resource sharing.
2. The workstation model consists of independent workstations scattered throughout a building where users log onto their home workstation.
3. The workstation-server model includes minicomputers, diskless and diskful workstations, and centralized services like databases and printing.
It provides an overview of the key characteristics and advantages of different DCS models.
The document summarizes distributed shared memory (DSM), which allows networked computers to share a region of virtual memory in a way that appears local. The key points are:
1) DSM uses physical memory on each node to cache pages of shared virtual address space, making it appear like local memory to processes.
2) On a page fault, a DSM protocol is used to retrieve the requested page from the remote node holding it.
3) Simple designs have a single node hold each page or use a centralized directory, but these can become bottlenecks. Distributed directories and replication improve performance.
4) Consistency models define when modifications are visible, from strict sequential consistency to more relaxed models like release consistency.
The document discusses various models of parallel and distributed computing including symmetric multiprocessing (SMP), cluster computing, distributed computing, grid computing, and cloud computing. It provides definitions and examples of each model. It also covers parallel processing techniques like vector processing and pipelined processing, and differences between shared memory and distributed memory MIMD (multiple instruction multiple data) architectures.
The document discusses distributed shared memory (DSM) in three paragraphs:
1) DSM provides a virtual shared address space across loosely coupled nodes through software memory mapping. Each node caches blocks of shared memory locally to reduce network latency.
2) When a process accesses a non-local memory block, the memory manager handles the request by migrating the block over the network if needed. Cached blocks avoid repeated network transfers.
3) Key design issues include block granularity, consistency models, data location protocols, and handling replication and migration of blocks. Different protocols are used depending on whether blocks are replicated, migrating, or both.
This document provides an overview of PROFIBUS basics, including:
- PROFIBUS allows for high-speed data exchange between active stations like PLCs and passive stations like field devices using the same cable and components.
- It supports functions like parameterization, I/O configuration, data exchange, and diagnostics between a master and slave devices in a cyclic manner.
- The configuration tool allows users to select parameters and I/O for devices with electronic data sheets to enable plug-and-play functionality.
- A distributed system is a collection of autonomous computers linked by a network that appear as a single computer. Inter-process communication allows processes running on different computers to exchange data. Common IPC methods include message passing, shared memory, and remote procedure calls.
- Marshalling is the process of reformatting data to allow exchange between modules that use different data representations. Remote procedure calls allow a program to execute subroutines in another address space, such as on another computer. The client-server model partitions tasks between service providers (servers) and requesters (clients).
- Election algorithms are used in distributed systems to choose a coordinator process from among a group of processes. Examples include the bully algorithm and ring
Artificial intelligence is a field of study that uses computational techniques to simulate human intelligence processes like learning, reasoning, and problem solving. It includes approaches like expert systems, neural networks, genetic algorithms, fuzzy logic systems, and swarm intelligence methods. The goal is to develop tools that can perform tasks requiring human-level intelligence.
The document provides an overview of shared memory architectures, including distributed shared memory (DSM) systems, shared memory, and different architectures like on-chip memory, bus-based multiprocessors, and ring-based multiprocessors. It discusses topics like cache coherence protocols, read and write operations, and similarities and differences between bus-based and ring-based multiprocessors.
The document provides an overview of shared memory architectures, including distributed shared memory (DSM) systems, shared memory, and different architectures like on-chip memory, bus-based multiprocessors, and ring-based multiprocessors. It discusses topics like cache coherence protocols, read and write operations, and similarities and differences between bus-based and ring-based multiprocessors.
This document discusses bus-based multiprocessor systems. It begins by defining a bus as a communication system that transfers data between computer components. It then explains that a bus-based multiprocessor connects multiple CPUs to a shared bus and memory. Issues like bus arbitration and caching are discussed to prevent access conflicts and reduce bus overload. Write-through and ownership caching protocols are described for maintaining cache coherency across CPUs. The document provides examples and discusses advantages and disadvantages of different approaches.
This document summarizes two shared memory architectures - bus-based and directory-based. It describes:
1) Bus-based architectures have CPUs, caches and shared memory connected by a shared bus. The bus bandwidth limits scalability. It discusses the memory coherence problem and snooping protocols like MESI to address it.
2) Directory-based architectures avoid broadcast snooping and scale better using point-to-point messaging. Each block tracks its presence in caches using a directory with processor bits. It brings coherence through directory lookups and targeted invalidations.
The document discusses snooping cache coherence protocols. It covers key design issues like when memory gets updated, who responds to requests, and optimizations like adding states. It then describes several specific protocols: a 4-state protocol, the MESI protocol, an update protocol called Dragon, and issues around implementing these with split transaction buses. Key challenges addressed include non-atomic transitions, livelock, and handling multiple outstanding requests.
This document summarizes shared memory architectures. It describes shared memory systems as having all processors share a global memory, with communication and synchronization occurring through reads and writes to that memory. It then describes two main challenges - contention when multiple processors access shared memory simultaneously, and coherence issues that can arise when multiple copies of data exist in caches. The document proceeds to classify shared memory systems into uniform memory access (UMA), non-uniform memory access (NUMA), and cache-only memory architecture (COMA). It also discusses bus-based symmetric multiprocessors and techniques for maintaining cache coherence.
Ring-based multiprocessors and NUMA architectures are discussed. Ring-based multiprocessors divide memory into private and shared regions. Machines are connected by a token-passing ring and share memory through message passing. In NUMA, memory access time depends on the memory location relative to the processor. Local memory can be accessed faster than non-local memory. Page-based distributed shared memory divides memory into pages that can be distributed across nodes. Object-based distributed shared memory allows processes on different machines to communicate through shared passive objects, avoiding problems like false sharing.
This document discusses multiprocessors and multiprocessing. It covers topics such as why you would want a multiprocessor, cache coherence issues that arise in shared memory multiprocessors, and different approaches to cache coherence like snoopy protocols and directory-based schemes. It also discusses classification of multiprocessors based on factors like the Flynn taxonomy, interconnection network, memory topology, and programming model.
This document provides an introduction to computer hardware. It discusses what a computer is and its basic components like input, output, processing and storage devices. It explains the differences between various types of computer memory like RAM, ROM, cache and primary memory. It also discusses concepts like Moore's Law and how computer performance and memory capacity have increased exponentially over time.
This document provides an introduction to multiprocessor systems and discusses different multiprocessor architectures including shared memory, distributed memory, and distributed shared memory systems. It describes the key differences between Uniform Memory Access (UMA) and Non-Uniform Memory Access (NUMA) models. Cache coherence problems that can arise in shared memory systems are discussed along with solutions like snooping and directory-based cache coherence protocols.
This document discusses embedded and real-time systems. It covers several topics:
- The CPU bus, which forms the backbone of computer hardware systems and allows communication between the CPU, memory, and I/O devices.
- Memory components like DRAM, SRAM, and flash memory that are used in embedded systems.
- Designing embedded computing platforms, including considerations like system architectures, evaluation boards, and the PC as an embedded platform.
- Platform-level performance analysis through measuring aspects like bandwidth of the memory, bus, and CPU fetches when transferring data in the system.
This document summarizes a session on memory organization that was presented by Asst. Prof. M. Gokilavani at VITS. The session covered topics related to memory hierarchy including main memory, auxiliary memory, associative memory, and cache memory. It described the characteristics of different memory types, such as static vs dynamic RAM, RAM vs ROM, and cache mapping techniques like direct mapping, set-associative mapping, and associative mapping. Examples were provided to illustrate memory addressing and cache organization.
1. The basic components of a parallel computer are processors, memory, and an interconnect network that connects the processors and memory.
2. Key processor terms include RISC, pipelining, and superscalar, which refer to instruction processing techniques. The network interconnect is characterized by latency, bandwidth, and topology.
3. Memory terms include cache, which sits between the CPU and main memory, as well as instruction cache, data cache, secondary cache, and translation lookaside buffer. Caches provide faster access to frequently used data and instructions.
Cache coherence is an issue that arises in multiprocessing systems where multiple processors have cached copies of shared memory locations. If a processor modifies its local copy, it can create an inconsistent global view of memory.
There are two main approaches to maintaining cache coherence - snoopy bus protocols and directory schemes. Snoopy bus protocols use a shared bus for processors to monitor memory transactions and invalidate local copies when needed. Directory schemes track which processors are sharing each block of data using a directory structure.
One common snoopy protocol is MESI, which uses cache states of Modified, Exclusive, Shared, and Invalid to track the ownership of cache lines and ensure coherency is maintained when a line is modified.
The document discusses memory organization and hierarchy in a computer system. It explains that memory hierarchy is used to minimize access time by organizing memory such that frequently used parts are closer to the CPU. It describes the different levels of memory including main memory, cache memory, and auxiliary memory. It provides details on RAM, ROM, and how the computer starts up using the bootstrap loader stored in ROM. It also discusses associative memory and different mapping techniques used to transfer data between main and cache memory such as direct mapping and set-associative mapping.
This document is a comprehensive guide for the Data Structures & Algorithms course offered in Spring 2025. It covers key theoretical concepts, algorithmic strategies, and programming techniques, including recursion, sorting, dynamic programming, graph algorithms, and more. Designed for computer science undergraduates, the course material balances rigorous theory with practical problem-solving skills, preparing students for technical interviews and advanced coursework.
This document provides an overview of operating systems. It discusses that an operating system acts as an interface between the user and hardware, managing resources and running applications. Key parts of an operating system include the kernel and system programs. Operating systems allow for multiprogramming and time-sharing to enable efficient sharing of resources between multiple processes. Interprocess communication and process synchronization are important aspects that operating systems facilitate.
This document is a lab manual for database management systems. It contains instructions for installing and using Visual Studio and SQL Server software. Visual Studio is a popular integrated development environment used to develop a wide range of computer programs and applications. It includes features like a code editor, debugger, and various designers. The document provides guidance on tasks for several labs covering topics like creating applications in Visual Studio, installing and managing databases in SQL Server, and building a school management system to apply concepts.
The document provides an outline for a course on data structures and algorithms. It includes topics like data types and operations, time-space tradeoffs, algorithm development, asymptotic notations, common data structures, sorting and searching algorithms, and linked lists. The course will use Google Classroom and have assignments, quizzes, and a final exam.
This document discusses algorithms and their analysis. It defines an algorithm as a finite sequence of unambiguous instructions that terminate in a finite amount of time. It discusses areas of study like algorithm design techniques, analysis of time and space complexity, testing and validation. Common algorithm complexities like constant, logarithmic, linear, quadratic and exponential are explained. Performance analysis techniques like asymptotic analysis and amortized analysis using aggregate analysis, accounting method and potential method are also summarized.
The document contains a multiple choice quiz with questions about various topics in computer science. There are 47 multiple choice questions testing knowledge about topics like binary, memory, operating systems, programming languages, networks, and security. The questions are short, with single sentences providing the prompts and possible multiple choice answers.
The document contains 40 multiple choice questions related to computer science class 12. It covers topics like variables, data types, operators, loops, functions, arrays and more. The questions test concepts like escape sequences, format specifiers, assignment operators, comments, input/output functions, and the difference between various loops in C programming language. It is a practice test to help students prepare for their computer science exam.
This document provides an introduction to databases. It defines what a database is, the steps to create one, and benefits such as fast querying and flexibility. It describes database models like hierarchical, network, entity-relationship, and relational. Key database concepts are explained, including entities, attributes, primary keys, and foreign keys. Finally, it outlines database management system components, common users, and introduces Microsoft Access.
Program, Language, & Programming Language
Object Oriented Programming vs Procedure Oriented Programming
About C
Why still Learn C?
Basic Terms
C Stuff
C Syntax
C Program
Flowcharts provide a graphical representation of steps in a process or algorithm using standard symbols. They were developed in the 1920s-1930s to document business processes but are now widely used to depict computer programs and workflows. The key symbols include boxes, diamonds, arrows, and other shapes to represent tasks, decisions, data, and flow. Flowcharts clarify complex processes, help teams understand them, and can be used to improve or design new procedures.
Algorithm
What is an algorithm?
How are mathematical statements and algorithms related?
What do algorithms have to do with computers?
Pseudo Code
What is pseudocode?
Writing pseudocode
Pseudo Code vs Algorithm
This document outlines the chapters and content covered in a Computer Science course. It includes 17 total chapters, with 5 theoretical chapters, 8 practical chapters, and 4 optional chapters. The chapters cover topics like programming concepts, algorithms, an overview of the C language, variables, operators, input/output statements, selection and iteration control structures, functions, arrays, strings, pointers, data files, data management systems, and Microsoft Access. It also provides a study plan which includes performing practical work every Tuesday, having question/answer sessions every Friday, and using other days for theoretical content, as well as creating a WhatsApp group for the class.
The document discusses computer crimes and cyber crimes under Pakistani law. It defines computer crimes such as copyright violation, cracking codes, cyberbullying and various types of computer viruses. It then outlines specific cyber crimes in Pakistan such as spreading false information about an individual, making or spreading explicit images without consent, cyberstalking, and hacking for stalking. The punishments for these crimes under Pakistani law include prison sentences up to 7 years and fines up to 10 million Pakistani rupees.
Components of Data Communication
Characteristics of Data Transmission
Communication Media
Communication Speed
Communication Hardware
Communication Software
OSI Model
This document provides an overview of basic concepts in information technology, including definitions of computers and computer systems, their key characteristics and components. It describes common input devices like keyboards, mice, and scanners, as well as output devices like monitors, printers and speakers. It also discusses computer hardware, software, data, procedures, and different generations of computers from the past to present.
1st Year Computer Science Book
Sindh Text Book Board Introduction
Introduction
Syed Zaid Irshad
Rules (that You have to Follow)
Book Introduction
10 Chapters
Theoretical Chapters are 6
Practical Chapters are 4
Chapter 1: Basic Concept of Information Technology
Introduction of Computer
Definition
Characteristics
Parts of Computer
Input
Output
Memory
Primary Storage
Secondary Storage
Ports
Language Translator
Compiler
Interpreter
Generations of Programming Language
Ages of Computers
Generations of Computer
Classification of Computers
Chapter 2: Information Networks
Types of Network
LAN
WAN
MAN
GAN
Topologies
Star
Ring
Bus
Hybrid
File Transfer Protocol
World Wide Web
Chapter 3: Data Communication
Standards
Transmission
Simples
Half Duplex
Full Duplex
Media
Twisted Pair Cable
Coaxial Cable
Fiber Optic Cable
Microwave Transmission
Satellite Transmission
Open Systems Interconnection model (OSI model)
Chapter 4: Applications and Use of Computers
Difference Between Application and Use
Impacts of Computers
Chapter 5: Computer Architecture
Address of Memory Locations
Instruction Format
Fetch and Execute
Chapter 6: Security, Copyright and The Law
Computer Crime
Computer Viruses
Computer Privacy
Software Piracy and Law
Chapter 7: Operating System
User Interface
Graphical User Interface
Operating Systems
Chapter 8: Word Processing
Introduction to MS Word
Creating
Editing
Formatting
Printing
Chapter 9: Spreadsheet
Introduction to MS Excel
Creating
Editing
Formatting
Printing
Formulae
Project
Chapter 10: Internet Browsing and Using E-mail
Create Email ID
Send Mail
Download File
Upload File
Study Plan
Every Tuesday we perform Practical
Every Friday Half of the Lecture will be used as question answer session
Rest of the days are for Theoretical Stuff
Make WhatsApp Group for class where we can share stuff related to the Subject
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYijscai
With the increased use of Artificial Intelligence (AI) in malware analysis there is also an increased need to
understand the decisions models make when identifying malicious artifacts. Explainable AI (XAI) becomes
the answer to interpreting the decision-making process that AI malware analysis models use to determine
malicious benign samples to gain trust that in a production environment, the system is able to catch
malware. With any cyber innovation brings a new set of challenges and literature soon came out about XAI
as a new attack vector. Adversarial XAI (AdvXAI) is a relatively new concept but with AI applications in
many sectors, it is crucial to quickly respond to the attack surface that it creates. This paper seeks to
conceptualize a theoretical framework focused on addressing AdvXAI in malware analysis in an effort to
balance explainability with security. Following this framework, designing a machine with an AI malware
detection and analysis model will ensure that it can effectively analyze malware, explain how it came to its
decision, and be built securely to avoid adversarial attacks and manipulations. The framework focuses on
choosing malware datasets to train the model, choosing the AI model, choosing an XAI technique,
implementing AdvXAI defensive measures, and continually evaluating the model. This framework will
significantly contribute to automated malware detection and XAI efforts allowing for secure systems that
are resilient to adversarial attacks.
Fluid mechanics is the branch of physics concerned with the mechanics of fluids (liquids, gases, and plasmas) and the forces on them. Originally applied to water (hydromechanics), it found applications in a wide range of disciplines, including mechanical, aerospace, civil, chemical, and biomedical engineering, as well as geophysics, oceanography, meteorology, astrophysics, and biology.
It can be divided into fluid statics, the study of various fluids at rest, and fluid dynamics.
Fluid statics, also known as hydrostatics, is the study of fluids at rest, specifically when there's no relative motion between fluid particles. It focuses on the conditions under which fluids are in stable equilibrium and doesn't involve fluid motion.
Fluid kinematics is the branch of fluid mechanics that focuses on describing and analyzing the motion of fluids, such as liquids and gases, without considering the forces that cause the motion. It deals with the geometrical and temporal aspects of fluid flow, including velocity and acceleration. Fluid dynamics, on the other hand, considers the forces acting on the fluid.
Fluid dynamics is the study of the effect of forces on fluid motion. It is a branch of continuum mechanics, a subject which models matter without using the information that it is made out of atoms; that is, it models matter from a macroscopic viewpoint rather than from microscopic.
Fluid mechanics, especially fluid dynamics, is an active field of research, typically mathematically complex. Many problems are partly or wholly unsolved and are best addressed by numerical methods, typically using computers. A modern discipline, called computational fluid dynamics (CFD), is devoted to this approach. Particle image velocimetry, an experimental method for visualizing and analyzing fluid flow, also takes advantage of the highly visual nature of fluid flow.
Fundamentally, every fluid mechanical system is assumed to obey the basic laws :
Conservation of mass
Conservation of energy
Conservation of momentum
The continuum assumption
For example, the assumption that mass is conserved means that for any fixed control volume (for example, a spherical volume)—enclosed by a control surface—the rate of change of the mass contained in that volume is equal to the rate at which mass is passing through the surface from outside to inside, minus the rate at which mass is passing from inside to outside. This can be expressed as an equation in integral form over the control volume.
The continuum assumption is an idealization of continuum mechanics under which fluids can be treated as continuous, even though, on a microscopic scale, they are composed of molecules. Under the continuum assumption, macroscopic (observed/measurable) properties such as density, pressure, temperature, and bulk velocity are taken to be well-defined at "infinitesimal" volume elements—small in comparison to the characteristic length scale of the system, but large in comparison to molecular length scale
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfMohamedAbdelkader115
Glad to be one of only 14 members inside Kuwait to hold this credential.
Please check the members inside kuwait from this link:
https://www.rics.org/networking/find-a-member.html?firstname=&lastname=&town=&country=Kuwait&member_grade=(AssocRICS)&expert_witness=&accrediation=&page=1
This paper proposes a shoulder inverse kinematics (IK) technique. Shoulder complex is comprised of the sternum, clavicle, ribs, scapula, humerus, and four joints.
We introduce the Gaussian process (GP) modeling module developed within the UQLab software framework. The novel design of the GP-module aims at providing seamless integration of GP modeling into any uncertainty quantification workflow, as well as a standalone surrogate modeling tool. We first briefly present the key mathematical tools on the basis of GP modeling (a.k.a. Kriging), as well as the associated theoretical and computational framework. We then provide an extensive overview of the available features of the software and demonstrate its flexibility and user-friendliness. Finally, we showcase the usage and the performance of the software on several applications borrowed from different fields of engineering. These include a basic surrogate of a well-known analytical benchmark function; a hierarchical Kriging example applied to wind turbine aero-servo-elastic simulations and a more complex geotechnical example that requires a non-stationary, user-defined correlation function. The GP-module, like the rest of the scientific code that is shipped with UQLab, is open source (BSD license).
Raish Khanji GTU 8th sem Internship Report.pdfRaishKhanji
This report details the practical experiences gained during an internship at Indo German Tool
Room, Ahmedabad. The internship provided hands-on training in various manufacturing technologies, encompassing both conventional and advanced techniques. Significant emphasis was placed on machining processes, including operation and fundamental
understanding of lathe and milling machines. Furthermore, the internship incorporated
modern welding technology, notably through the application of an Augmented Reality (AR)
simulator, offering a safe and effective environment for skill development. Exposure to
industrial automation was achieved through practical exercises in Programmable Logic Controllers (PLCs) using Siemens TIA software and direct operation of industrial robots
utilizing teach pendants. The principles and practical aspects of Computer Numerical Control
(CNC) technology were also explored. Complementing these manufacturing processes, the
internship included extensive application of SolidWorks software for design and modeling tasks. This comprehensive practical training has provided a foundational understanding of
key aspects of modern manufacturing and design, enhancing the technical proficiency and readiness for future engineering endeavors.
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxRishavKumar530754
LiDAR-Based System for Autonomous Cars
Autonomous Driving with LiDAR Tech
LiDAR Integration in Self-Driving Cars
Self-Driving Vehicles Using LiDAR
LiDAR Mapping for Driverless Cars
Analysis of reinforced concrete deep beam is based on simplified approximate method due to the complexity of the exact analysis. The complexity is due to a number of parameters affecting its response. To evaluate some of this parameters, finite element study of the structural behavior of the reinforced self-compacting concrete deep beam was carried out using Abaqus finite element modeling tool. The model was validated against experimental data from the literature. The parametric effects of varied concrete compressive strength, vertical web reinforcement ratio and horizontal web reinforcement ratio on the beam were tested on eight (8) different specimens under four points loads. The results of the validation work showed good agreement with the experimental studies. The parametric study revealed that the concrete compressive strength most significantly influenced the specimens’ response with the average of 41.1% and 49 % increment in the diagonal cracking and ultimate load respectively due to doubling of concrete compressive strength. Although the increase in horizontal web reinforcement ratio from 0.31 % to 0.63 % lead to average of 6.24 % increment on the diagonal cracking load, it does not influence the ultimate strength and the load-deflection response of the beams. Similar variation in vertical web reinforcement ratio leads to an average of 2.4 % and 15 % increment in cracking and ultimate load respectively with no appreciable effect on the load-deflection response.
Sorting Order and Stability in Sorting.
Concept of Internal and External Sorting.
Bubble Sort,
Insertion Sort,
Selection Sort,
Quick Sort and
Merge Sort,
Radix Sort, and
Shell Sort,
External Sorting, Time complexity analysis of Sorting Algorithms.
In tube drawing process, a tube is pulled out through a die and a plug to reduce its diameter and thickness as per the requirement. Dimensional accuracy of cold drawn tubes plays a vital role in the further quality of end products and controlling rejection in manufacturing processes of these end products. Springback phenomenon is the elastic strain recovery after removal of forming loads, causes geometrical inaccuracies in drawn tubes. Further, this leads to difficulty in achieving close dimensional tolerances. In the present work springback of EN 8 D tube material is studied for various cold drawing parameters. The process parameters in this work include die semi-angle, land width and drawing speed. The experimentation is done using Taguchi’s L36 orthogonal array, and then optimization is done in data analysis software Minitab 17. The results of ANOVA shows that 15 degrees die semi-angle,5 mm land width and 6 m/min drawing speed yields least springback. Furthermore, optimization algorithms named Particle Swarm Optimization (PSO), Simulated Annealing (SA) and Genetic Algorithm (GA) are applied which shows that 15 degrees die semi-angle, 10 mm land width and 8 m/min drawing speed results in minimal springback with almost 10.5 % improvement. Finally, the results of experimentation are validated with Finite Element Analysis technique using ANSYS.
ELectronics Boards & Product Testing_Shiju.pdfShiju Jacob
This presentation provides a high level insight about DFT analysis and test coverage calculation, finalizing test strategy, and types of tests at different levels of the product.
2. Page 2
TOPICS TO BE COVERED:
• DSM system
• Shared memory
• On chip memory
• Bus based multiprocessor
• Working through cache
• Write through cache
• Write once protocol
• Ring based multiprocessor
• Protocol used
• Similarities and differences bw ring based and bus based
3. Page 3
What is a DSM system?
• A distributed-memory system (often called a multicomputer) consist
of collection of workstations connected by a LAN share a single
paged,virtual address space
• Each page is present on exactly one maachine
• An attempt to reference a page on different machine causes a
hardware page fault which traps to operating system
• The OS den sends a message to the remote machinewhich finds the
needed page and sends it back to the req. processor
4. Page 4
What is shared memory?
• Shared memory is the memory that is simultaneously accessed by
more than one CPU OR PROCCESSOR
• There are local caches for each processor
• It is cheaper to cache than main memory
• It is simple to program and hard to scale
5. Page 5
Various architectures to be discussed:
• On chip memory
• Bus based multiprocessors
• Ring based multiprocessors
6. Page 6
On Chip Memory
• In this CPU portion of the chip has a address and data lines that
directly connect to the memory portion
• Such chips are used in cars,appliances and even toys
• In hypothetical shared memory multiprocessor we have multiple
CPU’S directly sharing the same memory but it would be complicated
n expensive
7. Page 7
• On-Chip Memory
CPU Memory CPU1 Memory
CPU4
CPU2
CPU3
Chip package
Address and data lines
Connecting the CPU to the
memory
extension
A single-chip computer
A hypothetical shared-memory
Multiprocessor.
8. Page 8
What is a bus???
• BUS is a collection of parallel wires,some holding the address the
CPU wants to read or write,some for sending or receiving data and
the rest for controlling the transfers.
• In most systems buses are external and are used to connect
CPU’S,MEMORIES AND I/O CONTROLLERS
9. Page 9
BusBus
CPU ACPU A CPU BCPU B
memorymemory
Device
I/O
Device
I/O
BUS BASED MULTIPROCESSORS
SMP: Symmetric Multi-Processing
All CPUs connected to one bus (backplane)
Memory and peripherals are accessed via shared bus.
System looks the same from any processor.
10. Page 10
Bus-based multiprocessors
Dealing with bus overload
- add local memory
CPU does I/O to cache memory
- access main memory on cache miss
BusBus
memorymemory
Device
I/O
Device
I/O
CPU ACPU A
cachecache
CPU BCPU B
cachecache
11. Page 11
Working with a cache
CPU A reads location 12345 from memory
12345:712345:7
Device
I/O
Device
I/O
CPU ACPU A
12345: 712345: 7
CPU BCPU B
Bus
12. Page 12
Working with a cache
CPU B reads location 12345 from memory
12345:712345:7
Device
I/O
Device
I/O
CPU ACPU A
12345: 312345: 3
CPU BCPU B
12345: 712345: 7
Gets old value
Memory not coherent!
Bus
13. Page 13
Write-through cache … continued
CPU B reads location 12345 from memory
- loads into cache
12345:312345:3
Device
I/O
Device
I/O
CPU ACPU A
12345: 312345: 3
CPU BCPU B
12345: 312345: 3
Bus
14. Page 14
Write-through cache
CPU A modifies location 12345
- write-through
12345:3
Device
I/O
Device
I/O
CPU ACPU A
12345: 3
CPU BCPU B
12345: 312345: 3
Cache on CPU B not updated
Memory not coherent!
12345:012345:0
12345: 012345: 0
Bus
15. Page 15
Write once protocol
• This protocol manages cache blocks, each of which can be in
one of the following three states:
INVALID: This cache block does not contain valid data.
CLEAN: Memory is up-to-date; the block may be in other caches.
DIRTY: Memory is incorrect; no other cache holds the block.
• The basic idea of the protocol is that a word that is being
read by multiple CPUs is allowed to be present in all their
caches. A word that is being heavily written by only one
machine is kept in its cache and not written back to memory
on every write to reduce bus traffic.
16. Page 16
Write through protocol
Event Action taken by a cache
in response to its own
CPU’s operation
Action taken by a cache in
response to a remote CPU’s
operation
Read miss Fetch data from memory
and store in cache
no action
Read hit Fetch data from local
cache
no action
Write miss Update data in memory
and store in cache
no action
Write hit Update memory and
cache
invalidate cache entry
17. Page 17
For example
A B W1C
W1
CLEAN
Memory is correct
(a) Initial state – word W1 containing
value W1 is in memory and is also
cached by B.
CPU
A B W1C
W1 W1
CLEANCLEAN
Memory is correct
(b) A reades word W and gets W1. B doe
not respond to the read, but the memory
does.
18. Page 18
A B W1C
W2 W1
A B W1C
W3 W1
DIRTY INVALID
DIRTY INVALID
Memory is correct
(c)A write a value W2, B snoops on the bu
sees the write, and invalidates its entry.
A’s copy is marked DIRTY.
Not update memory
Memory is correct
(d) A write W again. This and subsequent
writes by A are done locally, without any
bus traffic.
19. Page 19
A B W1C
W3 W1
INVALID INVALID DIRTY
W3
(e) C reads or writes W. A sees th
request by snooping on the bus,
provides the value, and invalidates
its own entry. C now has the only
valid copy.
Not update memory
20. Page 20
Ring-Based Multiprocessors: Memnet
CPU CPU
CPU CPU
CPU CPU
CPU
Private memory
MMU Cache Home
memory
Memory management unit
Location
Interrupt
Home
Exclusive
Valid
0
1
2
3
The block table
21. Page 21
Protocol
• Read
• When the CPU wants to read a word from shared memory, the memory
address to be read is passed to the Memnet device, which checks the
block table to see if the block is present. If so, the request is satisfied. If
not, the Memnet device waits until it captures the circulating token,
puts a request onto the ring. As the packet passes around the ring, each
Memnet device along the way checks to see if it has the block needed. If
so, it puts the block in the dummy field and modifies the packet header
to inhibit subsequent machines from doing so.
• If the requesting machine has no free space in its cache to hold the
incoming block, to make space, it picks a cached block at random and
sends it home. Blocks whose Home bit are set are never chosen because
they are already home.
22. Page 22
• Write
• If the block containing the word to be written is present and is the only
copy in the system (i.e., the Exclusive bit is set), the word is just written
locally.
• If the needed block is present but it is not the only copy, an invalidation
packet is first sent around the ring to force all other machines to discard
their copies of the block about to be written. When the invalidation
packet arrives back at the sender, the Exclusive bit is set for that block
and the write proceeds locally.
• If the block is not present, a packet is sent out that combines a read
request and an invalidation request. The first machine that has the block
copies it into the packet and discards its own copy. All subsequent
machines just discard the block from their caches. When the packet
comes back to the sender, it is stored there and written.
23. Page 23
Similarities bw bus based and ring based
multiprocessors
• In both cases read operations always return the values most recently
written
• In both designs a block may be absent from a cache,present in
multiple caches for reading,or present in a single cache for writing
24. Page 24
DIFFERENCES BW TWO
MULTIPROCESSORS
BUS BASED MULTIPROCCESORS
• They are tightly coupled with
the CPU’S normally in a single
rack
• It has seprate global memory
RING BASED MULTIPROCCESORS
• Machines here can be much
more loosely coupled n this
loose coupling can affect their
performance
• It has no seprate global memory