在多数通用(分时)操作系统(如Linux,Windows)中,常听说线程、进程名词。而在多数实时操作系统(RTOS)(如uCOS,FreeRTOS)中,常听说是任务。它们到底有啥区别和联系呢!看下文。
概念
进程(Process)
是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
线程(英语:thread)
是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
任务
是指人们在日常生活、工作、娱乐活动中所从事的各种各样有目的的活动。在现代计算机中,“任务”也是基本工作单位,在多数实时操作系统(如uCOS,FreeRTOS)中,是实时操作系统 进行运算调度的最小单位。
通俗理解
举例说明:如果把计算机的操作系统比作一个大的工厂。进程就是工厂中的各个相互独立的车间,线程则是车间中的流水线工人。每个车间中至少有一个工人,也可以有多个工人。这些“工人”共享着这个车间中的所有资源。
像在FreeRTOS中,任务与线程的含义一致,都是 操作系统 进行运算调度的最小单位。在FreeRTOS上跑的整个程序即为一个进程,该进程中又包含着多个线程(任务),这些线程有些是系统自动创建的,有些为用户手动创建。
————————————————
版权声明:本文为CSDN博主「匠在江湖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46672094/article/details/125332579
|