系统相关
首页 > 系统相关> > VxWorks中的任务和进程线程的关系

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

作者:互联网

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

1、进程和线程的关系

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

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中只有一个进程(内存空间和资源分配),其任务的概念与线程相当。关于操作系统中进程、线程、和任务之间的关系

标签:操作系统,VxWorks,程序,任务,线程,进程
来源: https://blog.csdn.net/qq_41854911/article/details/116140807