进程及作业的概念

来源:互联网 发布:软件外包公司网站 编辑:程序博客网 时间:2024/04/29 08:18

Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使 用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任 务时又执行另一项任务. 操作系统管理多个用户的请求和多个任务.大多数系统都只有一个CPU和一个主 存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备.操作系统管理这些资 源并在多个用户间共享资源,当您提出一个请求时,给您造成一种假象,好象系统只被 您独自占用.而实际上操作系统监控着一个等待执行的任务队列,这些任务包括用户作 业、操作系统任务、邮件和打印作业等.操作系统根据每个任务的优先级为每个任务分 配合适的时间片,每个时间片大约都有零点几秒,虽然看起来很短,但实际上已经足够 计算机完成成千上万的指令集.每个任务都会被系统运行一段时间,然后挂起,系统转 而处理其他任务;过一段时间以后再回来处理这个任务,直到某个任务完成,从任务队 列中去除.

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

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

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

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

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

0 0