浅析进程与线程

进程与线程.png

进程与线程的概念经常遇到,虽然脑海里是知道怎么回事,编程开发也能写出多进程、多线程的程序,但是对于理论上的描述一直不是很明确,今日闲暇,找到了以前的书籍,好好的看了一遍,记录下进程、线程简单的理论概念。

操作系统的教材里面进程一章的内容还是很多的,描述的相当详细,但是对于开发者而言,知道其核心的概念即可解答常见的进程相关的问题,如果需要深究的,再去翻阅文献也是可以的。

1、进程的定义
进程的实体是由:程序段、相关的数据段和PCB三部分构成的。其中,进程实体其实就是我们常说的进程,因此,创建进程,其实就是创建进程实体中的PCB,撤消进程也就是撤消进程的PCB。

归结一下常见的进程的定义:

(1)进程是程序的一次执行
(2)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单元。
(3)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

这里顺便介绍一下进程和程序的区别:

(1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
(2)程序是静态的观念,进程是动态的观念;
(3)进程具有并发性,而程序没有;
(4)进程是竞争计算机资源的基本单位,程序不是。
(5)进程和程序不是一一对应的: 一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序

进程和程序是两个截然不同的概念,除了进程具有程序所没有的PCB结构外,还具有一下特征:

(1)动态性
(2)并发性
(3)独立性
(4)异步性

2、进程的状态
进程一般具备三种状态:

(1)就绪态。即进程处于准备好运行的状态,进程已分配到除CPU以外的所有资源
(2)执行态,进程已获得CPU,其程序正在执行的状态
(3)阻塞态,正在执行的进程由于发生某事件(如IO请求等)暂时无法继续执行时的状态

状态转换图:

状态转换图.png

图中的创建状态和退出是进程的开始和终止这里不再解释。

3、进程的PCB
OS为每个进程专门定义了一个数据结构--进程控制块(Process Control Block)PCB,用于描述进程的当前情况以及管理进程运行的全部信息,是OS最重要的记录型数据结构,线程与之相对的是TCB(下文介绍)。

PCB的作用:

(1)作为独立运行基本单位的标志。当一个程序(含数据)配置了PCB后,就表示它是一个能在多道程序环境下独立运行的、合法的基本单位。当系统创建一个进程时,就为它创建了一个PCB,进程结束时又回收其PCB,进程于是也随之消灭,即系统是通过PCB感知进程的存在的。
(2)能实现间断性运行方式。当进程因阻塞而暂停运行时,可以将CPU现场信息等保存在PCB中,供该进程再次被调度时恢复现场使用。
(3)提供进程管理所需要的信息。
(4)提供进程调度所需要的信息。
(5)实现与其他进程的同步与通信

4、线程的定义
线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。
一个标准的线程由线程ID,当前指令[指针],[寄存器]集合和[堆栈]组成。

另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

和进程一样,线程同样有三种状态:执行状态、就绪状态、阻塞状态,线程之间的转换与进程一样的,这里不再赘述。

系统同样为线程分配了一个线程控制块TCB,将所有用于控制和管理线程的信息记录在线程控制块中,TCB通常包括:

(1)线程标示符 (2)一组寄存器 (3)线程运行状态 (4)优先级 (5)线程专有存储区 (6)信号屏蔽

5、线程与进程的区别
进程是资源分配的基本单位。所有与该进程有关的资源,都被记录在进程控制块PCB中,以表示该进程拥有这些资源或正在使用它们。
另外,进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。

与进程相对应,线程与资源分配无关,
它属于某一个进程,
并与进程内的其他线程一起共享进程的资源。

线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。寄存器可被用来存储线程内的局部变量,但不能存储其他线程的相关变量。

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。

由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。

因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。

线程与进程的区别可以归纳为以下4点:

1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
2)通信:进程间通信,IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
3)调度和切换:线程上下文切换比进程上下文切换要快得多。
4)在多线程OS中,进程不是一个可执行的实体。

关于线程和进程的概念简单介绍到这里,有个基本的认识即可。

欢迎大家评论一起交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容

  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,104评论 0 23
  • 11.1进程的概念 进程的定义 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 精髓:正在执...
    龟龟51阅读 471评论 0 1
  • word直接复制来了,格式就不改了。至于这门课怎么复习,只要平时实验都认真完成、报告认真写,平时分都很高;考试的话...
    Jozhn阅读 4,531评论 0 8
  • 朋友夫妻闹离婚,向我求助! 我约他们一起来我家喝茶聊天! 女方是个6W5,男方直觉9号自保! 聊天记录: 女方:我...
    竺子阅读 230评论 0 0
  • 国庆节假期,我们一大家子人一起去了普吉岛,最小的2岁,最老的70岁,这是家族史上的第一次,其中发生了很多很多好玩的...
    张鋆Helen阅读 231评论 0 1