CS430 Solaris and DTrace Presentation
-
Upload
chris-hart -
Category
Documents
-
view
214 -
download
0
Transcript of CS430 Solaris and DTrace Presentation
Paper SummaryChristopher HartRegis University23 February 2008
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
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
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
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
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
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)
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