Learning Center
Plans & pricing Sign in
Sign Out



									Winter 2009

         Implementation of a satellite
         on a Multi-Core System

                              A project by:
                               Daniel Aranki
                             Mohammad Nassar

                              Supervised by:
                               Mony Orbach

                          Final Presentation
Single semester Project                        21/06/2009
Project Objectives
   To implement a satellite system
    simulator on a Multi-core system
   Understand the needs of a satellite
       Real-Time tasks
       Reliability tasks
   Learn to think parallel
System architecture
   Implement a management system
    (called Real Time Management System
    or RTMS) which is responsible for:
       Resources allocation for tasks
       Inter task communication
   The system must fulfill the following
       Reliability
       Real Time
Architecture – Cont.
   __ms_request_task (taskname, NULL, copies_nr);
       This function will request to run the “taskname” on
        “copies_nr” free cores.
   __ms_request_pipe (pipe_nr);
       This function will allocate the pipe channel “pipe_nr”
        for the calling core.
   __ms_write_pipe (pipe_nr, data);
       This function will write the message “data” to a previously
        allocated pipe “pipe_nr”.
   __ms_read_pipe (pipe_nr, mybuffer);
       This function will read the data from a previously
        allocated pipe “pipe_nr” to a buffer called “mybuffer”.
Architecture – Cont.
   __ms_close_pipe_channel (pipe_nr);
       This function will free a previously allocated pipe

   Notes:
       RTMS is a non-preemptive system, meaning it will not
        interrupt a task from running until it finishes itself.
       Every core has 1 task to run simultaneously; meaning
        that if a core is currently running a task, it will be
        considered busy.
Starting up the system (boot
   RTMS will always run a task called
    __boot_loader; the user’s code will
    always start there.
   Prototype:
       void __boot_loader(int coreid, int taskinst);
   The satellite system that will test RTMS
       Inputs: Camera, Temperature sensor, GPS,
        Cosmic rays sensor.
       Outputs: Antenna, Cooling system, Shield
    Test-bench (cont.)
        A mini-simulator that will simulate:
             The sensors as inputs of the satellite.
Mini-               Expected Outputs                  Success/Failure
Simulator                                Validator

        Inputs                                  Outputs


            User code                  RTMS
Test-bench (cont.)
   Environment variables:
       Gpsmis_packets: # of gps missed packets
       Cammis_packets: # of camera missed packets
       Coolingsystem: cooling system 1=on 0=off
       Current_cosmic_reading: cosmic rays sensor reading
       Temperature_failure: 1=temperature exceeded 90C or below 0C
       Camera_pack_number: # of camera packet
       Cosmicsystem: shield system 1=on 0=off
       Current_temperature: temperature sensor reading
       GPS_packnumber: # of GPS packet
       Cosmic_failure: 1=cosmic rays sensor reading is excessive
Future Related Projects
   RTMS is a generic system, new
    components may be easily added.
   Our test-bench is a source for future
    evaluation and bench-marks.
   Evaluate RTMS on the hardware
   We implemented a generic real time management
    system that fits the needs of several real time
    systems such as: Robots, satellites, etc.
   We understood the needs of real time systems that
    require reliability and time-constrained computing.
   We learned to think parallel
       Mutex
       Volatile
   Communicating with a third-party. (Plurality)

To top