进程与线程的区别和联系是什么?

news2024/9/30 23:23:17

进程概念的引入

在多道程序的环境下,程序的并发执行代替了程序的顺序执行。它破坏了程序的封闭性和可再现性,使得程序和计算不再一一对应,而且由于资源共享和程序的并发执行导致在各个程序活动之间可能存在相互制约关系。总之,程序活动不再处于一个封闭系统中,而出现了许多新的特征,即独立性、并发性、动态性以及它们之间的相互制约性。在这种情况下,程序这个静态概念已经不能如实地反映程序活动的这些特征。为此20世纪60年代中期的MULTICS系统的设计者和以E. W. Dijkstra为首的T. H.E系统的设计者开始广泛使用“进程"(Process)这一新概念来描述系统和用户的程序活动,而IBM公司的CTSS/360系统使用了另术语“任务"(Task), 但两者的意义相同。

线程概念的引入

在操作系统中引入进程概念的目的在于提高系统效率,提高资源利用率。自从引入了进程的概念后,操作系统便以进程为单位在处理机上并发执行。进程不仅作为系统调度的基本单位,同时也是系统资源分配的基本单位。进程因创建而产生,经调度程序的调度而运行,因等待某一时间而阻塞,最后因完成任务而撤销。这就是说,进程在整个生存期间,不断地改变其运行环境。在进程调度过程中,进程切换是经常的。再进程切换时,由于要保留现运行进程的运行环境,又要设置所选中进程的运行环境,为此要花费不少处理机时间。因此,把进程作为操作系统调度的基本单位要付出巨大的时空开销,从而也限制了系统中进程的数量和进程切换的频率。为了提高系统的并行能力,把并行粒度进一步减小,在进程内部就引入了线程的概念。在引入线程的操作系统中,线程是系统调度的基本单位,而不是独立分配资源的基本单位(资源是分给进程的)。这样,引入了线程的概念后,既减少了系统的时空开销,又增强了系统的并行能力。

在这里插入图片描述

什么是进程

进程:进程是操作系统中一个最基本也是最重要的概念,然而对于进程的概念,学界并没有明确的定义,或者说进程这一概念尚未完全统一。下面列举几个操作系统的权威人士对于进程所下的定义:

  1. 行为的一个规则叫做程序,程序在处理机上执行时锁发生的活动称为进程。(Dijkstrfa)
  2. 进程是这样的计算部分,它可以与别的进程并发执行。(Madnick and Donovan)
  3. 顺序进程(有时称为任务)是一个程序与其数据集一道顺序通过处理机的执行所发生的活动。(Alan.C.Show)
  4. 一个进程是一系列逐一执行的操作,而操作的确切含义有赖于我们以何种详尽程度来描述进程、(Brinch.Hansen)

为了强调进程的并发性和动态性,我们引用徐甲同等老师编著的《计算机操作系统教程》中对进程所下的定义:进程是程序的一次执行,该程序可与其他程序并发执行。

什么是线程

线程:线程可定义为:进程内的一个执行单位,或者定义为“进程内的一个可调度的实体”。在具有多线程机制的操作系统中,处理机调度的基本单位是进程而不是线程。

线程和进程的关系

(1)二者均可并发执行。

(2)线程是指进程内的一个执行单元,也是进程内的可调度实体。一个程序至少有一个进程,一个进程至少有一个线程,一个线程只属于一个进程。每个进程在创建时通常只有一个线程,需要时这个线程可以创建其他线程。

(3)进程的多线程都在进程的地址空间活动。

(3)资源分配给进程,而不是分配给线程,同一进程的所有线程共享该进程的所有资源,线程在执行中需要资源时,系统从进程的资源配额中扣除并分配给它。

(4)处理机调度的基本单位是线程,处理机分给线程,即真正在处理机上运行的是线程。

(5)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体.进程和线程的主要差别在于它们是不同的操作系统资源管理方式。 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响。而线程只是一个进程中的不同执行路径,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间, 一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MobTech秒验 I 寒冬加时,金融行业如何走出阴霾?

互联网流量红利将逝,企业运营重点已从“以产品为重心”转移至“以用户为导向”,而用户时间的碎片化及不聚焦,往往造成了线上运营推广投放后的石沉大海。 当下,迫切需要去做的是对存量数据的精细化管理,企业应打破数据…

Kafka的终极UI工具丨Offset Explorer功能简介

Offset Explorer(以前称为Kafka Tool)是一个用于管理和使Apache Kafka 集群的GUI应用程序。它提供了一个直观的UI,允许人们快速查看Kafka集群中的对象以及存储在集群主题中的消息。它包含面向开发人员和管理员的功能。 一些关键功能包括&…

Java 中的浅拷贝和深拷贝

开发过程中,有时会遇到把现有的一个对象的所有成员属性拷贝给另一个对象的需求。这个时候就会用到拷贝这个概念。把原对象定义成 A,拷贝后的对象定义成 B,如果只是单纯使用 clone 方法进行拷贝,你会发现: 对于八个基本…

基于unity物体定点移动与模拟刹车的细节 GIF 图文详解——线性差值函数以及平滑阻尼的运用和实践(Lerp AND SmoothDamp)

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 [unity常用API] ⭐相关文章:基础不牢,地动山摇系列 ------ 软硬通吃 unity常用API ⭐…

Arduino与Proteus仿真实例-TFT LCD绘制酷炫曲线图表

TFT LCD绘制酷炫曲线图表 本文将介绍如何在ILI9341 TFT LCD中绘制酷炫曲线图表仿真。 在前面的文章中,对ILI9341的驱动仿真作了详细的介绍,请参考: Arduino与Proteus仿真实例-TFT显示屏(ILI9341驱动器)SPI驱动仿真1、仿真电路原理图 2、仿真代码实现 本次实例使用到如下开…

23种设计模式(一)——单例模式【对象性能】

文章目录意图什么时候使用单例单例模式的实现1、有缺陷的懒汉式2、线程安全、内存安全的懒汉式单例 (智能指针,锁)3、最推荐的懒汉式单例([magic](https://so.csdn.net/so/search?qmagic&spm1001.2101.3001.7020) static )——局部静态变…

Wondershare 有哪些不错的办公软件呢

第一款 Wondershare UniConverter14 Wondershare UniConverter中文学习版(万兴优转)是一款国产全能视频格式转换软件.万兴格式转换器最新版具有音视频格式转换,合并视频,视频压缩,视频编辑,视频录制,视频下载,视频元数据修复,VR视频转换,字幕编辑器,GIF制作,DVD刻录等一站式视…

天线参数介绍

1.天线辐射元件种类图1-1 天线辐射元件种类如图1-1所示,天线辐射元件种类有:电镀偶极子、印刷电路偶极子、裂缝波导、凹口辐射器、矩形贴片辐射器、开口波导等。2、天线参数2.1 天线方向图天线方向图又叫辐射方向图(radiation pattern&#x…

【MySQL基础教程】多表查询

前言 本文为 【MySQL基础教程】多表查询 相关知识,下边将对多表关系,多表查询概述,内连接,外连接,自连接,子查询,多表查询案例等进行详尽介绍~ 📌博主主页:小新要变强 的…

分布式理论协议与算法 第一弹 CAP理论

CAP 理论,也被称为 CAP 协议,指的是在一个分布式系统中,最多只能同时满足「一致性(Consistency)」、「可用性(Availability)」和「分区容错性(Partition tolerance)」这三…

Vue3 中组合式下的侦听器

目录前言:前置代码:创建侦听器停止侦听器watch侦听:对象中的某一个属性变化(需要提供getter函数才行)watch侦听:整个对象watch侦听:如果嵌套属性发生改变,默认是无法执行回调函数的?watch侦听:…

【实战与杂谈】如何复活一个开源网站-游戏王卡片生成器

1. 杂谈 作为一名十多年游戏王玩家,学生时代玩的是PSP和PS2上的游戏,到毕业后使用YGOPRO同步新卡片进行联网对战,再到现在约到线下进行实体卡片游戏。有些卡片价格太贵,因此我们对于这些卡在未购买之前都会自己打印出来暂时游玩…

sec5-属性

1 属性 GObject系统提供属性。属性是由实例保存的值,实例是GObject的后代,它们对其他实例开放。可以通过他们的名字访问他们。 例如,GtkWindow具有"title"、“default-width”、"default-height"等属性。字符串"t…

正经科普:DDos高防ip详解

白衬衫容易发黄, 一般洗衣液很难洗掉, 不少人为此感到头疼, 不妨在洗的时候吃点头痛药。 这边我也不多废话,大家直接看图,高防ip原理如下清洗能力 DDoS高防IP采用BGP链路对接全国各地30家运营商,总防御能力超4T。采用电信云堤近源…

智能优化算法:人工兔优化算法-附代码

智能优化算法:人工兔优化算法 摘要:人工兔优化算法( [Artificial rabbits optimization,RSO)是 Liying Wang等 于 2022 年提出的一种新型元启发式优化算法 。 该算法受来源于自然界中兔子的生存策略的启发,具有寻优能力强&#x…

【2.1】服务拆分--案例Demo

服务拆分--案例Demo服务拆分注意事项:导入服务拆分Demo测试结果:总结知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。 服务拆分注意事项: 比如现在有一个需求,是查询订单&#x…

国产GPU芯片突破重围,迎来新发展,中国崛起的力量

最近,在GPU芯片领域我们终于迎来新进展,有望突破欧美企业垄断,实现完全国产化。高端GPU芯片对科技发展有着重要作用,广泛应用于云上服务、高密度高性能计算等领域,然而绝大部分GPU芯片市场都被英伟达、AMD、微软等国外…

骨传导耳挂式耳机排名前十名,最好的骨传导耳机推荐

挂耳式的骨传导耳机在佩戴时更舒适以及更加牢固,日常在多种场景使用都能完全兼顾。但是最好的骨传导耳机有哪些呢?还不知道如何选择骨传导耳机,可以看看这五款骨传导耳机~ 1、南卡Runner Pro4骨传导蓝牙耳机 ¥1498 选择骨传导耳机…

Kubernetes那点事儿——控制器Deployment

K8s应用程序生命周期管理——控制器Deployment一、部署应用程序流程二、Deployment控制器1、应用升级、弹性伸缩、回滚、删除2、滚动升级、回滚机制3、定义Deployment前言说到K8s程序的生命周期管理我们不得不提到k8s的控制器。其中Deployment是最为常用的controllers&#xff…

Liga妙谈 | 如何快速甄别、高效响应用户反馈?

敏捷开发说要「拥抱变化」,在充满不确定的环境中,唯一不变的正是变化。面对源源不断的市场反馈和需求变更,敏捷团队应该如何平衡「高效迭代」与「响应用户」的关系,既快又好地完成研发任务,交付业务价值? …