[Linux]进程线程概念

文章目录

  • 1. 并行与并发
  • 2. 引入进程
  • 3. 引入线程
  • 4. Linux下的进程概念

1. 并行与并发

并行性和并发性(Concurrence)是既相似又有区别的两个概念,并行性是指两个或多个 事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算 机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。

2. 引入进程

应当指出,通常的程序是静态实体(Passive Entity),在多道程序系统中,它们是不能独 立运行的,更不能和其它程序并发执行。在操作系统中引入进程的目的,就是为了使多个 程序能并发执行。例如,在一个未引入进程的系统中,在属于同一个应用程序的计算程序 和 I/O 程序之间,两者只能是顺序执行,即只有在计算程序执行告一段落后,才允许 I/O 程 序执行;反之,在程序执行 I/O 操作时,计算程序也不能执行,这意味着处理机处于空闲状 态 。但在引入进程后,若分别为计算程序和 I/O 程序各建立一个进程,则这两个进程便可 并发执行。由于在系统中具备使计算程序和 I/O 程序同时运行的硬件条件,因而可将系统中 的 CPU 和 I/O 设备同时开动起来,实现并行工作,从而有效地提高了系统资源的利用率和 系统吞吐量,并改善了系统的性能。引入进程的好处远不止于此,事实上可以在内存中存 放多个用户程序,分别为它们建立进程后,这些进程可以并发执行,亦即实现前面所说的 多道程序运行。这样便能极大地提高系统资源的利用率,增加系统的吞吐量。 为使多个程序能并发执行,系统必须分别为每个程序建立进程(Process)。简单说来,进 程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆 栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。一 个进程在运行时需要一定的资源,如 CPU、存储空间及 I/O 设备等。 OS中程序的并发执行将使系统复杂化,以致在系统中必须增设若干新的功能模块,分别用于对处理机、内存、 I/O 设备以及文件系统等资源进行管理,并控制系统中作业的运行。

3. 引入线程

长期以来,进程都是操作系统中可以拥有资源并作为独立运行的基本单位。当一个进 程因故不能继续运行时,操作系统便调度另一进程运行。由于进程拥有自己的资源,故使 调度付出的开销较大。直到 20 世纪 80 年代中期,人们才又提出了比进程更小的单位—— 线程(Threads)。 通常在一个进程中可以包含若干个线程它们可以利用进程所拥有的资源。在引入线 程的 OS 中, 通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度 的基本单位。 由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销 就会小得多,能更高效地提高系统内多个程序间并发执行的程度。因而近年来推出的通用 操作系统都引入了线程,以便进一步提高系统的并发性,并把它视作现代操作系统的一个 重要标致。

4. Linux下的进程概念

[Linux]进程线程概念_第1张图片
[Linux]进程线程概念_第2张图片
[Linux]进程线程概念_第3张图片
参考文献 : 计算机操作系统 (第 三 版) 汤小丹 梁红兵 哲凤屏 汤子瀛

你可能感兴趣的:(Linux)