Solaris 10 Operating System Internals (SI-365-S10)
The Solaris 10 Operating System Internals course provides students with information about the various kernel subsystems, routines, and structures that make up the Solaris 10 Operating System. Students will use Solaris Dynamic Tracing (DTrace) to step through process creation, execution, signal delivery, and scheduling, correlating observations with source code available through OpenSolaris. The labs make extensive use of dtrace,kmdb, and mdb commands to examine the system structures on live systems. The labs also make use of OpenSolaris web access to facilitate understanding how the Operating System works. The kernel subsystems covered include the multithreaded architecture, virtual memory, scheduling, process lifetime, signal management, the vnode layer, and file systems such as UFS, ZFS and swapfs.
Skills Gained
Upon completion of this course, students should be able to:
Explain step-by-step how a lock is acquired
Discuss the reason for priority inheritance and its implementation
Identify the steps performed in a virtual to physical memory address translation
List the process structures and routines needed to implement a scheduling class
List the process structures used to implement multiple scheduling classes and the fields in the time-sharing and real-time dispatch parameter tables
Describe the paging and swapping algorithms that manage physical memory as a cache
Describe process creation, execution, and termination
Discuss kernel thread scheduling and preemption
Use kmdb, mdb, and DTrace to locate and display the system structures for an open file in a given process, such as the file descriptor, file structure, vnode structure, inode structure, page structure, and superblock
Describe the placement policies that the UNIX® file system (UFS) uses to place inodes and blocks of data
Who Can Benefit
Students who can benefit from this course are programmers, system engineers, advanced system administrators, and support personnel.
Prerequisites
To get the most value from this course, students should be able to:
Read C programs and explain the meaning of a = (struct foo *) b and int func(int)
Understand and be able to explain the concept of pointers, structures, unions, link lists, hashing, and binary trees
Code:
SI-365-S10
Length:
5 days
Type:
Instructor-Led
Certified By:
Sun Microsystems
Tuition:
$3,500 / $2,975 GSA GOV.
This course is taught by Certified Sun Microsystems instructors. There is a difference. Learn More
This course is in the following categories. Click the categories to find similar courses and topics of interest.
Module 1 - Introducing the Solaris 10 Operating System
Define the purpose of the operating system and explain the concept of kernel layering
Explain and diagram the segments that make up the process address space
Explain the trap mechanism
Differentiate between hardware and software interrupts
List the new features in recent releases of the Solaris 10 OS
Start using tools such as mdb, kmdb, and DTrace to examine kernel data structures
Start using http://cvs.opensolaris.org/source/ to examine the source code
Module 2 - Multithread Architecture
Explain the difference between symmetrical multiprocessing (SMP) and asymmetrical multiprocessing (ASMP)
Define an application and a kernel thread
Define a lightweight process (LWP)
Explain the difference between a thread and an LWP
List the structures that describe the state of a kernel thread, an LWP, and a process
Explain how a mutex lock works
Define a condition variable
Describe how a counting semaphore is implemented
Explain how a multiple-reader, single-writer lock works
Explain the advantages of multiple LWPs for a given process
Module 3 - Hardware Memory Management
Describe how the MMU tables are used to perform virtual-to- physical address translation
List the differences between the x86/x64 memory management unit (MMU) and the SFMMU
Describe types of cache implemented on Sun systems
Explain the purpose of the hardware address translation (HAT) layer
Module 4 - Software Memory Management
List the layers of the SunOS 5.x software virtual memory (VM) system and define the role of each layer
List the mapping structures that make up process address space
Locate the page structures and process address space structures in mdb or dtrace and identify the fields within the structures
Explain how the memory mapping and memory control system calls can be used by an application programmer to effectively manage process memory needs
Module 5 - Paging and Swapping
Explain the layered approach to page-fault handling
List the conditions under which the page daemon runs
List the functions of the page daemon
List the conditions under which the swapper runs
Module 6 - The swapfs File System
List the shortcomings of SunOS 4.x swap management
Describe the changes that were made to the anonymous memory layer to accommodate the implementation of the swapfs file system
List two advantages obtained by adding the swapfs file system to the SunOS 5.x
Module 7 - Scheduling
List at least two major barriers to real-time processing in the traditional UNIX architectures, such as System V Release 3 (SVR3), the 4.3 Berkeley Software Design version of UNIX (BSD), and SunOS 4.x software
Explain the difference between a fully preemptible kernel and a kernel with preemption points
List a routine used to place a thread on a dispatch queue
Describe when a thread is placed at the head of a dispatch queue
Describe how the sleep queues are ordered
Define a user-level preemption
Define a kernel-level preemption
Define deterministic dispatch latency
Define priority inversion
Module 8 - Process Lifetime
Explain the differences among the system calls used to create a new process
Describe the kernel routines used to implement process creation
List the different types of executables supported in the Solaris 10 OS
Explain the routines used to implement executable and linking format (ELF) executables
List the advantages of the ELF executable format
Describe the actions taken by a process when it exits
Explain the waitid(2) system call and how it is implemented
Module 9 - Signals
List the different types of signals that can be delivered to a process or thread
Explain the difference between a trap signal and an interrupt signal
List the signal management routines and describe their functions
Describe what the signal facility is for, and how a signal is delivered
Module 10 - File Systems
Describe the vnode interface layer to a file system
List the four fields in a directory entry
Explain the advantages of the 4.3 BSD file system
Describe the function of the superblock and cylinder group structures
List the fields in the disk inode structure and explain how they are used
Name the routines involved in determining the global placement policies
Explain the allocation routines using the flowcharts and describe how the fragments are located quickly
When you take a certified course with ExitCertified, you are learning from
the creators of the products you use. Our commitment to your IT
community, along with our authorization to deliver certified courses,
ensures you receive a premium training experience.