Linux下多任务系统之进程的基本概念

分享到:
           

    多任务的概念人们已经非常熟悉了,它是指用户可以在同一时间内运行多个应用程序。Linux就是一种支持多任务的操作系统,它支持多进程、多线程等多任务处理和任务之间的多种通信机制。

    多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称做一个任务。Linux就是一个支持多任务的操作系统,它比单任务系统的功能增强了许多。

    当多任务操作系统使用某种任务调度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一个任务提供服务。由于任务调度机制保证不同任务之间的切换速度十分迅速,因此给人多个任务同时运行的错觉。多任务系统中有3个功能单位:任务、进程和线程,下面分别进行介绍。

    进程的基本概念

    进程是指一个具有独立功能的程序在某个数据集上的一次动态执行过程,它是系统进行资源分配和调度的基本单元。一次任务的运行可以并发激活多个进程,这些进程相互合作来完成该任务的一个终目标。

    进程具有并发性、动态性、交互性、独立性和异步性等主要特性。

    并发性:指的是系统中多个进程可以同时并发执行,相互之间不受干扰。

    动态性:指的是进程都有完整的生命周期,而且在进程的生命周期内,进程的状态是不断变化的。另外,进程具有动态的地址空间(包括代码、数据和进程控制块等)。

    交互性:指的是进程在执行过程中可能会与其他进程发生直接和间接的交互操作,如进程同步和进程互斥等,需要为此添加一定的进程处理机制。

    独立性:指的是进程是一个相对完整的资源分配和调度的基本单位,各个进程的地址空间是相互独立的,只有采用某些特定的通信机制才能实现进程间的通信。

    异步性:指的是每个进程都按照各自独立的、不可预知的速度向前执行。

    进程和程序是有本质区别的:程序是静态的一段代码,是一些保存在非易失性存储器的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括动态创建、调度和消亡的整个过程,它是程序执行和资源管理的小单位。

    Linux系统中包括以下几种类型的进程。

    交互式进程:这类进程经常与用户进行交互,因此要花很多时间等待用户的交互操作(键盘和鼠标操作等)。当接收到用户的交互操作后,这类进程应该很快被运行,而且响应时间的变化也应该很小,否则用户就会觉得系统反应迟钝或者不太稳定。典型的交互式进程有shell命令进程、文本编辑器和图形应用程序运行等。

    批处理进程:这类进程不必与用户进行交互,因此经常在后台运行。因为这类进程通常不必很快地响应,因此往往受到调度器的“慢待”。典型的批处理进程有编译器的编译操作、数据库搜索引擎等。

    实时进程:这类进程通常对调度响应时间有很高的要求,一般不会被低优先级的进程阻塞。它们不仅要求很短的响应时间,而且更重要的是响应时间的变化应该很小。典型的实时进程有视频和音频应用程序、实时数据采集系统程序等。

    本文选自华清远见嵌入式培训教材《从实践中学嵌入式Linux应用程序开发》

   热点链接:

   1、Linux下多任务系统之任务介绍
   2、实验:Linux下多路复用式串口操作
   3、实验:linux文件读/写及上锁
   4、标准I/O操作函数详解
   5、标准I/O操作的缓冲存储类型

更多新闻>>