CS 715: the Design and Implementation of Gnu Compiler Generation Framework

Total Page:16

File Type:pdf, Size:1020Kb

CS 715: the Design and Implementation of Gnu Compiler Generation Framework CS 715: The Design and Implementation of Gnu Compiler Generation Framework Uday Khedker (www.cse.iitb.ac.in/˜uday) GCC Resource Center, Department of Computer Science and Engineering, Indian Institute of Technology, Bombay January 2012 CS 715 Gnu Compiler Collection: Outline 1/50 Outline • An Overview of Compilation Introduction, compilation sequence, compilation models • GCC: The Great Compiler Challenge Difficulties in understanding GCC • Meeting the GCC Challenge: CS 715 The course plan Uday Khedker GRC, IIT Bombay Part 1 Introduction to Compilation CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding Nothing is known except the problem No.of unbound objects Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding Overall strategy, algorithm, data structures etc. No.of unbound objects Conceptualisation Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding Functions, variables, their types etc. No.of unbound objects Conceptualisation Coding Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding No.of Machine instructions, registers etc. unbound objects Conceptualisation Coding Compiling Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding No.of unbound objects Addresses of functions, external data etc. Conceptualisation Coding Compiling Linking Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding No.of unbound objects Actual addresses of code and data Conceptualisation Coding Compiling Linking Loading Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 2/50 Binding No.of unbound objects Values of variables Conceptualisation Coding Compiling Linking Loading Execution Time Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 3/50 Implementation Mechanisms Source Program Translator Target Program Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 3/50 Implementation Mechanisms Source Program Input Data Translator Target Program Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 3/50 Implementation Mechanisms Source Program Source Program Input Data Translator Interpreter Target Program Machine Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 4/50 Implementation Mechanisms as “Bridges” • “Gap” between the “levels” of program specification and execution Program Specification Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 4/50 Implementation Mechanisms as “Bridges” • “Gap” between the “levels” of program specification and execution Program Specification Translation Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 4/50 Implementation Mechanisms as “Bridges” • “Gap” between the “levels” of program specification and execution Program Specification Translation Interpretation Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 4/50 Implementation Mechanisms as “Bridges” • “Gap” between the “levels” of program specification and execution State : Variables Program Specification Operations: Expressions, Control Flow Translation Interpretation State : Memory, Registers Machine Operations: Machine Instructions Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 5/50 High and Low Level Abstractions Input C statement a = b<10?b:c; Spim Assembly Equivalent lw $t0,4($fp) ; t0<-b # Is b smaller slti $t0, $t0, 10 ; t0 <- t0 < 10 # than 10? not $t0,$t0 ; t0<-!t0 bgtz $t0, L0: ; if t0>=0 goto L0 lw $t0,4($fp) ; t0<-b # YES b L1: ; gotoL1 L0: lw $t0, 8($fp) ;L0: t0 <- c # NO L1: sw 0($fp), $t0 ;L1: a <- t0 Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 5/50 High and Low Level Abstractions Condition Conditional jump Fall through Input C statement False Part a = b<10?b:c; True Part Spim Assembly Equivalent lw $t0,4($fp) ; t0<-b # Is b smaller slti $t0, $t0, 10 ; t0 <- t0 < 10 # than 10? not $t0,$t0 ; t0<-!t0 bgtz $t0, L0: ; if t0>=0 goto L0 lw $t0,4($fp) ; t0<-b # YES b L1: ; gotoL1 L0: lw $t0, 8($fp) ;L0: t0 <- c # NO L1: sw 0($fp), $t0 ;L1: a <- t0 Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 5/50 High and Low Level Abstractions NOT Condition Input C statement True Part a = b<10?b:c; False Part Spim Assembly Equivalent lw $t0,4($fp) ; t0<-b # Is b smaller slti $t0, $t0, 10 ; t0 <- t0 < 10 # than 10? not $t0,$t0 ; t0<-!t0 bgtz $t0, L0: ; if t0>=0 goto L0 lw $t0,4($fp) ; t0<-b # YES b L1: ; gotoL1 L0: lw $t0, 8($fp) ;L0: t0 <- c # NO L1: sw 0($fp), $t0 ;L1: a <- t0 Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 5/50 High and Low Level Abstractions NOT Condition Conditional jump Fall through Input C statement True Part a = b<10?b:c; False Part Spim Assembly Equivalent lw $t0,4($fp) ; t0<-b # Is b smaller slti $t0, $t0, 10 ; t0 <- t0 < 10 # than 10? not $t0,$t0 ; t0<-!t0 bgtz $t0, L0: ; if t0>=0 goto L0 lw $t0,4($fp) ; t0<-b # YES b L1: ; gotoL1 L0: lw $t0, 8($fp) ;L0: t0 <- c # NO L1: sw 0($fp), $t0 ;L1: a <- t0 Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 6/50 Implementation Mechanisms • Translation = Analysis + Synthesis Interpretation = Analysis + Execution Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 6/50 Implementation Mechanisms • Translation = Analysis + Synthesis Interpretation = Analysis + Execution Equivalent • Translation Instructions Instructions Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 6/50 Implementation Mechanisms • Translation = Analysis + Synthesis Interpretation = Analysis + Execution Equivalent • Translation Instructions Instructions Actions Implied Interpretation Instructions by Instructions Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 7/50 Language Implementation Models Synthesis Compilation Analysis Execution Interpretation Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 8/50 Language Processor Models Back End C,C++ Front Optimizer End Virtual Java, C# Machine Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 9/50 Typical Front Ends Parser Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 9/50 Typical Front Ends Source Parser Program Tokens Scanner Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 9/50 Typical Front Ends AST or Linear IR Source Parser + Program Symbol Table AST Parse Tokens Tree Semantic Scanner Analyzer Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 9/50 Typical Front Ends AST or Linear IR Source Parser + Program Symbol Table AST Parse Tokens Tree Semantic Scanner Analyzer Symtab Error Handler Handler Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 10/50 Typical Back Ends m/c Ind. IR m/c Ind. m/c Ind. Optimizer IR − Compile time evaluations − Eliminating redundant computations Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 10/50 Typical Back Ends m/c Ind. IR m/c Ind. m/c Code m/c Ind. Dep. Optimizer IR Generator IR − Compile time − Instruction Selection evaluations − Local Reg Allocation − Eliminating − Choice of Order of redundant Evaluation computations Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 10/50 Typical Back Ends m/c Ind. IR m/c Ind. m/c Code m/c m/c Dep. Ind. Dep. Optimizer IR Generator IR Optimizer − Compile time − Instruction Selection evaluations − Local Reg Allocation − Eliminating − Choice of Order of redundant Evaluation computations Assembly Code Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: Introduction to Compilation 10/50 Typical Back Ends m/c Ind. IR Register Allocator m/c Ind. m/c Code m/c Instruction Ind. Dep. Optimizer IR Generator IR Scheduler − Compile time − Instruction Selection Peephole evaluations − Local Reg Allocation Optimizer − Eliminating − Choice of Order of redundant Evaluation computations Assembly Code Uday Khedker GRC, IIT Bombay Part 2 An Overview of Compilation Phases CS 715 Gnu Compiler Collection: An Overview of Compilation Phases 11/50 The Structure of a Simple Compiler Parser Semantic Symtab Scanner Analyser Handler Source Program Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: An Overview of Compilation Phases 11/50 The Structure of a Simple Compiler Instruction Assembly Parser AST Selector Insn Emitter Assembly Semantic Symtab Register Program Scanner Analyser Handler Allocator Source Program Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: An Overview of Compilation Phases 11/50 The Structure of a Simple Compiler FrontEnd BackEnd Instruction Assembly Parser AST Selector Insn Emitter Assembly Semantic Symtab Register Program Scanner Analyser Handler Allocator Source Program Uday Khedker GRC, IIT Bombay CS 715 Gnu Compiler Collection: An Overview of Compilation Phases 12/50 Translation Sequence in Our Compiler: Parsing a=b<10?b:c; Input
Recommended publications
  • Introduction to Computer Systems 15-213/18-243, Spring 2009 1St
    M4-L3: Executables CSE351, Winter 2021 Executables CSE 351 Winter 2021 Instructor: Teaching Assistants: Mark Wyse Kyrie Dowling Catherine Guevara Ian Hsiao Jim Limprasert Armin Magness Allie Pfleger Cosmo Wang Ronald Widjaja http://xkcd.com/1790/ M4-L3: Executables CSE351, Winter 2021 Administrivia ❖ Lab 2 due Monday (2/8) ❖ hw12 due Friday ❖ hw13 due next Wednesday (2/10) ▪ Based on the next two lectures, longer than normal ❖ Remember: HW and readings due before lecture, at 11am PST on due date 2 M4-L3: Executables CSE351, Winter 2021 Roadmap C: Java: Memory & data car *c = malloc(sizeof(car)); Car c = new Car(); Integers & floats c->miles = 100; c.setMiles(100); x86 assembly c->gals = 17; c.setGals(17); Procedures & stacks float mpg = get_mpg(c); float mpg = Executables free(c); c.getMPG(); Arrays & structs Memory & caches Assembly get_mpg: Processes pushq %rbp language: movq %rsp, %rbp Virtual memory ... Memory allocation popq %rbp Java vs. C ret OS: Machine 0111010000011000 100011010000010000000010 code: 1000100111000010 110000011111101000011111 Computer system: 3 M4-L3: Executables CSE351, Winter 2021 Reading Review ❖ Terminology: ▪ CALL: compiler, assembler, linker, loader ▪ Object file: symbol table, relocation table ▪ Disassembly ▪ Multidimensional arrays, row-major ordering ▪ Multilevel arrays ❖ Questions from the Reading? ▪ also post to Ed post! 4 M4-L3: Executables CSE351, Winter 2021 Building an Executable from a C File ❖ Code in files p1.c p2.c ❖ Compile with command: gcc -Og p1.c p2.c -o p ▪ Put resulting machine code in
    [Show full text]
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [Show full text]
  • Ethereal Developer's Guide Draft 0.0.2 (15684) for Ethereal 0.10.11
    Ethereal Developer's Guide Draft 0.0.2 (15684) for Ethereal 0.10.11 Ulf Lamping, Ethereal Developer's Guide: Draft 0.0.2 (15684) for Ethere- al 0.10.11 by Ulf Lamping Copyright © 2004-2005 Ulf Lamping Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. All logos and trademarks in this document are property of their respective owner. Table of Contents Preface .............................................................................................................................. vii 1. Foreword ............................................................................................................... vii 2. Who should read this document? ............................................................................... viii 3. Acknowledgements ................................................................................................... ix 4. About this document .................................................................................................. x 5. Where to get the latest copy of this document? ............................................................... xi 6. Providing feedback about this document ...................................................................... xii I. Ethereal Build Environment ................................................................................................14 1. Introduction .............................................................................................................15
    [Show full text]
  • The GNU Compiler Collection on Zseries
    The GNU Compiler Collection on zSeries Dr. Ulrich Weigand Linux for zSeries Development, IBM Lab Böblingen [email protected] Agenda GNU Compiler Collection History and features Architecture overview GCC on zSeries History and current status zSeries specific features and challenges Using GCC GCC optimization settings GCC inline assembly Future of GCC GCC and Linux Apache Samba mount cvs binutils gdb gcc Linux ls grep Kernel glibc DB2 GNU - essentials UDB SAP R/3 Unix - tools Applications GCC History Timeline January 1984: Start of the GNU project May 1987: Release of GCC 1.0 February 1992: Release of GCC 2.0 August 1997: EGCS project announced November 1997: Release of EGCS 1.0 April 1999: EGCS / GCC merge July 1999: Release of GCC 2.95 June 2001: Release of GCC 3.0 May/August 2002: Release of GCC 3.1/3.2 March 2003: Release of GCC 3.3 (estimated) GCC Features Supported Languages part of GCC distribution: C, C++, Objective C Fortran 77 Java Ada distributed separately: Pascal Modula-3 under development: Fortran 95 Cobol GCC Features (cont.) Supported CPU targets i386, ia64, rs6000, s390 sparc, alpha, mips, arm, pa-risc, m68k, m88k many embedded targets Supported OS bindings Unix: Linux, *BSD, AIX, Solaris, HP/UX, Tru64, Irix, SCO DOS/Windows, Darwin (MacOS X) embedded targets and others Supported modes of operation native compiler cross-compiler 'Canadian cross' builds GCC Architecture: Overview C C++ Fortran Java ... front-end front-end front-end front-end tree Optimizer rtx i386 s390 rs6000 sparc ... back-end back-end back-end
    [Show full text]
  • Pwny Documentation Release 0.9.0
    pwny Documentation Release 0.9.0 Author Nov 19, 2017 Contents 1 pwny package 3 2 pwnypack package 5 2.1 asm – (Dis)assembler..........................................5 2.2 bytecode – Python bytecode manipulation..............................7 2.3 codec – Data transformation...................................... 11 2.4 elf – ELF file parsing.......................................... 16 2.5 flow – Communication......................................... 36 2.6 fmtstring – Format strings...................................... 41 2.7 marshal – Python marshal loader................................... 42 2.8 oracle – Padding oracle attacks.................................... 43 2.9 packing – Data (un)packing...................................... 44 2.10 php – PHP related functions....................................... 46 2.11 pickle – Pickle tools.......................................... 47 2.12 py_internals – Python internals.................................. 49 2.13 rop – ROP gadgets........................................... 50 2.14 shellcode – Shellcode generator................................... 50 2.15 target – Target definition....................................... 79 2.16 util – Utility functions......................................... 80 3 Indices and tables 83 Python Module Index 85 i ii pwny Documentation, Release 0.9.0 pwnypack is the official CTF toolkit of Certified Edible Dinosaurs. It aims to provide a set of command line utilities and a python library that are useful when playing hacking CTFs. The core functionality of pwnypack
    [Show full text]
  • Open Source License and Copyright Information for Gplv3 and Lgplv3
    Open Source License and Copyright Information for GPLv3/LGPLv3 Dell EMC PowerStore Open Source License and Copyright Information for GPLv3/LGPLv3 June 2021 Rev A02 Revisions Revisions Date Description May 2020 Initial release December 2020 Version updates for some licenses, and addition and deletion of other components June, 2021 Version updates for some licenses, and addition and deletion of other components The information in this publication is provided “as is.” Dell Inc. makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose. Use, copying, and distribution of any software described in this publication requires an applicable software license. Copyright © 2020-2021 Dell Inc. or its subsidiaries. All Rights Reserved. Dell Technologies, Dell, EMC, Dell EMC and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be trademarks of their respective owners. [6/1/2021] [Open Source License and Copyright Information for GPLv3/LGPLv3] [Rev A02] 2 Dell EMC PowerStore: Open Source License and Copyright Information for GPLv3/LGPLv3 Table of contents Table of contents Revisions............................................................................................................................................................................. 2 Table of contents ...............................................................................................................................................................
    [Show full text]
  • Gnu Compiler Collection Backend Port for the Integral Parallel Architecture
    U.P.B. Sci. Bull., Series C, Vol. 74, Iss. 3, 2012 ISSN 1454-234x GNU COMPILER COLLECTION BACKEND PORT FOR THE INTEGRAL PARALLEL ARCHITECTURE Radu HOBINCU1, Valeriu CODREANU2, Lucian PETRICĂ3 Lucrarea de față prezintă procesul de portare a compilatorului GCC oferit de către Free Software Foundation pentru arhitectura hibridă Integral Parallel Architecture, constituită dintr-un controller multithreading și o mașina vectorială SIMD. Este bine cunoscut faptul că motivul principal pentru care mașinile hibride ca și cele vectoriale sunt dificil de utilizat eficient, este programabilitatea. În această lucrare vom demonstra că folosind un compilator open-source și facilitățile de care acesta dispune, putem ușura procesul de dezvoltare software pentru aplicații complexe. This paper presents the process of porting the GCC compiler offered by the Free Software Foundation, for the hybrid Integral Parallel Architecture composed of an interleaved multithreading controller and a vectorial SIMD machine. It is well known that the main reason for which hybrid and vectorial machines are difficult to use efficiently, is programmability. In this paper we well show that by using an open-source compiler and the features it provides, we can ease the software developing process for complex applications. Keywords: integral parallel architecture, multithreading, interleaved multithreading, bubble-free embedded architecture for multithreading, compiler, GCC, backend port 1. Introduction The development of hardware technology in the last decades has required the programmers to offer support for the new features and performances of the last generation processors. This support comes as more complex compilers that have to use the machines' capabilities at their best, and more complex operating systems that need to meet the users' demand for speed, flexibility and accessibility.
    [Show full text]
  • Operating RISC: UNIX Standards in the 1990S
    Operating RISC: UNIX Standards in the 1990s This case was written by Will Mitchell and Paul Kritikos at the University of Michigan. The case is based on public sources. Some figures are based on case-writers' estimates. We appreciate comments from David Girouard, Robert E. Thomas and Michael Wolff. The note "Product Standards and Competitive Advantage" (Mitchell 1992) supplements this case. The latest International Computerquest Corporation analysis of the market for UNIX- based computers landed on three desks on the same morning. Noel Sharp, founder, chief executive officer, chief engineer and chief bottle washer for the Superbly Quick Architecture Workstation Company (SQAWC) in Mountain View, California hoped to see strong growth predicted for the market for systems designed to help architects improve their designs. In New York, Bo Thomas, senior strategist for the UNIX systems division of A Big Computer Company (ABCC), hoped that general commercial markets for UNIX-based computer systems would show strong growth, but feared that the company's traditional mainframe and mini-computer sales would suffer as a result. Airborne in the middle of the Atlantic, Jean-Helmut Morini-Stokes, senior engineer for the UNIX division of European Electronic National Industry (EENI), immediately looked to see if European companies would finally have an impact on the American market for UNIX-based systems. After looking for analysis concerning their own companies, all three managers checked the outlook for the alliances competing to establish a UNIX operating system standard. Although their companies were alike only in being fictional, the three managers faced the same product standards issues. How could they hasten the adoption of a UNIX standard? The market simply would not grow until computer buyers and application software developers could count on operating system stability.
    [Show full text]
  • Rlsc & DSP Advanced Microprocessor System Design
    Purdue University Purdue e-Pubs ECE Technical Reports Electrical and Computer Engineering 3-1-1992 RlSC & DSP Advanced Microprocessor System Design; Sample Projects, Fall 1991 John E. Fredine Purdue University, School of Electrical Engineering Dennis L. Goeckel Purdue University, School of Electrical Engineering David G. Meyer Purdue University, School of Electrical Engineering Stuart E. Sailer Purdue University, School of Electrical Engineering Glenn E. Schmottlach Purdue University, School of Electrical Engineering Follow this and additional works at: http://docs.lib.purdue.edu/ecetr Fredine, John E.; Goeckel, Dennis L.; Meyer, David G.; Sailer, Stuart E.; and Schmottlach, Glenn E., "RlSC & DSP Advanced Microprocessor System Design; Sample Projects, Fall 1991" (1992). ECE Technical Reports. Paper 302. http://docs.lib.purdue.edu/ecetr/302 This document has been made available through Purdue e-Pubs, a service of the Purdue University Libraries. Please contact [email protected] for additional information. RISC & DSP Advanced Microprocessor System Design Sample Projects, Fall 1991 John E. Fredine Dennis L. Goeckel David G. Meyer Stuart E. Sailer Glenn E. Schmottlach TR-EE 92- 11 March 1992 School of Electrical Engineering Purdue University West Lafayette, Indiana 47907 RlSC & DSP Advanced Microprocessor System Design Sample Projects, Fall 1991 John E. Fredine Dennis L. Goeckel David G. Meyer Stuart E. Sailer Glenn E. Schrnottlach School of Electrical Engineering Purdue University West Lafayette, Indiana 47907 Table of Contents Abstract ...................................................................................................................
    [Show full text]
  • Introduction to the Linux Kernel: Challenges and Case Studies
    Introduction to the Linux kernel: challenges and case studies Juan Carlos Sáez Alcaide Department of Computer Architecture and Automation ArTeCS Group Complutense University of Madrid IV Semana de la Informática 2018 Feb 8, 2018 About Me Juan Carlos Sáez Alcaide ([email protected]) Interim Associate Professor, UCM Department of Computer Architecture and Automation Teaching: Operating Systems, Linux and Android Internals,… Member of the ArTeCS Research Group High Performance Computing Computer Architecture Interaction between system software and architecture … UCM Campus Representative of the USENIX Int’l Association Login (USENIX Magazine) IV Semana de la Informática 2018 - 2 Outline 1 Introduction 2 Main Features 3 Kernel Control Paths and Concurrency 4 Common Kernel abstractions 5 A case study: PMCTrack tool IV Semana de la Informática 2018 - 3 Outline 1 Introduction 2 Main Features 3 Kernel Control Paths and Concurrency 4 Common Kernel abstractions 5 A case study: PMCTrack tool IV Semana de la Informática 2018 - 4 Unix (I) Unics – Unix (1969) Created by Ken Thompson and rewrit- ten in “C” by Dennis Ritchie (1973) V6 (1975): Public source code (AT&T license) BSD distributions (Billy Joy) John Lion’s book on UNIX V6 Keys to success 1 Inexpensive license 2 Source code available 3 Code was simple and easy to modify 4 Ran on modest HW IV Semana de la Informática 2018 - 5 Unix (II) Unix (Cont.) V7 (1979): code can be no longer used for academic purposes Xenix (1980) Microsoft SCO Unix System III (1982) Unix System V (1983) HP-UX, IBM’s AIX, Sun’s Solaris IV Semana de la Informática 2018 - 6 Unix (III) Proyecto GNU (1983) - Richard Stallman SO GNU: Emacs, GNU compiler collection (GCC), GNU Hurd (kernel) Minix v1 (1987) - Andrew Tanenbaum Richard Stallman Minimal Unix-like OS (Unix clone) Teaching purposes.
    [Show full text]
  • TI-89 / TI-92 Plus Tip List 10.0
    TI-89 / TI-92 Plus Tip List 10.0 Compiled by Doug Burkett, [email protected] Created 12 aug 99, revised 20 July 2002 Copyright 1999-2002 Doug Burkett. All rights reserved. Dedicated to my wife, Janet Katherine Scholz Burkett, who cheerfully tolerates all this silliness... Important! Neither I, Doug Burkett, nor any of the contributors to this tip list are responsible in any way for any damage of any kind that you or anyone else may incur from using the information in this tip list. These tips are provided for educational purposes only. The contributors and I believe that all information is accurate and reliable, but we make no expressed or implied warrantee or guarantee to that effect. Some tips may involve hardware or software modifications to the calculator that may void the manufacturer's warrantee. This document is a collection of useful tips and hints relating to the TI-89 and TI-92 Plus calculators. The tips come from user experience and many other sources, and apply to all facets of calculator operation and programming. The tip list has grown to include reference material, humor and oddities, so perhaps the name Tip List, is no longer appropriate, but it stands for now. The tip list is not a buglist, a wishlist or a FAQ. I maintain a wishlist, and good FAQs are available. While a FAQ is, by definition, frequently asked questions, this list instead describes useful techniques which may be 'infrequently asked'. These are sophisticated calculators and some features are not obvious. All users have different skills, and what is obvious to some is not obvious to all.
    [Show full text]
  • 1990 Motorola Annual Report
    Annual Report 1990 (M) MOTOROLA INC. >\ About the Company Motorola is one of the world's leading providers of electronic equipment, systems, components and services for worldwide markets. Products include two-way radios, pagers, cellular telephones and systems, semiconductors, defense and aerospace electronics, automotive and industrial electronics, computers, data communications and informa- tion processing and handling equipment. Motorola was a winner of the first Malcolm Baldrige National Quality Award, in recognition of its superior company-wide management of quality processes. On the Cover One of the newest landmarks in Paris is architect I.M. Pei's pyramid entrance to the Louvre. Guards from Erom Se'curite' S.A. use Motorola two-way communications equipment at the museum to protect some of the finest art treasures in the world. In this year's report you will see how Motorola products and sys- tems serve our customers throughout the world. Contents Financial Highlights 2 To Our Stockholders and Other Friends 3 At a Glance 16 Review of Operations 19 Financial Review 24 Financial Statements 27 Notes to Consolidated Financial Statements 30 Five Year Financial Summary 36 Sectors, Groups and Divisions, Motorola Worldwide 37 Elected Officers 38 Directors, CEO Quality Awards, Dan Noble Fellows 40 Stockholder Reference Information 41 n each of our chosen arenas of the electronics industry, we plan to grow rapidly by providing our worldwide customers what they want, when they want it, with Six Sigma quality and best-in-class cycle time, as we strive to achieve our fundamental corporate objective of Total Customer Satisfaction, and to achieve our stated goals of increased global market share, best-in-class people, products, marketing, manufacturing, technology and service, and superior financial results.
    [Show full text]