Application Design Document Developers: o Uri Goldenberg 039078191 o Henry Abravanel 310739693 o Academic.

Slides:



Advertisements
Similar presentations
Designing Reusable Frameworks for Test Automation
Advertisements

Operating System.
Operating System Structures
Programming Types of Testing.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
1 Threads, SMP, and Microkernels Chapter 4. 2 Process: Some Info. Motivation for threads! Two fundamental aspects of a “process”: Resource ownership Scheduling.
1/21/2008CSCI 315 Operating Systems Design1 Operating System Structures Notice: The slides for this lecture have been largely based on those accompanying.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
Common System Components
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
1 Input/Output Chapter 3 TOPICS Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Reference: Operating Systems Design.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems.
Copyright © 2001 by Wiley. All rights reserved. Chapter 1: Introduction to Programming and Visual Basic Computer Operations What is Programming? OOED Programming.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
ADVANCED LINUX SECURITY. Abstract : Using mandatory access control greatly increases the security of an operating system. SELinux, which is an implementation.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Presented by: Alvaro Llanos E.  Motivation and Overview  Frangipani Architecture overview  Similar DFS  PETAL: Distributed virtual disks ◦ Overview.
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 11 Case Study 2: Windows Vista Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Networked File System CS Introduction to Operating Systems.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Disk Access. DISK STRUCTURE Sector: Smallest unit of data transfer from/to disk; 512B 2/4/8 adjacent sectors transferred together: Blocks Read/write heads.
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze Unit OS6: Device Management 6.1. Principles of I/O.
CASE STUDY 1: Linux and Android Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
OS provide a user-friendly environment and manage resources of the computer system. Operating systems manage: –Processes –Memory –Storage –I/O subsystem.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems CSCI-6140 – Computer Operating Systems David Goldschmidt, Ph.D.
Computer Systems Organization CS 1428 Foundations of Computer Science.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
Exploring an Open Source Automation Framework Implementation.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 6 System Calls OS System.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
CE Operating Systems Lecture 3 Overview of OS functions and structure.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
Chapter One An Introduction to Programming and Visual Basic.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Virtual File System for Streaming Video Developers: – Uri Goldenberg – Henry Abravanel
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
CSNB334 Advanced Operating Systems 3. Kernel Structure and Organization Lecturer: Abdul Rahim Ahmad.
CS 6560: Operating Systems Design
CS 3305 System Calls Lecture 7.
Operating System Structure
The PCI bus (Peripheral Component Interconnect ) is the most commonly used peripheral bus on desktops and bigger computers. higher-level bus architectures.
Threads & multithreading
Computer Science I CSC 135.
Threads, SMP, and Microkernels
Page Replacement.
CS703 - Advanced Operating Systems
Chapter 33: Virtual Machines
Lecture 4- Threads, SMP, and Microkernels
Threads Chapter 4.
Chapter One: An Introduction to Programming and Visual Basic
Chapter 2: Operating-System Structures
Operating Systems Lecture 3.
Introduction to Operating Systems
Outline Operating System Organization Operating System Examples
System calls….. C-program->POSIX call
Chapter 2: Operating-System Structures
An Introduction to Operating Systems
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Chapter 33: Virtual Machines
Presentation transcript:

Application Design Document Developers: o Uri Goldenberg o Henry Abravanel o Academic Advisor: o Prop. Michael Elhadad, Senior Lecturer at the Department of Computer Science, Ben-Gurion University of the Negev. Professional Advisor: o Barak Bar-Orion, Team Leader at Gefen Dekel Technologies LTD, Dalet

Abstract We would like to enable applications that require digital video with specific container format and video codec as data source to use digital video actually stored with a different container format transparently using a Virtual File System (VFS). The VFS module will give access to “virtual” video files in the desired container format, by producing the desired format on the fly given the actual file format as input.

System Architecture Fuse kernel module register with VFS. Our user space file system will link with FUSE library. File system calls are passed to FUSE library which invokes associated FUSE operation in our file system. The user is not aware of the underline wrapping system and all system calls are handled transparently by our file system

Functional requirements Virtual File System o The VFS should list virtual video files according to pre-configured rules. o The VFS should serve virtual video files as if the they existed. Upon request to read such a file, the Transcoding module should wrap the source non- interleaved video files, and then the VFS should serve it. o The VFS should allow write operations on interleaved files. Upon such a request, the VFS should pass the video file to the Transcoding module for unwrapping and writing of non-interleaved files.

Functional requirements Transcoder o Transcoder should wrap/unwrap non- interleaved/interleaved video files. o Scope of target file formats (containers) are: MPEG4, MXF, MOV (Quicktime) ordered by priority. Scope of supporting codecs are: H264, DV, MPEG2 ordered by priority.

Functional requirements Configuring o The system should allow configuration of these parameters:  Source files directory  Cache directory  Mount directory  Target files naming convention and container formats

Non-Functional Requirements Performance constraints o Reliability - It is essential that the system will work without errors and will not require reload especially assuming that it should work all the time. o Availability - The system should be available all the time. o Usability - Due to the fact that the system is essentially a VFS, its interface is as any other file system. Hence there is no usability considerations on this interface. The monitoring interface should be easy to understand and well documented. Moreover, the configuration file should be written in a format that is easily editable.

Non-Functional Requirements Platform constraints o Operating System  The system will only work under Linux with kernel version of 2.6.X. o Extra Dependencies  FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video.  FUSE (Filesystem in Userspace ) is a loadable kernel module for Unix-like computer operating systems, that allows non-privileged users to create their own file systems without editing the kernel code. This is achieved by running the file system code in user space, while the FUSE module only provides a "bridge" to the actual kernel interfaces.

Main Classes Overview

Main Classes Configuration Parse Configuration files o Includes the following parameters: o Input Directory o Cache Directory o Mount Point o Audio and Video to Container mappings Check existence of the above directories Create bitmaps for containers and formats for fast lookups FFMPEG Handler Allocate resources for wrapping. Call FFMpeg with correct command line for wrapping and unwrapping

Main Classes Formats Manager All elementary files read must comply to the following naming convention.. _. For each target container must have one video elementary file and one or more audio elementary files. Virtual target naming convention will be _..._. Find All possible target containers for all elementary files in input directory in order to support the virtual directory listing. Find Elementary file names from virtual file name in order to correctly wrap request for the virtual file.

Main Classes Fuse Main Main class of the project o Read and parse configuration. o Call FUSE to create a virtual file system in the configured mount point. o Implements virtual file system functions:  Read Directory (similar to Dir)  Open File  Get attributes  Read File  Write File*

Main Classes Monitor Data This class Is responsible of monitoring the following parameters:  Files being wrapped.  Serve bit rate.  Cache size.  RAM usage.  CPU usage.  Files that already wrapped. The interface to this class for the user will be a virtual file that when reading it return all the information stored in this class.

Algorithms Read Directory (Get file list of all virtual files) The following algorithm allows us to calculate all virtual files in 1 pass over input directory regardless number of configurations available and number of files. o all files = Read All files in Input directory in Alphabetic order( Input Directory) o For each group X of files with the same name in all files  Elementary extensions = 0  For each file Y in X  extension bit = Find configuration bit (Y)  (Elementary extensions) = (Extension bit) | (Elementary extensions)  Find all Available containers (Elementary extensions)

Algorithms Wrapping Execution of Wrapping file will be upon opening it. Check if file is already in cache, or in input directory. If Virtual file does not exist. o Calculate Video elementary file from Virtual file name. o Calculate All Audio elementary file from Virtual. o Create a new working Proccess  Call FFMPEG module to start wrapping o Read file while working

Testing Testing the project is done in 3 levels. Unit testing: To accomplish unit testing we use Cunit module. Each main function is tested in a success scenario, fail scenario and Interesting input scenarios we might find. Every revision of the project must pass all unit tests or at least understand why a specific test fail. Functional testing: The system should pass an easy scenario of listing 1 file, wrapping it and running it simultaneously. System testing: These tests are done manually. We should test difficult scenarios of multiple wrapping, Various formats. And examine Ram usage,CPU usage and possible synchronization bugs.

Tasks List Finish coding for the functional requirements. (15.5) Check system performance. (Memory usage, CPU usage, How many wrappings can be done simultaneously) (22.5) MXF, MOV format checking and testing. (29.5) Un-wrapping coding and testing. (12.6)