嵌入式多进程与多线程应该怎样做出选择
  • 时间:2019-10-21
  • 点击率:

  在嵌入式开发中,进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(

  线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。

  进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

  总的来说就是:进程有独立的地址空间,线程没有单独的地址空间(同一进程内的线程共享进程的地址空间)。

  使用多线程的理由之一是和进程相比,它是一种非常“节俭”的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种“昂贵”的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。

  使用多线程的理由之二是线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为线程所用,这不仅快捷,而且方便。当然,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。

  除了以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发的工作方式,当然有以下的优点:

  提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作(TIme consuming)置于一个新的线程,可以避免这种尴尬的情况。

  使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。

  改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。

  注:已经报名的学员请添加班级群669626886————————————————————————————————————

  嵌入式系统这个名词还是比较难以准确定义的,一般把“用于控制、监视或者辅助操作机器和设备的装置”称为嵌...

  Arm本身开放的特点与移动互联网的高速发展成就了现在Arm的巨大成功, 也正是Arm所具备的“开源精...

  根据实时性系统要求以及Linux的特点和性能分析,对标准Linux实时性的改造存在多种方法,较为合理...

  新兴的内存技术可望在嵌入式应用中找到大量市场,从而取代NOR闪存(flash),用于在微(MC...

  嵌入式设计是个庞大的工程,标准缺乏,规格多变,技术变化又特快,但嵌入式的工资水平,真的不赖,那如果你...

  当你不经意间走过一块广告显示屏时,你不会想到最新的图像技术正在让广告变得更具美感;当你在游艺场所内欢...

  目前,ARM是嵌入式技术中使用最为广泛的一种。在市场需求的推动下,ARM嵌入式技术得到了飞速的发展,...

  在项目或嵌入式系统应用程序开始时,很有可能在嵌入式系统的细节被删除之前跳入并开始选择微。

  PCB设计中要做到目的明确,对于重要的信号线要非常严格的要求布线的长度和处理地环路,而对于低速和不重...

  面对工控行业的对数据高速运算能力要求增高的趋势,全球工业计算机领导厂商华北工控推出了结构紧凑、功能强...

  在嵌入式主板领域,灵敏的嗅觉,锐利的眼光和与最新科技发展俱进的产品更新,一直是悦升行业主板的着力点。

  超声诊断技术是一种经济、实用、可重复、无损伤的检查手段,具有无侵袭,不影响,适应性广等优点。特别...

  随着计算机相关技术的发展,ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RIS...

  USB作为一种串行通信总线,采用主从式通信方式,从设备只能被动响应来自主设备的请求,不能主动发起请求...

  设计一个低功耗系统需要采用整体方法,由用例分析驱动设备运行的不同方式 ,因为每个都有自己的功率要求。

  嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它...

  在为定制电子设计挑选零件时,可以预先检查Linux驱动程序支持。为不受支持的硬件编写新驱动程序非常耗...

  机器人不仅需要人工智能(AI)才能实现自主。他们还需要大量传感器,传感器融合以及边缘的实时推理。

  随着我们走向一个我们期待“智能一切”的世界,传感器和边缘设备将拥有更多嵌入式系统,集成数据处理,人工...

  由于其良好的性价比,基于32位和64位x86处理器的标准PC技术已经用于计算密集型工业应用数十年。

  在人工智能技术趋势报告中,人工智能功能应用程序的增长速度比其他应用程序更快,它确定了计算机视觉,其中...

  工业4.0视为以智能制造为主导的第四次工业,是集成大量计算机、通信和控制技术为一体的智能系统。

  为实现无线接入网络的嵌入式人工智能技术,需要从无线接入网架构和关键技术层面进行系统性思考和创新。20...

  随着机器视觉技术的成熟,联网摄像头产品开始逐渐向AI摄像头升级,全球数十亿台摄像头将经历从“录像及回...

  想想AI,你几乎总是想到一个基于云的计算系统,在这个系统中,查询在源头捕获并发送到云进行处理,然后将...

上一篇:中国通信产业70年见证沧桑巨变
下一篇:中国手机通信企业密集布局德国北威州
客服QQ: 点击这里
地址:台州市寨金路899号电子时代广场5116室 客服QQ:88888888
Copyright © 2014-2019 广州市芭蕉通信科技有限公司 版权所有   粤ICP备15013029号-1

08980-36524188

服务时间:7X10小时