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