Observational Determinism for Concurrent Program Security
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Thomas Ströhlein's Endgame Tables: a 50Th Anniversary
Thomas Ströhlein's Endgame Tables: a 50th Anniversary Article Supplemental Material The Festschrift on the 40th Anniversary of the Munich Faculty of Informatics Haworth, G. (2020) Thomas Ströhlein's Endgame Tables: a 50th Anniversary. ICGA Journal, 42 (2-3). pp. 165-170. ISSN 1389-6911 doi: https://doi.org/10.3233/ICG-200151 Available at http://centaur.reading.ac.uk/90000/ It is advisable to refer to the publisher’s version if you intend to cite from the work. See Guidance on citing . Published version at: https://content.iospress.com/articles/icga-journal/icg200151 To link to this article DOI: http://dx.doi.org/10.3233/ICG-200151 Publisher: The International Computer Games Association All outputs in CentAUR are protected by Intellectual Property Rights law, including copyright law. Copyright and IPR is retained by the creators or other copyright holders. Terms and conditions for use of this material are defined in the End User Agreement . www.reading.ac.uk/centaur CentAUR Central Archive at the University of Reading Reading’s research outputs online 40 Jahre Informatik in Munchen:¨ 1967 – 2007 Festschrift Herausgegeben von Friedrich L. Bauer unter Mitwirkung von Helmut Angstl, Uwe Baumgarten, Rudolf Bayer, Hedwig Berghofer, Arndt Bode, Wilfried Brauer, Stephan Braun, Manfred Broy, Roland Bulirsch, Hans-Joachim Bungartz, Herbert Ehler, Jurgen¨ Eickel, Ursula Eschbach, Anton Gerold, Rupert Gnatz, Ulrich Guntzer,¨ Hellmuth Haag, Winfried Hahn (†), Heinz-Gerd Hegering, Ursula Hill-Samelson, Peter Hubwieser, Eike Jessen, Fred Kroger,¨ Hans Kuß, Klaus Lagally, Hans Langmaack, Heinrich Mayer, Ernst Mayr, Gerhard Muller,¨ Heinrich Noth,¨ Manfred Paul, Ulrich Peters, Hartmut Petzold, Walter Proebster, Bernd Radig, Angelika Reiser, Werner Rub,¨ Gerd Sapper, Gunther Schmidt, Fred B. -
Introduction to Multi-Threading and Vectorization Matti Kortelainen Larsoft Workshop 2019 25 June 2019 Outline
Introduction to multi-threading and vectorization Matti Kortelainen LArSoft Workshop 2019 25 June 2019 Outline Broad introductory overview: • Why multithread? • What is a thread? • Some threading models – std::thread – OpenMP (fork-join) – Intel Threading Building Blocks (TBB) (tasks) • Race condition, critical region, mutual exclusion, deadlock • Vectorization (SIMD) 2 6/25/19 Matti Kortelainen | Introduction to multi-threading and vectorization Motivations for multithreading Image courtesy of K. Rupp 3 6/25/19 Matti Kortelainen | Introduction to multi-threading and vectorization Motivations for multithreading • One process on a node: speedups from parallelizing parts of the programs – Any problem can get speedup if the threads can cooperate on • same core (sharing L1 cache) • L2 cache (may be shared among small number of cores) • Fully loaded node: save memory and other resources – Threads can share objects -> N threads can use significantly less memory than N processes • If smallest chunk of data is so big that only one fits in memory at a time, is there any other option? 4 6/25/19 Matti Kortelainen | Introduction to multi-threading and vectorization What is a (software) thread? (in POSIX/Linux) • “Smallest sequence of programmed instructions that can be managed independently by a scheduler” [Wikipedia] • A thread has its own – Program counter – Registers – Stack – Thread-local memory (better to avoid in general) • Threads of a process share everything else, e.g. – Program code, constants – Heap memory – Network connections – File handles -
R ˘Azvan Diaconescu
RA˘ ZVAN DIACONESCU list of publications MONOGRAPHS AND TEXTBOOKS [1-B] Institution-independent Model Theory. volume of Studies in Universal Logic series. Birkhauser¨ Basel, 2008. (386 pages). [2-B] (with K. Futatsugi) CafeOBJ Report: the language, proof techniques, and methodologies for object-oriented algebraic specification, volume 6 of AMAST Series in Computing. World Scientific Singapore, 1998. (174 pages) [3-B] Category-based Semantics for Equational and Constraint Logic Programming. D.Phil thesis, University of Oxford, 1994. (published as OUCL Monograph PRG-116, 120 pages) JOURNAL ARTICLES [4-J] Borrowing interpolation. Journal of Logic and Computation, Oxford Univ. Press. DOI:10.1093/logcom/exr007 [5-J] An axiomatic approach to structuring specifications. Theoretical Computer Science, 433:20–42, Elsevier, 2012. [6-J] Interpolation for predefined types. Mathematical Structures in Computer Science, 22(1):1–24, Cambridge Univ. Press, 2012. [7-J] Grothendieck inclusion systems. Applied Categorical Structures, 19(5):783–802, Springer, 2011. [8-J] Structural Induction in Institutions. Information and Computation, 209(9):1197–1222, Elsevier, 2011. [9-J] (with I. T¸ut¸u) On the Algebra of Structured Specifications. Theoretical Computer Science, 412(28):3145–3174, Elsevier, 2011. [10-J] On quasi-varieties of multiple valued logic models. Mathematical Logic Quarterly, 57(2):194–203, Wiley, 2011. [11-J] Coinduction for preordered algebras. Information and Computation, 209(2):108–117, Elsevier, 2011. [12-J] (with M. Petria) Saturated models in institutions. Archive for Mathematical Logic, 49(6):693–723, Springer, 2010. [13-J] Quasi-Boolean encodings and conditionals in algebraic specification. Journal of Logic and Algebraic Programming, 79(2):174–188, Elsevier, 2010. -
CSC 553 Operating Systems Multiple Processes
CSC 553 Operating Systems Lecture 4 - Concurrency: Mutual Exclusion and Synchronization Multiple Processes • Operating System design is concerned with the management of processes and threads: • Multiprogramming • Multiprocessing • Distributed Processing Concurrency Arises in Three Different Contexts: • Multiple Applications – invented to allow processing time to be shared among active applications • Structured Applications – extension of modular design and structured programming • Operating System Structure – OS themselves implemented as a set of processes or threads Key Terms Related to Concurrency Principles of Concurrency • Interleaving and overlapping • can be viewed as examples of concurrent processing • both present the same problems • Uniprocessor – the relative speed of execution of processes cannot be predicted • depends on activities of other processes • the way the OS handles interrupts • scheduling policies of the OS Difficulties of Concurrency • Sharing of global resources • Difficult for the OS to manage the allocation of resources optimally • Difficult to locate programming errors as results are not deterministic and reproducible Race Condition • Occurs when multiple processes or threads read and write data items • The final result depends on the order of execution – the “loser” of the race is the process that updates last and will determine the final value of the variable Operating System Concerns • Design and management issues raised by the existence of concurrency: • The OS must: – be able to keep track of various processes -
Towards Gradually Typed Capabilities in the Pi-Calculus
Towards Gradually Typed Capabilities in the Pi-Calculus Matteo Cimini University of Massachusetts Lowell Lowell, MA, USA matteo [email protected] Gradual typing is an approach to integrating static and dynamic typing within the same language, and puts the programmer in control of which regions of code are type checked at compile-time and which are type checked at run-time. In this paper, we focus on the π-calculus equipped with types for the modeling of input-output capabilities of channels. We present our preliminary work towards a gradually typed version of this calculus. We present a type system, a cast insertion procedure that automatically inserts run-time checks, and an operational semantics of a π-calculus that handles casts on channels. Although we do not claim any theoretical results on our formulations, we demonstrate our calculus with an example and discuss our future plans. 1 Introduction This paper presents preliminary work on integrating dynamically typed features into a typed π-calculus. Pierce and Sangiorgi have defined a typed π-calculus in which channels can be assigned types that express input and output capabilities [16]. Channels can be declared to be input-only, output-only, or that can be used for both input and output operations. As a consequence, this type system can detect unintended or malicious channel misuses at compile-time. The static typing nature of the type system prevents the modeling of scenarios in which the input- output discipline of a channel is discovered at run-time. In these scenarios, such a discipline must be enforced with run-time type checks in the style of dynamic typing. -
Enhanced Debugging for Data Races in Parallel
ENHANCED DEBUGGING FOR DATA RACES IN PARALLEL PROGRAMS USING OPENMP A Thesis Presented to the Faculty of the Department of Computer Science University of Houston In Partial Fulfillment of the Requirements for the Degree Master of Science By Marcus W. Hervey December 2016 ENHANCED DEBUGGING FOR DATA RACES IN PARALLEL PROGRAMS USING OPENMP Marcus W. Hervey APPROVED: Dr. Edgar Gabriel, Chairman Dept. of Computer Science Dr. Shishir Shah Dept. of Computer Science Dr. Barbara Chapman Dept. of Computer Science, Stony Brook University Dean, College of Natural Sciences and Mathematics ii iii Acknowledgements A special thank you to Dr. Barbara Chapman, Ph.D., Dr. Edgar Gabriel, Ph.D., Dr. Shishir Shah, Ph.D., Dr. Lei Huang, Ph.D., Dr. Chunhua Liao, Ph.D., Dr. Laksano Adhianto, Ph.D., and Dr. Oscar Hernandez, Ph.D. for their guidance and support throughout this endeavor. I would also like to thank Van Bui, Deepak Eachempati, James LaGrone, and Cody Addison for their friendship and teamwork, without which this endeavor would have never been accomplished. I dedicate this thesis to my parents (Billy and Olivia Hervey) who have always chal- lenged me to be my best, and to my wife and kids for their love and sacrifice throughout this process. ”Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time.” – Thomas Alva Edison iv ENHANCED DEBUGGING FOR DATA RACES IN PARALLEL PROGRAMS USING OPENMP An Abstract of a Thesis Presented to the Faculty of the Department of Computer Science University of Houston In Partial Fulfillment of the Requirements for the Degree Master of Science By Marcus W. -
Reconciling Real and Stochastic Time: the Need for Probabilistic Refinement
DOI 10.1007/s00165-012-0230-y The Author(s) © 2012. This article is published with open access at Springerlink.com Formal Aspects Formal Aspects of Computing (2012) 24: 497–518 of Computing Reconciling real and stochastic time: the need for probabilistic refinement J. Markovski1,P.R.D’Argenio2,J.C.M.Baeten1,3 and E. P. de Vink1,3 1 Eindhoven University of Technology, Eindhoven, The Netherlands. E-mail: [email protected] 2 FaMAF, Universidad Nacional de Cordoba,´ Cordoba,´ Argentina 3 Centrum Wiskunde & Informatica, Amsterdam, The Netherlands Abstract. We conservatively extend an ACP-style discrete-time process theory with discrete stochastic delays. The semantics of the timed delays relies on time additivity and time determinism, which are properties that enable us to merge subsequent timed delays and to impose their synchronous expiration. Stochastic delays, however, interact with respect to a so-called race condition that determines the set of delays that expire first, which is guided by an (implicit) probabilistic choice. The race condition precludes the property of time additivity as the merger of stochastic delays alters this probabilistic behavior. To this end, we resolve the race condition using conditionally-distributed unit delays. We give a sound and ground-complete axiomatization of the process the- ory comprising the standard set of ACP-style operators. In this generalized setting, the alternative composition is no longer associative, so we have to resort to special normal forms that explicitly resolve the underlying race condition. Our treatment succeeds in the initial challenge to conservatively extend standard time with stochastic time. However, the ‘dissection’ of the stochastic delays to conditionally-distributed unit delays comes at a price, as we can no longer relate the resolved race condition to the original stochastic delays. -
Lecture Notes in Computer Science 1378 Edited by G
Lecture Notes in Computer Science 1378 Edited by G. Goos, J. Hartmanis and J. van Leeuwen Maurice Nivat (Ed.) Foundations of Software Science and Computation Structures First International Conference, FoSSaCS'98 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS' 98 Lisbon, Portugal, March 28 - April 4, 1998 Proceedings ~ Springer Series Editors Gerhard Goos, Karlsruhe University, Germany Juris Hartmanis, Cornell University, NY, USA Jan van Leeuwen, Utrecht University, The Netherlands Volume Editor Maurice Nivat LITP, Universit6 Paris 7 2, Place Jussieu, F-75251 Paris Cedex 05, France E-mail: Maurice.Nivat @litp.liafa.jussieu.fr Cataloging-in-Publication data applied for Die Deutsche Bibliothek - CIP-Einheitsaufnahme Foundations of software science and computation structures : first international conference ; proceedings / FoSSaCS '98, held as part of the Joint European Conferences on Theory and Practice of Software, ETAPS '98, Lisbon, Portugal, March 28 - April 4, 1998. Maurice Nivat (ed.). - Berlin ; Heidelberg ; New York ; Barcelona ; Budapest ; Hong Kong ; London Milan ; Paris ; Santa Clara ; Singapore ; Tokyo : Springer, 1998 (Lecture notes in computer science ; Vol. 1378) ISBN 3-540-64300-1 CR Subject Classification (1991):F.3. F.4.2, El.I, D.3.3-4, D.2.1 ISSN 0302-9743 ISBN 3-540-64300-1 Springer-Verlag Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on microfilms or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer -Verlag. -
Kolmogorov Complexity in Perspective. Part II: Classification, Information Processing and Duality Marie Ferbus-Zanda
Kolmogorov Complexity in perspective. Part II: Classification, Information Processing and Duality Marie Ferbus-Zanda To cite this version: Marie Ferbus-Zanda. Kolmogorov Complexity in perspective. Part II: Classification, Information Processing and Duality. Synthese, Springer Verlag (Germany), 2010, pp.00. hal-00525505 HAL Id: hal-00525505 https://hal.archives-ouvertes.fr/hal-00525505 Submitted on 13 Oct 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Kolmogorov Complexity in perspective Part II: Classification, Information Processing and Duality∗ Marie Ferbus-Zanda LIAFA, CNRS & Universit´eParis Diderot - Paris 7 Case 7014 75205 Paris Cedex 13 France [email protected] Abstract We survey diverse approaches to the notion of information: from Shan- non entropy to Kolmogorov complexity. Two of the main applications of Kolmogorov complexity are presented: randomness and classification. The survey is divided in two parts published in a same volume. Part II is dedicated to the relation between logic and information sys- tem, within the scope of Kolmogorov algorithmic information theory. We present a recent application of Kolmogorov complexity: classification us- ing compression, an idea with provocative implementation by authors such as Bennett, Vit´anyi and Cilibrasi. -
A Rational Deconstruction of Landin's J Operator
BRICS RS-06-4 Danvy & Millikin: A Rational Deconstruction of Landin’s J Operator BRICS Basic Research in Computer Science A Rational Deconstruction of Landin’s J Operator Olivier Danvy Kevin Millikin BRICS Report Series RS-06-4 ISSN 0909-0878 February 2006 Copyright c 2006, Olivier Danvy & Kevin Millikin. BRICS, Department of Computer Science University of Aarhus. All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Report Series publications. Copies may be obtained by contacting: BRICS Department of Computer Science University of Aarhus IT-parken, Aabogade 34 DK–8200 Aarhus N Denmark Telephone: +45 8942 9300 Telefax: +45 8942 5601 Internet: [email protected] BRICS publications are in general accessible through the World Wide Web and anonymous FTP through these URLs: http://www.brics.dk ftp://ftp.brics.dk This document in subdirectory RS/06/4/ A Rational Deconstruction of Landin’s J Operator∗ Olivier Danvy and Kevin Millikin BRICS† Department of Computer Science University of Aarhus‡ February 28, 2006 Abstract Landin’s J operator was the first control operator for functional languages, and was specified with an extension of the SECD machine. Through a se- ries of meaning-preserving transformations (transformation into continu- ation-passing style (CPS) and defunctionalization) and their left inverses (transformation into direct style and refunctionalization), we present a compositional evaluation function corresponding to this extension of the SECD machine. We then characterize the J operator in terms of CPS and in terms of delimited-control operators in the CPS hierarchy. -
Introduction to the Literature on Programming Language Design Gary T
Computer Science Technical Reports Computer Science 7-1999 Introduction to the Literature On Programming Language Design Gary T. Leavens Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/cs_techreports Part of the Programming Languages and Compilers Commons Recommended Citation Leavens, Gary T., "Introduction to the Literature On Programming Language Design" (1999). Computer Science Technical Reports. 59. http://lib.dr.iastate.edu/cs_techreports/59 This Article is brought to you for free and open access by the Computer Science at Iowa State University Digital Repository. It has been accepted for inclusion in Computer Science Technical Reports by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Introduction to the Literature On Programming Language Design Abstract This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search. Keywords programming languages, semantics, type systems, polymorphism, type theory, data abstraction, functional programming, object-oriented programming, logic programming, declarative programming, parallel and distributed programming languages Disciplines Programming Languages and Compilers This article is available at Iowa State University Digital Repository: http://lib.dr.iastate.edu/cs_techreports/59 Intro duction to the Literature On Programming Language Design Gary T. Leavens TR 93-01c Jan. 1993, revised Jan. 1994, Feb. 1996, and July 1999 Keywords: programming languages, semantics, typ e systems, p olymorphism, typ e theory, data abstrac- tion, functional programming, ob ject-oriented programming, logic programming, declarative programming, parallel and distributed programming languages. -
Lecture 18 18.1 Distributed and Concurrent Systems 18.2 Race
CMPSCI 691ST Systems Fall 2011 Lecture 18 Lecturer: Emery Berger Scribe: Sean Barker 18.1 Distributed and Concurrent Systems In this lecture we discussed two broad issues in concurrent systems: clocks and race detection. The first paper we read introduced the Lamport clock, which is a scalar providing a logical clock value for each process. Every time a process sends a message, it increments its clock value, and every time a process receives a message, it sets its clock value to the max of the current value and the message value. Clock values are used to provide a `happens-before' relationship, which provides a consistent partial ordering of events across processes. Lamport clocks were later extended to vector clocks, in which each of n processes maintains an array (or vector) of n clock values (one for each process) rather than just a single value as in Lamport clocks. Vector clocks are much more precise than Lamport clocks, since they can check whether intermediate events from anyone have occurred (by looking at the max across the entire vector), and have essentially replaced Lamport clocks today. Moreover, since distributed systems are already sending many messages, the cost of maintaining vector clocks is generally not a big deal. Clock synchronization is still a hard problem, however, because physical clock values will always have some amount of drift. The FastTrack paper we read leverages vector clocks to do race detection. 18.2 Race Detection Broadly speaking, a race condition occurs when at least two threads are accessing a variable, and one of them writes the value while another is reading.