进程与线程相关

以下内容整理自互联网,仅用于个人学习


1. 进程

1.1 进程的定义

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

为了使参与并发执行的程序(含数据)能独立的运行,必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)。系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段、相关数据段和PCB三部分过程了进程映像(进程实体)。所谓创建进程,实质上是创建进程映像中的PCB;而撤销进程实质上是撤销进程的PCB。值得注意的是,进程映像是静态的,进程则是动态的

PCB是进程存在的唯一标识!

引入进程实体的概念后,我们可以把传统操作系统中的进程定义为:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

1.2 进程状态转换

  • 运行状态:进程正在处理机上运行。但处理机环境下,每一时刻最多只有一个进程处于运行状态。
  • 就绪状态:进程已处于准备运行状态,即进程获得了除了处理机之外的一切所需资源,一旦得到处理机即可运行。
  • 阻塞状态:又称为等待状态。进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理器空闲,该进程也不能运行。
  • 创建状态:进程正在被创建,尚未转入到就绪状态。进程创建需要多个步骤:首先申请一个空白的PCB,并向PCB中填写一些控制和管理进程的信息;然后由系统为该进程分配运行时所必需的资源;最后把该进程转入就绪状态。
  • 结束状态:进程正从系统中消失,这可能是进程正常结束或其他原因中断退出运行。当进程需要结束运行时,系统首先必须置该进程为结束状态,然后进一步处理资源释放和回收等工作。
进程状态转换.jpg
  • 就绪→运行:处于就绪状态的进程被调度后,获得处理机资源(分派处理机时间片),于是进程由就绪状态转运行状态。
  • 运行→就绪:处于运行状态的进程在时间片用完后,不得不让出处理机,从而进程由运行状态转换为就绪。此外,在可剥夺的操作系统中,当有更高级的进程就绪时,调度程度将正执行的进程转换为就绪状态,让更高优先级的进程执行。
  • 运行→阻塞:当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作的完成)时,它就从运行状态转换为阻塞状态。进程以系统调用的形式请求操作系统提供服务,这是一种特殊、由用户态程序调用操作系统内核过程的形式。
  • 阻塞→就绪:当进程等待的时间到来时,如I/O操作结束或中断结束时,终端处理程序必须把相应的进程状态由阻塞状态转为就绪状态。

2. 线程

引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量;而引入线程,则是为了减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

线程就是"轻量级进程",它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。线程自己不拥有系统资源,只拥有在运行中必不可少的资源,但与其他线程共享进程所拥有的全部资源。

线程也有 就绪阻塞运行 三种基本状态。

引入线程后,进程的内涵发送了改变:进程只作为除CPU以外系统资源
的分配单元,线程则作为处理机分配单元。

3. 进程与线程比较

3.1 调度

在传统操作系统中,用于资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。统一进程中,线程的切换不会引起进程切换。在不同进程中的线程切换,如从一个进程内的线程切换到另一个进程的线程时,会引起进程切换。

3.2 资源

不论是传统操作系统还是设有线程的操作系统,进程都是拥有资源的基本单位,而线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问其隶属进程的系统资源。

3.3 并发性

在引入线程的操作系统中,不仅进程之间可以并发执行,而且多个线程之间也可以并发执行,从而使操作系统具有更好的并发性,提高系统的吞吐量。

3.4 系统开销

由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等,因此操作系统所付出的开销远大于创建或撤销线程时的开销。

类似的,在进行进程切换时,涉及当前执行进程CPU环境的保存以及新调度到进程CPU环境的设置,而线程切换只需保存和设置少量寄存器内容,开销很小。

此外,由于同一个进程内的多个线程共享进程的地址空间,因此,这些线程之间的同步与通信非常容易实现,甚至无需操作系统的干预。

3.5 地址空间和其他资源(如打开文件)

进程的地址空间之间相互独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见。

3.6 通信

进程间通信(IPC)需要进程同步和互斥手段辅助,以保证数据的一致性,而线程间可以直接读写进程数据段(如全局变量)来进行通信。

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

推荐阅读更多精彩内容

  • 11.1进程的概念 进程的定义 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 精髓:正在执...
    龟龟51阅读 466评论 0 1
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,085评论 0 23
  • 进程和线程 进程线程的区别1、进程是什么?是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点...
    HeartGo阅读 1,192评论 0 4
  • 小红帽住在一个森林里,她木制的卧室里挂满了红色帽子,春夏秋冬每个季节都有数不清的帽子,她出门总是选一顶自己当天喜欢...
    梅子Mey阅读 706评论 0 1
  • 说字符串之前,我先说说字符,所谓字符(Character)是文字与符号的总称,包括文字、图 形符号、数学符号等。 ...
    魂梦云边阅读 447评论 1 0