0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTOS入门之扫盲篇-理解任务、线程、进程的概念

zhangxiaognag 来源:zhangxiaognag 作者:zhangxiaognag 2023-06-06 11:52 次阅读

在我们实际开发或者构思项目的过程中,会根据产品的定义或者客户需求对产品的功能上进行分解从而转换成我们软件的开发的概要设计需求表现,比如我们需要做一个多路可调的电源输出并且可以通过 PC 端控制电源的当前输出以及实时显示当前的输出电压和电流,但是接上负载之后可能由于线阻问题可能会导致负载端的电压低于实际输出端的电压,所以还需要一个负载端(远端)的电压补偿功能,如下图1所示:

pYYBAGR929qAVE2uAAECGzy8z88824.png图1                                                                                                   图2

1.1 任务定义
在上述图 1 和图 2 的设计模块的功能图和功能关系图之后,此时我们可以通过上述图能发现哪些功能或者说模块需要设计的,其实这里的“多通道电源控制”就是我们的“任务”。现在我们把这个大的任务已经分解开上述图 1 所示的 5 个小功能,这个 5 个小的功能咱们也可以称之为任务。


1.2 观察者角度
所以这里我们软件上对“ 任务” 的理解,其实它是我们对所要做的一件事情从某种角度上的抽象出来的一功能或者一个执行活动。 这里面为什么是从某种角度呢?这个很好理解,就是通常我们看到一个事情可以有很多方面去观察的,比如事物的功能去划分观察,又或者是对事物的颜色或者活动状态去划分。所以在我们软件开发过程中“某种角度”也就是说观察者的观察方向很重要,因为它直接的影响到了我们的软件模块划分以及后续针对这个模块进行线程或者进程的执行有着直接影响。

1.3 操作系统的调度
这里面我们不得不说些关于操作系统的调度这个概念了, 当有一堆任务需要被处理,但由于资源有限,比如说只有一台打印机,现在有很多人都需要打印各自的文档那怎么办呢?现在的资源(打印机)只有一个,但任务(很多人需要打印)比较多。 这就需要确定某种规则来决定处理这些任务,这就是调度要做的事情了。 现在回到我们的 CPU 上,就拿现在的单核 CPU, CPU 在同一个时间点只能做一件事情,那它是如何处理多件不同的事情呢? 这里一般情况分为抢占式和时间片式的调度方式,当然还有很多其它的调度算法,咱们只是
了解即可。

1.4 线程
线程则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据。线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。 如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。 还是列举上述图 1 的例子“多通道电源控制”项目。这里面的“多通道电源控制”的这个大任务,如果把它当作一个进程的话,那么它下面 5 个小任务就可以理解为我们的线程(子任务)。线程可以在处理器上独立调度执行,这样,在多处理器环境下就允许几个线程各自在单独处理器上进行。操作系统提供线程就是为了方便而有效地实现这种并发性,当然在单处理器上的线程,其实从宏观角度来看也是并行执行的。

1.5 进程
进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、 I/O 设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配 CPU 以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。一个进程和一个线程最显著的区别是:线程有自己的全局数据。线程存在于进程中,因此一个进程的全局变量由所有的线程共享。由于线程共享同样的系统区域,操作系统分配给一个进程的资源对该进程的所有线程都是可用的,正如全局数据可供所有线程使用一样。

pYYBAGR93OGAN_BBAADS75DRFTk820.png

poYBAGR93TKAByUXAA0UFMzfick296.png实战项目应用


邮箱:TianjiStar.work@outlook.com

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10696

    浏览量

    209280
  • FreeRTOS
    +关注

    关注

    12

    文章

    483

    浏览量

    61708
  • 线程
    +关注

    关注

    0

    文章

    501

    浏览量

    19578
  • 进程
    +关注

    关注

    0

    文章

    197

    浏览量

    13928
收藏 人收藏

    评论

    相关推荐

    RTOS中的线程进程和协程详解

    看到有小伙伴在讨论【RTOS任务属于线程还是进程】的话题,这里就来分析一下OS中的线程进程和协
    的头像 发表于 11-09 12:36 1567次阅读
    <b class='flag-5'>RTOS</b>中的<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>和协程详解

    进程线程概念及其区别

    今天浩道跟大家分享一关于进程线程之间关联的硬核干货,看看大神如何通过通俗易懂的图文,让大家更加深刻理解进程
    的头像 发表于 11-21 10:50 765次阅读
    <b class='flag-5'>进程</b>和<b class='flag-5'>线程</b>的<b class='flag-5'>概念</b>及其区别

    深入理解和实现RTOS_连载

    ,那里有更详细的注释,而且是全中文的。深入理解和实现RTOS_连载5_多任务机制应用演示本节我们通过在评估板上的实例来演示有关线程调度和管理的API。因为每个例子中都包括了
    发表于 05-29 11:20

    深入理解和实现RTOS_连载

    和trcohili的帖子。trochili rtos完全是作者兴趣所在,且行且坚持,比没有duo。深入理解和实现RTOS_连载1_RTOS的前生今世今天发布的是第一
    发表于 05-30 01:02

    【MiCOKit试用体验】庆科MiCO系统(1)MiCO RTOS线程

    2mico_rtos_delete_thread删除进程,使进入终止状态,并在IDLE线程中清除资源3mico_rtos_suspend_
    发表于 10-24 16:26

    进程线程的通俗解释

    本帖最后由 柠檬守护 于 2016-8-10 17:42 编辑 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一
    发表于 08-10 17:31

    请问uCOS-II中的任务进程还是线程

    个提问,然后上面的定义是百度的。按照定义任务应该是进程。有没大佬从rtos的角度剖析一下进程线程的区别。
    发表于 06-03 05:07

    理解任务切换和任务状态改变的关键是什么?

    理解任务调度与切换的关键是从代码层面理解各种列表的操作逻辑思路:状态列表(Running,Ready,Blocked,Suspended)和事件列表(比如队列,信号量等中的阻塞事件列表)。这些操作是在各个API 函数中的,综合起来感觉还是有些雾水。现在遇到一个问题麻烦大佬
    发表于 06-13 09:00

    【资料】RT-Threa操作系统中任务概念及实现任务所用到的数据结构

    。因为在RT-Thread操作系统中不会区分进程线程概念,因此可以理解为CPU可执行的最基本实例。如果你一定要用进程
    发表于 03-23 15:11

    进程与多线程的基本概念

    ,如此往复,宏观上看来,就好像是多个线程在一起执行.由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务
    发表于 04-02 14:49 710次阅读

    LEDs状态灯任务(线程)设计 (基于RTOS

    LEDs状态灯任务(线程)设计(基于RTOS
    的头像 发表于 03-12 11:30 2192次阅读

    浅析OS中的线程进程和协程与RTOS任务属于那种

    今天为大家讲解讲解OS中的线程进程和协程的这几个概念,同时一起看看RTOS中的任务到底属于哪一种。
    的头像 发表于 04-19 10:06 3030次阅读
    浅析OS中的<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>和协程与<b class='flag-5'>RTOS</b><b class='flag-5'>任务</b>属于那种

    RTOS的最通俗理解】行业大佬用一文章带你快速理解RTOS

    电子产品2.2 要深入理解RTOS就必须深入理解CPU架构3. 课程重点系统课程学习 5分钟拿下你的三连,RTOS
    发表于 12-20 19:08 17次下载
    【<b class='flag-5'>RTOS</b>的最通俗<b class='flag-5'>理解</b>】行业大佬用一<b class='flag-5'>篇</b>文章带你快速<b class='flag-5'>理解</b><b class='flag-5'>RTOS</b>

    RTOS中的任务线程进程?还是协程?

    今天为大家讲解讲解OS中的线程进程和协程的这几个概念,同时一起看看RTOS中的任务到底属于哪一种。
    的头像 发表于 06-04 17:19 1466次阅读
    <b class='flag-5'>RTOS</b>中的<b class='flag-5'>任务</b>是<b class='flag-5'>线程</b>?<b class='flag-5'>进程</b>?还是协程?

    基于RTOS的应用进程中的典型线程

    RTOS中的关键因素是最小的中断延迟和最小的线程切换延迟。RTOS的价值在于它的响应速度或可预测性,而不是它在给定时间段内可以执行的工作量。
    发表于 03-05 09:32 415次阅读
    基于<b class='flag-5'>RTOS</b>的应用<b class='flag-5'>进程</b>中的典型<b class='flag-5'>线程</b>