Challenges in Porting & Abstraction. Getting Locked-In Applications are developed with a particular platform in mind The software is locked to the current.

Slides:



Advertisements
Similar presentations
MapuSoft Technologies Presentation OS Abstractor, OS Changer, OS PAL and MapuSoft are registered trademarks of MapuSoft Technologies Inc. All other trademarks.
Advertisements

MapuSoft Technologies Presentation OS Abstractor, OS Changer, OS PAL and MapuSoft are registered trademarks of MapuSoft Technologies Inc. All other trademarks.
Threads, SMP, and Microkernels
Using MapuSoft Instead of OS Vendor’s Simulators.
MACHINE-INDEPENDENT VIRTUAL MEMORY MANAGEMENT FOR PAGED UNIPROCESSOR AND MULTIPROCESSOR ARCHITECTURES R. Rashid, A. Tevanian, M. Young, D. Golub, R. Baron,
Chorus Vs Unix Operating Systems Overview Introduction Design Principles Programmer Interface User Interface Process Management Memory Management File.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Computer Systems/Operating Systems - Class 8
Chapter 13 Embedded Systems
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
CMPT 300: Operating Systems Review THIS REIVEW SHOULD NOT BE USED AS PREDICTORS OF THE ACTUAL QUESTIONS APPEARING ON THE FINAL EXAM.
Chapter 13 Embedded Systems
Threads CSCI 444/544 Operating Systems Fall 2008.
Figure 1.1 Interaction between applications and the operating system.
CENG334 Introduction to Operating Systems Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
Cyclic Scheduling –Advantages Simple implementation (no real-time operating system is required). Low run-time overhead. It allows jitter control. –Disadvantages.
Optimizing Linux for Better Real-time Performance Presenter: Raj Johnson.
RTOS Design & Implementation Swetanka Kumar Mishra & Kirti Chawla.
Wind River VxWorks Presentation
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
OS Porting & Abstraction Lab (OS PAL) Product Demonstration Presented by: Raj Johnson, President & CEO MapuSoft.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community College,
LWIP TCP/IP Stack 김백규.
Providing Bluetooth Functionality on Embedded Devices: A look at Embedded Operating Systems and Bluetooth Stacks Brian Fox Supervisors: Dr Greg Foster.
Challenges in Porting Embedded Applications Presenter: Raj Johnson.
Real-Time Systems Design1 Priority Inversion When a low-priority task blocks a higher-priority one, a priority inversion is said to occur Assume that priorities:
Getting Started with the µC/OS-III Real Time Kernel Akos Ledeczi EECE 6354, Fall 2015 Vanderbilt University.
A Comparative Study of the Linux and Windows Device Driver Architectures with a focus on IEEE1394 (high speed serial bus) drivers Melekam Tsegaye
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Real-Time Linux Evaluation NASA Glenn Research Center Kalynnda Berens Richard Plastow
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
Lecture 8 Page 1 CS 111 Online Other Important Synchronization Primitives Semaphores Mutexes Monitors.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
1 VxWorks 5.4 Group A3: Wafa’ Jaffal Kathryn Bean.
Full and Para Virtualization
CSE 153 Design of Operating Systems Winter 2015 Midterm Review.
6.0 INTRODUCTION TO REAL-TIME OPERATING SYSTEMS (RTOS) 6.0 Introduction A more complex software architecture is needed to handle multiple tasks, coordination,
What is an Operating System? Various systems and their pros and cons –E.g. multi-tasking vs. Batch OS definitions –Resource allocator –Control program.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Concepts and Structures. Main difficulties with OS design synchronization ensure a program waiting for an I/O device receives the signal mutual exclusion.
Low Overhead Real-Time Computing General Purpose OS’s can be highly unpredictable Linux response times seen in the 100’s of milliseconds Work around this.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
FreeRTOS synopsis 김백규 -. FreeRTOS is … Real Time Kernel portable (ARM, AVR, x86, MSP430 etc.) open source ( mini size.
Computer System Structures
OS Changer Porting Kit Contents Application Common Operating Environment (AppCOE): An eclipse based IDE for development of C/C++ applications.
Virtualization.
Linux Optimization Kit Many developers need to get a performance increase from their Linux OS Linux OK allows users to achieve higher performance.
Using Ada-C/C++ Changer as a Converter Automatically convert to C/C++ to reuse or redeploy your Ada code Eliminate the need for a costly and.
Kernel Design & Implementation
Current Generation Hypervisor Type 1 Type 2.
Operating Systems Review ENCE 360.
CS 6560: Operating Systems Design
Process Description and Control
Lecture Topics: 11/1 General Operating System Concepts Processes
Lecture 4- Threads, SMP, and Microkernels
Operating Systems Lecture 1.
Major Topics in Operating Systems
February 5, 2004 Adrienne Noble
Cross-OS Development Platform Contents Application Common Operating Environment (AppCOE): An eclipse based IDE for development of C/C++ applications.
Outline Operating System Organization Operating System Examples
Operating Systems Structure
CSE 153 Design of Operating Systems Winter 2019
Presentation transcript:

Challenges in Porting & Abstraction

Getting Locked-In Applications are developed with a particular platform in mind The software is locked to the current platform If a component of that platform changes, the application will no longer run without costly changes to the code due to variances in platforms Reasons platforms change Changes in technical requirements Switching to more economical platforms Platform becomes obsolete Market & industry demands

Lots of time and money go into developing an application This investment must be protected when platforms change Developers need to leverage their existing software to re-coup the time and money Software reuse can be accomplished two ways: Porting existing code to a new platform Using an abstraction platform for new code development Challenges are brought about by variances in platforms Advantages of Software Reuse

OS Model & Type Variations Single address (with or without MMU) Virtual address (User/Kernel mode, Process model) Single or multi-core (SMP/Async) 16/32/64 bit architecture Real-time (RTOS) or non real-time Safety-critical, Security certifications (Do178B, ARINC653, etc.) OS Simulator (OS emulations on x86 host platform) OS to application bindings (direct access, message based, etc.) OS based on virtualization (emulator, hypervisor, etc.) API proprietary or standards based, such as POSIX, uITRON, etc. Variations in OS Platforms

OS Process API Variations Real-time vs. non real-time Process creation (spawn, exec, fork, etc.) Inter-process communication (signals, messaging, pipes, etc.) Shared memory (data protection) OS Task API Variations Scheduling models (priority based, time-slice, etc.) Priority levels & ranges Task stack variations Critical region protection Variations in OS Platforms

OS Messaging API Variations Fixed/Variable message queues Sending message (fixed vs. unlimited) OS Mutex API Variations Shared vs. use within a process Deadlock prevention (priority in-heritance, ceiling, etc.) Performance impact Variations in OS Platforms

OS I/O System API Variations Proprietary vs. UNIX/ANSI model Offers levels of I/O control functions (ioctl) Device driver model variations (Linux vs. Windows drivers) OS Semaphore API Variations Binary vs. counting semaphores Usage within & across processes Dispatch order (FIFO, LIFO, Priority) Suspension (Polling vs. true) Variations in OS Platforms

OS Memory API Variations Fixed vs. variable allocation Virtual, physical or shared Defrag algorithm Alignment issues(architecture dependency) OS Clock & Timer API Variations Hardware Clock (timer interrupts per second) System Tick (interrupts per tick) Timer resolution Sleep & other application waits Variations in OS Platforms

What is Porting? Porting is the ability to reuse software from one environment to another by making minimal changes to the existing code Porting can turn into a major code-rewrite if the underlying OS platforms are very different This is a tedious and error prone task

Importance of Porting Porting is usually quicker and cheaper than performing a full code rewrite Existing code already works and has been perfected in the field Throwing it away and starting from scratch because of a change in environments is not sensible A porting tool can greatly decrease the amount of manual work involved

Challenges in Porting Differences in OS APIs Missing OS functionalities Obsolete APIs Managing multiple code bases across different OS versions Misleading POSIX portability

What is Abstraction? Abstraction provides the ability to develop software that can be re- used across multiple environments without changing the code A good abstraction protects software investment Keeps it from being locked-to a particular platform from day one

Importance of Abstraction Negates future porting issues and protects the code Avoids shifting the focus from the organization’s core competencies Ensures that the fundamental OS resources behave the same across all platforms Reduces potential learning curve and makes the concept of code reuse easier to adopt

Importance of Abstraction Allows for development of host based proof-of-concept application quickly Product development knowledge is not locked to a specific vendor’s tools, IDE or platform Hardware changes won’t impact applications Application development team can keep developing without worrying about changes to the hardware or underlying platform

Challenges in Abstraction Has to support a variety of operating systems and account for new versions in the future Should not impact the application’s performance Should not fully rely on the underlying OS

Abstraction Model Components Portability Support for a wide variety of OS, able to account for variances Able to support a new OS quickly API compliance at behavior level, not just interface level Performance Resource pooling API profiling & optimization Just-In-Time Virtualization of OS Models

Abstraction Model Components Stability & Robustness Mission critical features OS hardening Development Flexibility Simple, intuitive and thread-safe APIs Multiple API use within a single application Scalability within a component API usage across process, user-mode or kernel-mode

Questions? Contact MapuSoft MAPUSOFT Q & A