an obsm method for real time embedded systems veronica eyo sharvari joshi

25
An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Upload: amos-wright

Post on 05-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

An OBSM method for Real Time Embedded Systems

Veronica EyoSharvari Joshi

Page 2: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

What is OBSM?On Board Software MaintenanceSoftware

maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment

(Source: Wikipedia)

Page 3: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Related WorkReduce the size of patchAssign more memory to each

module at compilation timeOnly that module is rebootedDisadvantage: difficult to predict

the memory size of future patches

Page 4: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Related work continuedOn-Board Control ProceduresIs a stand alone programCapable of interacting with other

on-board subsystems, with similar capabilities

Page 5: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Related work continuedProvide hardware redundancyNew version software runs with

old versionOld version guards upgradingUpgrades only if the new version

works as expected for some timeElse rollback to a checkpoint

Page 6: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Component-based Dynamic ArchitectureIs a configuration language for

describing dynamic architectureSpecify the structure of

Distributive systemsSeparates the description of

structure from that of computation and interaction

Use connectors for communication

Page 7: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Distributed object-based approachClient object can transparently

invoke a method on a server object

Requires CORBA architectureReliable group communicationFrequent checkpoint mechanism

Page 8: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Need to replace redundancyHigh cost to have hardware or

software redundancyCommunication and

synchronization is time consuming

Page 9: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

FrameworkCompilerSoftware Development

Environment (SDE)Software Validation Facility (SVF)A generator for patch

telecommandsA mission database of "memory

images"

Page 10: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Framework

SDEPatch Maker

OB Softwar

eSVF

Find Error

Modify Information

Verif

yUpload Patch

Page 11: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Types of ModificationsKernel ModificationUser Application ModificationParameter Modification

Page 12: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Kernel ModificationOS may have bugsIf Preemptible Kernel:

◦PC register of each task may point to an instruction that will be modified

◦All the tasks must be stopped except the patch handle task

If Non-preemptible Kernel:◦Task that is not ready needs to be

restarted

Page 13: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

User Application ModificationMore common to modify user

applicationDifferent applications have

different tasksTo upgrade the task is killedBetter than the approach of

updating the whole and then rebooting the system.

Page 14: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Parameter ModificationParameters refer to a global

variable or static variable or a data area in memory

Local variable is in a stack and cannot be modified

Variables and data can be modified by rewriting the memory

Page 15: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Patch Information Fetching

SDE informs OBSM to fetch patch information

OBSM finds the files updated by the user modification

Comparison is carried out to find out which files have been modified

Page 16: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Task AnalysisDependencySoftware upgrading and function

upgradingParameter modification

necessitates that the task be restarted

Page 17: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Task Analysis

Page 18: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Caller GraphA caller graph is

createdUse breadth-first

traversal to find all the dependant tasks

A list of all the functions that depend on the given function and find tasks whose entry points are in these functions.

Page 19: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Relocation and Re-relocationTo upgrade software we need a

memory table which is costly to maintain

Implement it in the host machineIf a new version function is larger

than the old one new function will be placed in a new location

Need re-relocation after the patch is uploaded

Page 20: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Relocation and Re-relocation

Page 21: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

PatchingReceive the patchSuspend the affected taskUpdate the parameter value or

codeRestart the taskThe task priority, entry point,

base of stack and arguments are needed

Page 22: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Resource ProtectionResource releaseNeed to protect the resource

when the task is killedRegister MechanismReboot delayed mechanism

Page 23: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

ResultsPentium-s, 100 MHz3 source files modification (20

functions)Conventional method: 2sec and

110µsecOverhead of OBSM is15µsec

Page 24: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

ConclusionDevelop a method to update the

software by writing the patch to memory directly

To reduce overhead classify the type of modification

Task dependency analysis and resource protection help in correct upgrading

This method has some overhead but will be useful for applications which require frequent upgrading

Page 25: An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi

Questions?