Advanced Debugging with the System Profiler. Rennie Allen Cisco Field Application Engineer

Size: px
Start display at page:

Download "Advanced Debugging with the System Profiler. Rennie Allen Cisco Field Application Engineer"

Transcription

1 Advanced Debugging with the System Profiler Rennie Allen Cisco Field Application Engineer

2 What is the System Profiler? The System Profiler is a logic analyser for your software system The kernel records every operation in an internal buffer A tool is used to extract this data to a file The file is loaded into the analyser (i.e. the System Profiler) An array of utilities (known as views in Eclipse-speak) are used to mine the data for information about the problem Just like a hardware logic analyser: It is probably not the first tool to be selected It requires a deep understanding of both the tool, and the system being analysed When used correctly, is the only tool that can solve nearly any class of problem

3 Acquiring a Trace How to capture an effective trace

4 Classes of Problems that can be Analyzed Singleton Cyclical Sporadic Temporal Logical Logical Worst-case scenario No known source No information on type of problem Slightly better Can pinpoint when problem occurs Not reproducible Ideal scenario Can reproduce sequence of events/set of logic conditions Ideal scenario Can reproduce sequence of events/set of logic conditions The first step to analyzing a problem, is to develop a strategy to collect a trace As seen can be seen in the above diagram, there are two groupings of the above problem types that inform the basic direction of the trace acquisition strategy, and that is whether the event is singleton, or cyclical

5 Developing a Successful Trace Acquisition Strategy with the System Profiler Developing an effective trace acquisition strategy is likely the most important step Typically each problem requires development of a unique analysis strategy In order to develop a successful analysis strategy the tools/techniques available must be understood, some of these are: Linear tracing Ring-mode tracing Static filtering Dynamic filtering Dynamic statistics Dynamic tracing In broad terms the selection between linear tracing and ring-mode tracing, can be made by deciding whether the problem is cyclic or singleton Cyclic problems (which often encompass performance issues) are often addressed using linear tracing Singleton problems are often addressed with ring-mode tracing

6 Linear mode tracing Linear mode tracing is defined as tracing over a either a controlled period of time, or for a given amount of data Most often, linear mode tracing will make use of either the standard tracelogger or qconn utilities, although a custom utility can also be the appropriate choice Tracelogger is a command-line utility Qconn is a daemon process that allows the Momentics IDE to control the tracing process remotely Qconn allows much finer-grained control of run-time static filtering, than is possible with tracelogger Custom written utilities, can use the TraceEvent() API, to implement either static filtering (i.e. as with qconn) or dynamic tracing/filtering/statistics, none of which are possible with either qconn or tracelogger When linear tracing is required over a relatively long interval, static/dynamic filtering or dynamic tracing will often be necessary in order to maximize the duration which can be recorded in a given amount of storage space

7 Ring-mode tracing Ring-mode tracing is defined as tracing which takes place over an indefinite period, but only results in storage of the trace data when an event of interest occurs Ring-mode almost always involves development of a custom utility (or instrumentation of existing code) to detect the event of interest, and (like linear mode) can involve either static or dynamic run-time filtering as well Ring-mode can be implemented as a two phase process, when there is a known event that precedes the event of interest Phase 1, the user developed code disables tracing, and waits for the pre-cursor event to occur Phase 2, upon detection of the precursor event, tracing is enabled, and the user code waits for the event-of-interest to occur (at which point tracing is stopped, thus producing the trace file This two phase approach can reduce the need for filtering, resulting in the ability to capture more detailed data preceding the event-ofinterest

8 Static filtering Static filtering (at runtime) is defined as filtering based a static mask of events to be traced The tracelogger utility provides only crude control of these static filters The qconn daemon (via the Momentics IDE) provides full control of these static filters (for the duration of the trace) Dynamic tracing can modify these otherwise static filters

9 Dynamic filtering Dynamic filtering is defined as runtime filtering that can change over time based on the state of the system Does not use trace masks like static filtering Filters are established by attaching user event handlers to each event/class type to be filtered Arbitrary user provided C code in this handler determines whether event should be traced, or dropped, and returns either a zero (drop) or a one (trace) As with static filtering, dynamic filtering may be controlled by dynamic tracing

10 Dynamic statistics Dynamic statistics is defined as the runtime collection of event statistics Dynamic statistics are implemented using the same mechanism as dynamic filtering (i.e. the handler callbacks) User supplied code in the event/class handler callback counts events This can be as simple as simply counting each event, or it can be dynamic in that when certain event counters hit certain values, then other statistics counters are enabled, that also record related data An example might be a handler attached to mmap(), that when the number of calls to mmap crosses a threshold over some unit of time, signals a thread to insert a marker user trace (making analysis much easier) Dynamic statistics (like static and dynamic filters) can be controlled by dynamic tracing

11 Dynamic tracing Dynamic tracing is defined as tracing that modifies static/dynamic runtime filters and/or dynamic statistics based on a model of the system applied to the current state of that system This is useful for both chronic analysis (performance) and acute analysis (behavioural defects) An example might be an HA manager process, that focusses tracing on a particular process that it detects is mis-behaving (for instance, it might turn on wide-mode for a class of events related to the undesirable behaviour Dynamic tracing is an extraordinarily powerful technique for instrumenting a fielded system to collect high value traces without user intervention (i.e. it can be a critical component of HA) Dynamic tracing is not something that would typically be employed to analyse a specific defect, since custom code will generally be even more effective than a generalized approach

12 How does it work? The following diagram gives an overview of the mechanism involved in collecting trace data Process/thread creation System calls Interrupts On/Off filters (tracelogger) Static event filters (qconn) Dynamic filters (user code) Events Microkernel State changes E1 E2 E3 E4 E5 E6 Event buffers Visualization (System Profiler) Network Capture File

13 Tracelogger The utility that is most often mentioned when discussing trace acquisition is tracelogger The tracelogger utility serves three purposes It is a useful stand alone utility for linear tracing It is useful when used in conjunction with user supplied code in ringmode tracing Its source is a useful example reference of the TraceEvent() API The tracelogger command line options are described in the QNX documentation suite A simple invocation for linear tracing might be tracelogger w s10.0 This would collect 10 seconds of trace data with ring0 events removed, and all other events collected in wide mode A simple invocation for ring-mode might be tracelogger k256 r This would allocate 256 kernel buffers, and then wait for a _NTO_TRACE_STOP event, at which point it would unload the kernel buffers into a trace file

14 Qconn Qconn (Qnx CONNector) is the daemon that allows the IDE to connect to the target, and control tracing remotely Qconn can be started on cards/blades that don t have a management ethernet port, and (using Qnet) make use of the RP s management ethernet To use qconn on cards/blades that lack an ethernet port of their own, you need to start qconn with the environment variable SOCK set to point to the RP, and to utilize a port that does not conflict with another instance of qconn Example: SOCK=/net/node0_rp0_0 qconn port=8010 Start qconn on a linecard using the network stack on the RP, and listening on port 8010

15 TraceEvent() API The TraceEvent() API is the single most important feature when doing advanced debugging with the System Profiler The TraceEvent() API is document in the manuals Probably the simplest use of the TraceEvent() API that also illustrates the most significant results for debugging is the TraceEvent(_NTO_STOP_TRACE) call Using this single call, in combination with the tracelogger ring mode invocation, yields a backtrace (depth determined by number of kernel buffers and system load) from the detected fault Many DDTS s have been resolved using this technique, and knowledge of how to use this technique is fundamental to basic competency in the System Profiler

16 Analyzing a Trace Rudiments of basic analysis

17 Overview of the System Profiler The System Profiler is the tool that renders the binary trace file It is accessed at Window->Open Perspective->Other: QNX System Profiler The profiler has seven basic editor views, these are: Summary View Partition Summary View CPU Activity View CPU Usage View CPU Migration View Inter CPU Communication View Timeline View These are accessed by using the menu The profiler also has thirteen additional panel views icons, to access the pull-down These views are accessed at Window->Show View->Other: QNX System Profiler

18 Summary View The System Profiler Summary View, provides some basic data about the trace, and is the default view rendered Interesting data includes: Pie chart of CPU allocation between Idle User System Interrupts

19 Partition Summary View The Partition View Summary displays basic data about how partitions are being utilized Interesting data includes: Pie chart of CPU allocation by partition Desired and observed CPU for each partition For each process, the total CPU utilization, and total in each partition

20 CPU Activity View CPU Activity View displays an overview of CPU utilization by core over time

21 CPU Usage View CPU Usage View provides CPU utilization per: Thread Core Priority Partition

22 CPU Migration View CPU Migration View displays the number of times a pre-empted thread is rescheduled on a different core than it was pre-empted from

23 Inter CPU Communication View Inter CPU Communication View displays the number of times a receiving thread unblocks to receive a message from a thread on a different core

24 Timeline View Timeline View is the classical System Profiler View; it provides detailed information regarding a threads state and activities over time, and resembles the display of a hardware logic analyzer Trying to scroll to the solution, via the Timeline View will not be productive The Timeline View should be used when the problem has been isolated using the other editor views, panel views or the trace search facility Views useful for isolating faults are: CPU Usage View (editor view) Partition Summary (editor view) Client Server Statistics (panel view) Why Running? (panel view) Condition Statistics (panel view) Thread Call Stack (panel view)

25 Searching Using the trace search facility

26 What is the Trace Search Facility? The Trace Search Facility is one of the most often used features of the System Profiler when analyzing a trace and, as such, deserves its own section The Trace Search Facility is accessed via Search->Search: Trace Search The Trace Search dialog provides the ability to define a combinatorial search condition, for any of the events in the trace (including user defined events) The Trace Search dialog will pre-scan the trace file, and present only events that actually exist in the trace (so you don t waste time searching for something that doesn t exist at all) The Trace Search dialog also allows parametric searches for each individual event

27 Using the Trace Search Dialog As a simple example, we will configure a search that locates all sends that qconn does to proc, and all receives that proc does on messages from qconn First step is to open the Trace Search dialog

28 Using the Trace Search Dialog (cont) Next, let s configure a condition to detect a send from qconn to proc Click Add in the Defined Conditions group, you ll then see the following Give the condition a name (MsgSend sounds good here) Select a communication class event Select a Send Message event code

29 Using the Trace Search Dialog (cont) Next, select just the element within which to search for the condition In this case, that is qconn, since we want to find the send side of the message So first, uncheck the select all elements checkbox, then select qconn from the list of searchable elements Restrict to pid 1 (proc) Uncheck Select qconn

30 Using the Trace Search Dialog (cont) Now click Finish, to close the condition definition dialog

31 Using the Trace Search Dialog (cont) Next, repeat the steps to define a condition, but this time define a condition as follows Name it Choose a kernel call Select MsgReceivev Exit Restrict search to proc Enter the pid of qconn

32 Using the Trace Search Dialog (cont) Now click Finish, to close the condition definition dialog

33 Using the Trace Search Dialog (cont) Next, set an or ( ) conditional between the MsgSend and MsgReceive conditions, when done click Search

34 Using the Trace Search Dialog (cont) You should see something like this in the Timeline and Search Views

35 Utilizing the Search Results in Condition Statistics Now you can utilize these search conditions to configure a Condition Statistics View First bring the Condition Statistics View to the front Next, click on Configure Table Note that in the upper right there is an icon that allows you to restrict the condition statistics to a selectable range

36 Utilizing the Search Results in Condition Statistics (cont) After clicking on Configure Table you should see the following dialog Select both MsgSend and MsgReceive and then click OK

37 Utilizing the Search Results in Condition Statistics (cont) After clicking on OK, a dialog will prompt you to rerun the statistics, click Yes, and then you should see something like this This shows the number of MsgSends (by qconn) and the corresponding number of MsgReceives (by proc) Of course, this is just a trivial example, but the condition statistics (which are really part of searching) are incredibly valuable

38 Case Studies Reviewing some case studies of actual DDTS s

Visual Profiler. User Guide

Visual Profiler. User Guide Visual Profiler User Guide Version 3.0 Document No. 06-RM-1136 Revision: 4.B February 2008 Visual Profiler User Guide Table of contents Table of contents 1 Introduction................................................

More information

CSE 410 Final Exam 6/09/09. Suppose we have a memory and a direct-mapped cache with the following characteristics.

CSE 410 Final Exam 6/09/09. Suppose we have a memory and a direct-mapped cache with the following characteristics. Question 1. (10 points) (Caches) Suppose we have a memory and a direct-mapped cache with the following characteristics. Memory is byte addressable Memory addresses are 16 bits (i.e., the total memory size

More information

Embedded Resource Manager (ERM)

Embedded Resource Manager (ERM) Embedded Resource Manager (ERM) The Embedded Resource Manager (ERM) feature allows you to monitor internal system resource utilization for specific resources such as the buffer, memory, and CPU ERM monitors

More information

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann

AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel. Alexander Züpke, Marc Bommert, Daniel Lohmann AUTOBEST: A United AUTOSAR-OS And ARINC 653 Kernel Alexander Züpke, Marc Bommert, Daniel Lohmann alexander.zuepke@hs-rm.de, marc.bommert@hs-rm.de, lohmann@cs.fau.de Motivation Automotive and Avionic industry

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 16: Threads and data sharing Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 16 1 / 24 Overview Last lecture: Hierarchical

More information

Process Time. Steven M. Bellovin January 25,

Process Time. Steven M. Bellovin January 25, Multiprogramming Computers don t really run multiple programs simultaneously; it just appears that way Each process runs to completion, but intermixed with other processes Process 1 6 ticks Process 2 Process

More information

Native POSIX Thread Library (NPTL) CSE 506 Don Porter

Native POSIX Thread Library (NPTL) CSE 506 Don Porter Native POSIX Thread Library (NPTL) CSE 506 Don Porter Logical Diagram Binary Memory Threads Formats Allocators Today s Lecture Scheduling System Calls threads RCU File System Networking Sync User Kernel

More information

Processes and Threads

Processes and Threads OPERATING SYSTEMS CS3502 Spring 2018 Processes and Threads (Chapter 2) Processes Two important types of dynamic entities in a computer system are processes and threads. Dynamic entities only exist at execution

More information

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Operating Systems Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

CSC 539: Operating Systems Structure and Design. Spring 2006

CSC 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 information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

An Implementation Of Multiprocessor Linux

An Implementation Of Multiprocessor Linux An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than

More information

Performance analysis basics

Performance analysis basics Performance analysis basics Christian Iwainsky Iwainsky@rz.rwth-aachen.de 25.3.2010 1 Overview 1. Motivation 2. Performance analysis basics 3. Measurement Techniques 2 Why bother with performance analysis

More information

Process Management. Deadlock. Process Synchronization. Management Management. Starvation

Process Management. Deadlock. Process Synchronization. Management Management. Starvation Process Management Deadlock 7 Cases of Deadlock Conditions for Deadlock Modeling Deadlocks Strategies for Handling Deadlocks Avoidance Detection Recovery Starvation Process Synchronization Deadlock Starvation

More information

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant. 24-vm.txt Mon Nov 21 22:13:36 2011 1 Notes on Virtual Machines 15-440, Fall 2011 Carnegie Mellon University Randal E. Bryant References: Tannenbaum, 3.2 Barham, et al., "Xen and the art of virtualization,"

More information

System Call. Preview. System Call. System Call. System Call 9/7/2018

System Call. Preview. System Call. System Call. System Call 9/7/2018 Preview Operating System Structure Monolithic Layered System Microkernel Virtual Machine Process Management Process Models Process Creation Process Termination Process State Process Implementation Operating

More information

Lecture 4: Memory Management & The Programming Interface

Lecture 4: Memory Management & The Programming Interface CS 422/522 Design & Implementation of Operating Systems Lecture 4: Memory Management & The Programming Interface Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken

More information

Process Description and Control. Chapter 3

Process Description and Control. Chapter 3 Process Description and Control 1 Chapter 3 2 Processes Working definition: An instance of a program Processes are among the most important abstractions in an OS all the running software on a computer,

More information

Time Triggered and Event Triggered; Off-line Scheduling

Time Triggered and Event Triggered; Off-line Scheduling Time Triggered and Event Triggered; Off-line Scheduling Real-Time Architectures -TUe Gerhard Fohler 2004 Mälardalen University, Sweden gerhard.fohler@mdh.se Real-time: TT and ET Gerhard Fohler 2004 1 Activation

More information

Virtual Memory. CSCI 315 Operating Systems Design Department of Computer Science

Virtual Memory. CSCI 315 Operating Systems Design Department of Computer Science Virtual Memory CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture have been largely based on those from an earlier edition of the course text Operating

More information

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001 K42 Team modified October 2001 This paper discusses how K42 uses Linux-kernel components to support a wide range of hardware, a full-featured TCP/IP stack and Linux file-systems. An examination of the

More information

Processes. OS Structure. OS Structure. Modes of Execution. Typical Functions of an OS Kernel. Non-Kernel OS. COMP755 Advanced Operating Systems

Processes. OS Structure. OS Structure. Modes of Execution. Typical Functions of an OS Kernel. Non-Kernel OS. COMP755 Advanced Operating Systems OS Structure Processes COMP755 Advanced Operating Systems An OS has many parts. The Kernel is the core of the OS. It controls the execution of the system. Many OS features run outside of the kernel, such

More information

Operating Systems. Memory Management. Lecture 9 Michael O Boyle

Operating Systems. Memory Management. Lecture 9 Michael O Boyle Operating Systems Memory Management Lecture 9 Michael O Boyle 1 Memory Management Background Logical/Virtual Address Space vs Physical Address Space Swapping Contiguous Memory Allocation Segmentation Goals

More information

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016 Xen and the Art of Virtualization CSE-291 (Cloud Computing) Fall 2016 Why Virtualization? Share resources among many uses Allow heterogeneity in environments Allow differences in host and guest Provide

More information

CSE398: Network Systems Design

CSE398: Network Systems Design CSE398: Network Systems Design Instructor: Dr. Liang Cheng Department of Computer Science and Engineering P.C. Rossin College of Engineering & Applied Science Lehigh University February 23, 2005 Outline

More information

Grand Central Dispatch

Grand Central Dispatch A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model

More information

CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable)

CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable) CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable) Past & Present Have looked at two constraints: Mutual exclusion constraint between two events is a requirement that

More information

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU BCA-3 rd Semester 030010304-Fundamentals Of Operating Systems Unit: 1 Introduction Short Answer Questions : 1. State two ways of process communication. 2. State any two uses of operating system according

More information

3.1 Introduction. Computers perform operations concurrently

3.1 Introduction. Computers perform operations concurrently PROCESS CONCEPTS 1 3.1 Introduction Computers perform operations concurrently For example, compiling a program, sending a file to a printer, rendering a Web page, playing music and receiving e-mail Processes

More information

Messaging Framework Module Guide

Messaging Framework Module Guide Application Note Renesas Synergy Platform R11AN0096EU0102 Rev.1.02 Introduction This module guide will enable you to effectively use a module in your own design. Upon completion of this guide, you will

More information

NightStar. NightView Source Level Debugger. Real-Time Linux Debugging and Analysis Tools BROCHURE

NightStar. NightView Source Level Debugger. Real-Time Linux Debugging and Analysis Tools BROCHURE NightStar Real-Time Linux Debugging and Analysis Tools Concurrent s NightStar is a powerful, integrated tool set for debugging and analyzing time-critical Linux applications. NightStar tools run with minimal

More information

OS Structure. Kevin Webb Swarthmore College January 25, Relevant xkcd:

OS Structure. Kevin Webb Swarthmore College January 25, Relevant xkcd: OS Structure Kevin Webb Swarthmore College January 25, 2018 Relevant xkcd: One of the survivors, poking around in the ruins with the point of a spear, uncovers a singed photo of Richard Stallman. They

More information

LabVIEW Basics I: Introduction Course

LabVIEW Basics I: Introduction Course www.ni.com/training LabVIEW Basics I Page 1 of 4 LabVIEW Basics I: Introduction Course Overview The LabVIEW Basics I course prepares you to develop test and measurement, data acquisition, instrument control,

More information

10 MONITORING AND OPTIMIZING

10 MONITORING AND OPTIMIZING MONITORING AND OPTIMIZING.1 Introduction Objectives.2 Windows XP Task Manager.2.1 Monitor Running Programs.2.2 Monitor Processes.2.3 Monitor System Performance.2.4 Monitor Networking.2.5 Monitor Users.3

More information

Changing the Embedded World TM. Module 3: Getting Started Debugging

Changing the Embedded World TM. Module 3: Getting Started Debugging Changing the Embedded World TM Module 3: Getting Started Debugging Module Objectives: Section 1: Introduce Debugging Techniques Section 2: PSoC In-Circuit Emulator (ICE) Section 3: Hands on Debugging a

More information

Green Hills Software, Inc.

Green Hills Software, Inc. Green Hills Software, Inc. A Safe Tasking Approach to Ada95 Jim Gleason Engineering Manager Ada Products 5.0-1 Overview Multiple approaches to safe tasking with Ada95 No Tasking - SPARK Ada95 Restricted

More information

Understanding the TOP Server ControlLogix Ethernet Driver

Understanding the TOP Server ControlLogix Ethernet Driver Understanding the TOP Server ControlLogix Ethernet Driver Page 2 of 23 Table of Contents INTRODUCTION 3 UPDATE RATES AND TAG REQUESTS 4 CHANNEL AND DEVICE CONFIGURATION 7 PROTOCOL OPTIONS 9 TAG GENERATION

More information

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

CSC 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 information

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Announcements. 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 information

Chapter 8: Virtual Memory. Operating System Concepts

Chapter 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 information

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory

Embedded Systems. 5. Operating Systems. Lothar Thiele. Computer Engineering and Networks Laboratory Embedded Systems 5. Operating Systems Lothar Thiele Computer Engineering and Networks Laboratory Embedded Operating Systems 5 2 Embedded Operating System (OS) Why an operating system (OS) at all? Same

More information

Debugging Nios II Systems with the SignalTap II Logic Analyzer

Debugging Nios II Systems with the SignalTap II Logic Analyzer Debugging Nios II Systems with the SignalTap II Logic Analyzer May 2007, ver. 1.0 Application Note 446 Introduction As FPGA system designs become more sophisticated and system focused, with increasing

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 205 Lecture 23 LAST TIME: VIRTUAL MEMORY! Began to focus on how to virtualize memory! Instead of directly addressing physical memory, introduce a level of

More information

System Wide Tracing User Need

System Wide Tracing User Need System Wide Tracing User Need dominique toupin ericsson com April 2010 About me Developer Tool Manager at Ericsson, helping Ericsson sites to develop better software efficiently Background

More information

FROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS

FROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS FROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS Peter Puschner and Raimund Kirner Vienna University of Technology, A-1040 Vienna, Austria {peter, raimund}@vmars.tuwien.ac.at Abstract Keywords:

More information

Task Based Programming Revisited Real Time Operating Systems

Task Based Programming Revisited Real Time Operating Systems ECE3411 Fall 2016 Lecture 6a. Task Based Programming Revisited Real Time Operating Systems Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut

More information

Chapter 3: Processes. Operating System Concepts 9 th Edition

Chapter 3: Processes. Operating System Concepts 9 th Edition Chapter 3: Processes Silberschatz, Galvin and Gagne 2013 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication

More information

RTOS 101. Understand your real-time applications. with the help of Percepio Tracealyzer

RTOS 101. Understand your real-time applications. with the help of Percepio Tracealyzer RTOS 101 Understand your real-time applications with the help of Percepio Tracealyzer RTOS 101 Tasks, Priorities and Analysis Figure 1: Tracealyzer showing RTOS task scheduling and calls to RTOS services.

More information

In-Field Debugging: Diagnosing Software Problems While Maintaining System Availability

In-Field Debugging: Diagnosing Software Problems While Maintaining System Availability In-Field Debugging: Diagnosing Software Problems While Maintaining System Availability Paul Leroux, Technology Analyst, QNX Software Systems paull@qnx.com Abstract Software bugs that make it to market

More information

Hands-on Lab Session 9909 Introduction to Application Performance Management: Monitoring. Timothy Burris, Cloud Adoption & Technical Enablement

Hands-on Lab Session 9909 Introduction to Application Performance Management: Monitoring. Timothy Burris, Cloud Adoption & Technical Enablement Hands-on Lab Session 9909 Introduction to Application Performance Management: Monitoring Timothy Burris, Cloud Adoption & Technical Enablement Copyright IBM Corporation 2017 IBM, the IBM logo and ibm.com

More information

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9 Implementing Scheduling Algorithms Real-Time and Embedded Systems (M) Lecture 9 Lecture Outline Implementing real time systems Key concepts and constraints System architectures: Cyclic executive Microkernel

More information

Chapter 3: Processes. Operating System Concepts 8th Edition

Chapter 3: Processes. Operating System Concepts 8th Edition Chapter 3: Processes Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication in Client-Server Systems 3.2 Objectives

More information

New IDE Application Profiler Enhancements

New IDE Application Profiler Enhancements New IDE Application Profiler Enhancements Authored by: Elena Laskavaia The new Application Profiler features are currently under development for the next release of QNX Momentics. Use the forum and provide

More information

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger C-SPY plugin Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger This document describes the IAR C-SPY Debugger plugin for the ThreadX RTOS. The ThreadX RTOS awareness

More information

Scope View provides a number of powerful visual tools to enhance analysis and display.

Scope View provides a number of powerful visual tools to enhance analysis and display. Scope View Scope View: LabChart 7.1 or later Scope View in LabChart is an alternative way of displaying LabChart data. Together with PowerLab, Scope View in LabChart provides and expands upon the display

More information

Help Volume Agilent Technologies. All rights reserved. Agilent E2485A Memory Expansion Interface

Help Volume Agilent Technologies. All rights reserved. Agilent E2485A Memory Expansion Interface Help Volume 1994-2002 Agilent Technologies. All rights reserved. Agilent E2485A Memory Expansion Interface Agilent E2485A Memory Expansion Interface The E2485A Memory Expansion Interface lets you use the

More information

Opal. Robert Grimm New York University

Opal. Robert Grimm New York University Opal Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? The Three Questions What is the problem? Applications

More information

Real-Time Programming

Real-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 information

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

OS 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 information

ò mm_struct represents an address space in kernel ò task represents a thread in the kernel ò A task points to 0 or 1 mm_structs

ò mm_struct represents an address space in kernel ò task represents a thread in the kernel ò A task points to 0 or 1 mm_structs Last time We went through the high-level theory of scheduling algorithms Scheduling Today: View into how Linux makes its scheduling decisions Don Porter CSE 306 Lecture goals Understand low-level building

More information

OVERVIEW. Last Week: But if frequency of high priority task increases temporarily, system may encounter overload: Today: Slide 1. Slide 3.

OVERVIEW. Last Week: But if frequency of high priority task increases temporarily, system may encounter overload: Today: Slide 1. Slide 3. OVERVIEW Last Week: Scheduling Algorithms Real-time systems Today: But if frequency of high priority task increases temporarily, system may encounter overload: Yet another real-time scheduling algorithm

More information

QNX Software Development Platform 6.6. Quickstart Guide

QNX Software Development Platform 6.6. Quickstart Guide QNX Software Development Platform 6.6 QNX Software Development Platform 6.6 Quickstart Guide 2005 2014, QNX Software Systems Limited, a subsidiary of BlackBerry. All rights reserved. QNX Software Systems

More information

Scheduling. Don Porter CSE 306

Scheduling. Don Porter CSE 306 Scheduling Don Porter CSE 306 Last time ò We went through the high-level theory of scheduling algorithms ò Today: View into how Linux makes its scheduling decisions Lecture goals ò Understand low-level

More information

ChartView Out-of-the-Box Setup, Acquisition, & Real-Time Display Software

ChartView Out-of-the-Box Setup, Acquisition, & Real-Time Display Software Out-of-the-Box Setup, Acquisition, & Real-Time Display Software ChartView Software Display and record data in minutes, with no programming Display strip charts in real time Make on-screen measurements

More information

Lab IP Addresses and Network Communication

Lab IP Addresses and Network Communication Lab 3.5.2 IP Addresses and Network Communication Objectives Build a simple peer-to-peer network and verify physical connectivity. Assign various IP addresses to hosts and observe the effects on network

More information

LPGPU2 Font Renderer App

LPGPU2 Font Renderer App LPGPU2 Font Renderer App Performance Analysis 2 Introduction As part of LPGPU2 Work Package 3, a font rendering app was developed to research the profiling characteristics of different font rendering algorithms.

More information

Today s Topics. u Thread implementation. l Non-preemptive versus preemptive threads. l Kernel vs. user threads

Today s Topics. u Thread implementation. l Non-preemptive versus preemptive threads. l Kernel vs. user threads Today s Topics COS 318: Operating Systems Implementing Threads u Thread implementation l Non-preemptive versus preemptive threads l Kernel vs. user threads Jaswinder Pal Singh and a Fabulous Course Staff

More information

CHAPTER 3 - PROCESS CONCEPT

CHAPTER 3 - PROCESS CONCEPT CHAPTER 3 - PROCESS CONCEPT 1 OBJECTIVES Introduce a process a program in execution basis of all computation Describe features of processes: scheduling, creation, termination, communication Explore interprocess

More information

VEOS high level design. Revision 2.1 NEC

VEOS high level design. Revision 2.1 NEC high level design Revision 2.1 NEC Table of contents About this document What is Components Process management Memory management System call Signal User mode DMA and communication register Feature list

More information

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools Simplifying the Development and Debug of 8572-Based SMP Embedded Systems Wind River Workbench Development Tools Agenda Introducing multicore systems Debugging challenges of multicore systems Development

More information

10/17/ Gribble, Lazowska, Levy, Zahorjan 2. 10/17/ Gribble, Lazowska, Levy, Zahorjan 4

10/17/ Gribble, Lazowska, Levy, Zahorjan 2. 10/17/ Gribble, Lazowska, Levy, Zahorjan 4 Temporal relations CSE 451: Operating Systems Autumn 2010 Module 7 Synchronization Instructions executed by a single thread are totally ordered A < B < C < Absent synchronization, instructions executed

More information

Application debugging USB Bus utilization graph

Application debugging USB Bus utilization graph Enabling Global Connectivity Computer Access Technology Corporation Tel: (408) 727-6600, Fax: (408) 727-6622 www.catc.com Application debugging USB Bus utilization graph Application Note Introduction The

More information

You have a PC with a USB interface, running Microsoft Windows XP (SP2 or greater) or Vista You have the Workshop Installation Software Flash Drive

You have a PC with a USB interface, running Microsoft Windows XP (SP2 or greater) or Vista You have the Workshop Installation Software Flash Drive 03- COMPOSER STUDIO Stellaris Development and Evaluation Kits for Code Composer Studio The Stellaris Development and Evaluation Kits provide a low-cost way to start designing with Stellaris microcontrollers

More information

Signals, Synchronization. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han

Signals, Synchronization. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han , Synchronization CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han Announcements Program Assignment #1 due Tuesday Feb. 15 at 11:55 pm TA will explain parts b-d in recitation Read chapters 7 and

More information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23 CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 208 Lecture 23 LAST TIME: VIRTUAL MEMORY Began to focus on how to virtualize memory Instead of directly addressing physical memory, introduce a level of indirection

More information

Accelerated Library Framework for Hybrid-x86

Accelerated Library Framework for Hybrid-x86 Software Development Kit for Multicore Acceleration Version 3.0 Accelerated Library Framework for Hybrid-x86 Programmer s Guide and API Reference Version 1.0 DRAFT SC33-8406-00 Software Development Kit

More information

Arachne. Core Aware Thread Management Henry Qin Jacqueline Speiser John Ousterhout

Arachne. Core Aware Thread Management Henry Qin Jacqueline Speiser John Ousterhout Arachne Core Aware Thread Management Henry Qin Jacqueline Speiser John Ousterhout Granular Computing Platform Zaharia Winstein Levis Applications Kozyrakis Cluster Scheduling Ousterhout Low-Latency RPC

More information

file://c:\documents and Settings\degrysep\Local Settings\Temp\~hh607E.htm

file://c:\documents and Settings\degrysep\Local Settings\Temp\~hh607E.htm Page 1 of 18 Trace Tutorial Overview The objective of this tutorial is to acquaint you with the basic use of the Trace System software. The Trace System software includes the following: The Trace Control

More information

COMP I/O, interrupts, exceptions April 3, 2016

COMP I/O, interrupts, exceptions April 3, 2016 In this lecture, I will elaborate on some of the details of the past few weeks, and attempt to pull some threads together. System Bus and Memory (cache, RAM, HDD) We first return to an topic we discussed

More information

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected

More information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes 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 information

The QuickCalc BASIC User Interface

The QuickCalc BASIC User Interface The QuickCalc BASIC User Interface Running programs in the Windows Graphic User Interface (GUI) mode. The GUI mode is far superior to running in the CONSOLE mode. The most-used functions are on buttons,

More information

Virtual Memory. Virtual Memory. Demand Paging. valid-invalid bit. Virtual Memory Larger than Physical Memory

Virtual Memory. Virtual Memory. Demand Paging. valid-invalid bit. Virtual Memory Larger than Physical Memory Virtual Memory Virtual Memory CSCI Operating Systems Design Department of Computer Science Virtual memory separation of user logical memory from physical memory. Only part of the program needs to be in

More information

SteelCentral Packet Analyser Walkthrough

SteelCentral Packet Analyser Walkthrough SteelCentral Packet Analyser Walkthrough The aim of this demo is to show how to perform simple analysis of packets using the SteelCentral Packet Analyser in conjunction with NetShark. We will talk through

More information

Debugging with System Analyzer. Todd Mullanix TI-RTOS Apps Manager Oct. 15, 2017

Debugging with System Analyzer. Todd Mullanix TI-RTOS Apps Manager Oct. 15, 2017 Debugging with System Analyzer Todd Mullanix TI-RTOS Apps Manager Oct. 15, 2017 Abstract In software engineering, tracing involves a specialized use of logging to record information about a program's execution.

More information

Parallel Debugging. ª Objective. ª Contents. ª Learn the basics of debugging parallel programs

Parallel Debugging. ª Objective. ª Contents. ª Learn the basics of debugging parallel programs ª Objective ª Learn the basics of debugging parallel programs ª Contents ª Launching a debug session ª The Parallel Debug Perspective ª Controlling sets of processes ª Controlling individual processes

More information

Using the MPU with an RTOS to Enhance System Safety and Security

Using the MPU with an RTOS to Enhance System Safety and Security Using the MPU with an RTOS to Enhance System Safety and Security By Stephen Ridley 10 December, 2016 www.highintegritysystems.com WITTENSTEIN WITTENSTEIN high integrity systems: A World Leading RTOS Ecosystem

More information

Introduction. If communication is lost, the following message may appear:

Introduction. If communication is lost, the following message may appear: MP160 COMMUNICATION 42 Aero Camino, Goleta, CA 93117 Tel (805) 685-0066 Fax (805) 685-0067 info@biopac.com www.biopac.com Introduction 06.27.2016 This document provides background information and troubleshooting

More information

Page Replacement. 3/9/07 CSE 30341: Operating Systems Principles

Page Replacement. 3/9/07 CSE 30341: Operating Systems Principles Page Replacement page 1 Page Replacement Algorithms Want lowest page-fault rate Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering)

Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering) A. Multiple Choice Questions (60 questions) Subject: Operating System (BTCOC403) Class: S.Y.B.Tech. (Computer Engineering) Unit-I 1. What is operating system? a) collection of programs that manages hardware

More information

Process Scheduling Queues

Process Scheduling Queues Process Control Process Scheduling Queues Job queue set of all processes in the system. Ready queue set of all processes residing in main memory, ready and waiting to execute. Device queues set of processes

More information

Processes & Threads. Recap of the Last Class. Microkernel System Architecture. Layered Structure

Processes & Threads. Recap of the Last Class. Microkernel System Architecture. Layered Structure Recap of the Last Class Processes & Threads CS 256/456 Dept. of Computer Science, University of Rochester Hardware protection kernel and user mode System components process management, memory management,

More information

Operating Systems (2INC0) 2017/18

Operating 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 information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS 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 information

Processes and Threads

Processes and Threads COS 318: Operating Systems Processes and Threads Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318 Today s Topics u Concurrency

More information

Virtual Memory. CSCI 315 Operating Systems Design Department of Computer Science

Virtual Memory. CSCI 315 Operating Systems Design Department of Computer Science Virtual Memory CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture were based on those Operating Systems Concepts, 9th ed., by Silberschatz, Galvin, and

More information

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a

More information

CS 136: Advanced Architecture. Review of Caches

CS 136: Advanced Architecture. Review of Caches 1 / 30 CS 136: Advanced Architecture Review of Caches 2 / 30 Why Caches? Introduction Basic goal: Size of cheapest memory... At speed of most expensive Locality makes it work Temporal locality: If you

More information