多任务的概念人们已经非常熟悉了,它是指用户可以在同一时间内运行多个应用程序。Linux操作系统就是一种支持多任务的操作系统,它支持多进程、多线程等多任务处理和任务之间的多种通信机制。多任务处理也就是指用户可以在同一时间内同时运行多个应用程序,每个应用程序都被称做为一个任务。Linu操作系统作为一个支持多任务的操作系统,它比单任务系统的功能增强了许多。当多任务操作系统为了使用某种任务调而度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一个任务提供服务。由于任务调度机制保证不同任务之间的切换速度十分迅速,因此给人多个任务同时运行的错觉。
一,进程及作。Linux系统上运行的所有东西都可以称之为一个进程。每个用户任务、每个系统守护管理进程,都可以称之为进程。Linux操作系统用分时管理方法使所有的任务可以共同分享系统资源。我们所关心的是如何去控制这些进程,让它们能够更好的服务于用户。进程的一个比较正式的定义是∶在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,虽然进程是由于程序产生的,进程不是程序。程序只是一个不占系统的运行资源,静态的指令集合;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序 可以启动多个进程。 进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。 作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立 作业间进行切换。例如,当用户编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,用户可以让编辑器暂时挂起,返回shell提示符开始做其他的事情。其他事情做完以后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就象用户从来没有离开编辑器一样。这只是一个例子,作业控制还有许多其他实际的用途。
二,启动进程。键入需要运行的程序的程序名,执行一个程序,其实也就是启动了一个进程。在Linux系统中每个进程都具有一个进程号,用于系统识别和调度进程。进程主要途径之一是手工启动和调度启动。