Linux pintos中与线程初始化相关的线程问题
我试图通读品多的来源。 在init.c文件中调用main之后,当调用thread_init时,它将指针移动到包含main方法的页面的开头。然后调用以下命令: 在thread.c文件的init_thread方法中设置memset t,0,sizeof*t 我需要知道,这是否清除了包含主要方法代码的内存内容Linux pintos中与线程初始化相关的线程问题,linux,multithreading,unix,linux-kernel,pintos,Linux,Multithreading,Unix,Linux Kernel,Pintos,我试图通读品多的来源。 在init.c文件中调用main之后,当调用thread_init时,它将指针移动到包含main方法的页面的开头。然后调用以下命令: 在thread.c文件的init_thread方法中设置memset t,0,sizeof*t 我需要知道,这是否清除了包含主要方法代码的内存内容 需要帮助….恐怕您的编程技能暂时无法解决此问题。我强烈建议您重新学习入门课程,尤其是C语言 我想你的意思是: init_thread (initial_thread, "main", PRI_D
需要帮助….恐怕您的编程技能暂时无法解决此问题。我强烈建议您重新学习入门课程,尤其是C语言 我想你的意思是:
init_thread (initial_thread, "main", PRI_DEFAULT);
>让我们看看iNITX线程:
init_thread (struct thread *t, const char *name, int priority)
首先,我们很容易看到main是线程的名称。与名为main的函数没有关系
{
enum intr_level old_level;
ASSERT (t != NULL);
ASSERT (PRI_MIN <= priority && priority <= PRI_MAX);
ASSERT (name != NULL);
memset (t, 0, sizeof *t);
这里,字符串main与strlcpy一起放置到位。首先,我没有要求解释memset、strlcpy等函数。我已经理解了它们。这个问题与pintos代码库有关,因此问题附带了一个上下文。在回答问题之前,请考虑上下文。Dude,说真的。你认为我是从哪里获取这些代码样本的?你好像被倾斜了。我只能建议你理性地看待这个问题。我确实彻底地回答了这个问题。
t->status = THREAD_BLOCKED;
strlcpy (t->name, name, sizeof t->name);