c – 启动时多线程?

c – 启动时多线程?,第1张

概述我们正在开发一个非常低级的应用系统,它在 *** 作系统启动之前运行,实际上是一个启动应用程序. 问题是我们应该如何利用CPU核心/线程? 我们将运行多少线程? 有可能吗?!有没有链接/教程? 由于您在启动 *** 作系统之前谈论线程,我将假设您还没有内核可用.这意味着没有系统调用,所以没有fork()或clone().然而,出于这个答案的目的,我还假设您已经设置了A20门,GDT,受保护(用于IA-32)或长( 我们正在开发一个非常低级的应用系统,它在 *** 作系统启动之前运行,实际上是一个启动应用程序.
问题是我们应该如何利用cpu核心/线程?
我们将运行多少线程?
有可能吗?!有没有链接/教程?解决方法 由于您在启动 *** 作系统之前谈论线程,我将假设您还没有内核可用.这意味着没有系统调用,所以没有fork()或clone().然而,出于这个答案的目的,我还假设您已经设置了A20门,GDT,受保护(用于IA-32)或长(用于x86-64)模式,等等上.如果您不知道这些是什么,我们可能不应该在开始之前讨论线程.

您可以使用 *** 作码和技巧让您的处理器使用其他内核,从而直接实现线程.您可以在Intel x86中找到所有这些东西(您正在使用x86,是吗?如果您使用的是其他架构,则显然需要一套不同的手册)手册:http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf

对于这样的事情没有教程的原因,坦率地说,它不是很有用.在将内核加载到内存之前设置的全部内容是使内核更容易加载到内存中.线程并不完全有助于实现这一目标.简单地让内核处理这种低级实现要求是可取的,这样你就可以使用fork()和clone()系统调用来满足所有的线程需求.

编辑:Sinn的良好修正:fork()创建一个新进程,当然实际上并不是线程.

总结

以上是内存溢出为你收集整理的c – 启动时多线程?全部内容,希望文章能够帮你解决c – 启动时多线程?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存