Tuesday, 20 October 2015

tugas 3



Multicore system
•       CPU with more than one core
•       Cores operate as separate processor within a single chip
•       Increase performance without raising the processor clock speed
Multiprocessor system
•       Have more than one CPU
•       Some machine combines two technologies, multicore and multiprocessor













   (a) A shared-memory multiprocessor. (b) A message-passing multicomputer. (c) A wide area distributed system.

•          Multiprocessor Systems are classified according to the manner of associating CPUs  and memory units
–        Uniform memory access (UMA) architecture
•          Previously called tightly coupled multiprocessor
•          Also called symmetrical multiprocessor (SMP)
•          Examples: Balance system and VAX 8800
–        Nonuniform memory access (NUMA) architecture
•          Examples: HP AlphaServer and IBMNUMA-Q
–        No-remote-memory-access (NORMA) architecture
•          Example: Hypercube system by Intel
•          Is actually a distributed system (discussed later)


    Three bus-based multiprocessors. (a) Without caching. (b) With caching. (c) With caching and private memories.









•          Unified Memory Access (UMA)
–        also known as Symmetric MultiProcessors (SMP)
•          Non-Unified Memory Access (NUMA)
•          SIMILARITIES
–        single memory space
–        pitfall: Compared between shared memory and distributed memory.
•          DIFFERENT
–        access time
–        # of processors
–        bus vs. network implementation
•          SISD (Single Instruction Single Data)
•          Uniprocessors
•          MISD (Multiple Instruction Single Data)
•          Stream based processing
•          SIMD (Single Instruction Multiple Data = DLP)
•          Examples: Illiac-IV, CM-2 (Thinking Machines), Xetal (Philips), Imagine (Stanford), Vector machines, Cell architecture (Sony)
•          Simple programming model
•          Low overhead
•          MIMD (Multiple Instruction Multiple Data)
•          Examples: Sun Enterprise 5000, Cray T3D,  SGI Origin,
Multi-core Pentiums, and many more….


•       Figure 8-10. The TSL instruction can fail if the bus cannot be locked. These four steps show a sequence of events where the failure is demonstrated.


•       Figure 8-11. Use of multiple locks to avoid cache thrashing.


Figure 8-12. Using a single data structure for scheduling a multiprocessor.

The three parts of gang scheduling:
  1. Groups of related threads are scheduled as a unit, a gang.
  2. All members of a gang run simultaneously, on different timeshared CPUs.
  3. All gang members start and end their time slices together.

•       Figure 8-14. Communication between two threads belonging to thread A that are running out of phase.

Characteristics of Embedded System
•       Real-time operation:
–      In many embedded systems, the correctness of a computation depends, in part, on the time at which it is delivered. Often, real-time. Constraints are dictated by external I/O and control stability requirements.
•       Reactive operation:
–      Embedded software may execute in response to external events. If these events do not occur periodically or at predictable intervals, the embedded software may need to take into account worst-case conditions and set priorities for execution of routines.
•       Configurability:
•       Because of the large variety of embedded systems, there is a large variation in the requirements, both qualitative and quantitative, for embedded OS functionalityfor execution of routines.
•       I/O device flexibility:
•       There is virtually no device that needs to be supported by all versions of the OS, and the range of I/O devices is large.
•       Streamlined protection mechanisms:
•       Embedded systems are typically designed for a limited, well-defined functionality
•       Direct use of interrupts:
•        General-purpose operating systems typically do not permit any user process to use interrupts directly

Purpose Built Embedded Operating System
•       A significant number of operating systems have been designed from the ground up for embedded applications. Two prominent examples of this latter approach are eCos and TinyOS.

Specialized Embedded System
•       Typically include
–      Has a fast and lightweight process or thread switch
–      Scheduling policy is real time and dispatcher module is part of scheduler instead of separate component.
–      Has a small size
–      Responds to external interrupts quickly; typical requirement is response time of less than 10 μs
–      Minimizes intervals during which interrupts are disabled
–      Provides fixed or variable-sized partitions for memory management as well as the ability to lock code and data in memory
–      Provides special sequential files that can accumulate data at a fast rate To deal with timing constraints, the kernel provides bounded execution time for most primitives
–      Maintains a real-time clock
eCos
•       eCOS – Embedded Configurable Operating System
•       Open Source, royalty free, real time O/S for embedded application

Configurability
•       eCos configuration tool, which runs on Windows or Linux, is used to configure an eCos package to run on a target embedded system
•       eCos package is structured hierarchically
eCos Component
•       HAL – Harwarde Abstraction Layer
–      HAL is software that presents a consistent API to the upper layers and maps upper-layer operations onto a specific hardware platform
•       eCos Kernel
–      Designed to meet the following objectives:
•       Low interrupt latency: The time it takes to respond to an interrupt and begin executing an ISR.
•       Low task switching latency: The time it takes from when a thread becomes available to when actual execution begins.
•       Small memory footprint: Memory resources for both program and data are kept to a minimum by allowing all components to configure memory as needed.
•       Deterministic behavior: Throughout all aspect of execution, the    kernels performance must be predictable and bounded to meet real-time application requirements.
eCos Scheduler
•       Bitmap Sheduler
–      A bitmap scheduler supports multiple priority levels, but only one thread can exist at each priority level at any given time.
•       Multilevel Queue Scheduler
–      Supports up to 32 priority levels
–      allows for multiple active threads at each priority level, limited only by system resources



Client Server Computing
•       client/server environment is populated by clients and servers
•       Each server in the client/server environment provides a set of shared services to the clients
•       Client/server computing is typically distributed
•       Computing

Client Server Envronment


Client Server Architecture




Three tiered Client Server Architecture

Middleware
•       Middleware provides a layer of software tat enables uniform access to different systems

Service Oriented Architecture
•       A form f client/server architecture
•       Organizes business functions into modular structure
•       Conssts of a set of services and a set of client applications that uses the services
SOA Architectural components
•       Three types
–      Service Provider
•       A network node that provides a service interface for a software asset that manages a specific set of tasks
–      Service requestor
•       A network node that discovers and invokees other software services to provide a business solution
–      Service Broker
•       A specific kind of service that acts as a registry and allows for the lookup of service provider interfaces and service locations

Clustering
•       An approac to provide high performance and high availability
•       A cluster is a group of interconnected, whole computer working together as a unified computing resource (act as one machine)

Benefits of clustering
•       Absolute scalability: It is possible to create large clusters that far surpass the power of even the largest stand-alone machines. A cluster can have dozens or even hundreds of machines, each of which is a multiprocessor.
•       Incremental scalability: A cluster is configured in such a way that it is possible to add new systems to the cluster in small increments. Thus, a user can start out with a modest system and expand it as needs grow, without having to go through a major upgrade in which an existing small system is replaced with a larger system.
•       High availability: Because each node in a cluster is a stand-alone computer, the failure of one node does not mean loss of service. In many products, fault tolerance is handled automatically in software.
•       Superior price/performance: By using commodity building blocks, it is possible to put together a cluster with equal or greater computing power than a single large machine, at much lower cost.
Two nodes cluster

Shared Disk Cluster

Cluster Method – benefits and limitations

Design Issues
•       Failure Management
•       Load Balancing
•       Parallelizing Computation



Cluster Computer Architecture


No comments:

Post a Comment