Application Signature: a New Way to Predict Application Performance Rajat Kumar Todi Iowa State University
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Chapter 1. Origins of Mac OS X
1 Chapter 1. Origins of Mac OS X "Most ideas come from previous ideas." Alan Curtis Kay The Mac OS X operating system represents a rather successful coming together of paradigms, ideologies, and technologies that have often resisted each other in the past. A good example is the cordial relationship that exists between the command-line and graphical interfaces in Mac OS X. The system is a result of the trials and tribulations of Apple and NeXT, as well as their user and developer communities. Mac OS X exemplifies how a capable system can result from the direct or indirect efforts of corporations, academic and research communities, the Open Source and Free Software movements, and, of course, individuals. Apple has been around since 1976, and many accounts of its history have been told. If the story of Apple as a company is fascinating, so is the technical history of Apple's operating systems. In this chapter,[1] we will trace the history of Mac OS X, discussing several technologies whose confluence eventually led to the modern-day Apple operating system. [1] This book's accompanying web site (www.osxbook.com) provides a more detailed technical history of all of Apple's operating systems. 1 2 2 1 1.1. Apple's Quest for the[2] Operating System [2] Whereas the word "the" is used here to designate prominence and desirability, it is an interesting coincidence that "THE" was the name of a multiprogramming system described by Edsger W. Dijkstra in a 1968 paper. It was March 1988. The Macintosh had been around for four years. -
Kernel Architectures
A short history of kernels n Early kernel: a library of device drivers, support for threads (QNX) Operating System Kernels n Monolithic kernels: Unix, VMS, OS 360… n Unstructured but fast… n Over time, became very large Ken Birman n Eventually, DLLs helped on size n Pure microkernels: Mach, Amoeba, Chorus… (borrowing some content from n OS as a kind of application Peter Sirokman) n Impure microkernels: Modern Windows OS n Microkernel optimized to support a single OS n VMM support for Unix on Windows and vice versa The great m-kernel debate Summary of First Paper n How big does it need to be? n The Performance of µ-Kernel-Based Systems (Hartig et al. 16th SOSP, Oct 1997) n With a m-kernel protection-boundary crossing forces us to n Evaluates the L4 microkernel as a basis for a full operating system n Change memory -map n Ports Linux to run on top of L4 and compares n Flush TLB (unless tagged) performance to native Linux and Linux running on n With a macro-kernel we lose structural the Mach microkernel protection benefits and fault-containment n Explores the extensibility of the L4 microkernel n Debate raged during early 1980’s Summary of Second Paper In perspective? n The Flux OSKit: A Substrate for Kernel and n L4 seeks to validate idea that a m-kernel Language Research (Ford et al. 16th SOSP, can support a full OS without terrible 1997) cost penalty n Describes a set of OS components designed to be used to build custom operating systems n Opened the door to architectures like the n Includes existing code simply using “glue code” Windows -
Computer Architectures an Overview
Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements. -
Common Coupling As a Measure of Reuse Effort in Kernel-Based Software with Case Studies on the Creation of Mklinux and Darwin
IUScholarWorks at Indiana University South Bend Common Coupling as a Measure of Reuse Effort in Kernel-Based Software with Case Studies on the Creation of MkLinux and Darwin Yu, Liguo To cite this article: Yu, Liguo. “Common Coupling as a Measure of Reuse Effort in Kernel-Based Software with Case Studies on the Creation of MkLinux and Darwin.” Journal of the Brazilian Computer Society14, vol. 14, no. 1, Feb. 2008, pp. 45–55. This document has been made available through IUScholarWorks repository, a service of the Indiana University Libraries. Copyrights on documents in IUScholarWorks are held by their respective rights holder(s). Contact [email protected] for more information. Common Coupling as a Measure of Reuse Effort in Kernel-Based Software with Case Studies on the Creation of MkLinux and Darwin Liguo Yu Department of Informatics Computer and Information Sciences Department Indiana University South Bend South Bend, IN 46634, USA. Fax: 1-574-520-5589 E-mail: [email protected] The initial version of this paper appers in the 19th International Conference on Software Engineering and Knowledge Engineering. Abstract software components, which required less effort in order to be reused to produce Darwin. An obstacle to software reuse is the large number of major modifications that frequently have to be made Keywords: Reuse, common coupling, kernel-based software, as a consequence of dependencies within the reused MkLinux, Darwin software components. In this paper, common coupling is categorized and used as a measure of the dependencies 1. INTRODUCTION between software components. We compared common Software reuse has become a topic of interest within coupling in three operating systems, Linux, FreeBSD, the software community because of its potential and Mach, and related it to the reuse effort of these benefits. -
Kernel-Based Systems
The Performance of µ-Kernel-Based Systems Liedtke et al. presented by: Ryan O’Connor <[email protected]> October 7th, 2009 Liedtke et al.presented by: Ryan O’Connor <[email protected]> The Performance of µ-Kernel-Based Systems Motivation By this time (1997) the OS research community had virtually abandoned research on pure µ-kernels. due primarily to the poor performance of first-generation µ-kernels Many researchers believe that µ-kernel abstraction layer is either too low or too high too low: research should focus on extensible-kernels, allowing users to safely add new functionality to a monolithic kernel too high: kernels should export an interface resembling a hardware architecture Claim: pure µ-kernels are not fundamentally flawed, they just haven’t been done right yet Liedtke et al.presented by: Ryan O’Connor <[email protected]> The Performance of µ-Kernel-Based Systems Contributions L4 and L4Linux the penalty for using a pure µ-kernel can be kept between 5% and 10% µ-kernel abstractions are efficient enough to motivate their use in user applications Liedtke et al.presented by: Ryan O’Connor <[email protected]> The Performance of µ-Kernel-Based Systems L4 L4 exports a pure µ-kernel interface (threads, address spaces, and IPC). In addition it supports: user-level paging, and recursive construction of address spaces translation of hardware interrupts to IPC messages fast context switches on small address-spaces using Pentium segmentation trick Liedtke et al.presented by: Ryan O’Connor <[email protected]> The Performance of µ-Kernel-Based Systems L4Linux L4Linux is a Linux Single Server, an L4 process that provides a unix ’personality’ for user applications. -
Popcorn Project: Starting with Popcorn OS
Popcorn Project: Starting with Popcorn OS Antonio Barbalace [email protected] Systems Software Research Group at Virginia Tech http://ssrg.ece.vt.edu VTLUUG meeting , May 2 nd 2013 Patches 14 th Dec 2012 • Popcorn Hacking Guide – Generic modifications (all archs) • linux-3.2.14-popcorn-build.patch • linux-3.2.14-popcorn-syscall.patch • linux-3.2.14-popcorn-generic.patch – Architecture dependent in arch/x86 • linux-3.2.14-popcorn-x86-build.patch • linux-3.2.14-popcorn-x86-syscall.patch • linux-3.2.14-popcorn-x86-generic.patch • linux-3.2.14-popcorn-x86-apic.patch • linux-3.2.14-popcorn-x86-boot.patch • linux-3.2.14-popcorn-x86-vty.patch – Drivers modifications (all archs) in drivers/ • linux-3.2.14-popcorn-drivers-vty.patch • linux-3.2.14-popcorn-drivers-acpi.patch • linux-3.2.14-popcorn-drivers-gpu.patch • linux-3.2.14-popcorn-drivers-pci.patch • Goal – Release a first usable version of the project (alternative to virtual machines) – Document the project – Attract contributors and enthusiasts – Separate the architecture dependent code (initial porting guide) 2 Patches 25 th Mar 2013 • Goal – Release a new usable version of the project (replicated-kernel) – Add new components • Inter-Kernel Messaging layer • Remote process creation and migration • Other improvements and fixes 3 GIT Repositories • Hosted on TO BE ANNOUNCED – Publicly browseable, direct r/w access is protected (ssh key required) • Kernel code – TO BE ANNOUNCED – many different branches • davek – process/thread remote creation, migration • net_msg_integration – fast software network switch • shmem_tuntap – software network switch using TUN/TAP • bshelton_messaging – inter-kernel messaging layer • andy_fd_aware – NUMA aware scheduling • andy_load_balance – again, NUMA aware scheduling • mklinux-readonly – one page table per NUMA-node • etc. -
Applications/Utilities
[ Team LiB ] • Table of Contents • Index • Reviews • Reader Reviews • Errata • Academic Mac OS X Panther for Unix Geeks By Brian Jepson, Ernest E. Rothman Publisher: O'Reilly Pub Date: February 2004 ISBN: 0-596-00607-1 Pages: 240 If you find yourself disoriented by the new Mac environment, Mac OS X Panther for Unix Geeks will get you acclimated quickly to the foreign new areas of a familiar Unix landscape. The new edition of this book is your guide to figuring out the BSD Unix system and Panther-specific components that you may find challenging. The book includes a quick manpage-style reference to the "Missing Manual Pages" --commands that come with Mac OS X Panther, although there are no manpages. [ Team LiB ] [ Team LiB ] • Table of Contents • Index • Reviews • Reader Reviews • Errata • Academic Mac OS X Panther for Unix Geeks By Brian Jepson, Ernest E. Rothman Publisher: O'Reilly Pub Date: February 2004 ISBN: 0-596-00607-1 Pages: 240 Copyright Preface Audience for This Book Organization of This Book Xcode Tools Where to Go for More Information Conventions Used in This Book Comments and Questions Acknowledgments from the Previous Edition Acknowledgments from Brian Jepson Acknowledgments from Ernest E. Rothman Part I: Getting Around Chapter 1. Inside the Terminal Section 1.1. Mac OS X Shells Section 1.2. The Terminal and xterm Compared Section 1.3. Using the Terminal Section 1.4. Customizing the Terminal Section 1.5. The Services Menu Section 1.6. Alternative Terminal Applications Section 1.7. The open Command Chapter 2. Startup Section 2.1. -
101 Ways to Save Apple by James Daly
http://www.wired.com/wired/archive/5.06/apple_pr.html 101 Ways to Save Apple By James Daly An assessment of what can be done to fix a once-great company. Dear Apple, In the movie Independence Day, a PowerBook saves the earth from destruction. Now it's time to return the favor. Unfortunately, even devoted Mac addicts must admit that you look a little beleaguered these days: a confusing product line, little inspiration from the top, software developers fleeing. But who wants to live in a world without you? Not us. So we surveyed a cross section of hardcore Mac fans and came up with 101 ways to get you back on the path to salvation. We chose not to resort to time travel or regurgitate the same old shoulda/coulda/wouldas (you shoulda licensed your OS in 1987, for instance, or coulda upped your price/performance in 1993). We don't believe Apple is rotten to the core. Chrysler nearly went under in the late 1970s and came back to lead its industry. Here's a fresh assessment of what can be done to fix your once-great company using the material at hand. Don't wait for a miracle. You have the power to save the world - and yourself. Edited by James Daly 1. Admit it. You're out of the hardware game. Outsource your hardware production, or scrap it entirely, to compete more directly with Microsoft without the liability of manufacturing boxes. 2. License the Apple name/technology to appliance manufacturers and build GUIs for every possible device - from washing machines to telephones to WebTV. -
Contents of Lecture 8 on UNIX History
Contents of Lecture 8 on UNIX History Before UNIX Origin of UNIX Commerical wars and other threats Linux Game over. UNIX won. Continued work by the original UNIX team: Plan 9 and Inferno Microkernels vs Monolithic kernels and other issues. Jonas Skeppstedt ([email protected]) Lecture 8 2014 1 / 67 CTSS The Compatible Time-Sharing System was designed at MIT in the early 1960s. Supported up to 32 simultanously logged in users: proof of the time-sharing idea. Ran on IBM 7090 with 32K 36 bit words, of which the monitor used 5K. User programs were swapped in from a magnetic drum (disk). Multilevel feedback scheduling queue. Higher priorities have shorter time quantum Initial priority (quantum) reflects size of the executable file so it can be swapped in and run. CTSS was extremely successful and used as late as 1972: basis for MULTICS. Jonas Skeppstedt ([email protected]) Lecture 8 2014 2 / 67 MULTICS Multiplexed Information and Computing Ser vice designed by MIT, AT&T, and GE. AT&T and GE provided telephone and electricity ser vices as utilities. GE also produced computers, eg the GE-645 used in MULTICS development. Why not do the same with computing power? The goal was one computer for 100,000s users in Boston (on hardware equivalent to about 386 or 486). Designed as an extension to CTSS with virtual memory and sophisticated protection (more levels than UNIX user vs superuser). MULTICS was written in PL/1 and consisted of about 300,000 lines. Jonas Skeppstedt ([email protected]) Lecture 8 2014 3 / 67 End of MULTICS Lots of people were very enthusiastic about MULTICS, including the newly graduated Ken Thompson from Berkeley. -
Microkernels: Mach and L4
Microkernels: Mach and L4 Presented by Jason Wu With content borrowed from Dan Williams (2009) and Hakim Weatherspoon (2008) Outline • Introduction to Kernels • 1st Generation Microkernels – Mach • 2nd Generation Microkernels – L4 • Conclusions Introduction to Kernels • Different Types of Kernel Designs – Monolithic kernel – Microkernel – Hybrid Kernel – Exokernel – Virtual Machines? Monolithic Kernels • All OS services operate in kernel space • Good performance • Disadvantages – Dependencies between system component – Complex & huge (millions(!) of lines of code) – Larger size makes it hard to maintain • E.g. Multics, Unix, BSD, Linux Microkernels • Minimalist approach – IPC, virtual memory, thread scheduling • Put the rest into user space – Device drivers, networking, file system, user interface • More stable with less services in kernel space • Disadvantages – Lots of system calls and context switches • E.g. Mach, L4, AmigaOS, Minix, K42 Monolithic Kernels VS Microkernels Hybrid Kernels • Combine the best of both worlds – Speed and simple design of a monolithic kernel – Modularity and stability of a microkernel • Still similar to a monolithic kernel – Disadvantages still apply here • E.g. Windows NT, NetWare, BeOS Exokernels • Follows end-to-end principle – Extremely minimal – Fewest hardware abstractions as possible – Just allocates physical resources to apps • Disadvantages – More work for application developers • E.g. Nemesis, ExOS • Next Thursday! The Microkernel Debate • How big should it be? • Big debate during the 1980’s Summary: -
The Performance of Μ-Kernel-Based Systems
16th ACM Symposium on Operating Systems Principles (SOSP ’97), October 5–8, 1997, Saint-Malo, France The Performance of µ-Kernel-Based Systems Hermann Hartig¨ Michael Hohmuth Jochen Liedtke Sebastian Schonber¨ g Jean Wolter Dresden University of Technology IBM T. J. Watson Research Center Department of Computer Science 30 Saw Mill River Road D-01062 Dresden, Germany Hawthorne, NY 10532, USA email: [email protected] email: [email protected] based on pure µ-kernels, i. e. kernels that provide only ad- dress spaces, threads and IPC, or an equivalent set of primi- tives. This trend is due primarily to the poor performance ex- Abstract hibited by such systems constructed in the 1980’s and early 1990’s. This reputation has not changed even with the advent First-generation µ-kernels have a reputation for being too of faster µ-kernels; perhaps because these µ-kernel have for slow and lacking sufficient flexibility. To determine whether the most part only been evaluated using microbenchmarks. L4, a lean second-generation µ-kernel, has overcome these limitations, we have repeated several earlier experiments and Many people in the OS research community have adopted conducted some novel ones. Moreover, we ported the Linux the hypothesis that the layer of abstraction provided by pure operating system to run on top of the L4 µ-kernel and com- µ-kernels is either too low or too high. The “too low” fac- pared the resulting system with both Linux running native, tion concentrated on the extensible-kernel idea. Mechanisms and MkLinux, a Linux version that executes on top of a first- were introduced to add functionality to kernels and their ad- generation Mach-derived µ-kernel. -
The Linux Kernel: Configuring the Kernel Part 22
The Linux Kernel: Configuring the Kernel Part 22 In this article, we will continue to configure the kernel hacks and then we will configure the whole security system. The next feature to configure is needed by Alpha and s390 processor (Force weak percpu definitions). This feature offers a fix for an addressing issue commonly seen in such processors. Other processors do not need this feature enabled. Kernel dumps can be tested with this special debugging tool (Linux Kernel Dump Test Tool Module). This software will allow a kernel developer to trigger a fake error that will cause a kernel dump. The kernel developers can then ensure that the dumps complete successfully. The kernel offers some different error injection modules that allow kernel developers to test the notifiers (CPU notifier error injection module), (PM notifier error injection module), and (Memory hotplug notifier error injection module). A notifier informs the system that the hardware is present, which is important for hotplugging. These error injection modules trigger an error in this notification system so developers can test the notification system's error handling abilities. The "Faultinjection framework" driver offers various tools for testing faulthandling. The "Latency measuring infrastructure" driver provides the LatencyTOP tool used to find the userspace object that is blocking/interfering with a kernel execution/task. Next, we have a submenu titled "Tracers" that contains a list of various tracers. A tracer is a piece of code that watches various kernel functions. Every time a particular function starts, a tracer will be called to watch the function.