How It All Fits Together

Slides:



Advertisements
Similar presentations
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Advertisements

What's new in Microsoft Visual C Preview
Module R2 CS450. Next Week R1 is due next Friday ▫Bring manuals in a binder - make sure to have a cover page with group number, module, and date. You.
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
Modified from Silberschatz, Galvin and Gagne ©2009 Lecture 7 Chapter 4: Threads (cont)
490dp Synchronous vs. Asynchronous Invocation Robert Grimm.
1 Concurrent and Distributed Systems Introduction 8 lectures on concurrency control in centralised systems - interaction of components in main memory -
Programming Excel Macros, Visual Basic, and Solving Your Problem.
Event-Driven Programming Vivek Pai Dec 5, GedankenBits  What does a raw bit cost?  IDE  40GB: $100  120GB: $180  32MB USB Pen: $38  FireWire:
CS533 Concepts of Operating Systems Class 3 Integrated Task and Stack Management.
1 I/O Management in Representative Operating Systems.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Windows audio architecture Win MM Application DirectSound Application SysAudio.SYS Kmixer.SYS WinMM.DLLDSound.DLL Device Drive Container USB Device Driver.
(a) Alice and Bob are back together. Today Alice wants to send Bob a message that is secret and also authenticated, so that Bob "knows" the message came.
Chapter 4: Threads. 4.2CSCI 380 Operating Systems Chapter 4: Threads Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux.
Visual Basic Games: Prepare for Hangman
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
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.
Rapid Development of High Performance Servers Khaled ElMeleegy Alan Cox Willy Zwaenepoel.
Operating Systems Lecture 7 OS Potpourri Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of Software.
CS 346 – Chapter 4 Threads –How they differ from processes –Definition, purpose Threads of the same process share: code, data, open files –Types –Support.
Fall 2006 Florida Atlantic University Department of Computer Science & Engineering COP 4814 – Web Services Dr. Roy Levow Part 2 – Ajax Fundamentals.
Source: Operating System Concepts by Silberschatz, Galvin and Gagne.
OS2014 PROJECT 2 Supplemental Information. Outline Sequence Diagram of Project 2 Kernel Modules Kernel Sockets Work Queues Synchronization.
Chapter 4 – Threads (Pgs 153 – 174). Threads  A "Basic Unit of CPU Utilization"  A technique that assists in performing parallel computation by setting.
Writing a Run Time DLL The application loads the DLL using LoadLibrary() or LoadLibraryEx(). The standard search sequence is used by the operating system.
CMSC 202, Version 3/02 1 Copy Constructors and Overloaded Assignment.
1: Operating Systems Overview 1 Jerry Breecher Fall, 2004 CLARK UNIVERSITY CS215 OPERATING SYSTEMS OVERVIEW.
University of Maryland Paradyn as a Strict Dyninst Client James Waskiewicz.
Processes CS 6560: Operating Systems Design. 2 Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode.
Introduction to Operating Systems and Concurrency.
CSE 332: Design Patterns Review: Design Pattern Structure A design pattern has a name –So when someone says “Adapter” you know what they mean –So you can.
Online Speaking Examination System RunTime5 Anadolu University
1 Why Threads are a Bad Idea (for most purposes) based on a presentation by John Ousterhout Sun Microsystems Laboratories Threads!
CS533 Concepts of Operating Systems Jonathan Walpole.
Microsoft Foundation Classes
Multithreading vs. Event Driven in Code Development of High Performance Servers.
cs612/2002sp/projects/ CS612 Term Projects cs612/2002sp/projects/
Introduction to Operating Systems
OPERATING SYSTEM CONCEPT AND PRACTISE
Classes and Objects.
CS501 Advanced Computer Architecture
Microprocessor Systems Design I
CS 6560: Operating Systems Design
A Scheme concurrency library
Java Beans Sagun Dhakhwa.
CSE451 I/O Systems and the Full I/O Path Autumn 2002
CS 3305 System Calls Lecture 7.
Modularity and Memory Clearly, programs must have access to memory
Threads and Locks.
Main Memory Management
Threads and Cooperation
Chapter 14: Protection.
AJAX Robin Burke ECT 360.
6 Delegate and Lambda Expressions
CS703 - Advanced Operating Systems
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Lesson 7. Events, Delegates, Generics.
Multithreaded Programming
Review: Design Pattern Structure
Lecture Topics: 11/1 General Operating System Concepts Processes
Student: Popa Andrei-Sebastian
Midterm Review Brian Kocoloski
How & When The Kernel Runs
CS510 Operating System Foundations
Why Events Are a Bad Idea (for high concurrency servers)
CrawlBuddy The web’s best friend.
Lecture 12 Input/Output (programmer view)
Events, Delegates, and Lambdas
Presentation transcript:

How It All Fits Together Core Language Implementation Language / FFI-specific ‘glue’ ActiveX Substrate

How an ActiveX Object Looks At Runtime Language implementation value type Substrate-provided thread-safe wrapper object 32-bit raw, un-thread-safe object pointer

How Event / Notification Queues Work At Runtime Language Runtime Implementation Non-blocking (but polling) Notifications Events Obj, Data Choose event style to fit impl. model Asynchronous (languages with such support) Win32 Event Handles (signaled on new entries)

Problem? Research Languages Can’t ‘Do Anything’ Substrate provides: Simple, C-based wrappers for Raw ActiveX objects creation / manipulation Event / Notification handlers Type information Thread safety A way to avoid spending months learning to implement IDispatch

What do researchers (minimally) write? VARIANT-to-<langtype> wrapper, and back Substrate calls this change data types upon function calls and returns Addition of a storage class or subtype for ‘ActiveX handles’ Simple wrappers for C functions (creation, etc.)

What else can researchers wrap? Asynchronous or non-blocking (polling-based) event handling Handles both dynamic [source] interfaces and IPropertyNotifySink Type library information Coclasses with all interfaces, not just [default] Interfaces and all of their methods Constant information

Driving IE from Scheme (define ie (create-object “InternetExplorer.Application”)) (define ie-source-iid "{EAB22AC2-30C1-11CF-A7EB-0000C05BAE0B}") (invoke ie "Navigate" "http://www.lars.com/") (register-object-event-handler! ie ie-source-iid "BeforeNavigate" (lambda (a b c d e f) (format #t "The user left lars.com! How *rude*!~%"))) (put ie "Visible" #t)

Making the Agent Say Something More Interesting (define agent-control (create-object "Agent.Control.1")) (put agent-control "Connected" #t) (define agent-characters (get agent-control "Characters")) (invoke agent-characters "Load" "clippit" "C:/program files/microsoft \ office/office/clippit.acs") (define clip-it (invoke agent-characters "Character“ "clippit")) ;; Mua-ha-ha! (invoke clip-it "Show") (invoke clip-it "Speak" "I'm a twisted, evil piece of metal... but at least I don't have to write C code!")