VxWorks中的任务和进程线程的关系

2023-05-16

学过操作系统的,对进程和线程应该是比较了解的。但是为了文章知识的完整性,笔者先对操作系统中的进程和线程进行一些介绍。

1、进程和线程的关系

为了不产生歧义,先对一些易混淆的概念进行介绍:

  • 代码:一般认为只要是用编程语言写出来的语句集合既是代码。
  • 程序:程序是一段静态的代码,是保存在非易失性存储器上的的指令和数据的有序集合,没有任何执行的概念。可以认为是代码编译后获得的可执行文件
  • 任务(此处的任务和VxWorks中的任务不是一个含义):任务是一个逻辑概念,指由一个软件完成的活动,或者是为实现某个目的的一系列操作。通常一个任务是一个程序的一次运行,一个任务包含一个或多个完成独立功能的子任务,**这个独立的子任务是进程或者是线程。**例如,一个杀毒软件的一次运行是一个任务,目的是从各种病毒的侵害中保护计算机系统,这个任务包含多个独立功能的子任务(进程或线程):包括实时监控功能、定时查杀功能、防火墙功能以及用户交互功能等。
  • 进程:进程是一个动态的概念**,它是程序的一次执行过程,包括了动态创建、调度、执行和消亡的整个过程(这一系列都由操作系统的调度机制来完成!),**它是程序执行和资源管理的最小单位。进程不但包括程序的指令和数据,而且包括程序计数器和处理器的所有寄存器以及存储临时数据的进程堆栈。从操作系统的角度看,进程是程序执行时相关资源的总称。当进程结束时,所有资源被操作系统自动回收。
  • 线程:前面已经提到,进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段、代码段和堆栈段这就造成了进程在进行切换时操作系统的开销比较大。为了提高效率,操作系统又引入了另一个概念——线程,也称为轻量级进程。线程是进程上下文中执行的代码序列,又称为轻量级的进程。它是操作系统能够调度的最小单元。线程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享。因此,线程的上下文切换的开销比进程小得多。**一个进程可以拥有多个线程,其中每个线程共享该进程所拥有的资源。**要注意的是,由于线程共享了进程的资源和地址空间,因此,任何线程对系统资源的操作都会给其他线程带来影响。由此可知,多线程中的同步是非常重要的问题

2、VxWorks中的任务到底是进程还是线程

在Linux中创建进程的函数是fork(),创建线程的函数是int pthread_create(phtread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);而熟悉VxWorks的小伙伴都知道,VxWorks中的任务可以通过taskSpawn()来创建。

那么VxWorks中的任务到底是进程还是线程呢?

我认为VxWorks中的任务几乎就是线程。下面我给出几点理由:

  1. 每个进程都有自己的虚拟地址空间,而每个进程中的多个线程则共享该虚拟地址空间。在VxWorks中,不同的任务之间是可以共享地址空间的。其实更进一步,RTOS操作系统没有虚拟地址空间,直接用的是物理内存,因此可以知道在VxWorks中根本不可能存在多个进程。那么VxWorks中的任务则更像线程的概念了。
  2. 百度百科的解释:任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。实时操作系统
  3. VxWorks的官方文档:之前在翻阅VxWorks653的官方文档时,讲到分区操作系统是基于VxWorks5.5,而该分区操作系统就是明确指出使用的就是线程(thread),如下图
    在这里插入图片描述

书籍名称是**《vxworks_653_programmers_guide》**。

  1. 有一篇博客的解释我觉得挺有道理的。VxWorks中只有一个进程(内存空间和资源分配),其任务的概念与线程相当。关于操作系统中进程、线程、和任务之间的关系
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VxWorks中的任务和进程线程的关系 的相关文章

  • ZYNQ移植vxworks系统

    版本 xff1a ZYNQ7010 xff0c VxWorks 6 9 ZYNQ PL端有灵活性好 xff0c 资源丰富 xff0c 可反复编程速度快的优势 xff0c 通过 PS的外设并行 AXI总线外挂 PL接口 xff0c 使用 FP
  • 【VxWorks 6.x之FTP服务器】

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 FTP是什么 xff1f 二 使用步骤使用FTP需要添加的组件 最后就可以通过FTP软件去访问VxWorks FTP服务
  • VxWorks 操作系统简介

    实时多任务操作系统是能在确定的时间内执行其功能 xff0c 并对外部的异步事件作出响应的计算机系统 多任务环境允许一个实时应用作为一系列独立任务来运行 xff0c 各任务有各自的线程和系统资源 VxWorks系统提供多处理器间和任务间高效的
  • VxWorks中的任务和进程线程的关系

    学过操作系统的 xff0c 对进程和线程应该是比较了解的 但是为了文章知识的完整性 xff0c 笔者先对操作系统中的进程和线程进行一些介绍 1 进程和线程的关系 为了不产生歧义 xff0c 先对一些易混淆的概念进行介绍 xff1a 代码 x
  • VxWorks和Tornado教程书籍分享

    搞VxWorks的是个小圈子 xff0c 找点学习资料还是有点麻烦的 博主花费了好大的精力才收集到这二十多本书籍 xff0c 下面统统免费分享给大家 xff08 百度网盘链接在文章结尾处 xff09 书籍清单如下 xff1a ARM嵌入式V
  • VxWorks消息队列详解

    文章目录 一 前言二 VxWorks消息队列模块详解三 代码实例 一 前言 最近看了点事件驱动编程 了解到在时间驱动编程中 xff0c 重要的是一个事件收集器 一个事件发送器和一个事件处理器 这让我联想到VxWorks中的消息队列 xff0
  • VxWorks的信号量机制分析

    VxWorks 的信号量机制分析 VxWorks 信号量是提供任务间通信 同步和互斥的最优选择 xff0c 提供任务间最快速的通信 也是提供任务间同步和互斥的主要手段 VxWorks 提供 3 种信号量来解决不同的问题 二进制信号量 xff
  • 第一课:VxWorks系统概述

    目录 1 1 VxWorks系统简介 1 2 VxWorks的特点 1 3VxWorks系统和Linux系统的区别 1 4 VxWorks开发环境获取 1 1 VxWorks系统简介 VxWorks 操作系统是美国WindRiver公司于1
  • 第九课: 工作空间-Work Space介绍

    2 7 工作空间 Work Space介绍 工作空间是WorkBench3 3集成开发环境对项目工程进行集中管理的空间 用户创建的BootRom工程 VxWorks工程 Downloadable工程和静态库工程等都存在于Work Space
  • VxWorks开发俱乐部

    VxWorks开发俱乐部
  • 【VxWorks】Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

    目录 1 VxWorks操作系统 2 QNX操作系统 3 Xenomai操作系统 4 INtime操作系统 5 SylixOS操作系统 5 1 SylixOS官网
  • VxWorks任务挂死实战分析

    目录 背景描述 根本原因 分析过程 背景描述 操作系统 VxWorks 5 5 CPU MIPS32 74Kc内核CPU 现象描述 联调代码时发现应用层代码调用以下接口函数必现任务挂死 检查代码发现入参均合法 代码逻辑没问题 未发现异常 F
  • Wind River Workbench 3.x VxWorks项目类型

    今天学习了解了Wind River Workbench 3 x VxWorks项目类型及这些类型之间的关系 7种VxWorks项目类型如下图所示 如上图 Wind River Workbench 3 3 相关VxWorks项目类型有7种 分
  • 打开FTP server或者wftpd32提示 unknow error 10013

    打开FTP server或者wftpd32提示 unknow error 10013 问题描述 解决方法 重启ftp 参考 问题描述 近期在进行vxworks的相关环境搭建时打开FTP server总提示unknow error 由于没有详
  • 第七课:BootRom的烧录

    目录 2 5 烧录BootRom 2 5 1 P2020 e500核 上电启动及boot流程 2 5 2 烧录BootRom到NorFlash 2 5 2 1 CodeWarrior的介绍
  • 将 DKM 项目链接到内核映像 (VIP) 项目作为 VxWorks Workbench4 中的子项目/额外模块

    如何将 DKM 项目与内核映像 VIP 项目链接 加载 以便我可以从内核映像项目的 usrAppInit c 调用 DKM 项目 应用程序 的入口点函数 以在启动时自动启动应用程序 有人可以描述步骤或向我指出任何文档吗 将 DKM 项目添加
  • vxworks 中的 C++ 11

    我是VxWorks的新手 我正在VxWorks平台上使用C 开发一个软件 我想知道VxWorks编译器是否支持C 11标准 我问这个问题的原因是因为没有可用的shrink to fit std vector 函数 该函数是在c 11 标准中
  • 一个任务如何在多个 vxworks 队列上等待?

    我们有一个 vxWorks 设计 需要一个任务来处理来自两个消息队列 Q1 和 Q2 的消息 我们希望在两个队列上等待 无论哪个队列收到消息 都处理队列中的消息 我们希望避免轮询队列或使用可能导致其他队列填满的超时值 有没有办法做到这一点
  • 编译先前预处理的文件会更改输出

    我有一个源文件 我使用选项对其进行预处理 E and P 对于基于 vxWorks 的嵌入式平台使用 GCC 4 1 2 所有其他选项与我编译文件时相同 这些选项是 Wall march pentium nostdinc O0 fno bu
  • 如何将 ifconfig 命令的输出保存到缓冲区中?

    我必须使用 C 和 VxWorks 将命令 ifconfig 的输出保存到字符缓冲区中 我该怎么做 ifconfig 是一个 shell 命令 因此您应该能够使用 gt 将其输出重定向到文件 然后读取该文件 您还可以查看手册中的 重定向 S

随机推荐

  • 头文件中只能声明变量不能定义变量 而声明变量必须带extern,为什么头文件中变量的声明都没有加

    1 头文件中不可以放变量的定义 xff01 一般头文件中只是放变量的声明 xff0c 因为头文件要被其他文件包含 include xff0c 如果把定义放在头文件的话 xff0c 就不能避免多次定义变量 C 43 43 不允许多次定义变量
  • 四川麻将胡牌判定(Python、C#、C++)

    一下是三种判定四川麻将 xff08 血战到底 xff09 胡牌的算法 xff0c 主要思想是递归 43 回溯 Python写法 xff1a span class token comment coding utf 8 span span cl
  • 解决putty远程连接Linux拒绝访问的问题NetWork error:Connection refused

    远程连接出现拒绝访问 xff0c 一般情况是没有安装ssh 服务 xff0c 新装的系统需要自己手动安装ssh server 第一步 xff1a 检查linux系统是否安装了ssh server 在终端中输入 xff1a ssh local
  • VINS-Fusion KITTI数据集 GPS版跑通

    第一步 xff0c 打开ROS内核 首先要 进入工作空间 source catkin ws devel setup bash 然后启动内核roscore 运行启动文件 roslaunch vins vins rviz launch
  • 迭代牛顿-欧拉法——机器人动力学逆解

    迭代牛顿 欧拉法 牛顿欧拉法的步骤向外回归 xff08 outward recursion xff09 step 1step 2 向内回归 xff08 inward recursion xff09 step 3step 4 牛顿欧拉法的三种
  • ros自定义全局路径规划器并内置到ros工作空间

    ros自定义全局路径规划器并内置到ros工作空间 1 定义头文件2 类实现3 写好自己的cMakelist txt文件4 为我们的规划器写一个描述文件5 修改package xml文件6 运行catkin make进行编译 xff0c 如果
  • 从RRT到RRT*,再到Informed RRT*,路径规划算法怎么写

    从RRT到RRT xff0c 再到Informed RRT xff0c 路径规划算法怎么写 1 RRT算法1 1 假设1 2 RRT算法步骤与实现1 3 伪代码 2 RRT 算法3 Informed RRT 算法 做个正直的人 RRT中文名
  • VFH避障/局部路径规划算法

    VFH避障 局部路径规划算法 1 信度栅格 xff08 Certainty Grid xff09 2 势场法 xff08 Potential Field Methods xff09 3 VFH算法的前身 VFF xff08 Virtual
  • VFH+避障/局部路径规划算法

    VFH 43 避障 局部路径规划算法 1 第一部分 xff1a 映射到极坐标系VFH 43 对VFH的改进 考虑机器人的宽度 amp 对障碍物进行膨胀 2 第二部分 xff1a 二值化极坐标直方图VFH 43 算法对此提出了一种解决办法 二
  • 给树莓派刷入OpenWrt

    下载OpenWrt固件 进入OpenWrt官网 xff0c 进入固件列表 在选择框输入raspberry搜索树莓派的固件资源 xff0c 选择对应树莓派型号的下载链接 以3B 43 为例 xff0c 注意不支持一栏的提示 xff0c 可能产
  • VFH*避障/局部路径规划算法

    VFH 避障 局部路径规划算法 1 VFH 43 存在的问题 dead end2 VFH 算法2 1 VFH 算法概述2 1 1 VFH 的参数2 2 2 表示2 2 3 算法步骤 2 2 投影位置和方向2 3 代价函数2 3 1 k e
  • 新建ROS订阅者、发布者节点方法

    文章目录 1 新建一个该项目的工作空间 xff0c 并在其中创建一个文件夹src2 进入src文件夹 xff0c 并在其中创建一个package xff0c 运行如下命令即可3 返回上一层 xff0c 编译 xff0c 并source4 编
  • 基于光线跟踪的路径规划算法

    基于光线跟踪的路径规划算法 光线跟踪算法是我在 中国控制会议2022 上提出的一种全新的路径规划算法 这里附上论文链接 不自夸 xff0c 感兴趣的欢迎去阅读 xff0c 实现非常简单
  • ubuntu 20.04 配置cartographer 库

    ubuntu 20 04 配置cartographer 库 不要让别人占据你的大脑 一 安装Ceres 库1 安装依赖项2 下载源码3 编译源码4 安装 二 安装cartographer1 安装工具 xff1a wstool rosdep
  • 终于把前后端sm加解密以及加签验证调通了。

    终于把前后端sm加解密以及加签验证调通了 xff01 领导要求我对项目的数据传输安全考虑下 xff0c 因此就想到了对敏感字段做加密和对请求 响应做数字签名验证 网上看了很多文章 xff0c 可能是因为我对加密这块不了解 xff0c 感觉都
  • 【LeetCode】最接近原点的K个点 (优先队列PriorityQueue,快速排序的根据基准数分区思想(双指针法分区))

    LeetCode 最接近原点的K个点 xff08 优先队列PriorityQueue xff0c 快速排序根据基准数分区思想 双指针法分区 xff09 题目 xff1a 我们有一个由平面上的点组成的列表 points 需要从中找出 K 个距
  • 萌新解析正点原子悟空大四轴无人机ATKflight固件(持续更新中~)

    本博客用来记录学习ATKflight固件的学习过程 xff0c 本人萌新 xff0c 大佬们可以参考参考 本文默认已经了解FreeRTOS操作系统并且会简单的使用方法 xff0c 如果读者没了解过 xff0c 建议先看正点原子的FreeRT
  • FOC观测器之龙伯格观测器

    状态观测器 xff1a 根据控制理论 xff0c 如果一个系统能够完全通过其检测到的输出值来重构其系统状态 xff0c 则认为该系统是可观测的 其作用于无传感器转子的位置和速度的检测反馈 xff0c 再作用到PARK逆变换和转矩磁链控制上
  • VxWorks实时性能探究

    VxWorks实时性能探究 笔者最近在使用VxWorks操作系统 xff0c 由大名鼎鼎的风河 xff08 WindRiver xff09 开发 VxWorks操作系统是一款硬实时操作系统 xff0c 一直听闻其实时性能非常优秀 xff0c
  • VxWorks中的任务和进程线程的关系

    学过操作系统的 xff0c 对进程和线程应该是比较了解的 但是为了文章知识的完整性 xff0c 笔者先对操作系统中的进程和线程进行一些介绍 1 进程和线程的关系 为了不产生歧义 xff0c 先对一些易混淆的概念进行介绍 xff1a 代码 x