Solaris Process Management
What is a Process
• the most basic abstraction provided by an
operating system.
• A process is an executable object located at
physical memory pages
• contains specific memory segments with
executable instructions, stack space, data space,
and other components needed for execution.
• Each process is identified uniquely with a positive
integer number named PID
Introduction to process management
• Solaris is a multi thread operating system
• every tasks performed by operating system
are execute like kernel threads.
• User threads are created in order to execute
user processes, these user threads are created
with a lightweight process or LWP linked to it..
• LWP is a kernel object which lets user threads
enter to the kernel and execute by themselves
Process Mgmt.
• Despite user LWP and kernel LWP have different
structures, they are so integrated that can be
seen like an unique execution entity.
• Process state is represented as a set of bits used
by the kernel for process managing. From the
process’ “point of view” kernel puts all the
execution resources in a virtual machine for its
execution.
Process Mgmt.
• Kernel maintains a process structure named proc_t for
each process in the system; proc_t contains and references
all the process state data, is located at kernel address space
and has restricted access.
• Every process starts from an executable disk file. A process
image is loaded in memory by the kernel for its execution.
This happens when a fork() system call is called. A PID is
assigned to the recently created process. The process who
called fork() is named parent process, and the new process
is named child process.
Process Mgmt.
• A process can be ended due to:
· The process calls exit() system call, and all its threads end.
· Function abort() is called, which sends a SIGABRT signal to
the process.
· The process ends its execution normal.
• In all of the previous cases exit() kernel function is executed,
this function frees all the resources assigned to the process, and
set process’ status to zombie. A zombie process needs that its
parent calls wait() system call, which captures exit status of its
child process, and frees its entry from process table.
Basic Process Management Commands in
Solaris
• consists of listing active processes (ps
command)
• terminating processes (kill command)
• changing the execution priority of a process
(nice and priocntl commands).
Process Management contd.
• Processes are represented in a treelike fashion by
the processnumber in the /proc pseudofilesystem.
• Most processes are assosiated with a terminal, a
process without a terminal is called a Daemon.
• A childprocess is a process started and controlled
by another process.
• A zombie process is a process that have hung,
usually it’s a childprocess whos parentprocess has
terminated without cleaning up after itself.
List of Solaris commands for process management
• apptrace – for tracing library calls
• dtrace – debugger, new in version 10
• pargs – get list of arguments and environment variables with which
process was started
• pfiles – list of file descriptors, associated with process
• pgrep – get the PID's of processes by name i.e. Something like ps -efl|grep
-v grep|grep process_name
• pkill – send signal to process. For example pkill -9 init :-P
• pldd – list dynamic libraries, associated with process, similar to ldd for
executable
• plockstat – see list of locked by process files. Lock can be mutex i.e.
exclusive and reader/writer for shared access
• pmap – get memory map (segments) of process
• preap – try to kick-off zombie process
List of Solaris commands for process management(contd.)
• prstat – fullscreen view of processes sorted by different criteria, similar to
Linux top command
• prun – continue hold with pstop process
• ps - print process information and status. In Solaris exist SYSV and BSD
variants, respectively /usr/bin/ps and /usr/ucb/ps
• psig – list signals that can be handled by process
• pstack – get backtrace stack of process for debugging purposes
• pstop – temporary hold process
• ptree - print the tree of processes
• pwait – wait till process finish
• pwdx – list working directory for process, like pwd command
• truss – for tracing user/library/system calls and signals
THANK YOU