首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块、进程和线程?

模块、进程和线程?
EN

Stack Overflow用户
提问于 2014-11-18 17:51:53
回答 3查看 2.8K关注 0票数 2

我对嵌入式固件设计中使用的术语很好奇。目前,我正在开发一个使用WinCE 7的项目。研究现有的代码,我已经浏览了多个高级和低级文档,讨论了模块、进程和线程。我决定做一些研究,以便能够将定义与现有的代码体系结构联系起来。

我真正理解(或认为我理解)的是,线程是进程的子进程,即进程由线程或轻量级进程组成。进程的功能是单击microsoft图标,并根据需要执行相应的线程。线程是一个小的、集中的进程,它处理主进程的一个特定部分。如果我对线程和进程的理解是错误的,请纠正我。

我迷失的地方是过程和模块之间的区别。如果进程是执行任务所需的线程,例如单击MS Word图标,那么什么是模块?

他们描述固件的方式是说:“系统架构将由7个模块组成,每个模块负责数据存储、数据处理、用户界面等特定功能.”。由此,我认为,在我的visual studio项目的子项目文件夹下列出的这些“模块”是高级系统设计,每个模块都包含组成进程的子文件(..cpp/.h),在这些进程中包含线程(函数/类等)。我的理解正确吗?

提前谢谢,很抱歉有这么长的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-18 19:00:47

您似乎试图用特定的用法来描述进程和线程。例如。“进程的功能是单击microsoft图标”和“线程是一个小的、专注的进程,负责处理主进程的特定部分。”

进程基本上是执行代码所需的资源集合。进程将拥有内存、包含要执行的代码的文件句柄以及“线程”。线程是实际执行的东西,使用进程所拥有的其他资源。

当您运行一个程序时,操作系统使用线程和其他资源创建一个进程,并在代码中的特定入口点启动该线程执行所需的代码。从那时起,程序就对它所调用的函数或创建的对象负责。它甚至可以向操作系统发送消息,要求操作系统启动更多线程,甚至完全独立的进程,参数由原始代码指定。

要了解更多细节,您可以看到维基百科,或者您可能只想拿一本关于操作系统的教科书。

正如你所使用的,“模块”这个词并没有一个特别严格的定义。它只是程序组织的一个单位。该程序的架构师或开发人员负责根据他们希望如何组织项目以及他们希望组件如何相互操作来决定这对他们的程序意味着什么。在帮助组织代码方面,将模块看作是一个类似于函数或类的模块,一个比其他组织特性高出一步的模块,而不一定包含在语言语法中,比如类或函数。

项目的组织单元(模块、类、功能等)与进程和线程之间也没有任何固定的关系。一个程序可以使用任何它认为最适合它的进程和线程来执行它喜欢的任何代码。

例如,程序的设计可以使其为每个模块启动一个线程,并让每个线程从该模块运行一个特定的“主”函数。然后,这些模块通过在线程之间传递消息来实现互操作。或者另一个例子,程序可以为所有模块设置一个共享线程池,以便根据需要访问和使用。

模块如何共享执行资源(进程和线程)并相互通信完全取决于项目的设计人员。这些细节应该被记录下来,尽管这些文档很可能是在假定读者熟悉通用模式的情况下编写的。由于您不熟悉这些模式,您可能需要得到其他开发人员的帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-11-18 18:18:50

模块可以有多种含义,这通常意味着某种类型的软件组件,在某些情况下它只是一个文件,它可以是源文件或可执行文件,或者是文件集合,可能是文件夹中的所有文件。“模块”一词的另一种用法是“模块化”编程,其中模块是函数或函数集合,这似乎与由7个模块组成的设备的示例相吻合。

对于Windows,每个进程都有自己的(虚拟)内存空间,而线程共享进程的公共(虚拟)内存空间。对于只有平面物理地址空间(没有虚拟内存)的嵌入式系统,主要区别是进程被启动,然后这些进程启动线程。对于一些嵌入式系统,旧的术语多任务处理有时用于描述软件,特别是在硬盘等设备中,多任务处理软件的主要部分是在启动时启动的(一些诊断软件可以从硬盘驱动器的受保护区域动态加载并根据需要运行)。

票数 1
EN

Stack Overflow用户

发布于 2014-11-20 18:22:38

Windows CE上的进程(通常是Windows中的进程)是应用程序的私有地址空间。线程是一个执行流。进程中可能有多个线程,主线程决定进程的生存期。如果退出它(WinMain函数),则进程将关闭,并释放分配给它的所有资源。模块是包含当前加载在内存中的代码的二进制文件。它可以是一个exe文件(用于启动进程),也可以是一个动态链接库(dll)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27000718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档