CS430 Solaris and DTrace Presentation

8
Paper Summary Christopher Hart Regis University 23 February 2008

Transcript of CS430 Solaris and DTrace Presentation

Page 1: CS430 Solaris and DTrace Presentation

Paper SummaryChristopher HartRegis University23 February 2008

Page 2: CS430 Solaris and DTrace Presentation

Solaris 10 is a UNIX 03 certified operation system (The Open Group, 2001)

One key benefit of Solaris is the availability of the dynamic tracing facility “DTrace”

My paper uses DTrace as a lens to explore the Solaris kernel, process management, and file system management and I/O

Page 3: CS430 Solaris and DTrace Presentation

DTrace dynamically instruments kernel and user processes using probes

Probes are defined in the context of providers; providers organize probes by the functions they instrument

Actions tied to one or probes are executed when an event occurs and can be used to output detail about the event

Page 4: CS430 Solaris and DTrace Presentation

Modular Design (McDougall, R., & Mauro, J., 2007, p. 16-18) Organized in logical groups (system call

interface, process execution, etc.) Core functions exist within kernel, other

functions can be loaded dynamically Benefits (Silberschatz, Galvin and Gagne,

p. 62-63) : Core services offered without requiring

message passing through kernel (á la microkernel)

Framework for dynamic loading and modularity enables extensibility

Page 5: CS430 Solaris and DTrace Presentation

Core process objects (McDougall, R., & Mauro, J., 2007, p. 52): Kernel thread Lightweight process (“LWP”)▪ Provides linkage between user threads and kernel

threads▪ One-to-one relationship between user threads and LWPs

User thread Process Data Structure

Some information exposed through /proc virtual file system

sys/proc.h defines process data structure DTrace reveals process execution and LWP

creation through proc provider

Page 6: CS430 Solaris and DTrace Presentation

Virtual memory system has three layers (McDougall, R., & Mauro, J., 2007, p. 456): Hardware address translation layer hides physical

memory implementation details from space & page management

Address space & page management layer provides common interface to page scanner and kernel and user processes

Segment drivers provide virtual memory management for different purposes (McDougall, R., & Mauro, J., 2007, p. 456). Examples: seg_vn for process heap & stack memory seg_kmem for non-pageable kernel memory seg_map for memory mapping files

Page 7: CS430 Solaris and DTrace Presentation

Two interfaces for file management: vfs for file system management functions vnode for interacting with files Interfaces are used for both real and virtual file

systems Two mechanisms for interacting with files:

Memory mapping (uses user process address space)

read() and write() (kernel performs memory mapping in kernel address space)

(McDougall, R., & Mauro, J., 2007, p. 657,659)

Page 8: CS430 Solaris and DTrace Presentation

McDougall, R., & Mauro, J. (2007). Solaris Internals (2nd ed.). Upper Saddle River, NJ: Prentice Hall.

Silberschatz, A., Galvin, P. B., & Gagne, G. (2005). Operating System Concepts (7th ed.). Hoboken, NJ: John Wiley & Sons, Inc.

The Open Group. June 25, 2001. The UNIX System – The Single UNIX Specification. Retrieved February 13, 2008 from http://www.unix.org/what_is_unix/ single_unix_specification.htm