操作系统 -- 进程与线程关系详解

线程与进程都是操作系统中的两个重要的概念。相信很多人,包括笔者之前都存在着误区,进程是由很多的线程组成的。这篇文章将彻底地对两者的异同进行说明。

首先,我们要理清楚为什么会引入进程的概念。我们都知道,在多道批处理时代,系统的最小单元是程序,但是如果是单核CPU的话,没有一个很好的方法描述其并发的特点,同时程序在并发系统中走走停停会导致无序性,而且各个程序之间会相互影响,导致并发运行的结果不可再现。因此,程序的概念便不再试用了。后来,便引入了进程的概念。

那么,什么是进程呢?进程,通俗来讲就是运行的程序。其由代码段,数据段和PCB(进程控制块)三部分构成。每个进程由操作系统分配了指定的资源,因此可以保证可复现。此外,显然进程可以实现并发。

进程概念的提出确实为操作系统的性能提升做出了很大贡献。但是人们在进行进程间通信的时候,却看到了其突出的劣势 – 进程间的通信与切换代价太大!

由于每个进程都有自己指定的PCB控制块和数据段,在进程间的通信时,需要花很多的时间进行信息的交互。而CPU的时间片切换方式是很频繁的,因此制约了操作系统的性能。

那么如何解决这一问题呢?

我们首先来认识以下进程从功能上可以如何划分。

进程具有如下的两个部分:

  • 拥有资源的独立单位: 其可以独立地分配地址空间,主存等。
  • 可进行调度和分派的基本单位

而操作系统设计的目标,主要有两个方面的内容:

  • 提升并发性
  • 减少系统资源占用

因此引入到了线程这一概念。

在一个进程下,将其拥有的运行过程中必不可少的资源划分出来,然后每个线程完成一个特定的调度任务。

如下所示:

这里写图片描述

通过这种模式,一方面避免了进程间切换的大量资源消耗,同时由于线程是并发的,之前的进程可以支持多线程,提升了系统的并发性,达到了操作系统设计的两个目标。

以上所有内容,讲解了进程以及线程之间的差异。可以看出,进程并不是仅仅由线程构成的。其仍然具有PCB, 数据段,代码段。只不过将一部分资源独立出来构成了线程。

关于线程的概念详细情况将在之后的文章中进行分析。敬请期待。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值