首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 应用>文章内容
Linux循序渐进 进程管理及作业控制
来源:www.unix5.com 作者:riechelr_hl 发布时间:2007-05-21  

      成千上万的指令集。每个任务都会被系统运行一段时间,然后挂起,系统转而处理其他任务;过一段时间以后再回来处理这个任务,直到某个任务完成,从任务队列中去除。

     Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。我们讨论进程的时候,不会去关心这些进程究竟是怎么样分配的,或者是内核怎么样管理分配时间片的,我们所关心的是怎么样去控制这些进程,让它们能够很好地为用户服务。

进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。

Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。

交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。

批处理进程——这种进程和终端没有联系,是一个进程序列。

监控进程(也称守护进程)——Linux系统启动时启动的进程,并在后台运行。

上述三种进程各有各的作用,使用场合也有所不同。

 进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。例如“nroff -man ps.1|grep kill|more”这个作业就同时启动了三个进程。

 作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell把记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立作业间进行切换。

 一般而言,进程与作业控制相关联时,才被称为作业。

 在大多数情况下,用户在同一时间只运行一个作业,即它们最后向shell键入的命令。但是使用作业控制,用户可以同时运行多个作业,并在需要时在这些作业间进行切换。这会有什么用途呢?例如,当用户编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,用户可以让编辑器暂时挂起,返回shell提示符开始做其他的事情。其他事情做完以后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就象用户从来没有离开编辑器一样。这只是一个例子,作业控制还有许多其他实际的用途。

 启动进程

 键入需要运行的程序的程序名,执行一个程序,其实也就是启动了一个进程。在Linux系统中每个进程都具有一个进程号,用于系统识别和调度进程。启动一个进程有两个主要途径:手工启动和调度启动,后者是事先进行设置,根据用户要求自行启动。

 手工启动

 由用户输入命令,直接启动一个进程便是手工启动进程。但手工启动进程又可以分为很多种,根据启动的进程类型不同、性质不同,实际结果也不一样,下面分别介绍。

1. 前台启动

 这或许是手工启动一个进程的最常用的方式。一般地,用户键入一个命令“ls –l”,这就已经启动了一个进程,而且是一个前台的进程。这时候系统其实已经处于一个多进程状态。或许有些用户会疑惑:我只启动了一个进程而已。但实际上有许多运行在后台的、系统启动时就已经自动启动的进程正在悄悄运行着。还有的用户在键入“ls –l”命令以后赶紧使用“ps –x”查看,却没有看到ls进程,也觉得很奇怪。其实这是因为ls这个进程结束太快,使用ps查看时该进程已经执行结束了。如果启动一个比较耗时的进程:

 find / -name fox.jpg

 然后再把该进程挂起,使用ps查看,就会看到一个find进程在里面。

 2. 后台启动

 直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果的时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程。为了不使整个shell在格式化过程中都处于“瘫痪”状态,从后台启动这个进程是明智的选择。

[例1]

 $ troff –me notes > note_form &

 [1] 4513

 $

 由上例可见,从后台启动进程其实就是在命令结尾加上一个&号。键入命令以后,出现一个数字,这个数字就是该进程的编号,也称为PID,然后就出现了提示符。用户可以继续其他工作。

共6页: 上一页 1 [2] [3] [4] [5] [6] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Linux系统调用列表(详解)
·MBR如果被覆盖了怎麽办?
·Linux系统下用户和用户组所有权
·Linux操作系统下配置IPTables方
·linux应用技巧集囊(新手遍)
·Linux操作系统配置基础祥解:GRU
·Linux操作系统Gaim玩转QQ与MSN--
·Linux内存映射技术
·UNIX系统操作入门篇
·linux系统管理--从头开始对ubunt
·UNIX系统应急响应工具上(初级)
·Linux操作系统的动态函式库详细
  相关文章
·Linux系统中内部和外部安全性概
·Linux操作系统的基准安全详细清
·用LIDS增强Linux操作系统安全详
·Linux 的带宽管理系统
·判定一个Unix系统受到入侵(中级)
·怎样才能提高Linux系统安全性能
·UNIX系统应急响应工具上(初级)
·简述 Linux 文件系统的目录结构
·Linux系统在存储技术中的几项应
·linux操作系统修改共享内存的简
·精彩分享:Linux系统下使用aMsn
·Unix 操作系统常见故障恢复技巧

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!