啥是线程,进程和程序?一文读懂它们的区别

2018-01-09 17:06:14 来源:硬件十万个为什么
分享到:
标签:
线程   程序   进程   CPU
任务是代码运行的一个映象,从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与它们一起并发运行(宏观上如此)。
VxWorks内核使任务能快速共享系统的绝大部分资源。
 
在VxWorks6.4中,进程是指Rtp,进程包含任务,任务是调度的最小单元。
 
进程(有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间,内存,数据栈以及其它记录其运行轨迹的辅助数据。操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间。
 
不过各个进程有自己的内存空间,数据栈等,所以只能使用进程间通讯(IPC),而不能直接共享信息。
 
线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,那就是程序本身。
  
线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
 
线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。
  
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。
  
因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。
  
线程与进程的区别可以归纳为以下几点:
1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
3)调度和切换:线程上下文切换比进程上下文切换要快得多。
4)在多线程OS中,进程不是一个可执行的实体。
 
程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。一般分为系统程序和应用程序两大类。计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。
 
 
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
魏少军解疑CPU漏洞门背后的门道

“CPU漏洞门”事件爆发以来,社会的关注不断扩大,其核心问题已经不仅是几家公司是否存在“不做为”嫌疑,而是关系到现代社会对于信息安全的保障。集成电路产业在其中应当承担起应有的社会责任。

CPU“漏洞门”让英特尔被集体诉讼,市值蒸发200亿美元

自美国科技博客The Register于2018年1月2日率先披露由CPU Speculative Execution引发的芯片级安全漏洞Spectre)、Meltdown以来,英特尔、ARM、AMD、苹果、IBM、高通、英伟达等都已承认自家处理器存在被攻击的风险。

CPU攻破了AI的界限,GPU还有优越感吗?
CPU攻破了AI的界限,GPU还有优越感吗?

12月问世的POWER9,恐怕是第一个喊出为AI而生的服务器CPU了。从通用CPU到AI定制CPU,到底反应了整个业界怎样的趋势?

CPU处理器芯片面临架构重塑,幽灵和熔断漏洞有这么大威力?
CPU处理器芯片面临架构重塑,幽灵和熔断漏洞有这么大威力?

最近,安全机构公布了两种将给CPU市场带来潜在破坏的处理器安全缺陷;处理器市场领导者英特尔受冲击最严重,需应对两种安全缺陷,AMD则面临其中一种难以修复、目前尚没有解决方案的漏洞

一文搞懂啥是CPU、MPU、MCU、SoC!

1、CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存

更多资讯
学习Linux,这些内核常识你应该要知道

如果没有操作系统,内存需要程序自己来管理。譬如在uboot中要使用哪块内存,由程序自己决定的,没有注册也没有限制。此时如果程序不小心把同一块内存重复使用,就会出现程序逻辑错误。

FSMC知识详解,以及驱动TFTLCD原理
FSMC知识详解,以及驱动TFTLCD原理

FSMC:灵活的静态存储控制器

Linux驱动之Nand Flash四问,原理、工作方式都包含了
Linux驱动之Nand Flash四问,原理、工作方式都包含了

Nand Flash 是一个存储芯片那么:这样的操作很理“ 读地址A的数据,把数据B写到地址A”

GPIO内部结构、工作原理及相关寄存器详解(以STM32为例)
GPIO内部结构、工作原理及相关寄存器详解(以STM32为例)

STM32F1系列IO口的基本结构()IO口内部电路结构)

NAND Flash降价,前景并不灰暗

据路透社报道,经过长达一年半时间的猛涨后,部分内存芯片的价格突然下跌,之后韩国三星电子发布令人失望的2017年盈利预估,让那些押注芯片繁荣还会至少持续一年的投资者感到不安。

Moore8直播课堂
电路方案