UCoM Software Architecture Universal Communicator Research UCoM Programming Model The Problem  Multi-threaded code is difficult to write.

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Threads. Objectives To introduce the notion of a thread — a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
CS533 Concepts of Operating Systems Class 5 Integrated Task and Stack Management.
Continuously Recording Program Execution for Deterministic Replay Debugging.
Concurrent Processes Lecture 5. Introduction Modern operating systems can handle more than one process at a time System scheduler manages processes and.
Avishai Wool lecture Priority Scheduling Idea: Jobs are assigned priorities. Always, the job with the highest priority runs. Note: All scheduling.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Server Architecture Models Operating Systems Hebrew University Spring 2004.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
3.5 Interprocess Communication
Multithreaded Java COMP1681 / SE15 Introduction to Programming Fast Track Session 3.
CS533 Concepts of Operating Systems Class 7 Integrated Task and Stack Management.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for Threads.
Multithreading in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
PRASHANTHI NARAYAN NETTEM.
Threads math 442 es Jim Fix. Reality vs. Abstraction A computer’s OS manages a lot: multiple users many devices; hardware interrupts multiple application.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
Cooperative Task Management without Manual Stack Management Or, Event-driven Programming is not the Opposite of Thread Programming Atul Adya, John Howell,
1 Advanced Computer Programming Concurrency Multithreaded Programs Copyright © Texas Education Agency, 2013.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Overview of Threading with the.NET Framework  Wallace B. McClure  Scalable Development, Inc. Scalable Development, Inc. Building systems today that perform.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Threads and Processes.
Threads in Java. History  Process is a program in execution  Has stack/heap memory  Has a program counter  Multiuser operating systems since the sixties.
Chapter 101 Multiprocessor and Real- Time Scheduling Chapter 10.
111 © 2002, Cisco Systems, Inc. All rights reserved.
 2004 Deitel & Associates, Inc. All rights reserved. 1 Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for.
Background: I/O Concurrency Brad Karp UCL Computer Science CS GZ03 / M030 2 nd October, 2008.
1 Concurrency Architecture Types Tasks Synchronization –Semaphores –Monitors –Message Passing Concurrency in Ada Java Threads.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Mutual Exclusion.
Cooperative Task Management without Manual Stack Management or, Event-driven programming is Not the Opposite of Threaded Programming Atul Adya, Jon Howell,
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
Cooperative Task Management without Manual Stack Management OR Presented by Tina Swenson CS533 - February 12, 2007 Event-driven Programming is Not the.
Department of Computer Science and Software Engineering
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
CSE 60641: Operating Systems Next topic: CPU (Process/threads/scheduling, synchronization and deadlocks) –Why threads are a bad idea (for most purposes).
1 Cooperative Task Management without Manual Stack Management or Event-driven Programming is not the Opposite of Threaded Programming Atul Adya, Jon Howell,
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
Chapter 7 - Interprocess Communication Patterns
Threads-Process Interaction. CONTENTS  Threads  Process interaction.
Atul Adya, Jon Howell, Marvin Theimer, William J. Bolosky, John R. Douceur Microsoft Research Presented by Poonam Singh CS 533 – Winter 2010.
4.1 Introduction to Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads.
Cooperative Task Management without Manual Stack management Hanyun Tao EECS 582 – W161.
Assembly Language Co-Routines
CHAPTER 7 CONCURRENT SOFTWARE Copyright © 2000, Daniel W. Lewis. All Rights Reserved.
Mac OS X Cate Wardell Tim Miller Tina Han Kenan Shifflett Zach Debord.
SMP Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
Introduction to operating systems What is an operating system? An operating system is a program that, from a programmer’s perspective, adds a variety of.
CITA 171 Section 1 DOS/Windows Introduction. DOS Disk operating system (DOS) –Term most often associated with MS-DOS –Single-tasking operating system.
740: Computer Architecture Memory Consistency Prof. Onur Mutlu Carnegie Mellon University.
Chapter 4 – Thread Concepts
Introduction to threads
Chapter 4 – Thread Concepts
COP 4600 Operating Systems Fall 2010
Cooperative Task Management without Manual Stack Management or, Event-driven Programming is Not the Opposite of Threaded Programming Atul Adya, Jon Howell,
Chapter 15, Exploring the Digital Domain
Chapter 26 Concurrency and Thread
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
Last Week Introduced operating systems Discussed the Kernel
Operating Systems : Overview
Concurrency: Mutual Exclusion and Process Synchronization
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
- When you approach operating system concepts there might be several confusing terms that may look similar but in fact refer to different concepts:  multiprogramming, multiprocessing, multitasking,
Process State Model -Compiled by Sheetal for CSIT
Presentation transcript:

UCoM Software Architecture

Universal Communicator Research UCoM Programming Model The Problem  Multi-threaded code is difficult to write and debug. Our goal is to reduce subtle concurrency bugs and race conditions Our Approach  Program written in terms of tasks that are not pre- emptively scheduled, i.e., cooperative multi-tasking  No mutual exclusion work by programmer  Only one task active at any time

Universal Communicator Research What are Tasks in UCoM Sequence of operations possibly containing I/O operations (e.g., network receives) Whole address space is “locked” for the task until it relinquishes control: Piecewise Serial “Lock” released automatically when task performs I/O Programmer must validate state after “reacquiring” lock; similar to high-performance servers Like event-driven programming but without inconvenience of using continuation-passing style in C/C++/C#.

Universal Communicator Research Support for UCoM Tasks Threads needed to achieve task abstraction: Scheduler thread for controlling execution One or more threads per type of I/O: network, disk, UI, brick Pool of worker threads for programmer tasks; Win32 fibers would be better but not available in WinCE When I/O request (e.g., file read) occurs in a task: Event posted on relevant I/O thread; task scheduled out I/O completes: result posted on scheduler thread Worker thread resumed ultimately with result