PEMWS – April 5, 2011 Program Execution Models What we can Learn from the Past Jack Dennis MIT Computer Science and Artificial Intelligence Laboratory.

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Chapt.2 Machine Architecture Impact of languages –Support – faster, more secure Primitive Operations –e.g. nested subroutine calls »Subroutines implemented.
Threads, SMP, and Microkernels
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Introduction CSCI 444/544 Operating Systems Fall 2008.
Chapter 6 User Protections in OS. csci5233 computer security & integrity (Chap. 6) 2 Outline User-level protections 1.Memory protection 2.Control of access.
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.
CS 345 Computer System Overview
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Enrique Blanco García © 2004 Introduction to the UNIX environment Enrique Blanco Cover from the book Modern operating systems. A. Tanenbaum.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Operating Systems CS451 Brian Bershad
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Informationsteknologi Friday, November 16, 2007Computer Architecture I - Class 121 Today’s class Operating System Machine Level.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
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.
Reduced Instruction Set Computers (RISC) Computer Organization and Architecture.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Where do We Go from Here? Thoughts on Computer Architecture TIP For additional advice see Dale Canegie Training® Presentation Guidelines Jack Dennis MIT.
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.
Computer System Architectures Computer System Software
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
CS240 Computer Science II Introduction to Unix Based on “UNIX for Programmers and Users” by G.Class and K. Ables.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Protocols and the TCP/IP Suite
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Chapter 3: Computer Software. Stored Program Concept v The concept of preparing a precise list of exactly what the computer is to do (this list is called.
INVITATION TO COMPUTER SCIENCE, JAVA VERSION, THIRD EDITION Chapter 6: An Introduction to System Software and Virtual Machines.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
VIRTUAL MEMORY By Thi Nguyen. Motivation  In early time, the main memory was not large enough to store and execute complex program as higher level languages.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
The Fresh Breeze Memory Model Status: Linear Algebra and Plans Guang R. Gao Jack Dennis MIT CSAIL University of Delaware Funded in part by NSF HECURA Grant.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
UNIX Unit 1- Architecture of Unix - By Pratima.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Operating Systems: Internals and Design Principles
Distributed Computing Systems CSCI 6900/4900. Review Distributed system –A collection of independent computers that appears to its users as a single coherent.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Introduction to OOP CPS235: Introduction.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 2.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Parallel IO for Cluster Computing Tran, Van Hoai.
1 Operating System Overview Chapter 2. 2 Operating System A program that controls the execution of application programs An interface between applications.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Copyright Prentice Hall, Inc. 1 Operating System Overview.
System is a set of interacting or interdependent components forming an integrated whole.
Computer Security: Chapter 5 Operating Systems Security.
CT101: Computing Systems Introduction to Operating Systems.
For Massively Parallel Computation The Chaotic State of the Art
Multics.
Hierarchical Architecture
Multiple Processor Systems
Lecture 4- Threads, SMP, and Microkernels
Presentation transcript:

PEMWS – April 5, 2011 Program Execution Models What we can Learn from the Past Jack Dennis MIT Computer Science and Artificial Intelligence Laboratory

What is a Program Execution Model?  Application Code  Software Packages  Program Libraries  Compilers  Utility Applications (API)PXM User Code  Hardware  Runtime Code  Operating System System

Features a User Program Depends On  Procedures; call/return  Access to parameters and variables  Use of data structures (static and dynamic) Features expressed within a Programming language  File creation, naming and access  Object directories  Communication: networks and peripherals  Concurrency: coordination; scheduling Features expressed Outside a (typical) programming language But that’s not all !!

Developments in the 1960s, 1970s  Personal Workstations  Distributed Systems  Internet Drop in interest in Execution Models for 20+ Years  Book on the B6700, Organick  Rice University Computer  Graph / Heap Model, Dennis  IBM System 38  Burroughs B5000 Project Started  Vienna Definition Method  Contour Model, Johnston  Common Base Language, Dennis HighlightsOther Events  IBM announces System 360  Project MAC Funded at MIT  Unravelling Interpreter, Arvind  Burroughs builds Robert Barton’s DDM1  RISC Architecture  Monsoon (1989)  Sigma 1 (1987)  Tasking introduced in Algol 68 and PL/I  IBM AS / 400

Contour Model: Algorithm; Nested Blocksand Contours - Johnston, 1971

Contour Model: Processor - Johnston, 1971

Contour Model: A Snapshot - Johnston, 1971

Two Processors Sharing Portions of Environment - Berry, Program with tasking - Record of Execution

Idea: A Common Base Language. This is a report on the work of the Computation Structures Group of Project MAC toward the design of a common base language for programs and information structures. We envision that the meanings of programs expressed in practical source languages will be defined by rules of translation into the base language. The meanings of programs in the base language is fixed by rules of interpretation which constitute a transition system called the interpreter for the base language. We view the base language as the functional specification of a computer system in which emphasis is placed on programming generality -- the ability of users to build complex programs by combining independently written program modules. - Dennis, 1972

Definition via Translator/Interpreter - Dennis, 1972

System State as a Tree Structure - Dennis, 1972

Graph / Heap Model Of Program Execution In our semantic model for extended data flow programs, values are represented by a heap, which is a finite, acyclic, directed graph having one or more root nodes, and such that each node of the heap may be reached over some path from some root node.  A snapshot of a data flow program in execution will now have two parts: a token distribution on the graph of the program, and a heap.  For each execution step some enabled link or actor is selected to fire; the result of firing is a new token distribution,  and in some cases, a modified heap. - Dennis, 1974

The Graph and Heap Model Select Graph Heap Select Before: After:

Burroughs B5000: History  : B5000: Development; First Customer Delivery  1964: B5500 (circuits three times faster)  1970: Last delivery of B5500 (220 sold)  1973: Organick Book published  : B6500 Announced; Delivered. More choices in memory tag. Full “time-sharing” in Master Control Prog.  : D825: Development for Navy; Delivery. “First True Multiprocessor”  1970?: B6700: Upgrade of B6500. No significant change to architecture.

Characteristics of the B5000 and Successors  Multiple Users – Sharing of Resources  Recursion in Block Structured Procedures  Hierarchical Multi-processor Tasking  Virtual Memory and Protection based on Segments

Burroughs 5000: A Shared Memory Multiprocessor. P P P P M M M M

The Burroughs Environment Display - Organick, 1973

The B5000 Task Hierarchy - Organick/Cleary, 1968

Multiple Tasks in a Shared Environment - Organick, 1973

A Snapshot with Multiple Tasks - Organick, 1973

Evolution of Virtual Memory  Manchester Atlas machine  Rice University Computer  Burroughs B5000 & Successors  Multics  IBM System 38, AS / 400  Paging - Kilburn  Segments, Codewords - Iliffe  Descriptors, Sharing - Barton  Segments with paging - Glaser, Dennis  Global object identifiers;  Unification of Memory and File System

Benefit of Memory Unification  In all current IBM Systems utilizing virtual storage management techniques, a job executed in a large virtual address space containing job-related structures and programs. A storage management component manages the transfer of portions of this address space to and from main storage as required.  Separate data management components manage the transfer of data between disks and buffers in the address space.  One of the major innovative features of System/38 is that, during normal operation, the storage management component, which is part of the microcode, provides the only interface to disk storage, and all programs, files, and work spaces are managed as address spaces. All System/38 components thus address data on disk uniformly through this component, greatly simplifying the design of the system.  For example, the data base component on System/38 is not concerned with buffers and disk I/O programs, but simply addresses a record in a file by its virtual address, relying on storage management to bring the data into main storage. -- IBM System/38 Technical Developments, 1978

Ensuring Repeatable Computation Here are three approaches to providing users a guarantee of repeatable computation when desired.  Design the API so that computations are repeatable unless a feature is used that permits nondeterminate behaviour (e.g. shared data transactions) to be expressed.  Provide a programming language and compiler that can ensure repeatable behaviour even when not guaranteed by the API,  Let the programmer fend for him/her self (as in current systems).

Motivation for Capabilities.  Information Sharing: Sharing is difficult on conventional systems because addressing is local to a single process. Sharing would be simplified if addresses could be transmitted between processes and used to access the shared data.  Protection and Security: On conventional systems all of a user’s objects are accessible to any program which the user runs. Protection would be enhanced if a user could restrict access to only those objects a program requires for its execution.  Capability: Each capability … locates by means of a pointer some computing object, and indicates the actions a computation may perform with respect to that object. - H. M. Levy, Dennis and Van Horn, 1966

Today’s Conventional Software Stack  Application Code, Etc. User Code:  Runtime Code System: (API)PXM (API)PXM  Operating System  Hardware (API)PXM Each system layer compensates for inadequacies of the layers below, leading to an inefficient whole.

Some Challenges for UHPC  Achieving ability to spread a workload over huge numbers of processing cores. This requires support for very fine grain management of tasks and data objects. Software techniques cannot achieve the best that can be done.  The memory model offered to application code by the PEM is crucial to achieving many desirable characteristics. For example, with a suitable memory model the state of a task can be represented by just the ip and ep of the contour model and switching a processing core to a new task becomes a trivial operation.

Monsoon - Arvind

Sigma 1

Characteristics One might Ask for  Multiple Users – Sharing of Resources  Dynamic Management of Processors and Memory.  Unification of “memory” and the file system.  Security and Privacy – Capability Model?  Composability of Software Components.  Guarantee of Repeatability when desired. In work with University of Delaware and Rice University we expect to demonstrate a PEM and an efficient massively parallel implementation that can achieve all of these characteristics.

Conclusion  We are in exciting times for the field of Computer System Architecture.  Our choices today can have immense impact on the future of information processing.  Let the work begin!