C程序执行:它是在进程还是在线程中运行?

时间:2016-11-20 22:10:38

标签: c operating-system codeblocks

我使用代码块在C中运行示例hello world程序。

执行时会显示the process returned 0

我知道它是由操作系统运行的。

我想知道一些事情:

  1. 我执行的程序是否与单独的进程关联,或者操作系统是否为其分配了一个单独的线程?

  2. 在Windows 32位或64位中调用函数时,代码段寄存器是否也被推送到堆栈?

1 个答案:

答案 0 :(得分:0)

您的问题的答案取决于您查看流程的方式。

在传统流程模型中,流程是具有地址空间的可调度实体,您可以说您的程序执行了流程。

如果你想把这个传统模型看作一个有一个线程的进程,那么你的程序就会在线程上运行。

这只是一个文字游戏。

如果您在本机调度线程的系统上运行,那么您的程序存在于包含执行发生的线程的进程中。

64位没有段。