No empty .Rs/.Re
[netbsd-mini2440.git] / share / doc / psd / 05.sysman / 1.6.t
blobc04dad38253ad71f4cbc3a3cf02ef0879a8c1b1b
1 .\"     $NetBSD: 1.6.t,v 1.3 2003/02/05 00:02:27 perry Exp $
2 .\"
3 .\" Copyright (c) 1983, 1993, 1994
4 .\"     The Regents of the University of California.  All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)1.6.t       8.5 (Berkeley) 6/1/94
31 .\"
32 .Sh 2 "Resource controls
33 .Sh 3 "Process priorities
34 .PP
35 The system gives CPU scheduling priority to processes that have not used
36 CPU time recently.  This tends to favor interactive processes and
37 processes that execute only for short periods.
38 The instantaneous scheduling priority is a function of CPU usage
39 and a settable priority value used in adjusting the instantaneous
40 priority with CPU usage or inactivity.
41 It is possible to determine the settable priority factor currently
42 assigned to a process (PRIO_PROCESS),
43 process group (PRIO_PGRP),
44 or the processes of a specified user (PRIO_USER),
45 or to alter this priority using the calls:
46 .DS
47 .Fd getpriority 2 "get program scheduling priority
48 prio = getpriority(which, who);
49 result int prio; int which, who;
50 .DE
51 .DS
52 .Fd setpriority 3 "set program scheduling priority
53 setpriority(which, who, prio);
54 int which, who, prio;
55 .DE
56 The value \fIprio\fP is in the range \-20 to 20.
57 The default priority is 0; lower priorities cause more
58 favorable execution.
59 The
60 .Fn getpriority
61 call returns the highest priority (lowest numerical value)
62 enjoyed by any of the specified processes.
63 The
64 .Fn setpriority
65 call sets the priorities of all the
66 specified processes to the specified value.
67 Only the super-user may lower priorities.
68 .Sh 3 "Resource utilization
69 .PP
70 The
71 .Fn getrusage
72 call returns information describing the resources used by the
73 current process (RUSAGE_SELF),
74 or all its terminated descendent processes (RUSAGE_CHILDREN):
75 .DS
76 .Fd getrusage 2 "get information about resource utilization
77 getrusage(who, rusage);
78 int who; result struct rusage *rusage;
79 .DE
80 The information is returned in a structure defined in \fI<sys/resource.h>\fP:
81 .DS
82 .TS
83 l s s s
84 l l l l.
85 struct rusage {
86         struct  timeval ru_utime;       /* user time used */
87         struct  timeval ru_stime;       /* system time used */
88         int     ru_maxrss;      /* maximum core resident set size: kbytes */
89         int     ru_ixrss;       /* integral shared memory size (kbytes*sec) */
90         int     ru_idrss;       /* unshared data memory size */
91         int     ru_isrss;       /* unshared stack memory size */
92         int     ru_minflt;      /* page-reclaims */
93         int     ru_majflt;      /* page faults */
94         int     ru_nswap;       /* swaps */
95         int     ru_inblock;     /* block input operations */
96         int     ru_oublock;     /* block output operations */
97         int     ru_msgsnd;      /* messages sent */
98         int     ru_msgrcv;      /* messages received */
99         int     ru_nsignals;    /* signals received */
100         int     ru_nvcsw;       /* voluntary context switches */
101         int     ru_nivcsw;      /* involuntary context switches */
105 .Sh 3 "Resource limits
107 The resources of a process for which limits are controlled by the
108 kernel are defined in \fI<sys/resource.h>\fP, and controlled by the
109 .Fn getrlimit
111 .Fn setrlimit
112 calls:
114 .Fd getrlimit 2 "get maximum system resource consumption
115 getrlimit(resource, rlp);
116 int resource; result struct rlimit *rlp;
119 .Fd setrlimit 2 "set maximum system resource consumption
120 setrlimit(resource, rlp);
121 int resource; struct rlimit *rlp;
123 The resources that may currently be controlled include:
126 l l.
127 RLIMIT_CPU      /* cpu time in milliseconds */
128 RLIMIT_FSIZE    /* maximum file size */
129 RLIMIT_DATA     /* data size */
130 RLIMIT_STACK    /* stack size */
131 RLIMIT_CORE     /* core file size */
132 RLIMIT_RSS      /* resident set size */
133 RLIMIT_MEMLOCK  /* locked-in-memory address space */
134 RLIMIT_NPROC    /* number of processes */
135 RLIMIT_NOFILE   /* number of open files */
138 .ne 1i
139 Each limit has a current value and a maximum defined
140 by the \fIrlimit\fP structure:
143 l s s s
144 l l l l.
145 struct rlimit {
146         quad_t  rlim_cur;       /* current (soft) limit */
147         quad_t  rlim_max;       /* hard limit */
152 Only the super-user can raise the maximum limits.
153 Other users may only
154 alter \fIrlim_cur\fP within the range from 0 to \fIrlim_max\fP
155 or (irreversibly) lower \fIrlim_max\fP.
156 To remove a limit on a resource,
157 the value is set to RLIM_INFINITY.