加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 启动时多线程?

发布时间:2020-12-16 10:25:15 所属栏目:百科 来源:网络整理
导读:我们正在开发一个非常低级的应用系统,它在操作系统启动之前运行,实际上是一个启动应用程序. 问题是我们应该如何利用CPU核心/线程? 我们将运行多少线程? 有可能吗?!有没有链接/教程? 解决方法 由于您在启动操作系统之前谈论线程,我将假设您还没有内核可
我们正在开发一个非常低级的应用系统,它在操作系统启动之前运行,实际上是一个启动应用程序.
问题是我们应该如何利用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()创建一个新进程,当然实际上并不是线程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读