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

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

 

继续阅读
英特尔全新“Sunny Cove”微架构来临
英特尔全新“Sunny Cove”微架构来临

12月13日早间消息,英特尔在“架构日”活动中公布了下一代CPU微架构—Sunny Cove,这个微架构采用10纳米工艺制造,会成为英特尔下一代酷睿和至强处理器的基础。一同发布的还有还有全新的GPU核芯显卡。

技术停滞核心开源,半导体现状复杂
技术停滞核心开源,半导体现状复杂

关于CPU操作系统“缺芯少魂”的话题,媒体已经反思了近20年。

S3C2440 cpu的初始化问题研究

设置处理器的模式为svc模式,根据ARM架构参考手册,处理器有七种工作模式:

英特尔10nm制程迟到,7nm制程却并未受阻碍?

英特尔的10nm工艺技术最初计划在2016年下半年进入量产阶段,至今仍却迟未被公司使用,目前,该制程仅用于生产少量CPU,毫无疑问地,英特尔在其10nm工艺上遭遇了数年的延迟,严重影响了公司的产品阵容及其业务,更造成全球CPU供货吃紧。

深度分析骁龙855性能参数,和麒麟980持平?
深度分析骁龙855性能参数,和麒麟980持平?

这一代骁龙855的CPU升级到Kryo 485,由1颗2.84GHz超核、3颗2.42GHz大核和4颗1.8GHz小核组成,其中超/大核基于Cortex A76“魔改”。整体性能相较骁龙845提升了45%,这是骁龙800家族问世以来,相邻代际间提升幅度最大的一次。

更多资讯
FPGA到底是啥?
FPGA到底是啥?

今天在群里有工程师问我,怎么才叫学会了FPGA,怎么才叫学好了FPGA?我相信有很多朋友有类似的问题,因为在多数人的潜意识里,FPGA是非常高深莫测的技术,能够玩转FPGA的都是大神级的人物。

STM32F4当中有个CCM内存,该如何使用?

我们知道STM32F4当中有个CCM内存,如图所示,这个内存是挂在D总线上直接和内核相连,因此除了内核之外谁都不能访问,那么我们怎么将其利用起来呢?

让本科毕业生的技术水平追得上自己的“远大梦想”

在电子设计领域,本科毕业生应该不是没有工作机会,而是面对诸多的工作机会,技术水平追不上自己的远大梦想。当他们看到年薪几十万的工作机会时,内心应该十分兴奋,毕竟不是所有的职位都能达到这样的薪资水平,但是看到职位描述的详细内容时,他们又备受打击,心生退缩,原因就是在本科四年里很多人几乎没有掌握一门拿得出手的技能,让自己在求职的过程中获得HR的

为SoC和电子系统提供全生命周期的高速分析和监测,要怎样的IP才能办到

SoC的设计越来越复杂,上市时间、软硬件集成、系统级验证、系统性能、异构、网络安全/功能安全等都是设计人员需要考虑的因素。流片前,设计师能通过仿真软件进行验证,但是流片过程中很多意想不到的结果,需要在流片后仍能被准确的检测出来。

浅析嵌入式中通讯协议设计的规律

公司里做项目,嵌入式系统大大小小,到处都是。因为都是一个系统里的,所以都需要通讯,既然通讯就涉及到协议问题。

电路方案