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

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 )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
英特尔、AMD、英伟达的“芯片三国”

芯片巨头的战场从来都不寂寞,在激烈的捉对厮杀中,英特尔、AMD、英伟达这场三国大戏已经延续了数十载。

广西开启“芯路”,启动首个高端存储芯片项目“华芯微”
广西开启“芯路”,启动首个高端存储芯片项目“华芯微”

乘着第15届中国—东盟博览会的东风,由南宁市委、南宁市政府主办的2018南宁投资贸易洽谈会暨重大项目签约仪式,于近日在南宁市政府会议中心举行。广西壮族自治区党委常委、南宁市委书记王小东,南宁市市长周红波等领导共同见证了这一历史时刻。

STM32启动过程全面解析

本文主要阐述了STM32启动过程全面解析,包括启动过程的介绍、启动代码的陈列以及深入解析。

芯片巨头的战场从来都不寂寞,英特尔、AMD、英伟达这场三国大戏已经延续了数十载
芯片巨头的战场从来都不寂寞,英特尔、AMD、英伟达这场三国大戏已经延续了数十载

芯片巨头的战场从来都不寂寞,在激烈的捉对厮杀中,英特尔、AMD、英伟达这场三国大戏已经延续了数十载。

英特尔、苹果、高通、AMD 处理器出现过哪些重大 Bug?要怎么修复?
英特尔、苹果、高通、AMD 处理器出现过哪些重大 Bug?要怎么修复?

英特尔的CPU存在两大漏洞 ——Meltdown 和 Spectre,波及自 1995 年以来所有使用英特尔芯片的硬件设备。不止 Linux、Android、Windows、苹果 OS X 等操作系统,AWS、Azure、谷歌云等云计算提供商均受到影响,其威胁范围之广,令人咋舌

更多资讯
最新经济高效入门级平台 面向高端嵌入式运算

提供标准和定制化嵌入式计算机板卡与模块的领先供应商—德国康佳特科技,推出全新跌破价格的计算机模块,该模块基于英特尔最新酷睿™ i3-8100H 处理器平台,是高端嵌入式运算的入门款模块。

基于S3C44BOX的多台设备远程监控系统设计

嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

语音通信中时延时延是怎么产生的?该如何减小?

时延是语音通信中的一个重要指标,当端到端(end2end)的时延(即one-way-delay,单向时延)低于150Ms时人感觉不到,当端到端的时延超过150Ms且小于450Ms时人能感受到但能忍受不影响通话交流,当端到端的时延大于1000Ms时严重影响通话交流,用户体验很差。

高盛预计存储芯片需求将下滑 美芯片股应声普跌

投行高盛警告称,存储芯片需求将下滑。受此影响,美国芯片股于当地时间周三普遍下跌。

存储器风吹草动,国内厂商如何不“风声鹤唳”?
存储器风吹草动,国内厂商如何不“风声鹤唳”?

存储器在连续两年走高之际,开始掉头释放出下探信号。虽然强周期波动的存储器价格起伏是正常,但对于仍在计划量产的国内三大厂商而言,若产能都如期释放,而届时市场供过于求之势不减,那么价格战将一触即发。国内厂商如何耐得住亏损,不断加强后续的资金投入?

Moore8直播课堂
电路方案