线程和进程基本概念

进程和线程的基本概念及通信方式 进程的基本概念 阅读详情

一、进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,进程是线程的容器。

1.1、什么是进程

# 狭义定义:
进程是正在运行的程序的实例( an instance of a computer program that is being executed)
# 广义定义:
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程是一个内核级的实体,进程结构的所有成分都在内核空间中,一个用户程序不能直接访问这些数据

# 进程的概念主要有两点:
1. 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。
文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令(比如错误信息打印的调用关系)和本地变量。
2. 进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

1.2、进程的特征

* 动态性:进程的实质是程序在多任务系统中的一次执行过程,进程是动态产生,动态消亡的。
* 并发性:任何进程都可以同其他进程一起并发执行
* 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
* 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度执行
* 结构特征:进程由程序、数据和进程控制块三部分组成。
* 多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。

1.3、进程切换

1.3.1、CPU的组成

* CPU由运算器,控制器和寄存器组成。
  - 运算器: 对数据进行加工处理的部件,它不仅可以实现基本的算术运算,还可以进行基本的逻辑运算,实现逻辑判断的比较及数据传递,移位等操作;
  - 控制器: 负责从存储器(内存和硬盘)中取出指令,确定指令类型及译码,按时间的先后顺序向其他部件发出控制信号,统一指挥和协调计算机各器件进行工作的部件;
  - 寄存器: CPU内部高速独立的暂时存储单元(容量很小)。CPU是按照时间片进行轮询对进程进行处理的。

1.3.2、进程切换

进程切换就是从正在运行的进程中收回处理器,然后再使待运行进程来占用处理器。

从某个进程收回处理器,实质上就是把进程存放在处理器寄存器中的中间数据存放在进程的私有堆栈,从而把处理器的寄存器腾出来让其他进程使用。

让进程来占用处理器,实质上是把某个进程存放在私有堆栈中寄存器的数据(前一次本进程被中止时的中间数据)再恢复到处理器的寄存器中去,并把待运行进程的断点送入处理器的程序指针,于是待运行进程就开始被处理器运行了,也就是这个进程已经占有处理器的使用权了。

一个进程存储在处理器各寄存器中的中间数据叫做进程的上下文,分为用户级上下文/寄存器上下文/系统上下文。进程的切换实质上就是被中止运行进程与待运行进程上下文的切换。在进程未占用处理器时,进程的上下文是存储在进程的私有堆栈中的。

1.4、进程运行状态

进程执行时的间断性,决定了进程可能具有多种状态,一般有以下5种状态:
在这里插入图片描述

1.4.1、就绪状态(Ready):

进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

1.4.2、运行状态(Running):

进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。

1.4.3、阻塞状态(Blocked):

由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。注意:当I/O完成或者进程等待的事件发生后,进程进入就绪状态而不是运行状态,要等待CPU的轮询处理

1.4.4、新建状态:

进程刚刚被创建时没有被提交的状态,并等待系统完成创建进程的所有必要信息。 进程正在创建过程中,还不能运行。操作系统在创建状态要进行的工作包括分配和建立进程控制块表项、建立资源表格(如打开文件表)并分配资源、加载程序并建立地址空间表等。创建进程时分为两个阶段,第一个阶段为一个新进程创建必要的管理信息,第二个阶段让该进程进入就绪状态。由于有了新建态,操作系统往往可以根据系统的性能和主存容量的限制推迟新建态进程的提交。

1.4.5、终止状态:

进程已结束运行,回收除进程控制块之外的其他资源,并让其他进程从进程控制块中收集有关信息(如记帐和将退出代码传递给父进程)。类似的,进程的终止也可分为两个阶段,第一个阶段等待操作系统进行善后处理,第二个阶段释放主存。

1.4.6、进程状态转换

由于进程的不断创建,系统资源特别是主存资源已不能满足所有进程运行的要求。这时,就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的状态即就绪态;进程挂起的原因可能是系统故障,或者是用户调试程序,也可能是需要检查问题。
状态切换

* 活跃就绪:是指进程在主存并且可被调度的状态。
* 静止就绪(挂起就绪): 是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活
跃就绪态进程,或者是挂起就绪态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
* 活跃阻塞: 是指进程已在主存,一旦等待的事件产生便进入活跃就绪状态。
* 静止阻塞: 是指进程对换到辅存时的阻塞状态,一旦等待的事件产生便进入静止就绪。

注意:只要是挂起的进程,也就是静止就绪或者静止阻塞的进程都是放入磁盘中的,是不能被直接调度的。被激活后要先放入内存才能调度

1.5、同步/异步、阻塞/非阻塞

同步:顺序执行
异步:不需要按顺序执行
有依赖关系时只能用同步,没有依赖关系可同步可异步

阻塞:正在运行的进程由于提出系统服务请求(如I/O操作),但因为某种原因未得到操作系统的立即响应,或者需要从其他合作进程获得的数据尚未到达等原因,该进程只能调用阻塞原语把自己阻塞,等待相应的事件出现后才被唤醒
非阻塞:无需等待

1.6、进程的创建过程

一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语Creat()按下述步骤创建一个新进程。
1) 申请空白PCB(进程控制块):为新进程申请获得唯一的数字标识符,并从PCB集
合中索取一个空白PCB。
2) 为新进程分配资源:为新进程的程序和数据以及用户栈分配必要的内存空间。显然此时操作系统必须知道新进程所需要的内存大小。
3) 初始化进程控制块。PCB的初始化包括:
①初始化标识信息,将系统分配的标识符和父进程标识符,填入新的PCB中。
②初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶。
③初始化处理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,将它设置为最低优先级,除非用户以显式的方式提出高优先级要求。
4)将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列中。

1.7、进程的终止过程

1.7.1、引起进程终止的事件

1)正常结束
在任何计算机系统中,都应该有一个表示进程已经运行完成的指示。例如,在批处理系统中,通常在程序的最后安排一条Hold指令或终止的系统调用。当程序运行到Hold指令时,将产生一个中断,去通知操作系统本进程已经完成。
2)异常结束
在进程运行期间,由于出现某些错误和故障而迫使进程终止。这类异常事件很多常见的有:越界错误,保护错,非法指令,特权指令错,运行超时,等待超时,算术运算错,I/O故障。
3)外界干预
外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。这些干预有:操作员或操作系统干预,父进程请求,父进程终止。

1.7.2、进程的终止过程

如果系统发生了上述要求终止进程的某事件后,OS便调用进程终止原语,按下述过程去终止指定的进程。
1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程状态。
2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。
3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。
4)将被终止的进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。
5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。

1.8、进程的阻塞过程

1.8.1、引起进程阻塞和唤醒的事件

1)请求系统服务
当正在执行的进程请求操作系统提供服务时,由于某种原因,操作系统并不立即满足该进程的要求时,该进程只能转变为阻塞状态来等待,一旦要求得到满足后,进程被唤醒。
2)启动某种操作
当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,则必须先使该进程阻塞,以等待该操作完成,该操作完成后,将该进程唤醒。
3)新数据尚未到达
对于相互合作的进程,如果其中一个进程需要先获得另一(合作)进程提供的数据才能运行以对数据进行处理,则要是其所需数据尚未到达,该进程只有(等待)阻塞,等到数据到达后,该进程被唤醒。
4)无新工作可做
系统往往设置一些具有某特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来,新任务到达后,该进程被唤醒。

1.8.2、进程阻塞过程

正在执行的进程,当发现上述某事件后,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。进程的阻塞是进程自身的一种主动行为。进入block过程后,由于此时该进程还处于执行状态,所以应先立即停止执行,把进程控制块中的现行状态由执行改为阻塞,并将PCB插入阻塞队列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞(等待)队列。最后,调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换。

1.8.3、进程唤醒过程

当被阻塞的进程所期待的事件出现时,如I/O完成或者其所期待的数据已经到达,则由有关进程(比如,用完并释放了该I/O设备的进程)调用唤醒原语wakeup,将等待该事件的进程唤醒。唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。

原语(原子操作):是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性,即原语的执行必须是连续的,在执行过程中不允许被中断。

1.9、进程调度算法

FIFO(First Input First Output 先进先出法)
RR(时间片轮转算法)
HPF(最高优先级算法)

二、线程

2.1、 什么是线程

1. 线程是一个进程的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。
2. 线程是由表示程序运行状态的寄存器(如程序计数器、栈指针)以及堆栈组成,它是比进程更小的单位。
3. 线程是程序中的一个执行流。一个执行流是由CPU运行程序代码并操作程序的数据所形成的。因此,线程被认为是以CPU为主体的行为。
4. 线程不包含进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态。所以,系统在产生一个线程或各个线程之间切换时,负担要比进程小得多。
5. 线程是一个用户级的实体,线程结构驻留在用户空间中,能够被普通的用户级函数直接访问。
6. 一个线程本身不是程序,它必须运行于一个程序(进程)之中。因此,线程可以定义为一个程序中的单个执行流。

多线程是指一个程序中包含多个执行流,多线程是实现并发的一种有效手段。
一个进程在其执行过程中,可以产生多个线程,形成多个执行流。每个执行流即每个线程也有它自身的产生、存在和消亡的过程。
多线程程序设计的含义就是可以将程序任务分成几个并行的子任务

2.2、为什么需要线程

单任务限制:传统进程一次只能执行一个任务
阻塞问题:进程某部分阻塞会导致整个进程挂起
现实类比:
将上课看作一个进程,我们需要同时:
耳朵听老师讲课(线程1)
手上记笔记(线程2)
脑子思考问题(线程3)
如果没有线程机制,这三件事只能顺序执行,效率低下。

2.3、进程和线程的区别

1. 进程是资源分配的最小单位,线程是程序执行的最小单位;
2. 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
3. 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

# 进程:
操作系统分配资源的最小单位,是一个程序的动态执行,各自有自己的地址空间。不同进程中使用的变量是各自独立且互相不能访问的。进程中的变量存在各自的地址空间中,互相禁止访问。由操作系统调度。
# 线程:
是cpu运行的最小单元,进程至少会有一个线程,也可以多线程,他们共享一个进程的地址空间,所有的线程使用的变量是共享的,一个进程中的所有线程默认都可以访问。由操作系统调度。
协程:本质就是单线程程序,执行不同的任务函数,由程序员进行调度

多线程只能利用一个核的cpu进行运算,不能跨cpu使用
多进程可以跨cpu来使用

# 多进程使用场景:
执行多个cpu密集型的任务。会比较占用操作系统资源。多进程的切换,需要cpu切换上下文(进程的存储各类信息的结构)。切换效率比较低,占用cpu资源

# 多线程使用场景:
执行多个io(本地操作文件、网络数据传输)密集型的任务。所有线程共享一个进行的所有资源,切换时不需要cpu切换进程的上下文,效率很高,占cpu资源很少,占操作系统资源也很少

# 协程:
执行多个io任务的情况,本质就是单线程,效率与多线程差不多,资源占用比多线程要更少,切换效率很高,且编程容易,不需要考虑锁,出错的可能性较低。
Orange:一个基于 Python 的数据挖掘和机器学习平台 Orange是一个开源的数据挖掘和机器学习平台,采用可视化编程方式,用户可通过拖拽组件构建数据分析工作流。它支持交互式数据探索、多种机器学习算法,并允许Python脚本扩展。Orange特别适合教育和研究,提供直观的界面和丰富的可视化工具。最新版本为3.39.0,支持Windows、macOS和Linux系统。作为GPL许可的免费工具,它既能满足初学者需求,又能通过Python集成实现高级功能。 阅读详情

相关推荐

有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)

有限时间滑模控制(FTSMC)和固定时间滑模控制(FixTSMC)是两种重要的控制策略,旨在实现系统状态的快速收敛。FTSMC通过设计滑模面和控制律,确保系统状态在有限时间内收敛到原点,但其收敛时间与初始状态相关。FixTSMC则进一步优化,使收敛时间与初始状态无关,适用于高动态环境,具有更强的鲁棒性和更平滑的控制信号。两种方法均通过李雅普诺夫函数证明其稳定性,并通过仿真验证其有效性。FixTSMC在工程应用中更为可靠,尤其适合安全关键系统。

Lyajpunov的博客 3224

【操作系统】进程概述

进程是计算机系统中正在运行的程序的实例。它是操作系统对程序执行的基本单位,可以看作是程序在执行过程中的动态表现。每个进程都有自己的内存空间、代码、数据和执行状态。多个进程可以同时运行在计算机系统中。1)进程是程序的一次执行过程。2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。引入进程实体的概念后,我们可以把。

m0_63006478的博客 4436

ubuntu安装glibc

VSCode 在ubuntu下调试无法打开libc-start.c raise.c等1. 安装glibc2. launch.json中添加路径映射3. 调试 1. 安装glibc apt install glibc-source cd /usr/src/glibc/ sudo tar -xvf glibc-[VERSION].tar.xz 2. launch.json中添加路径映射 "sourceFileMap": { "/build/glibc-S7xCS9": "/usr/src/glib

wq_0708的博客 3万+

进程的概念以及进程的创建

并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。子进程所独有的只有它的进程号,计时器等。此外,在可剥夺的操作系统中,当有更高优先级的进程就 、 绪时,调度程度将正执行的进程转换为就绪状态,让更高优先级的进程执行。: 任何进程( 除 init 进程)都是由另一个进程创建,该进程称为被创建进程的父进程,对应的进程号称为父进程号(PPID)。

weixin_42581177的博客 5930

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 432

LaTeX伪代码字体大小调整全攻略:从algorithm到algorithm2e的实战技巧

本文详细介绍了在LaTeX中调整伪代码字体大小的全面技巧,涵盖algorithm、algorithmicx和algorithm2e等主流算法包的使用方法。从基础命令到高级配置,帮助用户解决学术论文和技术文档中的伪代码排版问题,提升算法展示的专业性和可读性。特别针对不同期刊格式要求,提供了实用的字体调整方案。

weixin_29297127的博客 437

进程的基本概念

在现代计算机系统中, 进程既是操作系统中的一个重要概念,又是系统进行资源分配和独立运行的基本单位。本章将介绍进程的基本概念、进程的状态、线程的基本概念、进程同步与互斥、进程的控制,进程的通信、进程调度及死锁的概念。 引入 现代操作系统的重要特点是程序的并发执行,及共享系统资源和系统的不确定性。这三个特点是相互联系和相互依赖的 资源共享是程序并发执行的必然结果,只有对资源共享实施有效管理,才能实现和保证程序的并发执行; 系统的不确定性也是程序并发和资源共享的必然结果,操作系统必须具备随时响应和正确处理各种随机

学习日常分享 3372

WSL2 Ubuntu 22.04安装NVIDIA驱动避坑指南:从驱动版本选择到CUDA环境验证

本文详细介绍了在WSL2 Ubuntu 22.04中安装NVIDIA驱动和配置CUDA环境的完整流程,包括驱动版本选择、环境变量设置以及常见问题解决方案。通过本指南,用户可以避免常见的安装陷阱,确保GPU加速环境正确配置,适用于深度学习开发和CUDA编程。

weixin_28419039的博客 463

操作系统——进程之基本介绍

进程与线程

Mr.White的博客 1803

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 387

UltraScale系列底层结构(3)——URAM概述

在UltraScale+™ 器件中,除了我们在常规熟悉的BRAM资源以外,还额外提供了URAM(UltraRAM)资源。 UltraRAM 是一种单时钟同步操作的高密度存储器,每个 UltraRAM 块可存储 288 Kb 数据,配置为 4K x 72 位的存储单元,其容量是 Block RAM 的八倍。虽然 UltraRAM 内部使用单端口存储单元,但通过在一个时钟周期内顺序执行端口 A 和端口 B 的操作,实现了双端口功能。

apple_53311083的博客 2832

进程基本概念

进程基本概念前言一、操作系统概念设计OS的目的定位二、进程概念描述进程-PCB2.读入数据总结 前言 冯诺依曼体系结构: 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 我们的计算机都是由硬件构成: 输入设备:键盘,鼠标,写字板等 处理器(CPU):含有运算器和控制器等 输出单元:显示器,打印机等。 关于冯诺依曼强调几点: 存储器其实指的就是内存。 CPU只能对内存进行读写,不能访问其他的外设设备。 外设想获取数据,也只能从内存中获取。 所以,所有的设备都只能和内存打

mz474920631的博客 1718

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

进程和线程基本概念

1 进程基本概念 1.1 多进程模型 多个进程是分时执行的,每个进程的指令流按顺序执行。 多个进程在一个处理器上分时运行,如图: 操作系统需要做的事情是:维护一个全局的进程表,记录下当前有哪些进程正在被执行;把时间分成适当的片段,现代处理器结构可以通过设置时钟中断,每次时钟中断到来时系统就会获得控制权,在进程间实施切换,即保留上一个进程的环境信息,恢复下一个进程的执行环境。 1.2 进程和程序 程序的内存布局结构 一个c/c++ 程序的典型布局结构,如图: 程序内存区域有三种类...

maomao171314的专栏 298

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

线程和进程的一些基本概念

线程和进程的一些基本概念1.线程指进程中的一个执行场景,也就是执行流程,那么进程和线程有什么区别呢?   每个进程是一个应用程序,都有独立的内存空间   同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的。) 2.什么是进程? 一个进程对应一个应用程序。例如:在 windows 操作系统启动 Word 就表示启动了一个进程。在...

weixin_30588729的博客 85

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

线程和进程的基本概念

线程和进程的基本概念

wsdacainiao的博客 117

186、线程和进程的基本概念

基本概念 进程: 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 进程是内存中的概念 存放着指令和数据(资源)==) 线程: 操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位(有时候也被称为轻量级进程(LWP)) 线程组成:线程ID、当前指令指针(PC),寄存器集(数据存放)和堆栈组成 创建一个线程比创建一个进程快10-100倍 程序:源代码编译后的文件,这些文件存放在磁盘上 进程、程序、线程的关系及理

totorobig的博客 203

Java多线程一 :进程和线程的基本概念

一、线程和进程的基本概念 1、什么是进程?      进程是一段正在执行的程序,一个程序可以同时执行多个任务(线程)。进程是并发执行程序在执行过程资源分配和管理的基本单位(资源分配的最小单位)。     进程独占内存空间,每启动一个进程,系统就会分配地址空间,进程间保持各自运行状态,相互之间不会干扰。 2、什么是线程?     通常,进程中的一个任务称之为一个线程,线程有时候会被称为轻量级的进程。线程是程序执行(CP

Dhdyz的博客 188

进程和线程的基本概念与区别

进程和线程的基本概念:进程是具有独立功能的程序在某个数据集合上的一次执行过程。进程是系统进行资源分配和调度的一个独立单位。线程是进程内的一个执行实体或执行单元,是比进程更小的能独立运行的基本单位。在现代操作系统中,资源申请的基本单位是进程,进程由程序段、数据段和PCB(进程控制块)组成。进程和线程的区别:操作系统引入线程机制后,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源分配给进...

zrh_优快云的博客 8470

程序、进程和线程的基本概念

本文是多线程系统文章的第一篇,先介绍一下一些基础概念。

weixin_44801641的博客 1272

java中多进程和多线程的基本概念

文章目录一,多进程和多线程的简介1,多进程的概念操作系统如何管理这些进程呢?多进程的优缺点2,多线程的概念多线程的优点3,多进程和多线程的区别二,多线程实现1,创建多线程的两种方法2,多线程启动启动线程应该注意的地方Thread VS Runnable 一,多进程和多线程的简介 1,多进程的概念 ​ 我们现在所使用的计算机的操作系统都是多任务的OS,每个独立执行的任务就是一个进程。Ctrl+Alt+. 打开任务管理器,如下图,它们每个都是一个进程。 操作系统如何管理这些进程呢? ​ OS将时间划分为多

antique的学习笔记 1968

进程和线程区别和联系以及两者的基本概念,拨开云雾,透过现象看本质

@TOC 进程简介 是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成 特征 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产- 生,动态消亡的; 并发性:任何进程都可以同其他进行一起并发执行; 独立性:进程是系统进行资源分配和调度的一个独立单位; 结构性:进程由程序,数据和进程控制块三部分组成 线程

qing1912的博客 398

linux基本概念(一)----进程和线程

先给自己打个广告,本人的微信公众号正式上线了,搜索:张笑生的地盘,主要关注嵌入式软件开发,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题 一 why 今天这篇文章主要以基本概念为主,没有相关的源码,可能看起来比较抽象和枯燥,但是我还是建议大家认真读一读这个文章,在读的过程中多思考文章中提出的相关问题,这个对我们打好基础至关重要,我们不能只停留在编写代码实现功能的层...

myselfzhangji的博客 325

进程和线程的基本概念

进-线目录前言1.为什么会产生进程?2.进程是什么?3.为什么会产生线程?4.多进程可以实现并发,为什么还要使用线程?5.进程和线程的区别6.理解上下文切换 前言 程序:指令和数据的集合 通常是我们使用Java/python编写能够完成某个功能的代码的集合,是一段静态代码 1.为什么会产生进程? 1.1.最初的计算机每次只能执行一个指令,这样的效率非常低下 1.2.后来出现了批处理系统,程序员可以将一串指令一次性交给计算机,这样虽然相比最初的计算机提高了效率,但是内存中始终只允许一个程序;

Kevinnsm的博客 329

MSDN中对进程和线程的一些基本概念的描述

MSDN 对进程和线程的一些基本概念的描述About Processes and ThreadsEach  process provides the resources needed to execute a program. A process has a virtual address space, executable code, open handles to system obj

tushw的专栏 1024

C++11多线程编程 1.进程和线程基本概念

#include<iostream> #include<thread> using namespace std; int main() { /*掌握概念一:并发,进程,线程的基本概念和综述 (1.1):并发和并行 两个或者更多的任务(独立的活动)同时发生(进行) (1.2):可执行程序 磁盘上的一个可以运行的文件,windo...

guonengneng的博客 358
上一篇: python3从入门到精通(二): python多进程
下一篇: python3从入门到精通(三): python多线程
一位不知名民工
博客等级 码龄8年 102粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位不知名民工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值