⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basics-processes.html

📁 FreeBSD操作系统的详细使用手册
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>进程</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="UNIX 基础" href="basics.html" /><link rel="PREVIOUS" title="文件系统的挂接和卸下" href="mount-unmount.html" /><link rel="NEXT" title="守护进程,信号和杀死进程" href="basics-daemons.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="mount-unmount.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 3. UNIX 基础</td><td width="10%" align="right" valign="bottom"><a href="basics-daemons.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="BASICS-PROCESSES" name="BASICS-PROCESSES">3.7. 进程</a></h1><p>FreeBSD 是一个多任务操作系统。 这就意味着好像一次可以运行一个以上的程序。每个占用一定时间运行的程序就叫<i class="FIRSTTERM">process</i>。每个程序启动运行时至少有一个新进程,并在所有运行的时候保持有一个系统进程的编号,而一直由系统对它监管。</p><p>每个进程用来标识的一个编号就叫 <i class="FIRSTTERM">进程 ID</i>, 或叫 <iclass="FIRSTTERM">PID</i>。 而且,就像文件那样,每个进程也有所属用户和所属群体。所属用户和所属群体使用在这方面:确定这个进程可以打开那些文件和那些设备,从而在初期使用文件的权限。 多数的进程都同样有一个父进程, 而进程是依靠父进程来启动的。例如,假如你把命令输入到shell里那shell是一个进程,而你运行的各个命令同样是进程,那么,shell就是你各个运行进程的父进程。 而这方面有一个例外的进程就叫<spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">init</span>(8)</span>。 <ttclass="COMMAND">init</tt>始终是首个进程,,所以他的PID始终是1, 而<ttclass="COMMAND">init</tt>在FreeBSD起动时由内核自动启动。</p><p>在系统上,有两个命令对进程观察非常有用:<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">ps</span>(1)</span> 和 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">top</span>(1)</span>。 这个<ttclass="COMMAND">ps</tt>命令作用是观察当前运行进程的状态,显示他们的PID,使用了多少内存,它们启动的命令行。 而<ttclass="COMMAND">top</tt>命令则是显示所有运行进程,并在以秒计的短时内更新数据。你能交互式的观察你计算机的工作。</p><p>默认情况下, <tt class="COMMAND">ps</tt>仅显示出你自己所运行的命令。 例如:</p><pre class="SCREEN"><samp class="PROMPT">%</samp> <kbd class="USERINPUT">ps</kbd>  PID  TT  STAT      TIME COMMAND  298  p0  Ss     0:01.10 tcsh 7078  p0  S      2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)37393  p0  I      0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)48630  p0  S      2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi48730  p0  IW     0:00.00 (dns helper) (navigator-linux-)72210  p0  R+     0:00.00 ps  390  p1  Is     0:01.14 tcsh 7059  p2  Is+    1:36.18 /usr/local/bin/mutt -y 6688  p3  IWs    0:00.00 tcsh10735  p4  IWs    0:00.00 tcsh20256  p5  IWs    0:00.00 tcsh  262  v0  IWs    0:00.00 -tcsh (tcsh)  270  v0  IW+    0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16  280  v0  IW+    0:00.00 xinit /home/nik/.xinitrc -- -bpp 16  284  v0  IW     0:00.00 /bin/sh /home/nik/.xinitrc  285  v0  S      0:38.45 /usr/X11R6/bin/sawfish</pre><p>在这个例子里你可看到,从 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">ps</span>(1)</span> 输出的每一列是有规律的。 <varclass="LITERAL">PID</var> 就是进程ID,这个较早前已讨论过了。 PID号的分配由1一直上升直到99999, 当你运行到超过限制时,这些编号会回转分配。 <varclass="LITERAL">TT</var>这一列显示了程序运行所在的终端, 目前可以安全地忽略。 <varclass="LITERAL">STAT</var> 显示程序的状态,也可以安全地被忽略。 <varclass="LITERAL">TIME</var>是程序在CPU处理时间--运行的时间量,并不是指你程序启动到现在的所用的时间。许多程序碰巧遇到某方面在他们之前要花费大量CPU处理时间时,他们就必须等候。 Finally, <varclass="LITERAL">COMMAND</var> is the command line that was used to run the program.</p><p><span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">ps</span>(1)</span>支持使用各种选项去改变显示出来的内容,最有用的一个就是<var class="LITERAL">auxww</var>。 <varclass="OPTION">a</var>选项显示出所有运行进程的内容,而且显示出进程的并一定是你的进程。<var class="OPTION">u</var>选项显示出进程所归属的用户名字以及内存使用, <varclass="OPTION">x</var> 选项显示出后台进程。 而 <var class="OPTION">ww</var> 选项表示为<span class="CITEREFENTRY"><span class="REFENTRYTITLE">ps</span>(1)</span>把整个命令行全部显示完, 而不是由于命令行过长就把它从屏幕上截去。</p><p>下面和从<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">top</span>(1)</span>输出是类似的,一个示例式对话就象这样子:</p><pre class="SCREEN"><samp class="PROMPT">%</samp> <kbd class="USERINPUT">top</kbd>last pid: 72257;  load averages:  0.13,  0.09,  0.03    up 0+13:38:33  22:39:1047 processes:  1 running, 46 sleepingCPU states: 12.6% user,  0.0% nice,  7.8% system,  0.0% interrupt, 79.7% idleMem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K FreeSwap: 256M Total, 38M Used, 217M Free, 15% Inuse  PID USERNAME PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND72257 nik       28   0  1960K  1044K RUN      0:00 14.86%  1.42% top 7078 nik        2   0 15280K 10960K select   2:54  0.88%  0.88% xemacs-21.1.14  281 nik        2   0 18636K  7112K select   5:36  0.73%  0.73% XF86_SVGA  296 nik        2   0  3240K  1644K select   0:12  0.05%  0.05% xterm48630 nik        2   0 29816K  9148K select   3:18  0.00%  0.00% navigator-linu  175 root       2   0   924K   252K select   1:41  0.00%  0.00% syslogd 7059 nik        2   0  7260K  4644K poll     1:38  0.00%  0.00% mutt...</pre><p>这个输出分成两部份。 前面部份(起始前五行) 显示了:运行于最后进程的PID、 系统负载均衡(那个是指系统繁忙时的调节方式)、 系统正常运行时间 ( 指从启动算起所用的时间) 和当前时间。前面部份另外的图表 涉及:多少进程在运行(这个情况是47), 多少内存和多少交换分区在使用,和在不同CPU状态里系统消耗多少时间。</p><p>在那下面一连串的纵列和从<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">ps</span>(1)</span>输出的的内存是相似的。 如以前<spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">ps</span>(1)</span>一样,你能见到:PID、用户名、CPU处理时间合计、运行的命令。<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">top</span>(1)</span>默认是显示你的进程所用内存空间的合计。内存空间这里分成两列,一列为总体大小,另一列是必须请求驻留大小是多少内存--总体大小。而驻留大小实际上是瞬间使用的多少。 在以上那个例子,你会看到那<b class="APPLICATION"><spanclass="TRADEMARK">Netscape</span>&reg;</b>总计需要30&nbsp;MB内存,但实际只用了9&nbsp;MB。</p><p><span class="CITEREFENTRY"><span class="REFENTRYTITLE">top</span>(1)</span>每两秒自动刷新一次,你可以用<var class="OPTION">s</var>改变刷新的秒数。</p></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="mount-unmount.html"accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">起点</a></td><td width="33%" align="right" valign="top"><a href="basics-daemons.html"accesskey="N">前进</a></td></tr><tr><td width="33%" align="left" valign="top">文件系统的挂接和卸下</td><td width="34%" align="center" valign="top"><a href="basics.html"accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">守护进程,信号和杀死进程</td></tr></table></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -