A Lightweight Dynamic Performance Monitoring Framework for Embedded Systems
|
|
|
- Angelina Adams
- 10 years ago
- Views:
Transcription
1 A Lightweight Dynamic Performance Monitoring Framework for Embedded Systems Yao Guo, Ziwen Chen, Xiangqun Chen Key Laboratory of High-Confidence Software Technologies (Ministry of Education) Institute of Software, School of EECS, Peking University Beijing, , PR China {yaoguo, chenzw06, Abstract Traditional monitoring techniques are not suitable for embedded systems because they could incur significant overhead. This paper proposes a lightweight dynamic performance monitoring framework for embedded systems focusing on reducing the dynamic monitoring overhead. With the introduction of a target-host separation and cooperation model, the target (embedded) system only needs to perform minimal low-overhead tasks while most of the high-overhead tasks were migrated to the host machine. The overhead in the target embedded system is further reduced through a low-cost dynamic instrumentation mechanism with direct jump instructions. Keywords: performance monitoring, embedded systems, dynamic instrumentation 1. Introduction An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with resource-constrained hardware. Because of its characteristic of specialization in usage and limitation in hardware resources, embedded system designs are normally optimized from various perspectives, including reducing the size and cost of the product, or increasing the reliability and performance. Therefore, a monitoring tool that attempts to collect enough data needs to not only answer the simple question does the embedded system perform well? but also to a more complicated question where is the bottleneck?. However, monitoring always introduces significant costs with high frequency events. To facilitate optimization of system performance and diagnosis of system faults and anomalies, performance monitoring on embedded systems requires special techniques to reduce its overhead. There exist many performance monitoring tools such as LTT [1], Kprobes [2], [3], Djprobe[4], SystemTap [5], Gprof [6], and Oprofile [7]. The techniques used by these tools can be divided into two main categories: instrumentation [8] and statistical sampling [9], [10]. Generally speaking, statistical sampling tools collect program counter information and other runtime data when specific event happens, such as timer interrupt or performance monitor counter (PMC) overflow events. But the main limitation of statistical sampling is that events with small and medium-sized populations would fly under the radar and cannot be detected. The more popularly accepted technique is instrumentation, which can be classified into two types: static instrumentation and dynamic instrumentation. Static instrumentation typically requires modification to source code or binaries and also demands multiple rebuilds and reboots. The instrumented code still resides in memory after the monitoring task accomplishes. Consequently, the main disadvantage of static instrumentation is its lack of flexibility. Dynamic instrumentation allows program modification, debugging and extension all at runtime. However, dynamic instrumentation by trap instructions and then looking up handlers will incur enormous overhead, which is especially unacceptable when applied to embedded systems. In this paper, we present a lightweight dynamic performance monitoring framework for the embedded system. To achieve flexibility and performance simultaneously, we propose a target/host separation and cooperation model. In this model, most of the high-cost calculation tasks can be moved to the host machine that does not have the constraints of limited computing resources. We also implement a low-cost dynamic instrumentation mechanism in the target embedded system based on directly jump instructions, which is referred as embedded system probe (esprobe for short). The host machine and the target system communicate between each other through NFS over high-speed Ethernet. Monitoring commands are issued from the host machine and then collected profiling data can be copied from the target system back to the host machine. All other complicated computing-related operations could run solely on the host machine, relieving the target system from performing highoverhead tasks with its limited resources. We implement the framework and perform case studies
2 Addr Kernel Context save Probe handler Context restore introduced is normally unacceptable for embedded system monitoring. We propose esprobe, a low-cost dynamic probing tool using direct jump instructions. It can be applied to most embedded system that uses a RISC architecture processor, whose instruction length is fixed. Replacement of original instructions through jumps will not cause unanticipated crashes because the length of each instruction is always the same. The probe handler is invoked in a prepared code patch after a probe is triggered at runtime. The overall execution process of esprobe is shown in Figure 1. We will describe the details of the key steps next. Original instruction Figure 1. the execution flow in kernel after dynamic instrumentation to demonstrate its feasibility and performance. Experimental results show that we achieve two key goals with the proposed framework: (1) Reduce the cost/overhead of dynamic instrumentation with a low-cost probing technique esprobe; (2) Efficiently support system monitoring (tracing and probing) through target/host separation and cooperation. The remainder of the paper is organized as follows. Section 2 describes the proposed light-weight probing technique. In section 3 we discuss our dynamic performance monitoring framework. Section 4 describes the implementation of a prototype. Section 5 shows a case study and section 6 concludes this paper. 2. Lightweight Dynamic Probing To perform monitoring in an embedded system, we first present a low-cost dynamic probing mechanism in the target system to gather runtime information. Tools such as Dtrace [11], SystemTap and Kprobes allow developers to dynamically insert probes into the kernel. However, one of the key problems with these tools is their cost. For example, in Kprobes, an original instruction at a probe point is copied to an out-of-line buffer and a breakpoint instruction is inserted at the probe point. The breakpoint instruction triggers a break-point exception and invokes pre handler() of the kprobes from the break-point exception handler. After that, it executes the out-of-line buffer in single-step mode. Then, it triggers a single-step exception and invokes post handler(). Finally, it returns to the instruction following the probe point [4]. Thus one execution of each probe includes at least two exceptions and four full context switches. The performance overhead 2.1. Esprobe Module Initialization During the initialization phase, esprobe requests several pages of kernel executable memory to hold probes through vmalloc(). Each page would be divided into several slots that can be allocated as code patches. Because the size of a code patch is set, the number of slots at each page can also be determined. These memory slots will be reserved till the esprobe module finishes execution Esprobe Object Registration The registration phrase of an esprobe object can be divided into two steps: preparing code patch and inserting it into the desired kernel code location. At first, it selects a free slot in the instruction pages; if there is no free slot, it will return an error message (such as TOO MANY PROBES in our case). The code in Figure 2, which will be used as the template while preparing code patch, is already compiled into the kernel. The right column in the figure lists the machine code corresponding to the instruction on the left. The first four instructions perform context saving, while the last four instructions perform context restoring. The other three instructions in the middle prepare two parameters and jump to the unique entry of the probe handler. After the code template is copied to the corresponding slot, it will be modified accordingly. In the first underlined instruction, the shift operand of the MOV instruction should be changed to the slot ID. Thus register r0 holds the ID of the slot and r1 holds the address of stack that points to a pt regs structure 1. The second underlined instruction is a function call instruction. Here we change the destination address of the branch to invoke the esprobe handler function (i.e., esprobe handler(intid, pt regs regs)). In this entry we will look up the esprobe object with the slot ID and call the pre-handler specified in the object. In the end, an instruction that will jump back to kernel is inserted into the slot. 1. pt regs is a C struct mapping to all register values, which is specific to the underlying machine architecture
3 .global code_patch_entry SUB sp, sp, #72 STMIA sp, {r0-lr} MRS r0, cpsr STR r0, [sp, #64] MOV r1, sp MOV r0, #0 BL code_patch_entry LDR r0, [sp, #64] MSR cpsr, r0 LDMIA sp, {r0-lr} ADD sp, sp, #72 e24dd048 e88d7fff e10f0000 e58d0040 e1a0100d e3a00000 ebfffffe e59d0040 e129f000 e89d7fff E28dd048 Figure 2. The code template used in dynamic probe. After the above steps, a code patch extending the kernel that is able to collect running profiling information has been prepared. The only remaining work is to replace the specified kernel instruction with a jump instruction that splices the kernel and code patch. 3. The Monitoring Framework In this section, we present a lightweight dynamic performance monitoring framework to reduce the monitoring overhead on an embedded system. The overall architecture of the proposed framework is shown in Figure 3. The key idea in the proposed framework is to separate the whole monitoring task into two collaborating subtasks, which can be run on the target embedded system and a high-performance host machine separately. We also utilize the low-cost dynamic instrumentation mechanism proposed in the last section in the target embedded system to gather system profiling information. The result of this separation/cooperation model is that most calculation (including tasks such as visualization if necessary) work will be done in the host machine that does not have strict performance/resource constraints. In the target embedded system, the added overhead comes only from the probe module and the daemon module, which can be implemented pretty efficiently. Our work is kind of similar to Noji s work on SystemTap [12]. However, the key difference is that our framework doe not use SystemTap and Kprobes in the infrastructure in order to minimize the performance overhead due to monitoring. To trace an embedded system, we can describe the instrumentation points and data fields to be collected in an easy-to-write script. In our prototype implementation, XML is used as our script language. We provide some predefined trace hooks that is essential and important to understand the whole embedded system. These scripts can also be used by other users as templates to implement their own hooks. If a user needs to insert hooks to some additional spots, he only needs to write his own script and our framework can perform all the remaining work automatically, without requiring rebuilding or rebooting the target system Operations in the Host Side To simplify the tasks on the target embedded system, the proposed monitoring framework utilizes a compilation process to generate instrumentation code. However, we could use XML as the script language to write the specification that contains probes and handlers. The runtime address of local variables and function parameters should also be calculated at the host machine based on the symbol table and procedure call standards of its underlying architecture (ARM in our case). The generated kernel module code will be crosscompiled to a binary and then copied to a directory that is mounted to the target system. We will provide predefined events in a script library, which can be used easily by users to generate their desired scripts of monitoring events. In our framework, we support the addition and removal of events according to user preference without rebuilding the target embedded operating system Operations in the Target Side There are two main components in the target side. One is the dynamic instrumentation component esprobe, and the other is a daemon running in the user space whose main task is to collect data. As mentioned in section 2, the overhead of the dynamic instrumentation in Linux is too heavy to be tolerated in an embedded system. The esprobe probing on embedded systems has similar features as kprobes, except that we implement esprobe using direct jump instructions in order to reduce its overhead. Esprobe is enlightened by Djprobe, which itself is also an improvement of kprobes using direct jump instruction in an x86 architecture. The main task of the probing daemon is to collect tracing data generated in a variety of probe handlers. We adopt a swap buffer model to transmit data from memory to permanent storage. The swap buffer model requires two buffers that can will be used alternatively. When a buffer is full, the kernel wakes the daemon up and uses the other buffer as the current writing buffer. The old writing buffer will be marked as the reading buffer, and can be transmitted to the host machine as a whole directly through NFS Communication With the monitoring task divided into two distributed subtasks, how to communicate between the host machine and the target system becomes an important issue.
4 Host(X86) Scripts Parse & Translate C Source Code Cross Compile reference Scripts lib Target Kernel Debug Info NFS Kernel Module Results Target (ARM) output insmod Target Kernel esprobe daemon swap buffer Figure 3. The architecture of the proposed dynamic performance monitoring framework. After the kernel module binary has been created in the host machine, the framework sends a message containing the file name to the target system through sockets. The daemon receives the message and then executes insmod to dynamically load the kernel module. The daemon in the target system transmits the running information data from memory to the host machine s disk through NFS until the tracing task finishes Communication between kernel and user space. First, to transfer data between kernel and user space, the data was filled into a buffer resided in the kernel space. To boost the efficiency of data relay, we adopt a swap buffer model as discussed previously. In Linux, the address space of every process is divided into kernel space and user space. The user program should not be allowed to process the data or code directly except through system calls. The addresses in the user space therefore are all virtual addresses. To relay data to the disk, the daemon should have the knowledge about the data address. One typical implementation is to copy data from kernel to user space through the /proc file system. In our design, we use S3C44B0X as the target system that does not possess memory management units (MMUs). All processes share the same address space and the kernel data segment can be accessed without protection. We create a /proc entry in the directory through which the user daemon can get the address of swap buffers and notify its process ID (PID) to the kernel. Then the daemon goes to sleep till it receives a signal. When one buffer is full, the kernel notifies the daemon and uses the other empty buffer to write tracing data. If the daemon resumes running, it will check the last buffer ID it uses and select another buffer to write to Communication between host machine and target system. There are many choices of communication methods between the host and target, including Ethernet or serial ports. After parsing and translating the XML scripts and cross-compiling the target kernel module, the process in the host machine should notify the daemon in the target to insert the kernel module dynamically. Then the daemon should relay collected data from the buffer to a permanent storage medium. After that, the data could be analyzed and visualized in the host machine. We handle the communication through Ethernet. When the kernel module is prepared in the host, the host process puts the module into a directory shared through NFS over Ethernet and sends a message containing the module name to the daemon in the target system. The daemon then receives this message and inserts the module. The pseudo code is shown in Figure A Case Study To demonstrate its feasibility and performance, we implemented a prototype of the proposed monitoring framework. As already mentioned, we use the S3C44B0X board to implement the target side, which is running uclinux/arm7. We use a Dell Optiplex GX280 desktop as the host machine to process data collected from the embedded board. We developed a case study to utilize the proposed probing tool in our experimental environment. In the example, we
5 host program: parse and translate scripts; cross-compile the module; put the binary into NFS shared directory; send(module_name); target daemon: receive(module_name); system( insmod module_name ); put trace date into NFS shared directory; Figure 4. Pseudo code of communication between host and target. uint32_t get_physical_addr(const char *func_name* func_name); static struct esprobe esp; int handler_pre(struct esprobe *esp esp, struct pt_regs *regs regs) { static int exec_cnt = 0; printk("handler execution, %d times\n", ++exec_cnt exec_cnt); printk("the command is: %s\n",% regs->arm_r0); return 1; } static int probe_init(void) { int ret; esp.pre_handler = handler_pre; ; //probe is registered here esp.addr = (esprobe_opcode_t( *) get_physical_addr("do_execve"); "); if((ret = esprobe_register(&esp)) < 0) //register failed return -1; return 0; //success } static void probe_exit(void) { esprobe_unregister(&esp); } (a) <4>handler execution, 36 times <4>The command is: /proc/self/exe <4>handler execution, 37 times <4>The command is: busybox <4>handler execution, 38 times <4>The command is: /usr/sbin/lsmod / <4>handler execution, 39 times <4>The command is: /bin/lsmod <4>handler execution, 40 times <4>The command is: /usr/bin/lsmod / <4>handler execution, 41 times <4>The command is: /sbin/lsmod / <4>handler execution, 42 times <4>The command is:./hello <4>esprobe unregistered (b) Figure 5. An example monitoring all commands executed from the shell. (a) Example code. (b) Running results. use the code shown in Figure 5(a) to monitor all commands executed from shell. The shell will first fork a child and then load the desired program using execve(). The corresponding kernel function is sys execve that calls do execve(). We could thus accomplish instrumenting the function dynamically without rebooting and recompiling. First, we look up the physical address of do execve() in System.map, which is a kernel symbol table generated with each kernel compile. For instance, the entry address of do execve() is 0x0c04029c. The following code episode is the template of generated C source code after parsing and translating. Its running results are shown in figure 5(b), which shows the commands running and the total times of handler execution. We run busybox in uclinux. BusyBox combines tiny versions of many common UNIX utilities into a single small executable [13]. As shown from the resulting output, if the command is a busybox command, such as lsmod, /proc/self/exe, busybox and four other paths will be used as the parameters of do execve(); when executing a nonbusybox command, such as user programs, do execve() will be invoked only once. Through do execve() dynamic instrumentation as we discussed previously, we can log what is being executed with both flexibility and low overhead Performance Analysis Because it is difficult to collect fine-grained performance details on the target system (the S3C44B0X board in out experiment), we will try to show the performance advantages of the proposed framework through performance analysis. As explained before, one traditional probe in Kprobes would require at least two exceptions and four full context switches, while the proposed esprobe needs only the jump instruction and two context switches. This shows that the proposed techniques completely removes the requirement of exception handling and also reduces half of the context switches needed compared to Kprobes. This demonstrates that the proposed framework is more suitable in an embedded environment. Much more calculations might be needed in a monitoring framework after the tracing data is acquired. That is when data analysis and possibly more complicated tasks such as
6 visualization will be performed to sift through the huge amount of collected data, trying to identify all kinds of potential points of interest, and present the analysis results from different angles. It is impossible to decide the complexity of the analysis phase because it completely depends on the purpose and specific implementation of each monitoring task. However, all these are irrelevant to the target embedded system in our proposed framework since all these analysis tasks could be performed in a host machine, which does not have strict performance constraints and will not affect the performance efficiency of the target embedded system. This indicates that the proposed techniques could also be applied to a non-embedded system and reduce the monitoring overhead by moving computing intensive tasks to another machine not on the critical path if necessary. 5. Related Work There has been a lot of existing effort in Linux monitoring. For example, Linux Trace Toolkit(LTT) [1], LTTng [14] and Linux Kernel State Tracer(LKST) [15] are static event tracers that should modify the source code and then rebuild the system. LTT records the running kernel data by inserting function calls into kernel source code. The developers should maintain patches for each release version of Linux kernel. LKST is another kernel tracing tool that needs patches to kernel that contains many hook check points. These hooks can be checked and the handler associated with the point can be changed. It is hard for these static instrumentation tools to add probes at runtime, if not impossible. Another disadvantage is that the code footprint will remain in the kernel even after the tracer turns off. SystemTap [5] use the kprobes [2] infrastructure to dynamically instrument the kernel and user applications. Kprobes is a dynamic kernel instrumentation tool. The main issue of SystemTap is its overhead. Like debugging tools, kprobes instruments the kernel through trap instruction and hash table lookup. As mentioned earlier, one execution of each probe requires two exceptions and four full context switches. This will cause significant performance degradation on embedded system. We tried to improve dynamic instrumentation in the proposed monitoring framework by introducing a jump instruction (B in ARM instruction set) instead of a trap instruction. This idea is borrowed from djprobe [4] which is also an enhancement to kprobe. To avoid the overhead of dynamic instrumentation tools, it is also common to use static instrumentation in the embedded system monitoring. For example, WindView in VxWorks [16] and LTT in embedded Linux. However, static instrumentation tools on embedded systems still have the disadvantages mentioned above. Profiling is another effective technique used for performance analysis. Event tracer can be used to figure out where the bottleneck is, while profiler will help us to find out why the bottleneck happens. The commonly used profiling tools are DCPI [9], oprofile [7] and kernprof [17], etc. However, profiling does not work well for the situation that precise sequences of events need to be observed. 6. Concluding Remarks To perform successful dynamic monitoring on embedded systems with relatively low overhead, this paper presents a lightweight dynamic performance monitoring framework. The proposed framework could reduce the monitoring overhead by introducing a host/target separation and cooperation model, as well as a low-cost dynamic instrumentation tool suitable for an embedded environment. With all computing intensive tasks moved to the host machine, we are able to perform much more complicated data processing for the embedded system tracing data. Our future work include detailed performance study of the proposed framework, and how to apply various data analyzing techniques such as data mining to analyze the collected data, in order to identify anomalies or threats to the system. Acknowledgment This work has been supported by the National High Technology Research and Development Program (863) of China under Grant No. 2007AA and 2007AA01Z133, the National Basic Research Program of China (973) under Grant No. 2009CB320703, and the Science Fund for Creative Research Groups of China under Grant No Y. Guo is also supported by the National High Technology Research and Development Program (863) of China under Grant No. 2008AA01Z133. References [1] K. Yaghmour and M. R. Dagenais, Measuring and characterizing system behavior using kernel-level event logging, in ATEC 00: Proceedings of the annual conference on USENIX Annual Technical Conference. Berkeley, CA, USA: USENIX Association, 2000, pp [2] A. Mavinakayanahalli, P. Panchamukhi, J. Keniston, A. Keshavamurthy, and M. Hiramatsu, probing the guts of kprobes, in OLS (Ottawa Linux Symposium), 2006, pp [3] P. Panchamukhi, Kernel debugging with kprobes: Insert printk s into the linux kernel on the fly, [4] M. Hiramatsu and S. Oshima, Djprobe-kernel probing with the smallest overhead, in OLS (Ottawa Linux Symposium), 2007, pp
7 [5] V. Prasad, W. Cohen, F. C. Eigler, M. Hunt, J. Keniston, and B. Chen, Locating system problems using dynamic instrumentation, in OLS (Ottawa Linux Symposium), 2005, pp [6] S. L. Graham, P. B. Kessler, and M. K. McKusick, gprof: A call graph execution profiler, in Proceedings of the SIGPLAN 82 Symposium on Compiler Construction, ACM. ACM, 1982, pp [7] J. Levon, Oprofile - a system profiler for linux, [8] A. Tamches and B. P. Miller, Fine-grained dynamic instrumentation of commodity operating system kernels, in Proceedings of the 3rd Symposium on Operating Systans Design and Implementation (OSDI-99). Berkeley, CA: Usenix Association, Feb , pp [9] J. Anderson, L. M. Berc, J. Dean, S. Ghemawat, M. R. Henzinger, S.-T. Leung, R. L. Sites, M. T. Vandevoorde, C. A. Waldspurger, and W. E. Weihl, Continuous profiling: Where have all the cycles gone? ACM Transactions on Computer Systems, vol. 15, no. 11, pp , Nov [10] S. Bhatia, A. Kumar, M. Fiuczynski, and L. Peterson, Lightweight, high-resolution monitoring for troubleshooting production systems, in Eighth Symposium on Operating Systems Design and Implementation (OSDI), 2008, pp [11] B. Cantrill, M. W. Shapiro, and A. H. Leventhal, Dynamic instrumentation of production systems, in USENIX Annual Technical Conference, General Track. USENIX, 2004, pp [12] T. Nojiri, SystemTAP implementation for embedded system developments running on SH-4 (RTS7751R2D), in Embedded Linux Conference 2007 Technical Showcase, [13] D. Vlasenko, Busybox: The swiss army knife of embedded linux, [14] M. Desnoyers and M. R.Dagenais, The LTTng tracer: A low impact performance and behavior monitor for GNU Linux, in OLS (Ottawa Linux Symposium), 2006, pp [15] Linux kernel state tracer web site, [16] D. Wilner, Windview: A tool for understanding real-time embedded software through system visualization, in Workshop on Languages, Compilers, & Tools for Real-Time Systems, 1995, pp [17] SGI, Kernprof (kernel profiling),
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Performance Monitor on PowerQUICC II Pro Processors
Freescale Semiconductor Application Note Document Number: AN3359 Rev. 0, 05/2007 Performance Monitor on PowerQUICC II Pro Processors by Harinder Rai Network Computing Systems Group Freescale Semiconductor,
Twitter and Email Notifications of Linux Server Events
NOTIFICARME Twitter and Email Notifications of Linux Server Events Chitresh Kakwani Kapil Ratnani Nirankar Singh Ravi Kumar Kothuri Vamshi Krishna Reddy V [email protected] [email protected]
x86 ISA Modifications to support Virtual Machines
x86 ISA Modifications to support Virtual Machines Douglas Beal Ashish Kumar Gupta CSE 548 Project Outline of the talk Review of Virtual Machines What complicates Virtualization Technique for Virtualization
A loadable task execution recorder for Linux
A loadable task execution recorder for Linux Mikael Åsberg, Johan Kraft and Thomas Nolte MRTC/Mälardalen University P.O. Box 883, SE-721 23, Västerås, Sweden {mikael.asberg,johan.kraft,thomas.nolte}@mdh.se
Monitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
Introduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
Red Hat Linux Internals
Red Hat Linux Internals Learn how the Linux kernel functions and start developing modules. Red Hat Linux internals teaches you all the fundamental requirements necessary to understand and start developing
find model parameters, to validate models, and to develop inputs for models. c 1994 Raj Jain 7.1
Monitors Monitor: A tool used to observe the activities on a system. Usage: A system programmer may use a monitor to improve software performance. Find frequently used segments of the software. A systems
Analyzing System Behavior: Howthe Operating System Can Help
Analyzing System Behavior: Howthe Operating System Can Help Alexander Schmidt, Michael Sch öbel Hasso-Plattner-Institute at Universityof Potsdam { alexander.schmidt,michael.schoebel} @hpi.uni-potsdam.de
Security Overview of the Integrity Virtual Machines Architecture
Security Overview of the Integrity Virtual Machines Architecture Introduction... 2 Integrity Virtual Machines Architecture... 2 Virtual Machine Host System... 2 Virtual Machine Control... 2 Scheduling
<Insert Picture Here> Tracing on Linux
Tracing on Linux Elena Zannoni ([email protected]) Linux Engineering, Oracle America November 6 2012 The Tree of Tracing SystemTap LTTng perf DTrace ftrace GDB TRACE_EVENT
Migration of Process Credentials
C H A P T E R - 5 Migration of Process Credentials 5.1 Introduction 5.2 The Process Identifier 5.3 The Mechanism 5.4 Concluding Remarks 100 CHAPTER 5 Migration of Process Credentials 5.1 Introduction Every
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney
Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Libmonitor: A Tool for First-Party Monitoring
Libmonitor: A Tool for First-Party Monitoring Mark W. Krentel Dept. of Computer Science Rice University 6100 Main St., Houston, TX 77005 [email protected] ABSTRACT Libmonitor is a library that provides
White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux
White Paper Real-time Capabilities for Linux SGI REACT Real-Time for Linux Abstract This white paper describes the real-time capabilities provided by SGI REACT Real-Time for Linux. software. REACT enables
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Green Telnet. Making the Client/Server Model Green
Green Telnet Reducing energy consumption is of growing importance. Jeremy and Ken create a "green telnet" that lets clients transition to a low-power, sleep state. By Jeremy Blackburn and Ken Christensen,
Perf Tool: Performance Analysis Tool for Linux
/ Notes on Linux perf tool Intended audience: Those who would like to learn more about Linux perf performance analysis and profiling tool. Used: CPE 631 Advanced Computer Systems and Architectures CPE
Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide
Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights
10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition
10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can
Chapter 3 Operating-System Structures
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
On Demand Loading of Code in MMUless Embedded System
On Demand Loading of Code in MMUless Embedded System Sunil R Gandhi *. Chetan D Pachange, Jr.** Mandar R Vaidya***, Swapnilkumar S Khorate**** *Pune Institute of Computer Technology, Pune INDIA (Mob- 8600867094;
FRONT FLYLEAF PAGE. This page has been intentionally left blank
FRONT FLYLEAF PAGE This page has been intentionally left blank Abstract The research performed under this publication will combine virtualization technology with current kernel debugging techniques to
Dongwoo Kim : Hyeon-jeong Lee s Husband
2/ 32 Who we are Dongwoo Kim : Hyeon-jeong Lee s Husband Ph.D. Candidate at Chungnam National University in South Korea Majoring in Computer Communications & Security Interested in mobile hacking, digital
Quick Start Tutorial. Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board
Quick Start Tutorial Using the TASKING* Software Development Tools with the Intel 8x930 Family Evaluation Board This explains how to use the TASKING Microsoft* Windows*-based software development tools
Towards Lightweight Logging and Replay of Embedded, Distributed Systems
Towards Lightweight Logging and Replay of Embedded, Distributed Systems (Invited Paper) Salvatore Tomaselli and Olaf Landsiedel Computer Science and Engineering Chalmers University of Technology, Sweden
Utilizing MBARI s Software Infrastructure and Application for MOOS (SIAM) for NOAA s Real-time Environmental Coastal Observing Network (RECON)
Utilizing MBARI s Software Infrastructure and Application for MOOS (SIAM) for NOAA s Real-time Environmental Coastal Observing Network (RECON) Devin A Bonnie, Hope College Mentors: Tom O Reilly, Kent Headley
Development of Performance Testing Tool for Railway Signaling System Software
Vol. 10, No. 2, pp. 16-20, December 2011 Development of Performance Testing Tool for Railway Signaling System Software Jong-Gyu Hwang* and Hyun-Jeong Jo Korea Railroad Research Institute, Uiwang-si 437-757,
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
<Insert Picture Here> Tracing on Linux: the Old, the New, and the Ugly
Tracing on Linux: the Old, the New, and the Ugly Elena Zannoni ([email protected]) Linux Engineering, Oracle America October 27 2011 Categories of Tracing Tools Kernel Tracing
Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University
Virtual Machine Monitors Dr. Marc E. Fiuczynski Research Scholar Princeton University Introduction Have been around since 1960 s on mainframes used for multitasking Good example VM/370 Have resurfaced
Wiggins/Redstone: An On-line Program Specializer
Wiggins/Redstone: An On-line Program Specializer Dean Deaver Rick Gorton Norm Rubin {dean.deaver,rick.gorton,norm.rubin}@compaq.com Hot Chips 11 Wiggins/Redstone 1 W/R is a Software System That: u Makes
Hotpatching and the Rise of Third-Party Patches
Hotpatching and the Rise of Third-Party Patches Alexander Sotirov [email protected] BlackHat USA 2006 Overview In the next one hour, we will cover: Third-party security patches _ recent developments
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Virtualization Technologies (ENCS 691K Chapter 3)
Virtualization Technologies (ENCS 691K Chapter 3) Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ The Key Technologies on Which Cloud Computing
Linux Distributed Security Module 1
Linux Distributed Security Module 1 By Miroslaw Zakrzewski and Ibrahim Haddad This article describes the implementation of Mandatory Access Control through a Linux kernel module that is targeted for Linux
A Linux Kernel Auditing Tool for Host-Based Intrusion Detection
A Linux Kernel Auditing Tool for Host-Based Intrusion Detection William A. Maniatty, Adnan Baykal, Vikas Aggarwal, Joshua Brooks, Aleksandr Krymer and Samuel Maura [email protected] CSI 424/524, William
Kernel Intrusion Detection System
Kernel Intrusion Detection System Rodrigo Rubira Branco [email protected] [email protected] Monica's Team!! Brazilian famous H.Q. story Amazon Forest Yeah, Brazilian country! Soccer Brazilian
LSM-based Secure System Monitoring Using Kernel Protection Schemes
LSM-based Secure System Monitoring Using Kernel Protection Schemes Takamasa Isohara, Keisuke Takemori, Yutaka Miyake KDDI R&D Laboratories Saitama, Japan {ta-isohara, takemori, miyake}@kddilabs.jp Ning
Chapter 2 Addendum (More on Virtualization)
Chapter 2 Addendum (More on Virtualization) Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ More on Systems Virtualization Type I (bare metal)
Exception and Interrupt Handling in ARM
Exception and Interrupt Handling in ARM Architectures and Design Methods for Embedded Systems Summer Semester 2006 Author: Ahmed Fathy Mohammed Abdelrazek Advisor: Dominik Lücke Abstract We discuss exceptions
How To Understand How A Process Works In Unix (Shell) (Shell Shell) (Program) (Unix) (For A Non-Program) And (Shell).Orgode) (Powerpoint) (Permanent) (Processes
Content Introduction and History File I/O The File System Shell Programming Standard Unix Files and Configuration Processes Programs are instruction sets stored on a permanent medium (e.g. harddisc). Processes
The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology
3. The Lagopus SDN Software Switch Here we explain the capabilities of the new Lagopus software switch in detail, starting with the basics of SDN and OpenFlow. 3.1 SDN and OpenFlow Those engaged in network-related
Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem. Dr Rosemary Francis, Ellexus
Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem Dr Rosemary Francis, Ellexus For years instruction-level debuggers and profilers have improved in leaps and bounds. Similarly, system-level
CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure
CSE 120 Principles of Operating Systems Fall 2000 Lecture 3: Operating System Modules, Interfaces, and Structure Geoffrey M. Voelker Modules, Interfaces, Structure We roughly defined an OS as the layer
DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311)
ARM DS-5 Version 5.7 Using the Debugger Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G () ARM DS-5 Using the Debugger Copyright 2010, 2011 ARM. All rights reserved. Release Information The
An Embedded Wireless Mini-Server with Database Support
An Embedded Wireless Mini-Server with Database Support Hungchi Chang, Sy-Yen Kuo and Yennun Huang Department of Electrical Engineering National Taiwan University Taipei, Taiwan, R.O.C. Abstract Due to
Virtual Private Systems for FreeBSD
Virtual Private Systems for FreeBSD Klaus P. Ohrhallinger 06. June 2010 Abstract Virtual Private Systems for FreeBSD (VPS) is a novel virtualization implementation which is based on the operating system
Enhanced Diagnostics Improve Performance, Configurability, and Usability
Application Note Enhanced Diagnostics Improve Performance, Configurability, and Usability Improved Capabilities Available for Dialogic System Release Software Application Note Enhanced Diagnostics Improve
Snapshots in Hadoop Distributed File System
Snapshots in Hadoop Distributed File System Sameer Agarwal UC Berkeley Dhruba Borthakur Facebook Inc. Ion Stoica UC Berkeley Abstract The ability to take snapshots is an essential functionality of any
A Choices Hypervisor on the ARM architecture
A Choices Hypervisor on the ARM architecture Rishi Bhardwaj, Phillip Reames, Russell Greenspan Vijay Srinivas Nori, Ercan Ucan ABSTRACT Choices is an object oriented operating system that runs on the x86
Real Time Control Under UNIX for RCCL
1 Real Time Control Under UNIX for RCCL (3rd International Symposium on Robotics and Manufacturing Vancouver, Canada, July 18-20, 1990) John Lloyd and Mike Parker McGill University, Research Center for
WhatsUp Gold v11 Features Overview
WhatsUp Gold v11 Features Overview This guide provides an overview of the core functionality of WhatsUp Gold v11, and introduces interesting features and processes that help users maximize productivity
DS-5 ARM. Using the Debugger. Version 5.13. Copyright 2010-2012 ARM. All rights reserved. ARM DUI 0446M (ID120712)
ARM DS-5 Version 5.13 Using the Debugger Copyright 2010-2012 ARM. All rights reserved. ARM DUI 0446M () ARM DS-5 Using the Debugger Copyright 2010-2012 ARM. All rights reserved. Release Information The
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM Albert M. K. Cheng, Shaohong Fang Department of Computer Science University of Houston Houston, TX, 77204, USA http://www.cs.uh.edu
Lecture 5. User-Mode Linux. Jeff Dike. November 7, 2012. Operating Systems Practical. OSP Lecture 5, UML 1/33
Lecture 5 User-Mode Linux Jeff Dike Operating Systems Practical November 7, 2012 OSP Lecture 5, UML 1/33 Contents User-Mode Linux Keywords Resources Questions OSP Lecture 5, UML 2/33 Outline User-Mode
Open Source Software
Open Source Software Title Experiences and considerations about open source software for standard software components in automotive environments 2 Overview Experiences Project Findings Considerations X-by-wire
AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring
AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring Chanmin Yoon*, Dongwon Kim, Wonwoo Jung, Chulkoo Kang, Hojung Cha Dept. of Computer Science Yonsei
Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes
Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent
COS 318: Operating Systems. Virtual Machine Monitors
COS 318: Operating Systems Virtual Machine Monitors Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Introduction u Have
Virtualization. Explain how today s virtualization movement is actually a reinvention
Virtualization Learning Objectives Explain how today s virtualization movement is actually a reinvention of the past. Explain how virtualization works. Discuss the technical challenges to virtualization.
Monitoring PostgreSQL database with Verax NMS
Monitoring PostgreSQL database with Verax NMS Table of contents Abstract... 3 1. Adding PostgreSQL database to device inventory... 4 2. Adding sensors for PostgreSQL database... 7 3. Adding performance
A Comparison on Current Distributed File Systems for Beowulf Clusters
A Comparison on Current Distributed File Systems for Beowulf Clusters Rafael Bohrer Ávila 1 Philippe Olivier Alexandre Navaux 2 Yves Denneulin 3 Abstract This paper presents a comparison on current file
Optimizing Linux Performance
Optimizing Linux Performance Why is Performance Important Regular desktop user Not everyone has the latest hardware Waiting for an application to open Application not responding Memory errors Extra kernel
Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB
Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer Dr. Johan Kraft, Percepio AB Debugging embedded software can be a challenging, time-consuming and unpredictable factor in development
by Kaleem Anwar, Muhammad Amir, Ahmad Saeed and Muhammad Imran
The Linux Router The performance of the Linux router makes it an attractive alternative when concerned with economizing. by Kaleem Anwar, Muhammad Amir, Ahmad Saeed and Muhammad Imran Routers are amongst
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications
ECE6102 Dependable Distribute Systems, Fall2010 EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications Deepal Jayasinghe, Hyojun Kim, Mohammad M. Hossain, Ali Payani
LinuxCon Europe 2013. Cloud Monitoring and Distribution Bug Reporting with Live Streaming and Snapshots. mathieu.desnoyers@efficios.
LinuxCon Europe 2013 Cloud Monitoring and Distribution Bug Reporting with Live Streaming and Snapshots [email protected] 1 Presenter Mathieu Desnoyers http://www.efficios.com Author/Maintainer
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
gprof: a Call Graph Execution Profiler 1
gprof A Call Graph Execution Profiler PSD:18-1 gprof: a Call Graph Execution Profiler 1 by Susan L. Graham Peter B. Kessler Marshall K. McKusick Computer Science Division Electrical Engineering and Computer
Components of a Computer System
SFWR ENG 3B04 Software Design III 1.1 3 Hardware Processor(s) Memory I/O devices Operating system Kernel System programs Components of a Computer System Application programs Users SFWR ENG 3B04 Software
Real-time Debugging using GDB Tracepoints and other Eclipse features
Real-time Debugging using GDB Tracepoints and other Eclipse features GCC Summit 2010 2010-010-26 [email protected] Summary Introduction Advanced debugging features Non-stop multi-threaded debugging
Infrastructure for Load Balancing on Mosix Cluster
Infrastructure for Load Balancing on Mosix Cluster MadhuSudhan Reddy Tera and Sadanand Kota Computing and Information Science, Kansas State University Under the Guidance of Dr. Daniel Andresen. Abstract
Introduction. dnotify
Introduction In a multi-user, multi-process operating system, files are continually being created, modified and deleted, often by apparently unrelated processes. This means that any software that needs
Visualizing gem5 via ARM DS-5 Streamline. Dam Sunwoo ([email protected]) ARM R&D December 2012
Visualizing gem5 via ARM DS-5 Streamline Dam Sunwoo ([email protected]) ARM R&D December 2012 1 The Challenge! System-level research and performance analysis becoming ever so complicated! More cores and
Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.
Virtual machines Virtual machine systems can give everyone the OS (and hardware) that they want. IBM s VM provided an exact copy of the hardware to the user. Virtual Servers Virtual machines are very widespread.
An Overview of Software Performance Analysis Tools and Techniques: From GProf to DTrace
http://www.cse.wustl.edu/~jain/cse567-06/ftp/sw_monitors1/index.html 1 of 19 An Overview of Software Performance Analysis Tools and Techniques: From GProf to DTrace Justin Thiel, [email protected]
Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata
Implementing Network Attached Storage Ken Fallon Bill Bullers Impactdata Abstract The Network Peripheral Adapter (NPA) is an intelligent controller and optimized file server that enables network-attached
Research and Design of Universal and Open Software Development Platform for Digital Home
Research and Design of Universal and Open Software Development Platform for Digital Home CaiFeng Cao School of Computer Wuyi University, Jiangmen 529020, China [email protected] Abstract. With the development
OS Observability Tools
OS Observability Tools Classic tools and their limitations DTrace (Solaris) SystemTAP (Linux) Slide 1 Where we're going with this... Know about OS observation tools See some examples how to use existing
Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6
Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6 Winter Term 2008 / 2009 Jun.-Prof. Dr. André Brinkmann [email protected] Universität Paderborn PC² Agenda Multiprocessor and
Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam
Operating Systems Design and Implementation Andrew S. Tanenbaum Melanie Rieback Arno Bakker Vrije Universiteit Amsterdam Operating Systems - Winter 2012 Outline Introduction What is an OS? Concepts Processes
Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction
Operating Systems Design and Implementation Andrew S. Tanenbaum Melanie Rieback Arno Bakker Outline Introduction What is an OS? Concepts Processes and Threads Memory Management File Systems Vrije Universiteit
Software System Performance Debugging with Kernel Events Feature Guidance
Software System Performance Debugging with Kernel Events Feature Guidance Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Kenji Yoshihira NEC Laboratories America Princeton, New Jersey 08540 USA Email:
