Improving the Performance of your LabVIEW Applications
|
|
- Jody Matthews
- 5 years ago
- Views:
Transcription
1 Improving the Performance of your LabVIEW Applications 1
2 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization 2
3 Optimization Cycle Benchmark Evaluate performance Identify problem areas Optimize Improve efficiency Improve speed 3
4 Why Should You Profile Your VIs? The 80/20 rule of software performance 80 percent of the execution time is spent in 20 percent of the code Performance improvements are most effective in the 20 percent Guessing which 20 percent is difficult 4
5 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization 5
6 Windows Task Manager Gives user a rough idea of whether memory or CPU is the bottleneck Can be helpful in identifying memory leaks View» Select Columns allows you to add additional stats 6
7 Perfmon Allows you to monitor Processors Disk I/O Network Tx/Rx Memory/Paging Access by typing perfmon into the Windows Run dialog 7
8 Benchmarking Code Execution Timing Template LabVIEW Shipping Example 8
9 Benchmarking Code Execution Code Calibration Analysis Benchmark Project LabVIEW Real-Time Shipping Example 9
10 VI Profiler Timing and memory statistics for VIs Tools» Profile» Performance and Memory 10
11 Demo VI Profiling 11
12 LabVIEW Execution Trace Tool Detailed execution traces Thread and VI views Measurement of execution time Priorities Multiple Sessions Threads VIs Time 12
13 Benchmarking Summary OS Level Task Manager, Perfmon LabVIEW Level VI Profiler, Benchmark VIs VI Level Execution Trace Tool 13
14 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization 14
15 VI Components Panel Diagram Code Diagram compiled into machine code Data Control/indicator values Default data Block diagram constant data And so on 15
16 VIs in Memory When a VI is loaded into memory We always load the data We load the code if it matches our platform (x86 Windows, x86 Linux, x86 Mac, PowerPC Mac) We load the panel and diagram only if we need to (for instance, we need to recompile the VI) 16
17 Panel and Diagram Data Front panel controls and indicators need their own copy of the data to display, called operate data This VI uses about 8 KB of data if the panel is open, and about 4 KB otherwise 17
18 LabVIEW Terminology Panel data is called Operate Data Controls and indicators have their own copy of the data, so that front panel editing of data doesn t interfere with computations in the diagram Diagram data is called Execution Data Every wire represents a buffer of data Transfer Data is used to copy between them Avoids multithreading issues 18
19 Memory Performance The following features affect the impact memory allocation has on your application: Wire Semantics and In Placeness Type coercion Passing values to subvis Shift registers Front panel indicators 19
20 Wire Semantics Every wire is a buffer Branches create copies 20
21 Optimizations by LabVIEW The theoretical 5 copies become 1 copy operation. Copy Output is inplace with input 21
22 The In Place Algorithm Determines when a copy needs to be made Weights arrays and clusters higher than other types Algorithm runs before execution Does not know the size of an array or cluster Relies on the sequential aspects of the program Branches might require copies 22
23 Bottom Up In place information is propagated bottom up Branched wire Copy because of increment No copies required Increments array in place 23
24 Showing Buffer Allocations 24
25 The In Place Element Structure Allows you to explicitly modify data in place 25
26 Four types of border nodes Array index/replace Unbundle/rebundle Variant to/from G data Simple in place relationship 26
27 Example of In Place Optimization Operate on each element of an array of waveforms 27
28 Make the first SubVI in place changes into 28
29 SubVI 2 is made in place changes into 29
30 SubVI 3 is made in place changes into 30
31 Final Result: Dots are Hidden 31
32 Type Coercion Changing the data type of a wire to match the required data type Dots indicate automatic coercion Requires a copy Coercion Dot 32
33 Passing Values to SubVIs SubVI does not have to make a copy Best when Inputs are required Inputs and outputs are not in structures Inputs and outputs are in place 33
34 Passing Values to SubVIs Parameters within structures cause unnecessary copies Move 34
35 Shift Registers Single left input always inplace with right output Even better when body inplace Inplace Always Inplace 35
36 Building Arrays There are a number of ways to build arrays and some are better than others Bad Reallocates array memory on every loop iteration No compile time optimization 36
37 Building Arrays There are a number of ways to build arrays and some are better than others Better Memory allocated Keep graphics at load time Values populated below the in text place and to the right. 37
38 Building Arrays There are a number of ways to build arrays and some are better than others Best Memory preallocated Indexing tunnel eliminates need for copies 38
39 Demo Effects of Memory Optimization 39
40 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization 40
41 Code Execution Code Execution What LV Does For You What You Can Do Execution Systems Threading Constant Folding Using Primitives UI Updating Execution Properties Reentrant VIs 41
42 VIs Are Compiled
43 VIs Are Compiled: Clumps Clump 0 Clump 1 Clump 0 Clump 2 43
44 VIs Are Compiled: Clumps Clump 0 Clump 0 Start of diagram: Reads controls, then schedules Clumps 1 and 2 Then sleeps... Clump 1 Top For Loop Indicator is updated Clump 0 Scheduled Sleep... Clump 2 Clump 0 Sleeping Bottom For Loop Indicator is updated Clump 0 Scheduled Sleep... Clump 1 Sleeping Completion of diagram: Divide nodes, display of indicators, then VI exit. Clump 2 Sleeping 44
45 Single Threaded LabVIEW CPU Thread User Interface Loop co-routines Code Execution 45
46 Multi-Threaded LabVIEW CPU Thread messages Thread Thread UI Loop Exec Thread Exec Exec Thread Exec 46
47 Multi-Core LabVIEW Thread Thread Thread UI Loop Exec Exec CPU0 CPU1 messages Thread Thread Exec Exec 47
48 Constant Folding LabVIEW compiler replaces unnecessary code with a constant. This code always results in the same array and does not need to be computed at run time. Tools» Options» Block Diagram» Show Constant Folding of Wires/Structures 48
49 Avoid Unnecessary Code in Loops Only put code that needs to be repeated in loops Opening/closing references should be outside the loop 49
50 Using Primitives Primitives are faster than chained operations. Is less efficient than 50
51 UI Updating Most overlooked performance bottleneck Not as obvious Like memory management, LabVIEW tries to optimize UI drawing but it can not perform miracles 51
52 UI Thread Front panel updates occur in the UI thread Execution takes place in other threads Shared data must be protected LabVIEW creates an extra copy called a transfer buffer Thread Thread Thread UI Loop Exec Exec 52
53 UI Management Only update indicators as often as you need Usually more than 10 times per second is excessive Data is copied from execution buffer to transfer buffer from transfer buffer to the indicator s operate data 53
54 UI Property Node Effect on Performance Control and Indicator Property nodes are slow Require thread swap Cannot be parallel Many trigger UI redraw UI Property nodes in an un-throttled loop are bad The Value property has the performance characteristics of a UI Property Node, not a terminal 54
55 Defer Panel Updates When performing multiple control property changes on a graph, use Defer Panel Updates 55
56 Execution Properties File» VI Properties» Execution <CTRL-I> 56
57 Reentrant VIs Reentrancy allows one subvi to be called simultaneously from different places Requires extra memory for each instance Use reentrant VIs in two different cases To allow a subvi to be called in parallel To allow a subvi instance to maintain it s own state 57
58 SubVI Calls SubVI calls are relatively inexpensive There is some overhead Subroutine priority is most useful for small VIs which are called often Calling a subvi in a different execution system can be very expensive However, calling a subvi does not inherently cause new memory copies 58
59 Demo Effects of Execution Optimization 59
60 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization Decrease memory usage, increase speed 80/20 Rule 60
61 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization Windows Tools (Task Manager, perfmon) VI Profiler Real-Time Execution Trace Toolkit 61
62 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization Hide the dots Take advantage of in placeness 62
63 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization Know where LabVIEW helps you Primitives are generally faster Limit screen updates Use appropriate execution settings 63
64 Next Steps In LabVIEW LabVIEW Help On the Web ni.com/multicore ni.com/devzone 64
LabVIEW programming II
FYS3240-4240 Data acquisition & control LabVIEW programming II Spring 2018 Lecture #3 Bekkeng 14.01.2018 Dataflow programming With a dataflow model, nodes on a block diagram are connected to one another
More informationLabVIEW programming II
FYS3240 PC-based instrumentation and microcontrollers LabVIEW programming II Spring 2016 Lecture #3 Bekkeng 18.01.2016 Dataflow programming With a dataflow model, nodes on a block diagram are connected
More informationTasks and Objectives: Certified LabVIEW Architect
Certification ID Certification Title Job Description: CLA Certified LabVIEW Architect Given a set of requirements for a large application, the is able to develop, lead, and direct a team of LabVIEW developers
More informationB. Including the Event Structure within a loop. C. Configuring a Timeout case within the Event Structure
Name: Date: CLAD Sample Exam 05 1. You must include the option to cancel when a user attempts to interactively close the front panel by selecting File>>Close. Which Event case allows this functionality?
More informationLabVIEW Programming for a Multicore Environment. Stefan Kreuzer Applications Engineer National Instruments
LabVIEW Programming for a Multicore Environment Stefan Kreuzer Applications Engineer National Instruments Agenda Overview of LabVIEW Multithreading Parallel Programming Techniques Real-Time Considerations
More informationni.com Preparing for the CLAD Exam
Preparing for the CLAD Exam Breaking Data Flow Situation: Run 2 Loops simultaneously with 1 Stop Button Wiring the Stop Button from one Loop to the other will NOT work. Solution: Use a Local Variable Drawbacks:
More informationPHYC 500: Introduction to LabView. Exercise 8 (v 1.3) M.P. Hasselbeck, University of New Mexico. Arrays, XY Graphs, Disk I/O
PHYC 500: Introduction to LabView M.P. Hasselbeck, University of New Mexico Exercise 8 (v 1.3) Arrays, XY Graphs, Disk I/O Place two numeric controls (label them Number of points and Offset ) on the Front
More informationCLAD Sample Exam 03. C. A control that output a cluster of the controls / indicators on the tabs.
Name: Date: CLAD Sample Exam 03 1. Where can a VI be documented so that the description appears in the Show Context Help popup window? A. In the VI Properties Documentation window B. Typing in the Show
More informationCLAD Sample Exam 04. B. When you create an Array constant on the Block Diagram, it is not visible on the Front Panel.
Name: Date: CLAD Sample Exam 04 1. What VI is typically used to terminate an Error Cluster wire and to display any error message? A. Merge Errors B. One Button Dialog / Two Button Dialog C. Generate Front
More informationECE 202 LAB 1 INTRODUCTION TO LABVIEW
Version 1.2 Page 1 of 16 BEFORE YOU BEGIN EXPECTED KNOWLEDGE ECE 202 LAB 1 INTRODUCTION TO LABVIEW You should be familiar with the basics of programming, as introduced by courses such as CS 161. PREREQUISITE
More informationOperating System Design Issues. I/O Management
I/O Management Chapter 5 Operating System Design Issues Efficiency Most I/O devices slow compared to main memory (and the CPU) Use of multiprogramming allows for some processes to be waiting on I/O while
More informationLabVIEW programming I
FYS3240 PC-based instrumentation and microcontrollers LabVIEW programming I LabVIEW basics Spring 2017 Lecture #2 Bekkeng 16.01.2017 What is LabVIEW LabVIEW is a graphical programming environment G programming
More informationCertified LabVIEW Associate Developer Exam. Test Booklet
Certified LabVIEW Associate Developer Exam Test Booklet Instructions: If you did not receive this exam in a sealed envelope stamped "NI Certification," DO NOT ACCEPT this exam. Return it to the proctor
More informationGoing With the (Data) Flow
1 of 6 1/6/2015 1:00 PM Going With the (Data) Flow Publish Date: May 20, 2013 Table of Contents 1. Natural Data Dependency and Artificial Data Dependency 2. Parallelism in LabVIEW 3. Overuse of Flat Sequence
More informationCS 3733 Operating Systems:
CS 3733 Operating Systems: Topics: Memory Management (SGG, Chapter 08) Instructor: Dr Dakai Zhu Department of Computer Science @ UTSA 1 Reminders Assignment 2: extended to Monday (March 5th) midnight:
More informationEECS Berkeley EE249 LabVIEW Framework. Hugo A. Andrade Principal Architect LabVIEW Platform & Real Time Group
EECS Berkeley EE249 LabVIEW Framework Hugo A. Andrade Principal Architect LabVIEW Platform & Real Time Group Agenda Overview of NI Tools LabVIEW Intro Framework Parallel programming From multi-core to
More informationCertified LabVIEW Associate Developer Exam. Test Booklet
Certified LabVIEW Associate Developer Exam Test Booklet Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: If you did not receive this exam in a sealed
More informationCLAD Sample Exam 06. B. Panel Resize. C. Panel Close? D. Value Change
Name: Date: CLAD Sample Exam 06 1. Which of the following user interface events will allow your code to respond before LabVIEW performs the default action associated with that event? A. Mouse Down B. Panel
More informationLabVIEW programming I
FYS3240 PC-based instrumentation and microcontrollers LabVIEW programming I LabVIEW basics Spring 2011 Lecture #2 Bekkeng 13.1.2011 Virtual Instruments LabVIEW programs are called virtual instruments,
More informationCertified LabVIEW Associate Developer Examination
Certified LabVIEW Associate Developer Examination Examinee Date: Administrator Date: Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: If you did not
More informationCertified LabVIEW Associate Developer Examination
Certified LabVIEW Associate Developer Examination Examinee Date: Administrator Date: Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: If you did not
More informationOS Assignment II. The process of executing multiple threads simultaneously is known as multithreading.
OS Assignment II 1. A. Provide two programming examples of multithreading giving improved performance over a single-threaded solution. The process of executing multiple threads simultaneously is known
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 informationSOLUTIONS TO THE FIRST 3360/6310 QUIZ. Jehan-François Pâris Summer 2016
SOLUTIONS TO THE FIRST 3360/6310 QUIZ Jehan-François Pâris Summer 2016 First question Why would a process interrupt itself? First question Why would a process interrupt itself? When it has to do a system
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 informationGetting Started with the LabVIEW Real-Time Module
Getting Started with the LabVIEW Real-Time Module Contents This document provides exercises to teach you how to develop a real-time project and VIs, from setting up RT targets to building, debugging, and
More information* What are the different states for a task in an OS?
* Kernel, Services, Libraries, Application: define the 4 terms, and their roles. The kernel is a computer program that manages input/output requests from software, and translates them into data processing
More informationMaking the Most of your FPGA Design
Making the Most of your FPGA Design Rejwan Ali Marketing Engineer Overview Introduction to Making the most Maintainability through Simulation Creating Scalable LVFPGA Reactor Pattern in LVFPGA Making the
More informationIntroduction to LabVIEW
University College of Southeast Norway Introduction to LabVIEW Hans-Petter Halvorsen, 2016-09-07 http://home.hit.no/~hansha Preface This document explains the basic concepts of LabVIEW. You find additional
More informationLabVIEW Communication Techniques for Distributed Applications
LabVIEW Communication Techniques for Distributed Applications Agenda Intro: What is a Distributed Application? Part I: LabVIEW Communication Techniques Part II: Implementing Communication Tasks Distributed
More informationCHAPTER 8 - MEMORY MANAGEMENT STRATEGIES
CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide
More informationA. Front Panel Design Lesson 4 Implementing a VI
A. Front Panel Design Lesson 4 Implementing a VI Inputs and outputs lead to front panel design Retrieve the inputs by the following methods: TOPICS A. B. C. D. E. F. Front Panel Design LabVIEW Data Types
More informationAn Overview of LabVIEW Design Patterns
An Overview of LabVIEW Design Patterns Ryan Roggow Singletrack Integration (original presentations by Derrick Snyder Product Marketing Manager NI Data Acquisition and Eric Cunningham NI Field Engineer)
More information1 1 / 1 / Due : Fri. Nov. 23 rd / Mon. Nov. 26
ENGG*4420 Real Time System Design (mmayhew@uoguelph.ca) Due : Fri. Nov. 23 rd / Mon. Nov. 26 th 1 1 Today s Activities Lab 4 Introduction. Lab 3 Demos. Start work on Lab 4. 2 2 Lab 4 Development Environment
More informationLast class: Today: Thread Background. Thread Systems
1 Last class: Thread Background Today: Thread Systems 2 Threading Systems 3 What kind of problems would you solve with threads? Imagine you are building a web server You could allocate a pool of threads,
More informationApplication State Machine
Application State Machine Project In this tutorial, create a real, working program to help you learn how to develop programs for your own applications in the future. This tutorial guides you through writing
More informationIntroduction to LabVIEW
Introduction to LabVIEW How to Succeed in EE 20 Lab Work as a group of 2 Read the lab guide thoroughly Use help function and help pages in LabVIEW Do the Pre-Lab before you come to the lab Don t do the
More informationChapter 8: Memory Management. Operating System Concepts with Java 8 th Edition
Chapter 8: Memory Management 8.1 Silberschatz, Galvin and Gagne 2009 Background Program must be brought (from disk) into memory and placed within a process for it to be run Main memory and registers are
More informationIntroduction: Context Switch
Introduction: The central module of an operating system. It is the part of the operating system that loads first, and it remains in main memory. Because it stays in memory, it is important for the kernel
More informationLabVIEW Express VI Development Toolkit User Guide
LabVIEW Express VI Development Toolkit User Guide Version 1.0 Contents The LabVIEW Express VI Development Toolkit allows you to create and edit Express VIs, which you can distribute to users for building
More informationIntroduction to LabVIEW Exercise-1
Introduction to LabVIEW Exercise-1 Objective In this Laboratory, you will write simple VIs to incorporate basic programming structures in LabVIEW. This section will teach you fundamentals of LabVIEW front
More informationMemory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts
Memory management Last modified: 26.04.2016 1 Contents Background Logical and physical address spaces; address binding Overlaying, swapping Contiguous Memory Allocation Segmentation Paging Structure of
More informationLabVIEW Academy. 12. óra event, property node
LabVIEW Academy 12. óra event, property node Event-Driven Programming Events Definition Event-Driven Programming Definition Polling Versus Event Structures Parts of an Event Structure Configuring the Event
More informationFoundational Design Patterns for Moving Beyond One Loop
Foundational Design Patterns for Moving Beyond One Loop Raja Pillai Technical Consultant Agenda Why move beyond one loop? What is a design pattern? Why learn communication mechanisms? Functional global
More information1. Introduction to Concurrent Programming
1. Introduction to Concurrent Programming A concurrent program contains two or more threads that execute concurrently and work together to perform some task. When a program is executed, the operating system
More informationChapter 8: Main Memory
Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:
More informationCSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song
CSCE 313 Introduction to Computer Systems Instructor: Dezhen Song Programs, Processes, and Threads Programs and Processes Threads Programs, Processes, and Threads Programs and Processes Threads Processes
More informationSwapping. Operating Systems I. Swapping. Motivation. Paging Implementation. Demand Paging. Active processes use more physical memory than system has
Swapping Active processes use more physical memory than system has Operating Systems I Address Binding can be fixed or relocatable at runtime Swap out P P Virtual Memory OS Backing Store (Swap Space) Main
More informationCSCE 313: Intro to Computer Systems
CSCE 313 Introduction to Computer Systems Instructor: Dr. Guofei Gu http://courses.cse.tamu.edu/guofei/csce313/ Programs, Processes, and Threads Programs and Processes Threads 1 Programs, Processes, and
More informationI/O Systems. Amir H. Payberah. Amirkabir University of Technology (Tehran Polytechnic)
I/O Systems Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) I/O Systems 1393/9/15 1 / 57 Motivation Amir H. Payberah (Tehran
More informationArrays. Collection of data elements that are of same type
Arrays Collection of data elements that are of same type 31 One or more dimensions, up to 2 elements per dimension Elements accessed by their index First element is index 0 index 10-element array 0 1 2
More informationLabView instrumentoinnissa, 55492, 3op Labview in instrumentation
LabView instrumentoinnissa, 55492, 3op Labview in instrumentation Lecturer: Heikki Ojala, heikki.ojala@helsinki.fi, room C204a Physicum Teaching assistant: Hannu Koskenvaara, hannu.koskenvaara@helsinki.fi,
More informationChapter 7: Main Memory. Operating System Concepts Essentials 8 th Edition
Chapter 7: Main Memory Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 7: Memory Management Background Swapping Contiguous Memory Allocation Paging Structure
More informationTopics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems
Topics: Memory Management (SGG, Chapter 08) 8.1, 8.2, 8.3, 8.5, 8.6 CS 3733 Operating Systems Instructor: Dr. Turgay Korkmaz Department Computer Science The University of Texas at San Antonio Office: NPB
More informationChapter 8: Memory-Management Strategies
Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and
More informationChapter 8 Memory Management
Chapter 8 Memory Management Da-Wei Chang CSIE.NCKU Source: Abraham Silberschatz, Peter B. Galvin, and Greg Gagne, "Operating System Concepts", 9th Edition, Wiley. 1 Outline Background Swapping Contiguous
More informationProcesses and Non-Preemptive Scheduling. Otto J. Anshus
Processes and Non-Preemptive Scheduling Otto J. Anshus Threads Processes Processes Kernel An aside on concurrency Timing and sequence of events are key concurrency issues We will study classical OS concurrency
More informationTDDD56 Multicore and GPU computing Lab 2: Non-blocking data structures
TDDD56 Multicore and GPU computing Lab 2: Non-blocking data structures August Ernstsson, Nicolas Melot august.ernstsson@liu.se November 2, 2017 1 Introduction The protection of shared data structures against
More informationECE519 Advanced Operating Systems
IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (8 th Week) (Advanced) Operating Systems 8. Virtual Memory 8. Outline Hardware and Control Structures Operating
More informationNI LabView READ THIS DOCUMENT CAREFULLY AND FOLLOW THE INSTRIUCTIONS IN THE EXERCISES
NI LabView READ THIS DOCUMENT CAREFULLY AND FOLLOW THE Introduction INSTRIUCTIONS IN THE EXERCISES According to National Instruments description: LabVIEW is a graphical programming platform that helps
More informationChallenges of Implementing Timed Models on Timed Platforms
Challenges of Implementing Timed Models on Timed Platforms Patricia Derler, Hugo Andrade, Arkadeb Ghosal, Rhishikesh Limaye, Jacob Kornerup, Ankita Prasad, Trung Tran, Kaushik Ravindran Ptolemy Miniconference
More informationCSC 539: Operating Systems Structure and Design. Spring 2006
CSC 539: Operating Systems Structure and Design Spring 2006 Processes and threads process concept process scheduling: state, PCB, process queues, schedulers process operations: create, terminate, wait,
More informationA Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria
A Predictable RTOS Mantis Cheng Department of Computer Science University of Victoria Outline I. Analysis of Timeliness Requirements II. Analysis of IO Requirements III. Time in Scheduling IV. IO in Scheduling
More informationIntroduction to GPU hardware and to CUDA
Introduction to GPU hardware and to CUDA Philip Blakely Laboratory for Scientific Computing, University of Cambridge Philip Blakely (LSC) GPU introduction 1 / 35 Course outline Introduction to GPU hardware
More informationBasic Memory Management. Basic Memory Management. Address Binding. Running a user program. Operating Systems 10/14/2018 CSC 256/456 1
Basic Memory Management Program must be brought into memory and placed within a process for it to be run Basic Memory Management CS 256/456 Dept. of Computer Science, University of Rochester Mono-programming
More informationChapter 8: Main Memory. Operating System Concepts 9 th Edition
Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel
More informationChapter 9 Memory Management
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationCLAD_80.questions.
CLAD_80.questions Number: CLAD Passing Score: 800 Time Limit: 120 min File Version: 25.06 These are the most accurate study questions. Just focus on these and sit in your exam. I am very happy with my
More informationLesson 4 Implementing a VI
Lesson 4 Implementing a VI A. Front Panel Design B. LabVIEW Data Types C. Documenting Code D. While Loops E. For Loops F. Timing a VI G. Iterative Data Transfer H. Plotting Data I. Case Structures A. Front
More informationPAGE REPLACEMENT. Operating Systems 2015 Spring by Euiseong Seo
PAGE REPLACEMENT Operating Systems 2015 Spring by Euiseong Seo Today s Topics What if the physical memory becomes full? Page replacement algorithms How to manage memory among competing processes? Advanced
More informationChapter 8: Main Memory
Chapter 8: Main Memory Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel
More informationChapter 8: Virtual Memory. Operating System Concepts
Chapter 8: Virtual Memory Silberschatz, Galvin and Gagne 2009 Chapter 8: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating
More informationI/O Management Software. Chapter 5
I/O Management Software Chapter 5 1 Learning Outcomes An understanding of the structure of I/O related software, including interrupt handers. An appreciation of the issues surrounding long running interrupt
More informationOS impact on performance
PhD student CEA, DAM, DIF, F-91297, Arpajon, France Advisor : William Jalby CEA supervisor : Marc Pérache 1 Plan Remind goal of OS Reproducibility Conclusion 2 OS : between applications and hardware 3
More information!! How is a thread different from a process? !! Why are threads useful? !! How can POSIX threads be useful?
Chapter 2: Threads: Questions CSCI [4 6]730 Operating Systems Threads!! How is a thread different from a process?!! Why are threads useful?!! How can OSIX threads be useful?!! What are user-level and kernel-level
More informationLabVIEW TM Real-Time 2: Architecting Embedded Systems Exercises
LabVIEW TM Real-Time 2: Architecting Embedded Systems Exercises Course Software Version 2012 November 2012 Edition Part Number 325585B-01 LabVIEW Real-Time 2 Exercises Copyright 2010 2012 National Instruments
More informationSmall rectangles (and sometimes squares like this
Lab exercise 1: Introduction to LabView LabView is software for the real time acquisition, processing and visualization of measured data. A LabView program is called a Virtual Instrument (VI) because it,
More informationMemory Management Outline. Operating Systems. Motivation. Paging Implementation. Accessing Invalid Pages. Performance of Demand Paging
Memory Management Outline Operating Systems Processes (done) Memory Management Basic (done) Paging (done) Virtual memory Virtual Memory (Chapter.) Motivation Logical address space larger than physical
More informationLabVIEW Graphical Programming
LabVIEW Graphical Programming Fourth Edition Gary W. Johnson Richard Jennings McGraw-Hill New York Chicago San Francisco Lisbon London Madrid Mexico City Milan New Delhi San Juan Seoul Singapore Sydney
More informationMOIS Overview. 1. Developer Walkthrough
MOIS Overview The Modular Ocean Instrumentation System (MOIS) software was developed in the LabVIEW programming language. The software runs on a LabVIEW real-time target. The National Instruments produced
More informationChapter 8 Virtual Memory
Operating Systems: Internals and Design Principles Chapter 8 Virtual Memory Seventh Edition William Stallings Operating Systems: Internals and Design Principles You re gonna need a bigger boat. Steven
More informationPart 1. Summary of For Loops and While Loops
NAME EET 2259 Lab 5 Loops OBJECTIVES -Understand when to use a For Loop and when to use a While Loop. -Write LabVIEW programs using each kind of loop. -Write LabVIEW programs with one loop inside another.
More informationCertified LabVIEW Associate Developer Sample Exam 1. Test Booklet
ertified LabVIEW ssociate eveloper Sample Exam 1 Test ooklet Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: Please do not detach the binding staple
More informationOperating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings
Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those
More informationBasic Data Acquisition with LabVIEW
Basic Data Acquisition with LabVIEW INTRODUCTION This tutorial introduces the creation of LabView Virtual Instruments (VI s), in several individual lessons. These lessons create a simple sine wave signal,
More informationPROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18
PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations
More informationCS307: Operating Systems
CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn
More informationSubject Name:Operating system. Subject Code:10EC35. Prepared By:Remya Ramesan and Kala H.S. Department:ECE. Date:
Subject Name:Operating system Subject Code:10EC35 Prepared By:Remya Ramesan and Kala H.S. Department:ECE Date:24-02-2015 UNIT 1 INTRODUCTION AND OVERVIEW OF OPERATING SYSTEM Operating system, Goals of
More informationCertified LabVIEW Architect Recertification Exam Test Booklet
Certified LabVIEW Architect Recertification Exam Test Booklet Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: If you did not receive this exam in
More informationChapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition
Chapter 8: Memory- Management Strategies Operating System Concepts 9 th Edition Silberschatz, Galvin and Gagne 2013 Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation
More informationMEMORY MANAGEMENT/1 CS 409, FALL 2013
MEMORY MANAGEMENT Requirements: Relocation (to different memory areas) Protection (run time, usually implemented together with relocation) Sharing (and also protection) Logical organization Physical organization
More informationEffective Performance Measurement and Analysis of Multithreaded Applications
Effective Performance Measurement and Analysis of Multithreaded Applications Nathan Tallent John Mellor-Crummey Rice University CSCaDS hpctoolkit.org Wanted: Multicore Programming Models Simple well-defined
More informationOperating Systems (2INC0) 2017/18
Operating Systems (2INC0) 2017/18 Memory Management (09) Dr. Courtesy of Dr. I. Radovanovic, Dr. R. Mak (figures from Bic & Shaw) System Architecture and Networking Group Agenda Reminder: OS & resources
More informationChapter 8 Virtual Memory
Operating Systems: Internals and Design Principles Chapter 8 Virtual Memory Seventh Edition William Stallings Modified by Rana Forsati for CSE 410 Outline Principle of locality Paging - Effect of page
More informationOperating System. Chapter 4. Threads. Lynn Choi School of Electrical Engineering
Operating System Chapter 4. Threads Lynn Choi School of Electrical Engineering Process Characteristics Resource ownership Includes a virtual address space (process image) Ownership of resources including
More informationLesson 2: Using the Performance Console
Lesson 2 Lesson 2: Using the Performance Console Using the Performance Console 19-13 Windows XP Professional provides two tools for monitoring resource usage: the System Monitor snap-in and the Performance
More informationVirtual Machines and Dynamic Translation: Implementing ISAs in Software
Virtual Machines and Dynamic Translation: Implementing ISAs in Software Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Software Applications How is a software application
More informationLast Class: Deadlocks. Where we are in the course
Last Class: Deadlocks Necessary conditions for deadlock: Mutual exclusion Hold and wait No preemption Circular wait Ways of handling deadlock Deadlock detection and recovery Deadlock prevention Deadlock
More informationGPGPUs in HPC. VILLE TIMONEN Åbo Akademi University CSC
GPGPUs in HPC VILLE TIMONEN Åbo Akademi University 2.11.2010 @ CSC Content Background How do GPUs pull off higher throughput Typical architecture Current situation & the future GPGPU languages A tale of
More informationOutline. Low-Level Optimizations in the PowerPC/Linux Kernels. PowerPC Architecture. PowerPC Architecture
Low-Level Optimizations in the PowerPC/Linux Kernels Dr. Paul Mackerras Senior Technical Staff Member IBM Linux Technology Center OzLabs Canberra, Australia paulus@samba.org paulus@au1.ibm.com Introduction
More information