PROJECT IN DISTRIBUTED SYSTEMS IPERF FOR ANDROID Developers: Shir Degani, Yuval Degani Supervisors: Prof. Roy Friedman, Alex Kogan.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Lesson 4 0x Operating Systems.
Operating Systems Manage system resources –CPU scheduling –Process management –Memory management –Input/Output device management –Storage device management.
Implementation of an Android Phone Based Video Streamer 2010 IEEE/ACM International Conference on Green Computing and Communications 2010 IEEE/ACM International.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
CS-3013 & CS-502, Summer 2006 Virtual Machine Systems1 CS-502 Operating Systems Slides excerpted from Silbershatz, Ch. 2.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Installing Windows XP Professional Using Attended Installation Slide 1 of 41Session 2 Ver. 1.0 CompTIA A+ Certification: A Comprehensive Approach for all.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Android Introduction Platform Overview.
Lesson 4 Computer Software
Intro to Android Programming George Nychis Srinivasan Seshan.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Ceng Operating Systems
Introduction to Android Swapnil Pathak Advanced Malware Analysis Training Series.
9/13/20151 Threads ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original slides.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Outline Overview Video Format Conversion Connection with An authentication Streaming media Transferring media.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
COP2800 – Computer Programming Using JAVA University of Florida Department of CISE Spring 2013 Lecture 35 – Overview of Java Web Programming Webpage:
Android Security Model that Provide a Base Operating System Presented: Hayder Abdulhameed.
Educational & entertraiment applications on Android platform «Piano» and «Abetare» Anisa Shehu Prof. Asoc. Elinda Meçe 14 th Workshop “Software Engineering.
OPERATING SYSTEMS BY LANDON, KYLE, AND ETHAN. WHAT IS THEIR PURPOSE? (1) manage the computer's resources, such as the central processing unit (2) establish.
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
INRIA - Progress report DBGlobe meeting - Athens November 29 th, 2002.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Performed By: Itamar Niddam and Lior Motorin Instructor: Inna Rivkin Bi-Semesterial. Winter 2012/2013 3/12/2012.
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
THE WINDOWS OPERATING SYSTEM Computer Basics 1.2.
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
Security-Enhanced Linux Stephanie Stelling Center for Information Security Department of Computer Science University of Tulsa, Tulsa, OK
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Introduction to Programming 1 1 2Introduction to Java.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Introduction to Android Chapter 1 1. Objectives Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Computer System Structures
Android Mobile Application Development
Lesson 4 0x Operating Systems.
Lecture 1-Part 2: Operating-System Structures
Chapter 2: System Structures
What is an Operating System?
Computer Software CS 107 Lecture 2 September 1, :53 PM.
Chapter 2: System Structures
Chapter 3: Operating-System Structures
Chapter 2: The Linux System Part 1
Chapter 2: Operating-System Structures
Android Platform, Android App Basic Components
Chapter 2: Operating-System Structures
Lecture 6 Introduction to Process Management
Presentation transcript:

PROJECT IN DISTRIBUTED SYSTEMS IPERF FOR ANDROID Developers: Shir Degani, Yuval Degani Supervisors: Prof. Roy Friedman, Alex Kogan

Project Goal  The project is based around a common open-source tool called "iperf", which is widely used for bandwidth measurement in Linux and Windows environments.  Our main goal is to port iperf to Android environment, so it can be used to measure performance across networks within a mobile device, running as a client or server.

Secondary Goals  Ability to perform iperf tests using the Android version with original versions running on a PC or laptop using Linux/Windows.  To provide all the functionality and features of the original PC version.  To provide the user with a friendly GUI for a mobile device and use the same parameters and commands as in the original version.

Tools used in the project  Android SDK as the standard environment.  Android NDK, Native Development kit, which allows integration of C code into the Java environment.

Basic Architecture  Our project consits of two parts:  Modified source-code of iperf, configured to be compiled using NDK, and run on Android.  Java code of the Android application consisting of a GUI and code for running the compiled iperf executable.  The advantages of this "Divide and Conquer" approach, is that we promise minimum changes to already working algorithms of iperf, and thus making it compatible with other machines running the original iperf.

Basic Architecture - Chart Android Java application iperf executable cross-compiled for Android ARM enviroments. iperf modified C source-code Android NDK “IperfTask“ class

Design Decisions  The main decision that had to be made was whether to rewrite the original code to java or to use the existing C code with modifications.  Since our intentions were to keep compatibility and reliability to the maximum, we have decided to use the original code.

User interface  The user interface is designed to be as similar as possible to the original version, with small changes to make it touch-screen friendly.

User interface - Screenshots

Class Diagram Android application package (iperf.apk) “iperf” iperf executable cross-compiled for Android. “iperf_activity.xml” Layout properties of the application. “IperfProject.java” Main source file for the application. Initialization methods GUI functionality Class “IperfTask” Test Invocation

Class “IperfTask”  Test invocation code - the interface between the Android application and the iperf executable running in the background in a terminal.  This code consists of a special class called "IperfTask" which extends the class "AsyncTask".  AsyncTask is a built-in method of Android that allows running processes in the background and occasionally updates the GUI upon changes in output. With every test invocation, a new instance of this class is made so it can run in the background while the output streams correctly to screen.

Class “IperfTask” - continued  This special class allows this functionality with no harm to the performance of the test, as it is scheduled by the system when resources are free.  When a test ends, or aborted by the user, the process is terminated, clearing up memory for the next test to be run.  Before every test we also check the input from the user to match certain syntax that iperf supports, using a regular expression. This is done in order to prevent any exploitation of the shell interface.

Timing in Android environments  Iperf measures bandwidth using simple computations of time differences between submissions and retrievals of data packets.  This is done in the original code using “gettimeofday()” system function (sys/time.h).  In our modified version this is done in the same way, but an Android implementation is used when running.  In the Android version, the functionality is basically the same, since this is a system function that runs on the kernel outside of the Dalvik VM.  Our conclusion is that no difference should arise between the two versions, since Android provides the same functionality as being linux-like.

Changes to the original source code  For compiling the code so it could run on the Android platform, we used the linux 32bit configuration for x86 processors as a baseline.  We tested numrous additional configurations until we got it to compile and run on an Android ARM terminal with the exact functionality as running it on a linux terminal.

Changes to the original source code - continued To summarize the changes and additions that exist in the final version: 1. Application.mk - makefile to configure the filenames and working directories for NDK. 2. Android.mk - makefile for compile and build instructions for NDK. 3. Source files - we moved the original source files to a single directory that contains only the relevant code for this build. 4. changes in the files themselves revolved around correcting the system dependencies of the original code, mainly involving includes definitions. We made a special effort not to change the code itself, thus we retain the original functionality of the source code. All the features of the original iperf remain the same, including multithreaded testing (- P), UDP testing (-U), etc.

The End.