C C Implementation  Prototype based on Firefox 3.0b2 codebase/ Spidermonkey VM  Uses SM contexts to manage multiple JavaScript execution contexts simultaneously.

Slides:



Advertisements
Similar presentations
Presented by Vaibhav Rastogi. Current browsers try to separate host system from Web Websites evolved into web applications Lot of private data on the.
Advertisements

Threads, SMP, and Microkernels
The Case for JavaScript Transactions Mohan Dhawan, Chung-chieh Shan, Vinod Ganapathy Department of Computer Science Rutgers University PLAS 2010.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
February 11, 2007 Can Ajax be OS for the Browser? Kevin Hakman Co-Founder General Interface Ajax Toolkit Director, Developer Evangelism TIBCO Software.
DEPARTMENT OF COMPUTER ENGINEERING
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Legion Worldwide virtual computer. About Legion Made in University of Virginia Object-based metasystems software project middleware that connects computer.
Sanzaru Capability-Based Interactions for Web Applications Raluca Sauciuc Shaunak Chatterjee University of California, Berkeley Motivation Limitations.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
The Origin of the VM/370 Time-sharing system Presented by Niranjan Soundararajan.
Phu H. Phung Chalmers University of Technology JSTools’ 12 June 13, 2012, Beijing, China Joint work with Lieven Desmet (KU Leuven)
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
XML on the Web: is it still relevant? O'Neil D. Delpratt.
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
ExtWebDriver Open Source Project Daniel Koo Latha Nagaraj Bryan Robbins 04/23/2014.
TEMPLATE DESIGN © Efficient Crawling of Complex Rich Internet Applications Ali Moosavi, Salman Hooshmand, Gregor v. Bochmann,
Yahoo! User Interface (YUI) Library Natly Mekdara.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Operating Systems.  Operating System Support Operating System Support  OS As User/Computer Interface OS As User/Computer Interface  OS As Resource.
Programming the Web Web = Computer Network + Hypertext.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Tessellation: Space-Time Partitioning in a Manycore Client OS Rose Liu 1,2, Kevin Klues 1, Sarah Bird 1, Steven Hofmeyr 3, Krste Asanovic 1, John Kubiatowicz.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
111 © 2002, Cisco Systems, Inc. All rights reserved.
Windows NT Operating System. Windows NT Models Layered Model Client/Server Model Object Model Symmetric Multiprocessing.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
Computer Science Lecture 7, page 1 CS677: Distributed OS Multiprocessor Scheduling Will consider only shared memory multiprocessor Salient features: –One.
RUBRIC IP1 Ruben Botero Web Design III. The different approaches to accessing data in a database through client-side scripting languages. – On the client.
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration.
Quick overview of ASP.NET Ajax Ajax deep-dive Cover some key real-world problems Discuss solutions, patterns, opportunities Lots of demos And more of.
REAL WORLD AJAX MARCH TIBCO USER CONFERENCE / 2004 Enterprise Rich Internet Applications with AJAX Real World Case Studies with TIBCO General Interface™
Vaibhav Rastogi and Yi Yang.  SOP is outdated  Netscape introduced this policy when most content on the Internet was static  Differences amongst different.
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models  Many-to-One  One-to-One  Many-to-Many Thread Libraries  Pthread.
Operating Systems: Internals and Design Principles
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
1 Isolating Web Programs in Modern Browser Architectures CS6204: Cloud Environment Spring 2011.
Trevor Jim Nikhil Swamy Michael Hicks Defeating Script Injection Attacks with Browser-Enforced Embedded Policies Jason FroehlichSeptember 24, 2008.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
CS533 Concepts of Operating Systems Jonathan Walpole.
Operating Systems CMPSC 473 Processes (5) September Lecture 11 Instructor: Bhuvan Urgaonkar.
ASP.Net ICallback Vijayalakshmi G M Senior Trainer Binary Spectrum.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Processes Chapter 3. Processes in Distributed Systems Processes and threads –Introduction to threads –Distinction between threads and processes Threads.
Martin Kruliš by Martin Kruliš (v1.1)1.
Threads by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
Technologies For Creating Rich Internet Applications Presenter's name
Resource Management IB Computer Science.
Process Management Process Concept Why only the global variables?
Department of Computer Science
Chien-Chung Shen CIS/UD
Chapter 4: Multithreaded Programming
Event driven architectures
CS490 Windows Internals Quiz 2 09/27/2013.
Pentaho and Yahoo User Interface (YUI)
Parallel Programming in Contemporary Programming Languages (Part 2)
Operating Systems : Overview
Operating Systems : Overview
Virtual memory, parallel programming Jakub Yaghob
Operating Systems : Overview
Chapter 2 Operating System Overview
Presentation transcript:

C C Implementation  Prototype based on Firefox 3.0b2 codebase/ Spidermonkey VM  Uses SM contexts to manage multiple JavaScript execution contexts simultaneously  No static binding between threads and script spaces  “Migrating threads” enter and leave spaces based on event processing needs  CPU scheduling via interpreter hook (branch callback)  Implements Borrowed Virtual Time [Duda99] scheduler  Includes component-based management interface and UI for user interaction/adjustment  Current limitations: not parallel; Firefox components aren’t thread-safe; memory accounting not implemented Implementation  Prototype based on Firefox 3.0b2 codebase/ Spidermonkey VM  Uses SM contexts to manage multiple JavaScript execution contexts simultaneously  No static binding between threads and script spaces  “Migrating threads” enter and leave spaces based on event processing needs  CPU scheduling via interpreter hook (branch callback)  Implements Borrowed Virtual Time [Duda99] scheduler  Includes component-based management interface and UI for user interaction/adjustment  Current limitations: not parallel; Firefox components aren’t thread-safe; memory accounting not implemented C C C C C C Fine-Grained JavaScript Execution Isolation Using Script Spaces Motivation  Many emerging web/in-the-cloud applications rely on increasingly complex JavaScript components coexisting within one page: Rich Internet Application (RIA) frameworks; heavy use of JS libraries; third-party ready-to-include `widgets’  Client-side extensions (content scripts) interact with arbitrary pages  Current JavaScript environments lack namespace separation, fault and resource isolation; malfunctioning or malicious components affect entire page/tab and/or browser  Need for robust execution environment  Multi-process browsers provide partial solution: do not provide isolation below the level of individual tabs/pages and move resource management problem to underlying OS, which often lacks information about appropriate resource management strategies Motivation  Many emerging web/in-the-cloud applications rely on increasingly complex JavaScript components coexisting within one page: Rich Internet Application (RIA) frameworks; heavy use of JS libraries; third-party ready-to-include `widgets’  Client-side extensions (content scripts) interact with arbitrary pages  Current JavaScript environments lack namespace separation, fault and resource isolation; malfunctioning or malicious components affect entire page/tab and/or browser  Need for robust execution environment  Multi-process browsers provide partial solution: do not provide isolation below the level of individual tabs/pages and move resource management problem to underlying OS, which often lacks information about appropriate resource management strategies Amarjyoti Deka Acision, Inc. C C Script Spaces  Provide an abstraction for separate execution of JavaScript code components  Key features:  Unit of isolation  Configurable namespace  Separately schedulable  Separate termination  Separate resource accounting  Shared access to DOM  Backwards-compatible (within each space, a single-threaded environment; respects DOM event processing semantics)  Related work:  Orthogonal to work directed at improving security models or implementations (Caja, ConScript, etc.)  Design alternative to multi-process model  Complementary to emerging parallel browser implementations Script Spaces  Provide an abstraction for separate execution of JavaScript code components  Key features:  Unit of isolation  Configurable namespace  Separately schedulable  Separate termination  Separate resource accounting  Shared access to DOM  Backwards-compatible (within each space, a single-threaded environment; respects DOM event processing semantics)  Related work:  Orthogonal to work directed at improving security models or implementations (Caja, ConScript, etc.)  Design alternative to multi-process model  Complementary to emerging parallel browser implementations C C This work was partially funded by NSF CAREER Award CISE/SHF # Script Spaces/DOM Relationship: By default, each page executes within its own Script Space, but Script Spaces may also be created for portions of a page corresponding to sub trees of the DOM tree. Mash-Up Example: This iGoogle mash-up includes a CPU bound gadget (Fibonacci); using Script Spaces, the page remains responsive and other gadgets remain functional even when it is run. Script Space Manager: An extension displays existing script spaces and CPU consumption over time; users can adjust consumption of spaces or terminate them safely. Godmar Back Department of Computer Science, Virginia Tech