Modern C++ Old Dog, New Tricks Todd L.
|
|
- Avice Ryan
- 5 years ago
- Views:
Transcription
1 StoneTor Modern C++ Old Dog, New Tricks Todd L.
2 C++ is so old
3 Languages are Tools Learning Tools is Good
4 There are only two kinds of languages: the ones people complain about and the ones nobody uses. Bjarne Stroustrup
5 Aeron and C++? ReactiveSocket and C++? What constitutes Modern C++? What Lessons were learned?
6 Aeron and C++?
7 Truly modern messaging transport
8 Feature Bloat & Complexity
9 Not Fast Enough
10 Low & Predictable Latency is key
11 We are in a new world Multi-core, Multi-socket, Cloud...
12 We are in a new world Multi-core, Multi-socket, Cloud... UDP, IPC, InfiniBand, RDMA, PCI-e
13 Aeron is trying a new approach
14 The Team Todd Montgomery Richard Warburton Martin Thompson
15 Messaging Publishers Channel Subscribers Stream Channel
16 A library, not a framework, on which other abstractions and applications can be built
17 Composable Design
18 OSI layer 4 Transport for message oriented streams
19 OSI Layer 4 (Transport) Services 1. Connection Oriented Communication 2. Reliability 3. Flow Control 4. Congestion Avoidance/Control 5. Multiplexing
20 Architecture Publisher Subscriber Subscriber Publisher IPC Log Buffer
21 Architecture Publisher Sender Receiver Subscriber Media Subscriber Receiver Sender Publisher IPC Log Buffer Media (UDP, InfiniBand, PCI-e 3.0)
22 Architecture Publisher Sender Receiver Subscriber Admin Media Events Conductor Conductor Events Admin Subscriber Receiver Sender Publisher IPC Log Buffer Media (UDP, InfiniBand, PCI-e 3.0) Function/Method Call Volatile Fields & Queues
23 Architecture Client Media Driver Media Driver Client Publisher Sender Receiver Subscriber Admin Events Conductor Conductor Media Conductor Conductor Events Admin Subscriber Receiver Sender Publisher IPC Log Buffer Media (UDP, InfiniBand, PCI-e 3.0) Function/Method Call Volatile Fields & Queues IPC Ring/Broadcast Buffer
24 C++?
25 Architecture Client Media Driver Media Driver Client Publisher Sender Receiver Subscriber Admin Events Conductor Conductor Media Conductor Conductor Events Admin Subscriber Receiver Sender Publisher IPC Log Buffer Media (UDP, InfiniBand, PCI-e 3.0) Function/Method Call Volatile Fields & Queues IPC Ring/Broadcast Buffer
26 Architecture Client Media Driver Media Driver Client Publisher Sender Receiver Subscriber Admin Events Conductor Conductor Media Conductor Conductor Events Admin Subscriber Receiver Sender Publisher IPC Log Buffer Media (UDP, InfiniBand, PCI-e 3.0) Function/Method Call Volatile Fields & Queues IPC Ring/Broadcast Buffer Client Application API Java, C, C++, C#, etc.
27 The Media Driver is (currently) Java
28 currently
29 ReactiveSocket and C++?
30 Today, Asynchronous is the norm
31 Asynchrony The Lure of Complexity The Need for Simplicity
32 Asynchrony Composition is hard
33 ReactiveX
34 Observables
35 Challenges 1. Non-Blocking Back Pressure 2. Heterogeneous Connectivity
36 Dealing with Back Pressure 1. Reative Streams 2. RxJava Akka Streams 4. java.util.concurrent.flow (JEP 266)
37 Rx Heterogeneous Connectivity 1. ReactiveSocket
38 C++?
39 Rx Heterogeneous Connectivity 1. ReactiveSocket Protocol Reactive Streams - Application API Java, JS, C++, Go, etc. What do you call a 1 language protocol?
40 What constitutes Modern C++?
41
42 Within C++, there is a much smaller and cleaner language struggling to get out. And no, that smaller and cleaner language is not Java or C#. Bjarne Stroustrup
43 Modern C++ Main Concept(s)
44 Resource Ownership & Lifetime
45 Resource Ownership & Lifetime Scope Coupling Dependency
46 Modern C++ Idioms (RAII, etc.)
47 Resource Acquisition is Initialization (RAII) std::lock_guard std::unique_ptr std::shared_ptr
48 Other C++ Idioms PImpl CRTP Erase-Remove SFINAE* * Substitution Failure is Not An Error
49 Modern C++ Idioms (RAII, etc.) Smart Pointers
50 Smart Pointers std::shared_ptr std::unique_ptr std::weak_ptr
51 Smart Pointers
52 Smart Pointers & Ownership
53 Modern C++ Idioms (RAII, etc.) Smart Pointers Lambda's & Function Objects
54 Lambda s & Function Objects
55 Modern C++ Idioms (RAII, etc.) Smart Pointers Lambda's & Function Objects Atomics (std::atomic)
56 Atomic Operations std::atomic<bool> std::atomic_flag std::atomic<int>
57 Modern C++ Idioms (RAII, etc.) Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support
58 Thread Support std::thread std::mutex std::async std::promise std::future
59 Thread Support
60 Modern C++ Idioms (RAII, etc.) Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment *
61 Move Construction/Assignment Moving vs. Copying Ownership?
62 Modern C++ Idioms (RAII, etc.) Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment * Toolchain (Build/Test)
63 Modern Toolchain CMake Google Test Google Mock Google Benchmark etc.
64 What Lessons were learned?
65 Lessons - What do you think? Idioms (RAII, etc.) Stack Allocation Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment Toolchain (Build/Test)
66 Lessons Idioms (RAII, etc.) Stack Allocation Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment Toolchain (Build/Test)
67
68 RAII & Smart Pointers Give in to Smart Pointers
69 Smart Pointers But But But CYCLES!!!
70 Dealing with Cycles std::weak_ptr std::enable_shared_from_this Design them out Techniques & Indirection RCU / QSBR Deferred & Unordered Destruction (GCPP)
71 RAII & Smart Pointers Give in to Smart Pointers Explicit Coupling
72 RAII & Smart Pointers Give in to Smart Pointers Explicit Coupling Explicit Scoping
73 RAII & Smart Pointers Give in to Smart Pointers Explicit Coupling Explicit Scoping Explicit Dependency
74 Explicit Coupling / Scope / Dependency Hiding Complexity is not Dealing with Complexity
75 Explicit Coupling / Scope / Dependency Speaks to Quality Build Quality In
76 Coupling / Scope / Dependency Enforced Decoupling & Isolation.
77 More Important? What a language provides? What a language takes away?
78 Explicit Coupling / Scope / Dependency Deal with it up front Pays off massively later If it hurts, do it more often
79 Lessons Idioms (RAII, etc.) Stack Allocation Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment Toolchain (Build/Test)
80 Stack Allocation (Lack of) Not Needed Because Escape Analysis Value Types ${EXCUSE}[i]
81
82
83 Stack Allocation Mechanism is NOT a set of features
84 Stack Allocation Stack Function Objects very very low cost deferred/conditional execution
85 Lessons Idioms (RAII, etc.) Stack Allocation Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment Toolchain (Build/Test)
86
87 Move Construction/Assignment Much more than you think
88 Move Construction/Assignment Much more than you think Sometimes/Often better to copy
89 Move Construction/Assignment Much more than you think Sometimes/Often better to copy Optimization Interactions (e.g. SSO)
90 Move Construction/Assignment Much more than you think Sometimes/Often better to copy Optimization Interactions (e.g. SSO) When you have to do it why?!?
91 Lessons Idioms (RAII, etc.) Stack Allocation Smart Pointers Lambda's & Function Objects Atomics (std::atomic) Thread Support Move Construction/Assignment Toolchain (Build/Test)
92
93 Architecture Client Media Driver Media Driver Client Publisher Sender Receiver Subscriber Admin Events Conductor Conductor Media Conductor Conductor Events Admin Subscriber Receiver Sender Publisher IPC Log Buffer Media (UDP, InfiniBand, PCI-e 3.0) Function/Method Call Volatile Fields & Queues IPC Ring/Broadcast Buffer
94 Data Structures (Shared Memory) IPC Ring Buffers IPC Broadcast Buffers IPC Log Buffers
95 What Aeron does Creates a replicated persistent log of messages
96 Atomic & Ordered Operations Log Buffer File Term 0 Term 1 Term 2 Log Meta Data
97 Position
98 Unique identification of a byte within each stream
99 Publishers, Senders, Receivers, and Subscribers all keep position counters
100 Position counters are the key to flow control and monitoring
101 Statistics & Position Counters are accessible in shared memory Atomic & Ordered Operations
102 Multiple Challenges Size (and Layout) Memory Models (C++11 to Java)
103 Size Matters
104
105 Size Matters (Atomics) Not designed for arbitrary memory Size not the same as the types Concerned only with operations
106 Memory Models Interoperability with JMM std::memory_order fit for purpose
107 So Aeron uses its own atomic operations C/C++ functions (JMM compatible) * gcc x86_64 initially contributed by phaynes (phaynes@threatmetrix.com)
108 Wrapping Up
109 Languages are Tools Fit for purpose Add to your toolbox!
110 There are more useful systems developed in languages deemed awful than in languages praised for being beautiful--many more. Bjarne Stroustrup (via Jason Pontin)
111
112 Where can I find them? reactivesocket-cpp
113 Questions? Aeron: ReactiveSocket: Thank You!
A Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson
A Quest for Predictable Latency Adventures in Java Concurrency Martin Thompson - @mjpt777 If a system does not respond in a timely manner then it is effectively unavailable 1. It s all about the Blocking
More informationRAII and Smart Pointers. Ali Malik
RAII and Smart Pointers Ali Malik malikali@stanford.edu Game Plan Recap Conversion Operators RAII Smart Pointers Recap Initialisation: Initialisation vs Assignment Transforms an object s initial junk data
More informationHigh Performance Managed Languages. Martin Thompson
High Performance Managed Languages Martin Thompson - @mjpt777 Really, what s your preferred platform for building HFT applications? Why would you build low-latency applications on a GC ed platform? Some
More informationC++ Threading. Tim Bailey
C++ Threading Introduction Very basic introduction to threads I do not discuss a thread API Easy to learn Use, eg., Boost.threads Standard thread API will be available soon The thread API is too low-level
More informationAdvanced Computer Networks. End Host Optimization
Oriana Riva, Department of Computer Science ETH Zürich 263 3501 00 End Host Optimization Patrick Stuedi Spring Semester 2017 1 Today End-host optimizations: NUMA-aware networking Kernel-bypass Remote Direct
More informationReactive Programming Models for IoT. Todd L.
Reactive Programming Models for IoT Todd L. Montgomery @toddlmontgomery Psst! Already Here! Not New! Internet of Things? Just a Silicon Valley buzzword? Psst! Also Not New! Reactive Programming? Just another
More informationCS 241 Honors Memory
CS 241 Honors Memory Ben Kurtovic Atul Sandur Bhuvan Venkatesh Brian Zhou Kevin Hong University of Illinois Urbana Champaign February 20, 2018 CS 241 Course Staff (UIUC) Memory February 20, 2018 1 / 35
More informationC++11 Concurrency and Multithreading For Hedge Funds & Investment Banks:
C++11 Concurrency and Multithreading For Hedge Funds & Investment Banks: Concurrency and Multithreading with C++11 for Thread Management & Data Sharing Between Threads Yogesh Malhotra, PhD www.yogeshmalhotra.com
More informationJANUARY 28, 2014, SAN JOSE, CA. Microsoft Lead Partner Architect OS Vendors: What NVM Means to Them
JANUARY 28, 2014, SAN JOSE, CA PRESENTATION James TITLE Pinkerton GOES HERE Microsoft Lead Partner Architect OS Vendors: What NVM Means to Them Why should NVM be Interesting to OS Vendors? New levels of
More informationCOMP6771 Advanced C++ Programming
1. COMP6771 Advanced C++ Programming Week 9 Multithreading (continued) 2016 www.cse.unsw.edu.au/ cs6771 2. So Far Program Workflows: Sequential, Parallel, Embarrassingly Parallel Memory: Shared Memory,
More informationCrossbar switch. Chapter 2: Concepts and Architectures. Traditional Computer Architecture. Computer System Architectures. Flynn Architectures (2)
Chapter 2: Concepts and Architectures Computer System Architectures Disk(s) CPU I/O Memory Traditional Computer Architecture Flynn, 1966+1972 classification of computer systems in terms of instruction
More informationtcsc 2016 Luca Brianza 1 Luca Brianza 19/07/16 INFN & University of Milano-Bicocca
tcsc 2016 1 1 INFN & University of Milano-Bicocca Outlook Amdahl s law Different ways of parallelism: - Asynchronous task execution - Threads Resource protection/thread safety - The problem - Low-level
More informationIntroduction to reactive programming. Jonas Chapuis, Ph.D.
Introduction to reactive programming Jonas Chapuis, Ph.D. Reactive programming is an asynchronous programming paradigm oriented around data flows and the propagation of change wikipedia Things happening
More informationEngineering Robust Server Software
Engineering Robust Server Software Exceptions Exceptions Handling problems: exceptions C++ Java temp-and-swap RAII Smart Pointers finally specifications finalizers (and why they are not what you need for
More informationReaktive Anwendungen mit RxJava. Dr. Michael Menzel
Reaktive Anwendungen mit RxJava Dr. Michael Menzel DIGITALIZATION DIGITALIZATION DIGITALIZATION DIGITALIZATION REACTIVE ARCHITECTURES How can we build highly interactive (responsive) systems, which are
More informationOS Extensibility: SPIN and Exokernels. Robert Grimm New York University
OS Extensibility: SPIN and Exokernels Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? OS Abstraction Barrier
More informationDistributed Algorithms Models
Distributed Algorithms Models Alberto Montresor University of Trento, Italy 2016/04/26 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Contents 1 Taxonomy
More informationMark Falco Oracle Coherence Development
Achieving the performance benefits of Infiniband in Java Mark Falco Oracle Coherence Development 1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy
More informationHPX The C++ Standards Library for Concurrency and Parallelism. Hartmut Kaiser
HPX The C++ Standards Library for Concurrency and Hartmut Kaiser (hkaiser@cct.lsu.edu) HPX A General Purpose Runtime System The C++ Standards Library for Concurrency and Exposes a coherent and uniform,
More informationNew Communication Standard Takyon Proposal Overview
Khronos Group Inc. 2018 - Page 1 Heterogenous Communications Exploratory Group New Communication Standard Takyon Proposal Overview November 2018 Khronos Group Inc. 2018 - Page 2 Khronos Exploratory Group
More informationDesigning and debugging real-time distributed systems
Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools
More information02 - Distributed Systems
02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is
More information02 - Distributed Systems
02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is
More informationChenyu Zheng. CSCI 5828 Spring 2010 Prof. Kenneth M. Anderson University of Colorado at Boulder
Chenyu Zheng CSCI 5828 Spring 2010 Prof. Kenneth M. Anderson University of Colorado at Boulder Actuality Introduction Concurrency framework in the 2010 new C++ standard History of multi-threading in C++
More information04-17 Discussion Notes
04-17 Discussion Notes PIC 10B Spring 2018 1 RAII RAII is an acronym for the idiom Resource Acquisition is Initialization. What is meant by resource acquisition is initialization is that a resource should
More informationCloud Security Gaps. Cloud-Native Security.
Cloud Security Gaps Cloud-Native Security www.aporeto.com Why Network Segmentation is Failing Your Cloud Application Security How to Achieve Effective Application Segmentation By now it s obvious to security-minded
More informationChapter 4 Communication
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI
More informationSpring MVC 4.x Spring 5 Web Reactive
Part 1 Spring MVC 4.x Spring 5 Web Reactive Rossen Stoyanchev @rstoya05 Spring MVC 4.3 Reactive programming for Java devs Spring 5 Web Reactive Shortcut Annotations @RequestMapping @GetMapping @PostMapping
More informationIntroduction to Distributed Systems
Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]
More informationFalling in Love with EROS (Or Not) Robert Grimm New York University
Falling in Love with EROS (Or Not) Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? Basic Access Control Access
More informationSDC 2015 Santa Clara
SDC 2015 Santa Clara Volker Lendecke Samba Team / SerNet 2015-09-21 (2 / 17) SerNet Founded 1996 Offices in Göttingen and Berlin Topics: information security and data protection Specialized on Open Source
More informationGPUfs: Integrating a file system with GPUs
GPUfs: Integrating a file system with GPUs Mark Silberstein (UT Austin/Technion) Bryan Ford (Yale), Idit Keidar (Technion) Emmett Witchel (UT Austin) 1 Traditional System Architecture Applications OS CPU
More informationCommunication. Distributed Systems Santa Clara University 2016
Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces
More informationReactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained @myfear Why is everybody talking about cloud and microservices and what the **** is streaming? Biggest Problems in Software Development High
More informationDesigning Next Generation Data-Centers with Advanced Communication Protocols and Systems Services
Designing Next Generation Data-Centers with Advanced Communication Protocols and Systems Services P. Balaji, K. Vaidyanathan, S. Narravula, H. W. Jin and D. K. Panda Network Based Computing Laboratory
More informationIndirect Communication
Indirect Communication Today l Space and time (un)coupling l Group communication, pub/sub, message queues and shared memory Next time l Distributed file systems xkdc Indirect communication " Indirect communication
More informationHomework 4. Any questions?
CSE333 SECTION 8 Homework 4 Any questions? STL Standard Template Library Has many pre-build container classes STL containers store by value, not by reference Should try to use this as much as possible
More informationArrakis: The Operating System is the Control Plane
Arrakis: The Operating System is the Control Plane Simon Peter, Jialin Li, Irene Zhang, Dan Ports, Doug Woos, Arvind Krishnamurthy, Tom Anderson University of Washington Timothy Roscoe ETH Zurich Building
More informationInput ports, switching fabric, output ports Switching via memory, bus, crossbar Queueing, head-of-line blocking
Last time Router internals Input ports, switching fabric, output ports Switching via memory, bus, crossbar Queueing, head-of-line blocking Mobility Home, visited s Home, foreign agents Permanent, care-of
More informationMigrating massive monitoring to Bigtable without downtime. Martin Parm, Infrastructure Engineer for Monitoring
Migrating massive monitoring to Bigtable without downtime Martin Parm, Infrastructure Engineer for Monitoring This is a big deal. -- Nicholas Harteau/VP, Engineering & Infrastructure https://news.spotify.com/dk/2016/02/23/announcing-spotify-infrastructures-googley-future/
More informationUsing the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver
Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data
More informationProgramming in C and C++
Programming in C and C++ Types, Variables, Expressions and Statements Neel Krishnaswami and Alan Mycroft Course Structure Basics of C: Types, variables, expressions and statements Functions, compilation
More informationIndex. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309
A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48
More informationTransport Layer. Chapter 3: Transport Layer
Transport Layer EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 29-Jan-18 1-1 Chapter 3: Transport Layer our goals: understand principles behind layer services: multiplexing,
More informationAdvanced Computer Networks. Flow Control
Advanced Computer Networks 263 3501 00 Flow Control Patrick Stuedi Spring Semester 2017 1 Oriana Riva, Department of Computer Science ETH Zürich Last week TCP in Datacenters Avoid incast problem - Reduce
More informationDesigning for Performance. Martin Thompson
Designing for Performance Martin Thompson - @mjpt777 Feynman is becoming a real pain. He has the greatest scientific honesty of anyone I ve ever meet - William P Rogers The impact of QED cannot be overestimated.
More informationCSC 5930/9010 Cloud S & P: Virtualization
CSC 5930/9010 Cloud S & P: Virtualization Professor Henry Carter Fall 2016 Recap Network traffic can be encrypted at different layers depending on application needs TLS: transport layer IPsec: network
More informationIndirect Communication
Indirect Communication Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Time and Space In direct communication sender and receivers exist in the same time and know of each other.
More informationDesigning for Performance. Martin Thompson
Designing for Performance Martin Thompson - @mjpt777 Is it difficult writing software that has good performance? RDD (Resume Driven Development) http://www.semiconductors.org/main/2015_international_technology_roadmap_for_semiconductors_itrs/
More informationEnabling industry 4.0 Event-driven architectures and smart micro services
Enabling industry 4.0 Event-driven architectures and smart micro services Dr., Systems and control, Chalmers Chalmers, Automation +46 (0)768 979561 Kristofer.bengtsson@chalmers.se The key to industry 4.0
More informationCreate High Performance, Massively Scalable Messaging Solutions with Apache ActiveBlaze
Create High Performance, Massively Scalable Messaging Solutions with Apache ActiveBlaze Rob Davies Director of Open Source Product Development, Progress: FuseSource - http://fusesource.com/ Rob Davies
More informationMicroservices Architekturen aufbauen, aber wie?
Microservices Architekturen aufbauen, aber wie? Constantin Gonzalez, Principal Solutions Architect glez@amazon.de, @zalez 30. Juni 2016 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
More informationA Transactional Model and Platform for Designing and Implementing Reactive Systems
A Transactional Model and Platform for Designing and Implementing Reactive Systems Justin R. Wilson A dissertation presented to the Graduate School of Arts and Sciences of Washington University in partial
More informationNirvana A Technical Introduction
Nirvana A Technical Introduction Cyril PODER, ingénieur avant-vente June 18, 2013 2 Agenda Product Overview Client Delivery Modes Realm Features Management and Administration Clustering & HA Scalability
More informationCSCI-GA Operating Systems. Networking. Hubertus Franke
CSCI-GA.2250-001 Operating Systems Networking Hubertus Franke frankeh@cs.nyu.edu Source: Ganesh Sittampalam NYU TCP/IP protocol family IP : Internet Protocol UDP : User Datagram Protocol RTP, traceroute
More informationOS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation
CSE 421/521 - Operating Systems Fall 2012 Lecture - II OS Structures Roadmap OS Design and Implementation Different Design Approaches Major OS Components!! Memory management! CPU Scheduling! I/O Management
More informationEbbRT: A Framework for Building Per-Application Library Operating Systems
EbbRT: A Framework for Building Per-Application Library Operating Systems Overview Motivation Objectives System design Implementation Evaluation Conclusion Motivation Emphasis on CPU performance and software
More informationCOS 318: Operating Systems. NSF, Snapshot, Dedup and Review
COS 318: Operating Systems NSF, Snapshot, Dedup and Review Topics! NFS! Case Study: NetApp File System! Deduplication storage system! Course review 2 Network File System! Sun introduced NFS v2 in early
More informationstreams streaming data transformation á la carte
streams streaming data transformation á la carte Deputy CTO #protip Think of the concept of streams as ephemeral, time-dependent, sequences of elements possibly unbounded in length in essence: transformation
More informationProcess. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University
Operating Systems (Fall/Winter 2018) Process Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review System calls implementation
More information! Readings! ! Room-level, on-chip! vs.!
1! 2! Suggested Readings!! Readings!! H&P: Chapter 7 especially 7.1-7.8!! (Over next 2 weeks)!! Introduction to Parallel Computing!! https://computing.llnl.gov/tutorials/parallel_comp/!! POSIX Threads
More informationSmart Pointers. Some slides from Internet
Smart Pointers Some slides from Internet 1 Part I: Concept Reference: Using C++11 s Smart Pointers, David Kieras, EECS Department, University of Michigan C++ Primer, Stanley B. Lippman, Jesee Lajoie, Barbara
More informationSAI/ST course Distributed Systems
SAI/ST course Distributed Systems 2013, Sep. 26 Oct 01 Lecture 3: Communication Agenda Overview Concepts Organization in layers IPC primitives Direct communication Indirect communication R.H. Mak 27-9-2013
More informationProgramming Without a Call Stack: Event-driven Architectures
Programming Without a Call Stack: Event-driven Architectures Gregor Hohpe Google www.eaipatterns.com Gregor Hohpe Programming Without a Call Stack: Event-driven Architectures Slide 1 About Me Distributed
More informationInheritance STL. Entity Component Systems. Scene Graphs. Event Systems
Inheritance STL Entity Component Systems Scene Graphs Event Systems Event Systems Motivation: Decoupling events from where they are sent and where they are processed. It facilitates communication between
More informationELEC 377 Operating Systems. Week 1 Class 2
Operating Systems Week 1 Class 2 Labs vs. Assignments The only work to turn in are the labs. In some of the handouts I refer to the labs as assignments. There are no assignments separate from the labs.
More informationNooks. Robert Grimm New York University
Nooks Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? Design and Implementation Nooks Overview An isolation
More informationArchitecture using Functional Programming concepts < + >
Architecture using Functional Programming concepts < + > Jorge Castillo @JorgeCastilloPr 1 2 Kotlin and Functional Programming FP means concern separation (declarative computations vs runtime execution),
More informationCPL 2016, week 6. Asynchronous execution. Oleg Batrashev. March 14, Institute of Computer Science, Tartu, Estonia
CPL 2016, week 6 Asynchronous execution Oleg Batrashev Institute of Computer Science, Tartu, Estonia March 14, 2016 Overview Studied so far: 1. Inter-thread visibility: JMM 2. Inter-thread synchronization:
More information2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts
Chapter 2 Introduction to Distributed systems 1 Chapter 2 2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts Client-Server
More informationIndirect Communication
Indirect Communication To do q Today q q Space and time (un)coupling Common techniques q Next time: Overlay networks xkdc Direct coupling communication With R-R, RPC, RMI Space coupled Sender knows the
More informationHIGH-PERFORMANCE NETWORKING :: USER-LEVEL NETWORKING :: REMOTE DIRECT MEMORY ACCESS
HIGH-PERFORMANCE NETWORKING :: USER-LEVEL NETWORKING :: REMOTE DIRECT MEMORY ACCESS CS6410 Moontae Lee (Nov 20, 2014) Part 1 Overview 00 Background User-level Networking (U-Net) Remote Direct Memory Access
More informationCS 4390 Computer Networks. Transport Services and Protocols
CS 4390 Computer Networks UT D data Session 07 Transport Layer Overview and UDP Adapted from Computer Networking a Top-Down Approach 1996-2012 by J.F Kurose and K.W. Ross, All Rights Reserved Transport
More informationCSC 4900 Computer Networks: Transport Layer
CSC 4900 Computer Networks: Transport Layer Professor Henry Carter Fall 2017 Last Time... Sockets programming API TCP and UDP look different. Remember, there is no connect() in UDP - just start sending
More informationfor Multi-Services Gateways
KURA an OSGi-basedApplication Framework for Multi-Services Gateways Introduction & Technical Overview Pierre Pitiot Grenoble 19 février 2014 Multi-Service Gateway Approach ESF / Increasing Value / Minimizing
More informationCSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.
CSC 4103 - Operating Systems Fall 2009 Lecture - II OS Structures Tevfik Ko!ar Louisiana State University August 27 th, 2009 1 Announcements TA Changed. New TA: Praveenkumar Kondikoppa Email: pkondi1@lsu.edu
More informationAnnouncements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009
CSC 4103 - Operating Systems Fall 2009 Lecture - II OS Structures Tevfik Ko!ar TA Changed. New TA: Praveenkumar Kondikoppa Email: pkondi1@lsu.edu Announcements All of you should be now in the class mailing
More informationAnnouncements Computer Networking. What is the Objective of the Internet? Today s Lecture
Announcements 15-441 15-441 Computer ing 15-641 Lecture 2 Protocol Stacks Peter Steenkiste Fall 2016 www.cs.cmu.edu/~prs/15-441-f16 Sign up for piazza: https://piazza.com/cmu/fall2016/15441641 P1 will
More informationTime and Space. Indirect communication. Time and space uncoupling. indirect communication
Time and Space Indirect communication Johan Montelius In direct communication sender and receivers exist in the same time and know of each other. KTH In indirect communication we relax these requirements.
More informationTransport Layer. Gursharan Singh Tatla. Upendra Sharma. 1
Transport Layer Gursharan Singh Tatla mailme@gursharansingh.in Upendra Sharma 1 Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message
More informationTailwind: Fast and Atomic RDMA-based Replication. Yacine Taleb, Ryan Stutsman, Gabriel Antoniu, Toni Cortes
Tailwind: Fast and Atomic RDMA-based Replication Yacine Taleb, Ryan Stutsman, Gabriel Antoniu, Toni Cortes In-Memory Key-Value Stores General purpose in-memory key-value stores are widely used nowadays
More informationAgenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2
Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process
More informationCMSC 332 Computer Networks Transport Layer
CMSC 332 Computer Networks Transport Layer Professor Szajda Announcements Project I - I ll test against various clients (still possibly an issue in spec). Project 2 will be posted soon (but first, I want
More informationReal-Time Programming
Real-Time Programming Week 7: Real-Time Operating Systems Instructors Tony Montiel & Ken Arnold rtp@hte.com 4/1/2003 Co Montiel 1 Objectives o Introduction to RTOS o Event Driven Systems o Synchronization
More informationASYNCHRONOUS COMPUTING IN C++
http://stellar-goup.org ASYNCHRONOUS COMPUTING IN C++ Hartmut Kaiser (Hartmut.Kaiser@gmail.com) CppCon 2014 WHAT IS ASYNCHRONOUS COMPUTING? Spawning off some work without immediately waiting for the work
More informationChapter 3:: Names, Scopes, and Bindings
Chapter 3:: Names, Scopes, and Bindings Programming Language Pragmatics Michael L. Scott Some more things about NFAs/DFAs We said that a regular expression can be: A character (base case) A concatenation
More informationOperating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst
Operating Systems CMPSCI 377 Spring 2017 Mark Corner University of Massachusetts Amherst Last Class: Intro to OS An operating system is the interface between the user and the architecture. User-level Applications
More informationOperating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski
Operating Systems 18. Remote Procedure Calls Paul Krzyzanowski Rutgers University Spring 2015 4/20/2015 2014-2015 Paul Krzyzanowski 1 Remote Procedure Calls 2 Problems with the sockets API The sockets
More informationCode No: RR Set No. 1
Code No: RR410402 Set No. 1 1. (a) Write any four reasons for using layered protocols. (b) List two ways in which the OSI reference model and the TCP/IP reference model are the same and list in which they
More informationChapter 4 Communication
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI
More informationAdvanced Computer Networks. RDMA, Network Virtualization
Advanced Computer Networks 263 3501 00 RDMA, Network Virtualization Patrick Stuedi Spring Semester 2013 Oriana Riva, Department of Computer Science ETH Zürich Last Week Scaling Layer 2 Portland VL2 TCP
More informationToday CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC)
Today CSCI 5105 Communication in Distributed Systems Overview Types Remote Procedure Calls (RPC) Instructor: Abhishek Chandra 2 Communication How do program modules/processes communicate on a single machine?
More informationApache Thrift Introduction & Tutorial
Apache Thrift Introduction & Tutorial Marlon Pierce, Suresh Marru Q & A TIOBE Index Programming Language polyglotism Modern distributed applications are rarely composed of modules written in a single language.
More informationBuilding Durable Real-time Data Pipeline
Building Durable Real-time Data Pipeline Apache BookKeeper at Twitter @sijieg Twitter Background Layered Architecture Agenda Design Details Performance Scale @Twitter Q & A Publish-Subscribe Online services
More informationMessaging Overview. Introduction. Gen-Z Messaging
Page 1 of 6 Messaging Overview Introduction Gen-Z is a new data access technology that not only enhances memory and data storage solutions, but also provides a framework for both optimized and traditional
More informationLesson 19 Software engineering aspects
Lesson 19 Software engineering aspects Service Oriented Architectures Security Module 4 - Architectures Unit 1 Architectural features Ernesto Damiani Università di Milano SOA is HAD HAD is an old concept
More informationTSIN02 - Internetworking
TSIN02 - Internetworking Literature: Lecture 4: Transport Layer Forouzan: ch 11-12 Transport layer responsibilities UDP TCP 2004 Image Coding Group, Linköpings Universitet 2 Transport layer in OSI model
More informationCSE 451: Operating Systems. Section 10 Project 3 wrap-up, final exam review
CSE 451: Operating Systems Section 10 Project 3 wrap-up, final exam review Final exam review Goal of this section: key concepts you should understand Not just a summary of lectures Slides coverage and
More informationReport. Middleware Proxy: A Request-Driven Messaging Broker For High Volume Data Distribution
CERN-ACC-2013-0237 Wojciech.Sliwinski@cern.ch Report Middleware Proxy: A Request-Driven Messaging Broker For High Volume Data Distribution W. Sliwinski, I. Yastrebov, A. Dworak CERN, Geneva, Switzerland
More informationHigh Performance Managed Languages. Martin Thompson
High Performance Managed Languages Martin Thompson - @mjpt777 Really, what is your preferred platform for building HFT applications? Why do you build low-latency applications on a GC ed platform? Agenda
More information