Module Overview. CLR Initialization

Size: px
Start display at page:

Download "Module Overview. CLR Initialization"

Transcription

1 CLR Initialization

2 Module Overview CLR Initialization Getting to Main Method PE Layout & CLR Headers Process Initialization & EE Shim EE Startup CLR Artifacts & Loader Heaps The Managed Object Common Slow Startups Review 2

3 Getting to Main Method OS Loader EE Shim CLR JIT Main method Process initialization phase OS loader finds and load the Execution Engine Shim EE Shim determines version, bitness, path etc. Loads CLR (Mscorwks.dll / clr.dll) CLR starts up Prepares to run managed code JIT gets loaded and compiles mscorlib.dll etc. Main method finally runs 3

4 Portable Executable Layout (EXE/DLL) PE Header CLR Header IL Metadata Header Metadata PE Header: Info about exe/dll type Machine type (x86/x64) CUI/GUI? Timestamp etc., CLR Header: Info used by CLR Version of CLR required MetaDataToken of entry Method Location and size of metadata, Resources etc., IL: Code compile time IL is a higher-level, CPU independent language Metadata Header: Contains version of the assembly Flags and headers that describe location, length of tables & heaps within metadata Metadata: Every managed module contains binary metadata tables 4

5 Physical Layout of a Managed Assembly PE Header CLR Header IL Metadata Header Metadata Whether it is an exe, dll, ocx etc. Not of much importance to.net CLR version (metadata header) Localization Size, resource, module s entry point e.g., main() Intermediate Language CPU independent language (similar to ByteCode) Code that the compiler produced when the Metadata Version of assembly source is header compiled. IL Contains is a higher-level, version of CPU the assembly independent language Contains other flags and headers which Info about describe classes location defined & and classes length referenced of Metadata tables Info about & module heaps and within resources the metadata etc. Every managed module contains binary metadata tables

6 PE Layout Raw Output dumpbin.exe /headers <EXE> FILE HEADER VALUES 14C machine (x86) 3 number of sections 4C26E437 time date stamp Sun Jun 27 01:40: file pointer to symbol table 0 number of symbols E0 size of optional header 102 characteristics Executable 32 bit word machine OPTIONAL HEADER VALUES 10B magic # (PE32) 8.00 linker version size of code 2000 size of initialized data 0 size of uninitialized data 254BE entry point (110254BE) 2000 base of code base of data 2A000 size of image 1000 size of headers 0 checksum 2 subsystem (Windows GUI) HEX disassembly of <EXE> 6

7 CLR Header Within PE Layout How to find Main method? Raw output from ildasm.exe CLR Header: Header size: 0x Major runtime version: 0x0002 Minor runtime version: 0x0005 0x00021de0 [0x ] address [size] of Metadata Directory: Flags: 0x Entry point token: 0x TypeDef #10 ( b) TypDefName: NetDebugDemos.Startup ( B) Flags : [Public] [AutoLayout] [Class] [AnsiClass] [BeforeFieldInit] ( ) Extends : [TypeRef] System.Object Method #2 ( ) [ENTRYPOINT] MethodName: Main ( ) Flags : [Private] [Static] [HideBySig] [ReuseSlot] ( ) RVA : 0x f ImplFlags : [IL] [Managed] ( ) CallCnvntn: [DEFAULT] ReturnType: Void No arguments. 7

8 Demo: Inspect PE Layout PE Headers CLR Headers

9 Process Initialization Loading EE Shim OS Loader finds process entry point Transfer control to Execution Engine (EE) shim loader (mscoree.dll) EE Shim determines version, bitness, path of CLR Uses default Concurrent GC unless config file or CorBindToRuntimeHost is used e.g. ASP.NET (Background GC/ CLRCreateInstance for 4.0) 0:000> kl Child-SP RetAddr Call Site clr.dll / `0012f fe`f KERNELBASE!LoadLibraryExW+0x19c `0012f8b fe`f9123cf8 mscoreei!runtimedesc::loadlibrary+0x82 mscorwks.dll `0012fa fe`f9123ca9 mscoreei!runtimedesc::loadmainruntimemodulehelper+0x4a `0012fa fe`f9123a85 mscoreei!runtimedesc::loadmainruntimemodule+0x4a `0012fae fe`f mscoreei!runtimedesc::ensureloaded+0xa `0012fb fe`f mscoreei!runtimedesc::getprocaddressinternal+0x `0012fba fe`f mscoreei!clrruntimeinfoimpl::getprocaddress+0x5c `0012fc fe`f91232f1 mscoreei!getcorexemainentrypoint+0x `0012fcf fe`f91b5b21 mscoreei!_corexemain+0x `0012fd `76aff56d MSCOREE!_CorExeMain_Exported+0x `0012fd `770d2cc1 KERNEL32!BaseThreadInitThunk+0xd `0012fd ` ntdll!rtluserthreadstart+0x1d 9

10 EE Startup Majority of CLR initialization done here Initializes ETW tracing, GC & Loader Heaps Creates System, Shared & Default domain(s) Loads mscorlib.dll & creates fundamental types e.g. System.Object 0:000> kl Child-SP RetAddr Call Site `0022fac fe`f89b629e clr!eestartup+0x `0022fb fe`f89cd62e clr!ensureeestarted+0xe `0022fb fe`f896ba45 clr!_corexemaininternal+0x7f `0022fbe fe`f clr!_corexemain+0x `0022fc fe`f91b5b21 mscoreei!_corexemain+0x `0022fc `76aff56d MSCOREE!_CorExeMain_Exported+0x `0022fc `770d2cc1 KERNEL32!BaseThreadInitThunk+0xd `0022fcb ` ntdll!rtluserthreadstart+0x1d 10

11 Demo: Break on EE Startup clr!eestartup

12 CLR Artifacts Internal data structures to track objects EEClass - Mold for every unique type - Describes a type s field & assembly from etc. MethodTable - EEClass + MethodTable = CLR s internal representation of objects MethodDesc - CLR s internal structure to track methods in a type - E.g. tracks state of a method if Jitted or not Note Class Type = design time = runtime 12

13 AppDomain What is it? Can be thought of as process within process Sandboxing code for isolation purposes Cost is cheaper than creating a new process Types of AppDomains - System Domain Responsible creating shared & default domain - Shared Domain Domain neutral code lives here - Default Domain Application code gets loaded & run here 13

14 The.NET Runtime in a Process (CLR) e.g. w3wp.exe System Domain AppDomain (!dumpdomain) Shared Domain AppDomain #1 AppDomain #2 14

15 CLR: Assembly & Module w3wp.exe System Domain Shared Domain AppDomain #1 AppDomain (!dumpdomain) Assembly (Foo1.dll) Assembly (Foo2.dll) Assembly/Module (!dumpassembly/!dumpmodule) AppDomain #2 Assembly (Foo3.dll) 15

16 CLR: EEClass w3wp.exe System Domain Shared Domain AppDomain (!dumpdomain) Assembly (Foo1.dll) Assembly/Module (!dumpassembly/!dumpmodule) EEClass (Class1) EEClass (!dumpclass) AppDomain #1 AppDomain #2 Assembly (Foo2.dll) Assembly (Foo3.dll) EEClass (Class2) EEClass (Class3) EEClass (Class4) 16

17 CLR: MethodTable w3wp.exe System Domain Shared Domain AppDomain #1 AppDomain #2 AppDomain (!dumpdomain) Assembly (Foo1.dll) Assembly (Foo2.dll) Assembly (Foo3.dll) Assembly/Module (!dumpassembly/!dumpmodule) EEClass (Class1) EEClass (Class2) EEClass (Class3) EEClass (Class4) EEClass (!dumpclass) MethodTable (!dumpmt) 17

18 CLR: MethodDesc w3wp.exe System Domain Shared Domain AppDomain #1 AppDomain #2 AppDomain (!dumpdomain) Assembly (Foo1.dll) Assembly (Foo2.dll) Assembly (Foo3.dll) Assembly/Module (!dumpassembly/!dumpmodule) EEClass (Class1) EEClass (Class2) EEClass (Class3) EEClass (Class4) EEClass (!dumpclass) MethodTable (!dumpmt) MethodDesc (FunctionOne) MethodDesc (FunctionTwo) MethodDesc (FunctionThree) 18

19 Multi-Domain Applications LoaderOptimizationAttribute or AppDomainSetup.LoaderOptimization SingleDomain No Assembly sharing between Domains Ngen ed Image gets used only for the first Domain Increased Memory Usage, increased Application Load Time, unexpected Jitting Default behavior safest way MultiDomain As much as possible will be loaded Domain Neutral. LoaderOptimizationAttribute on Main() No real control over loading possible anymore Better: AppDomainSetup usage MultiDomainHost Only Assemblies within the GAC will be shared Eg: ASP.NET

20 Loader Heaps Store CLR Artifacts What are CLR artifacts? - E.g. EEClass, MethodTable & MethodDesc Common Loader Heaps - HighFrequencyHeap MethodTable, MethodDesc & FieldDesc - LowFrequencyHeap EEClass 0:005>!eeheap -loader Loader Heap: System Domain: fef LowFrequencyHeap: ff (2000:1000) Size: 0x1000 (4096) bytes. HighFrequencyHeap: ff (8000:1000) Size: 0x1000 (4096) bytes. StubHeap: ff0001a000(2000:2000) Size: 0x2000 (8192) bytes. 20

21 Demo: Loader Heap & AppDomain Load SOS System, Shared & Default domain Loader Heap Sizes

22 The Managed Object Tying it all together! Chunk of memory with instance data Lives in GC Heap i.e. separate from all other CLR artifacts CLR identifies its type through EEClass, MethodTable etc. System.Object = basic building block for all other managed objects An object in memory needs to keep info such as: - Type - Instance contents (fields) - Other data structures bound to objects like hash codes & locks 22

23 Demo: Managed objects MethodTable - dd <objadd> L1!DumpObj String Array Object Properties

24 Slow Startup Common Scenarios Cold Startup - Slow disk I/O Warm Startup - Many dynamic assemblies e.g. ASP.NET & Serializers - Large cache initialization - Contentions during warm startup 24

25 Identify Slow Startups 1 st Run after boot? No Yes Re-run app to ensure not cold startup issue Yes Slow Startup? No Collect ETW traces on I/O performance Collect perf counters &/or profiler traces to further isolate issue 25

26 Performance Counters Which counters to look at?.net CLR Jit - # of IL Bytes Jitted - # of Methods Jitted - % Time in Jit.NET CLR Loading - Bytes in Loader Heap LogicalDisk - % Idle Time - Current Disk Queue Length 26

27 ETW Trace Disk I/O Performance 1. xperf -on PROC_THREAD+LOADER+CSWITCH+FILENAME+FILE_IO+FILE_IO _INIT+DRIVERS -f kernel.etl -stackwalk CSwitch+DiskReadInit+DiskWriteInit+DiskFlushInit+FileCreate+FileCle anup+fileclose+fileread+filewrite -BufferSize MaxBuffers MaxFile FileMode Circular 2. <Reproduce issue> 3. xperf -d ColdStartupIssue.etl 27

28 Review 1. Name the different parts within the layout of a managed assembly. 2. What are AppDomains, MethodTables, and MethodDescs? 3. Name the SOS command that obtains information from each of these. 28

29 Reference Microsoft PE and COFF Specification - An In-Depth Look into the Win32 Portable Executable File Format Part Drill Into.NET Framework Internals to See How the CLR Creates Runtime Objects - A Model for cold startup time of an application on Windows - NGen: Measuring Warm Startup Performance with Xperf

30 Reference (Cont.) Windows Performance Analysis Tools

31 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 31

Assemblies. necessary and sufficient to make that file self describing. This unit is called Assembly.

Assemblies. necessary and sufficient to make that file self describing. This unit is called Assembly. Assemblies Any.NET application written by a developer may be a component that is designed to provide some service to other applications or itself a main application. In both cases when that.net application

More information

Managed Code with Licensing does not always mean Software Protection. R3JlSGFjayAyMDEyIC0gMXN0IFBhbmljaw0KVGhhbmtzIFBoaWwgZm9yIHRoZSB0ZW1wbGF0ZQ==

Managed Code with Licensing does not always mean Software Protection. R3JlSGFjayAyMDEyIC0gMXN0IFBhbmljaw0KVGhhbmtzIFBoaWwgZm9yIHRoZSB0ZW1wbGF0ZQ== Managed Code with Licensing does not always mean Software Protection R3JlSGFjayAyMDEyIC0gMXN0IFBhbmljaw0KVGhhbmtzIFBoaWwgZm9yIHRoZSB0ZW1wbGF0ZQ== OVERVIEW OVERVIEW Console static void WriteLine() JITCompiler

More information

Building, Packaging, Deploying, and Administering Applications and Types

Building, Packaging, Deploying, and Administering Applications and Types C02621632.fm Page 33 Thursday, January 12, 2006 3:50 PM Chapter 2 Building, Packaging, Deploying, and Administering Applications and Types In this chapter:.net Framework Deployment Goals......................................

More information

High-Level Language VMs

High-Level Language VMs High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs

More information

.NET Memory. Dump Analysis. Version 2.0. Dmitry Vostokov Software Diagnostics Services

.NET Memory. Dump Analysis. Version 2.0. Dmitry Vostokov Software Diagnostics Services .NET Memory Dump Analysis Version 2.0 Dmitry Vostokov Software Diagnostics Services WinDbg Commands Prerequisites We use these boxes to introduce some WinDbg commands used in practice exercises Basic.NET

More information

PE File Browser. by Software Verify

PE File Browser. by Software Verify PE File Browser by Software Verify Copyright Software Verify Limited (c) 2017 PE File Browser PE File contents inspector by Software Verification Welcome to the PE File Browser software tool. PE File Browser

More information

PERFVIEW..NET runtime performance and ETW event analysis tool

PERFVIEW..NET runtime performance and ETW event analysis tool PERFVIEW.NET runtime performance and ETW event analysis tool OVERVIEW Formerly from Vance Morrison (.NET performance architect) Open-source Performance-analysis tool Can be used to investigate CPU and

More information

Segmentation with Paging. Review. Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Segmentation with Page (MULTICS)

Segmentation with Paging. Review. Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Review Segmentation Segmentation Implementation Advantage of Segmentation Protection Sharing Segmentation with Paging Segmentation with Paging Segmentation with Paging Reason for the segmentation with

More information

DNWSH - Version: 2.3..NET Performance and Debugging Workshop

DNWSH - Version: 2.3..NET Performance and Debugging Workshop DNWSH - Version: 2.3.NET Performance and Debugging Workshop .NET Performance and Debugging Workshop DNWSH - Version: 2.3 8 days Course Description: The.NET Performance and Debugging Workshop is a practical

More information

UNIT-1 The Philosophy of.net

UNIT-1 The Philosophy of.net 1 UNIT-1 The Philosophy of.net Understanding the Previous State of Affairs Life As a C/Win32 API Programmer: Developing software for the Windows family of operating systems involved using the C programming

More information

ECE 498 Linux Assembly Language Lecture 1

ECE 498 Linux Assembly Language Lecture 1 ECE 498 Linux Assembly Language Lecture 1 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 13 November 2012 Assembly Language: What s it good for? Understanding at a low-level what

More information

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1 CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines

More information

New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other

New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other C#.NET? New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other OO languages. Small learning curve from either

More information

Module 2: Introduction to a Managed Execution Environment

Module 2: Introduction to a Managed Execution Environment Module 2: Introduction to a Managed Execution Environment Contents Overview 1 Writing a.net Application 2 Compiling and Running a.net Application 11 Lab 2: Building a Simple.NET Application 29 Review 32

More information

Chapter 12 Microsoft Assemblies. Software Architecture Microsoft Assemblies 1

Chapter 12 Microsoft Assemblies. Software Architecture Microsoft Assemblies 1 Chapter 12 Microsoft Assemblies 1 Process Phases Discussed in This Chapter Requirements Analysis Design Framework Architecture Detailed Design Key: x = main emphasis x = secondary emphasis Implementation

More information

Windows History 2009 Windows 7 2

Windows History 2009 Windows 7 2 Example: Windows 1 Windows History 2009 Windows 7 2 Features added Windows2000 additions Plug-and-play Network directory service New GUI Vista additions New GUI More focus on security clean-up the code

More information

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed Process Management CS 537 Lecture 3: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units

More information

Portable Executable format, TitaniumCore report and packers. Katja Pericin

Portable Executable format, TitaniumCore report and packers. Katja Pericin Portable Executable format, TitaniumCore report and packers Katja Pericin Portable Executable format 3/21/2018 2 Introduction file? operating system abstraction for a data container segment(s) of physical

More information

ECE 471 Embedded Systems Lecture 4

ECE 471 Embedded Systems Lecture 4 ECE 471 Embedded Systems Lecture 4 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 12 September 2013 Announcements HW#1 will be posted later today For next class, at least skim

More information

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program. Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation

More information

www nfsd emacs lpr Process Management CS 537 Lecture 4: Processes Example OS in operation Why Processes? Simplicity + Speed

www nfsd emacs lpr Process Management CS 537 Lecture 4: Processes Example OS in operation Why Processes? Simplicity + Speed Process Management CS 537 Lecture 4: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units

More information

EDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages. Görel Hedin Revised:

EDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages. Görel Hedin Revised: EDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages Görel Hedin Revised: 2014-10- 13 This lecture Regular expressions Context- free grammar ATribute grammar Lexical analyzer (scanner)

More information

COPYRIGHTED MATERIAL. Part I The C# Ecosystem. ChapTEr 1: The C# Environment. ChapTEr 2: Writing a First Program

COPYRIGHTED MATERIAL. Part I The C# Ecosystem. ChapTEr 1: The C# Environment. ChapTEr 2: Writing a First Program Part I The C# Ecosystem ChapTEr 1: The C# Environment ChapTEr 2: Writing a First Program ChapTEr 3: Program and Code File Structure COPYRIGHTED MATERIAL 1The C# Environment What s in This ChapTEr IL and

More information

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. OS and Computer Architecture Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components Last class: OS and Architecture Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation

More information

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1 Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies

More information

Bypassing Browser Memory Protections

Bypassing Browser Memory Protections Bypassing Browser Memory Protections Network Security Instructor: Dr. Shishir Nagaraja September 10, 2011. 1 Introduction to the topic A number of memory protection mechanisms like GS, SafeSEH, DEP and

More information

PE Infection How to Inject a dll

PE Infection How to Inject a dll PE Infection How to Inject a dll In association with www.mihanit.net Thank you to my friends who help me in this research (K053,Heli, L U C I F E R(Bl4ck_Ic3)) Author: Nightmare(BioHazard) Date: 03.05.2009(88.02.13)

More information

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13.

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13. IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent 6.3.1 Fix Pack 13 Reference IBM IBM Tivoli Composite Application Manager for Microsoft Applications:

More information

ECE 598 Advanced Operating Systems Lecture 10

ECE 598 Advanced Operating Systems Lecture 10 ECE 598 Advanced Operating Systems Lecture 10 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 22 February 2018 Announcements Homework #5 will be posted 1 Blocking vs Nonblocking

More information

Compiler, Assembler, and Linker

Compiler, Assembler, and Linker Compiler, Assembler, and Linker Minsoo Ryu Department of Computer Science and Engineering Hanyang University msryu@hanyang.ac.kr What is a Compilation? Preprocessor Compiler Assembler Linker Loader Contents

More information

This web service can be available to any user on the internet regardless of who developed it.

This web service can be available to any user on the internet regardless of who developed it. The.NET strategy Microsoft wanted to make the WWW more vibrant by enabling individual devices, computers, and web services to work altogether intelligently to provide rich solutions to the user. With the

More information

CIS-331 Final Exam Spring 2018 Total of 120 Points. Version 1

CIS-331 Final Exam Spring 2018 Total of 120 Points. Version 1 Version 1 Instructions 1. Write your name and version number on the top of the yellow paper and the routing tables sheet. 2. Answer Question 2 on the routing tables sheet. 3. Answer Questions 1, 3, 4,

More information

Web Platform Introduction With a focus on free. Mike Taulty Developer & Platform Group Microsoft Ltd

Web Platform Introduction With a focus on free. Mike Taulty Developer & Platform Group Microsoft Ltd Web Platform Introduction With a focus on free Mike Taulty Developer & Platform Group Microsoft Ltd Mike.Taulty@microsoft.com http://www.mtaulty.com The humble web request Internet Information Services

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls POSIX System Programs System Structure Virtual Machines System Design and Implementation System Generation

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

OS lpr. www. nfsd gcc emacs ls 9/18/11. Process Management. CS 537 Lecture 4: Processes. The Process. Why Processes? Simplicity + Speed

OS lpr. www. nfsd gcc emacs ls 9/18/11. Process Management. CS 537 Lecture 4: Processes. The Process. Why Processes? Simplicity + Speed Process Management CS 537 Lecture 4: Processes Today: processes and process management what are the OS units of execution? how are they represented inside the OS? how is the CPU scheduled across processes?

More information

Vb6 The Instruction At Referenced Memory At The Memory Could Not Be Written

Vb6 The Instruction At Referenced Memory At The Memory Could Not Be Written Vb6 The Instruction At Referenced Memory At The Memory Could Not Be Written The instruction at 0x6c371351 referenced memory at 0x00000004 could not be read? Memory could not be written I was having this

More information

C# Programming in the.net Framework

C# Programming in the.net Framework 50150B - Version: 2.1 04 May 2018 C# Programming in the.net Framework C# Programming in the.net Framework 50150B - Version: 2.1 6 days Course Description: This six-day instructor-led course provides students

More information

Programming in C# Jump Start. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211

Programming in C# Jump Start. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 Programming in C# Jump Start Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 06 Advanced C#, Part 2 Jerry Nixon Microsoft Developer Evangelist Daren May President

More information

C#: framework overview and in-the-small features

C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer

More information

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1 Windows 7 Overview Windows 7 Overview By Al Lake History Design Principles System Components Environmental Subsystems File system Networking Programmer Interface Lake 2 Objectives To explore the principles

More information

Notes of the course - Advanced Programming. Barbara Russo

Notes of the course - Advanced Programming. Barbara Russo Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................

More information

Chapter 4: Threads. Operating System Concepts 8 th Edition,

Chapter 4: Threads. Operating System Concepts 8 th Edition, Chapter 4: Threads, Silberschatz, Galvin and Gagne 2009 Chapter 4: Threads Overview Multithreading Models Thread Libraries 4.2 Silberschatz, Galvin and Gagne 2009 Objectives To introduce the notion of

More information

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018

CSE 4/521 Introduction to Operating Systems. Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 CSE 4/521 Introduction to Operating Systems Lecture 29 Windows 7 (History, Design Principles, System Components, Programmer Interface) Summer 2018 Overview Objective: To explore the principles upon which

More information

Memory management has always involved tradeoffs between numerous optimization possibilities: Schemes to manage problem fall into roughly two camps

Memory management has always involved tradeoffs between numerous optimization possibilities: Schemes to manage problem fall into roughly two camps Garbage Collection Garbage collection makes memory management easier for programmers by automatically reclaiming unused memory. The garbage collector in the CLR makes tradeoffs to assure reasonable performance

More information

ART JIT in Android N. Xueliang ZHONG Linaro ART Team

ART JIT in Android N. Xueliang ZHONG Linaro ART Team ART JIT in Android N Xueliang ZHONG Linaro ART Team linaro-art@linaro.org 1 Outline Android Runtime (ART) and the new challenges ART Implementation in Android N Tooling Performance Data & Findings Q &

More information

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop. 2016 Spis treści Preface xi 1. Introducing C# and the.net Framework 1 Object Orientation 1 Type Safety 2 Memory Management

More information

CS3600 SYSTEMS AND NETWORKS

CS3600 SYSTEMS AND NETWORKS CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 11: File System Implementation Prof. Alan Mislove (amislove@ccs.neu.edu) File-System Structure File structure Logical storage unit Collection

More information

Link 2. Object Files

Link 2. Object Files Link 2. Object Files Young W. Lim 2017-09-20 Wed Young W. Lim Link 2. Object Files 2017-09-20 Wed 1 / 33 Outline 1 Linking - 2. Object Files Based on Oject Files ELF Sections Example Program Source Codes

More information

AC59/AT59/AC110/AT110 OPERATING SYSTEMS & SYSTEMS SOFTWARE DEC 2015

AC59/AT59/AC110/AT110 OPERATING SYSTEMS & SYSTEMS SOFTWARE DEC 2015 Q.2 a. Explain the following systems: (9) i. Batch processing systems ii. Time sharing systems iii. Real-time operating systems b. Draw the process state diagram. (3) c. What resources are used when a

More information

ID: Cookbook: urldownload.jbs Time: 23:23:00 Date: 11/01/2018 Version:

ID: Cookbook: urldownload.jbs Time: 23:23:00 Date: 11/01/2018 Version: ID: 42417 Cookbook: urldownload.jbs Time: 23:23:00 Date: 11/01/201 Version: 20.0.0 Table of Contents Table of Contents Analysis Report Overview General Information Detection Confidence Classification Signature

More information

CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1

CIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1 Version 1 1. (20 Points) Given the class A network address 117.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 4,000 subnets? b. (5 Points) What is

More information

M4.1-R4: APPLICATION OF.NET TECHNOLOGY

M4.1-R4: APPLICATION OF.NET TECHNOLOGY M4.1-R4: APPLICATION OF.NET TECHNOLOGY NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the OMR

More information

Protection and System Calls. Otto J. Anshus

Protection and System Calls. Otto J. Anshus Protection and System Calls Otto J. Anshus Protection Issues CPU protection Prevent a user from using the CPU for too long Throughput of jobs, and response time to events (incl. user interactive response

More information

CIS-331 Exam 2 Spring 2016 Total of 110 Points Version 1

CIS-331 Exam 2 Spring 2016 Total of 110 Points Version 1 Version 1 1. (20 Points) Given the class A network address 121.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 8,100 subnets? b. (5 Points) What is

More information

Authoring Installations for Microsoft s.net Framework

Authoring Installations for Microsoft s.net Framework Authoring Installations for Microsoft s.net Framework using Wise for Windows Installer Vanessa Wasko Wise Solutions, Inc. Abstract This paper provides an overview of creating an installation for an application

More information

ID: Sample Name: process.0xfffffa8004b x dmp Cookbook: default.jbs Time: 22:45:59 Date: 02/12/2017 Version: 20.0.

ID: Sample Name: process.0xfffffa8004b x dmp Cookbook: default.jbs Time: 22:45:59 Date: 02/12/2017 Version: 20.0. ID: 38941 Sample Name: process.0xfffffa8004b120.0x480000.dmp Cookbook: default.jbs Time: 22:4:9 Date: 02/12/201 Version: 20.0.0 Table of Contents Table of Contents Analysis Report Overview General Information

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures 1 Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

Generating Programs and Linking. Professor Rick Han Department of Computer Science University of Colorado at Boulder

Generating Programs and Linking. Professor Rick Han Department of Computer Science University of Colorado at Boulder Generating Programs and Linking Professor Rick Han Department of Computer Science University of Colorado at Boulder CSCI 3753 Announcements Moodle - posted last Thursday s lecture Programming shell assignment

More information

CIS-331 Exam 2 Fall 2014 Total of 105 Points. Version 1

CIS-331 Exam 2 Fall 2014 Total of 105 Points. Version 1 Version 1 1. (20 Points) Given the class A network address 119.0.0.0 will be divided into a maximum of 15,900 subnets. a. (5 Points) How many bits will be necessary to address the 15,900 subnets? b. (5

More information

C03c: Linkers and Loaders

C03c: Linkers and Loaders CISC 3320 MW3 C03c: Linkers and Loaders Hui Chen Department of Computer & Information Science CUNY Brooklyn College 2/4/2019 CUNY Brooklyn College: CISC 3320 OS 1 Outline Linkers and linking Loaders and

More information

Chapter 1:- Introduction to.net. Compiled By:- Ankit Shah Assistant Professor, SVBIT.

Chapter 1:- Introduction to.net. Compiled By:- Ankit Shah Assistant Professor, SVBIT. Chapter 1:- Introduction to.net Compiled By:- Assistant Professor, SVBIT. What is.net? 2 Microsoft s vision of the future of applications in the Internet age Increased robustness over classic Windows apps

More information

CIS-331 Spring 2016 Exam 1 Name: Total of 109 Points Version 1

CIS-331 Spring 2016 Exam 1 Name: Total of 109 Points Version 1 Version 1 Instructions Write your name on the exam paper. Write your name and version number on the top of the yellow paper. Answer Question 1 on the exam paper. Answer Questions 2-4 on the yellow paper.

More information

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions

More information

Lecture 4 Processes. Dynamic Analysis. GDB

Lecture 4 Processes. Dynamic Analysis. GDB Lecture 4 Processes. Dynamic Analysis. GDB Computer and Network Security 23th of October 2017 Computer Science and Engineering Department CSE Dep, ACS, UPB Lecture 4, Processes. Dynamic Analysis. GDB 1/45

More information

An Introduction to.net for the J2EE Programmer

An Introduction to.net for the J2EE Programmer An Introduction to.net for the J2EE Programmer Jeroen Frijters Sumatra Software b.v. jeroen@sumatra.nl http://weblog.ikvm.net/ Page Overview.NET Framework overview and terminology A Quick Look at C# A

More information

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups MODULE 1 JAVA PLATFORMS Identifying Java Technology Product Groups Java SE Platform Versions Year Developer Version (JDK) Platform 1996 1.0 1 1997 1.1 1 1998 1.2 2 2000 1.3 2 2002 1.4 2 2004 1.5 5 2006

More information

.NET CLR Framework. Unmanaged Hosts - Assembly Access

.NET CLR Framework. Unmanaged Hosts - Assembly Access Unmanaged Hosts - Assembly Access ptrex 8/08/2017 WHAT : is.net Common Language Runtime (CLR) Framework The Common Language Runtime (CLR) is a an Execution Environment. Common Language Runtime (CLR)'s

More information

How to create a process? What does process look like?

How to create a process? What does process look like? How to create a process? On Unix systems, executable read by loader Compile time runtime Ken Birman ld loader Cache Compiler: generates one object file per source file Linker: combines all object files

More information

CS 550 Operating Systems Spring Process I

CS 550 Operating Systems Spring Process I CS 550 Operating Systems Spring 2018 Process I 1 Process Informal definition: A process is a program in execution. Process is not the same as a program. Program is a passive entity stored in the disk Process

More information

Expert C++/CLI:.NET for Visual C++ Programmers

Expert C++/CLI:.NET for Visual C++ Programmers Expert C++/CLI:.NET for Visual C++ Programmers Marcus Heege Contents About the Author About the Technical Reviewer Acknowledgments xiii xv xvii CHAPTER 1 Why C++/CLI? 1 Extending C++ with.net Features

More information

V. File System. SGG9: chapter 11. Files, directories, sharing FS layers, partitions, allocations, free space. TDIU11: Operating Systems

V. File System. SGG9: chapter 11. Files, directories, sharing FS layers, partitions, allocations, free space. TDIU11: Operating Systems V. File System SGG9: chapter 11 Files, directories, sharing FS layers, partitions, allocations, free space TDIU11: Operating Systems Ahmed Rezine, Linköping University Copyright Notice: The lecture notes

More information

The benefits and costs of writing a POSIX kernel in a high-level language

The benefits and costs of writing a POSIX kernel in a high-level language 1 / 38 The benefits and costs of writing a POSIX kernel in a high-level language Cody Cutler, M. Frans Kaashoek, Robert T. Morris MIT CSAIL Should we use high-level languages to build OS kernels? 2 / 38

More information

User Manual. Admin Report Kit for IIS 7 (ARKIIS)

User Manual. Admin Report Kit for IIS 7 (ARKIIS) User Manual Admin Report Kit for IIS 7 (ARKIIS) Table of Contents 1 Admin Report Kit for IIS 7... 1 1.1 About ARKIIS... 1 1.2 Who can Use ARKIIS?... 1 1.3 System requirements... 2 1.4 Technical Support...

More information

ID: Sample Name: meterpreter64bit.exe Cookbook: default.jbs Time: 16:01:45 Date: 24/11/2017 Version:

ID: Sample Name: meterpreter64bit.exe Cookbook: default.jbs Time: 16:01:45 Date: 24/11/2017 Version: ID: 0 Sample Name: meterpreter4bit.exe Cookbook: default.jbs Time: 1:01:4 Date: 24/11/201 Version: 20.0.0 Table of Contents Table of Contents Analysis Report Overview General Information Detection Confidence

More information

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance

More information

What is a VM? Categories of Virtual Machines. Process Virtual Machine 11/17/2010

What is a VM? Categories of Virtual Machines. Process Virtual Machine 11/17/2010 What is a VM? Virtual Machines COMP755 An efficient, isolated duplicate of a real machine Current use includes virtual machines which have no direct correspondence to any real hardware Categories of Virtual

More information

CHAPTER ASSEMBLY LANGUAGE PROGRAMMING

CHAPTER ASSEMBLY LANGUAGE PROGRAMMING CHAPTER 2 8051 ASSEMBLY LANGUAGE PROGRAMMING Registers Register are used to store information temporarily: A byte of data to be processed An address pointing to the data to be fetched The vast majority

More information

CSCI341. Lecture 22, MIPS Programming: Directives, Linkers, Loaders, Memory

CSCI341. Lecture 22, MIPS Programming: Directives, Linkers, Loaders, Memory CSCI341 Lecture 22, MIPS Programming: Directives, Linkers, Loaders, Memory REVIEW Assemblers understand special commands called directives Assemblers understand macro commands Assembly programs become

More information

TCG Storage Application Note: Encrypting Drives Compliant with Opal SSC

TCG Storage Application Note: Encrypting Drives Compliant with Opal SSC TCG Storage Application Note: Encrypting Drives Compliant with Opal SSC Specification Version 1.00 Final Revision 1.00 19 February, 2010 Contact: admin@trustedcomputinggroup.org TCG Copyright TCG 2010

More information

Preview. COSC350 System Software, Fall

Preview. COSC350 System Software, Fall Preview File System File Name, File Structure, File Types, File Access, File Attributes, File Operation Directories Directory Operations File System Layout Implementing File Contiguous Allocation Linked

More information

OPERATING SYSTEM. Chapter 12: File System Implementation

OPERATING SYSTEM. Chapter 12: File System Implementation OPERATING SYSTEM Chapter 12: File System Implementation Chapter 12: File System Implementation File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management

More information

22 File Structure, Disk Scheduling

22 File Structure, Disk Scheduling Operating Systems 102 22 File Structure, Disk Scheduling Readings for this topic: Silberschatz et al., Chapters 11-13; Anderson/Dahlin, Chapter 13. File: a named sequence of bytes stored on disk. From

More information

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017 ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 The Operating System (OS) Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)

More information

CIT 595 Spring System Software: Programming Tools. Assembly Process Example: First Pass. Assembly Process Example: Second Pass.

CIT 595 Spring System Software: Programming Tools. Assembly Process Example: First Pass. Assembly Process Example: Second Pass. System Software: Programming Tools Programming tools carry out the mechanics of software creation within the confines of the operating system and hardware environment Linkers & Loaders CIT 595 Spring 2010

More information

Creating a Service Platform for.net. Clement Escoffier PhD Student University of Grenoble

Creating a Service Platform for.net. Clement Escoffier PhD Student University of Grenoble Creating a Service Platform for.net Clement Escoffier PhD Student University of Grenoble LSR-IMAG : Logiciels, Systèmes & Réseaux LSR : Software, Systems & Networks IMAG federation Member of the ObjectWeb

More information

ID: Sample Name: 11youtube3.com Cookbook: default.jbs Time: 08:17:42 Date: 12/04/2018 Version:

ID: Sample Name: 11youtube3.com Cookbook: default.jbs Time: 08:17:42 Date: 12/04/2018 Version: ID: 54295 Sample Name: 11youtube3.com Cookbook: default.jbs Time: 08:1:42 Date: 12/04/2018 Version: 22.0.0 Table of Contents Table of Contents Analysis Report Overview General Information Detection Confidence

More information

Chapter 11: Implementing File Systems

Chapter 11: Implementing File Systems Chapter 11: Implementing File Systems Operating System Concepts 99h Edition DM510-14 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation

More information

A new Mono GC. Paolo Molaro October 25, 2006

A new Mono GC. Paolo Molaro October 25, 2006 A new Mono GC Paolo Molaro lupus@novell.com October 25, 2006 Current GC: why Boehm Ported to the major architectures and systems Featurefull Very easy to integrate Handles managed pointers in unmanaged

More information

CIS-331 Fall 2014 Exam 1 Name: Total of 109 Points Version 1

CIS-331 Fall 2014 Exam 1 Name: Total of 109 Points Version 1 Version 1 1. (24 Points) Show the routing tables for routers A, B, C, and D. Make sure you account for traffic to the Internet. Router A Router B Router C Router D Network Next Hop Next Hop Next Hop Next

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

Practical Malware Analysis

Practical Malware Analysis Practical Malware Analysis Ch 4: A Crash Course in x86 Disassembly Revised 1-16-7 Basic Techniques Basic static analysis Looks at malware from the outside Basic dynamic analysis Only shows you how the

More information

Operating Systems Design Exam 2 Review: Spring 2011

Operating Systems Design Exam 2 Review: Spring 2011 Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes

More information

02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211

02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 02 Features of C#, Part 1 Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 Module Overview Constructing Complex Types Object Interfaces and Inheritance Generics Constructing

More information

PES INSTITUTE OF TECHNOLOGY

PES INSTITUTE OF TECHNOLOGY Seventh Semester B.E. IA Test-I, 2014 USN 1 P E I S PES INSTITUTE OF TECHNOLOGY C# solution set for T1 Answer any 5 of the Following Questions 1) What is.net? With a neat diagram explain the important

More information

Learning objectives. The Java Environment. Java timeline (cont d) Java timeline. Understand the basic features of Java

Learning objectives. The Java Environment. Java timeline (cont d) Java timeline. Understand the basic features of Java Learning objectives The Java Environment Understand the basic features of Java What are portability and robustness? Understand the concepts of bytecode and interpreter What is the JVM? Learn few coding

More information

CS 416: Opera-ng Systems Design March 23, 2012

CS 416: Opera-ng Systems Design March 23, 2012 Question 1 Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes

More information

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4 Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell

More information

238P: Operating Systems. Lecture 7: Basic Architecture of a Program. Anton Burtsev January, 2018

238P: Operating Systems. Lecture 7: Basic Architecture of a Program. Anton Burtsev January, 2018 238P: Operating Systems Lecture 7: Basic Architecture of a Program Anton Burtsev January, 2018 What is a program? What parts do we need to run code? Parts needed to run a program Code itself By convention

More information