Linux_系统调用.docVIP

  • 8
  • 0
  • 约8.71千字
  • 约 9页
  • 2016-02-25 发布于江苏
  • 举报
Linux_系统调用.doc

Linux系统调用--进程管理本文介绍了Linux下的进程概念,并着重讲解了与Linux进程管理相关的4个重要系统调用getpid,fork,exit和_exit,辅助一些例程说明了它们的特点和使用方法。         关于进程的一些必要知识         先看一下进程在大学课本里的标准定义:“进程是可并发执行的程序在一个数据集合上的运行过程。”这个定义非常严谨,而且难懂,如果你没有一下子理解这句话,就不妨看看笔者自己的并不严谨的解释。我们大家都知道,硬盘上的一个可执行文件经常被称作程序,在Linux系统中,当一个程序开始执行后,在开始执行到执行完毕退出这段时间里,它在内存中的部分就被称作一个进程。      当然,这个解释并不完善,但好处是容易理解,在以下的文章中,我们将会对进程作一些更全面的认识。      Linux进程简介      Linux是一个多任务的操作系统,也就是说,在同一个时间内,可以有多个进程同时执行。如果读者对计算机硬件体系有一定了解的话,会知道我们大家常用的单CPU计算机实际上在一个时间片断内只能执行一条指令,那么Linux是如何实现多进程同时执行的呢?原来Linux使用了一种称为“进程调度(process scheduling)”的手段,首先,为每个进程指派一定的运行时间,这个时间通常很短,短到以毫秒为单位,然后依照某种规则,从众多进程中挑选一个投入运行,其他的进程暂时等待,当正在运行的那个进程时间耗尽,或执行完毕退出,或因某种原因暂停,Linux就会重新进行调度,挑选下一个进程投入运行。因为每个进程占用的时间片都很短,在我们使用者的角度来看,就好像多个进程同时运行一样了。      在Linux中,每个进程在创建时都会被分配一个数据结构,称为进程控制块(Process Control Block,简称PCB)。PCB中包含了很多重要的信息,供系统调度和进程本身执行使用,其中最重要的莫过于进程ID(process ID)了,进程ID也被称作进程标识符,是一个非负的整数,在Linux操作系统中唯一地标志一个进程,在我们最常使用的I386架构(即PC使用的架构)上,一个非负的整数的变化范围是0-32767,这也是我们所有可能取到的进程ID。其实从进程ID的名字就可以看出,它就是进程的身份证号码,每个人的身份证号码都不会相同,每个进程的进程ID也不会相同。      一个或多个进程可以合起来构成一个进程组(process group),一个或多个进程组可以合起来构成一个会话(session)。这样我们就有了对进程进行批量操作的能力,比如通过向某个进程组发送信号来实现向该组中的每个进程发送信号。      最后,让我们通过ps命令亲眼看一看自己的系统中目前有多少进程在运行:      $ps -aux(以下是在我的计算机上的运行结果,你的结果很可能与这不同。)   USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND   root 1 0.1 0.4 1412 520 ? S May15 0:04 init [3]   root 2 0.0 0.0 0 0 ? SW May15 0:00 [keventd]   root 3 0.0 0.0 0 0 ? SW May15 0:00 [kapm-idled]   root 4 0.0 0.0 0 0 ? SWN May15 0:00 [ksoftirqd_CPU0]   root 5 0.0 0.0 0 0 ? SW May15 0:00 [kswapd]   root 6 0.0 0.0 0 0 ? SW May15 0:00 [kreclaimd]   root 7 0.0 0.0 0 0 ? SW May15 0:00 [bdflush]   root 8 0.0 0.0 0 0 ? SW May15 0:00 [kupdated]   root 9 0.0 0.0 0 0 ? SW May15 0:00 [mdrecoveryd]   root 13 0.0 0.0 0 0 ? SW May15 0:00 [kjournald]   root 132 0.0 0.0 0 0 ? SW May15 0:00 [kjournald]   root 673 0.0 0.4 1472 592 ? S May15 0:00 syslogd -m 0   root 678 0.0 0.8 2084 1116 ? S May15 0:00 klogd -2   rpc 698 0.0 0.4 1552 588 ? S May15 0:00 portmap   rpcuser 726 0.0

文档评论(0)

1亿VIP精品文档

相关文档