问题标签 [nachos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
647 浏览

c++ - 错误:ANSI C++ 禁止在赋值中从“void *”进行隐式转换

我收到此错误消息,但我似乎不明白。ANSI C++ 禁止在赋值中从“void *”进行隐式转换是什么意思?. 而 Fork 函数只需要函数名和一个数字

线程::Fork(VoidFunctionPtr func, int arg)

错误信息:

地区:

72 - 78:

代码:

0 投票
1 回答
10850 浏览

c++ - 错误:文件中未定义的第一个引用符号

我收到此错误,但不知道如何解决。请求构造函数采用字符串类型,我认为我在 request.h 文件中没有正确实现。错误:

代码:

request.cc 文件,其中定义了构造函数

0 投票
1 回答
626 浏览

c++ - 使用线程时出现分段错误

我得到这个分段错误。

它将运行第一种方法,然后运行第二种方法的 printf 行,然后直接进入分段错误。我不明白为什么...我取消了之前的分配。我的第二种方法运行的那一刻,它会输出 prinf 语句:客户端然后分段错误

我的第一个方法运行

第二种方法运行

0 投票
0 回答
111 浏览

c++ - 从地址获取 Char** 的元素

我正在研究内核编程(Nachos),并且在将一组参数从用户程序传递到内核域时遇到了一些麻烦。与C、C++中的argc、argv类似,用户程序通过:

进入系统调用。在内核中,我只得到 args 所在的地址。现在,我的想法是我可以将此 int 转换为 char*,然后像在用户程序中一样通过下标访问数组。但这给了我无法访问内存错误。

有什么想法吗?

我尝试了几种访问 args 的方法,它们显示在这里:

此外

然后我尝试通过任一方式获取每个参数

或者

两者都给出内存访问错误。

0 投票
0 回答
246 浏览

java - 在 Eclipse 中运行 RSE java 项目

我目前正在学习一门操作系统课程,其中我们使用Nachos作为学习平台。它是用 Java 编写的,位于我通过 SSH 连接到的远程服务器上。我想在我的本地机器上使用 Eclipse 来调试这个项目,所以我使用 RSE 插件来设置它。

我可以成功查看/编辑所有文件,但是无法运行它。我设置了一个运行配置,将工作目录用作工作区${workspace_loc:_remoteHost_ _nachos/proj0},其中remoteHost是主机服务器的名称。当我使用资源管理器搜索工作区时,会生成此文件路径。

当我单击Run时,它说:

现在,我知道该资源确实存在,所以我不确定为什么会这样。我按照一些说明进行了设置,但它们适用于本地存储的项目。我猜这是因为它是一个远程项目?我做错了吗?我对 Eclipse 不太熟悉,所以我一定在这里遗漏了一些东西。

0 投票
0 回答
405 浏览

nachos - 安装 nachos 4.0 c++ 版本时出错

  1. 我一直在尝试安装 nachos 4.0(c++ 版本),但在运行“make”命令时,出现以下错误:

    gcc -E -I../userprog -I../threads start.cc > _/strt.s mips-xgcc/as -mips2 -o _/start.o /strt.s make[1]: execvp: mips -xgcc/as: Permission denied make[1]: * [ /start.o] Error 127 make: * [all] Error 2

我还尝试将所有权限授予上述文件夹(mips-xgcc),但无济于事。

  1. 我也对运行用户进程有疑问。测试文件夹中有一个示例代码,它执行矩阵乘法。要运行这个程序,需要将 .coff 格式的二进制文件转换为 .noff 格式(其中 .coff 是 linux 中任何 a.out 文件的格式)。我的疑问是,由于示例代码包含 MIPS 架构特有的语句(例如:“matmult.c”中的 Exit(C[Dim-1][Dim-1])),我们如何首先将程序编译为普通 gcc 然后使用 coff2noff 将其转换为“.noff”格式。

用户级进程是否可能因为“1.”中提到的错误而无法运行?

任何帮助,将不胜感激。

谢谢你

0 投票
1 回答
3066 浏览

c - 在 gcc 中初始化数组,未定义对“memcpy”的引用

我在 Nachos3.4、Centos 6.0 中编写 C,由 gcc 2.95.3 编译,

我使用的命令行是gmake all

当我编译这个时,一切都很好


但是当我这样做时,它说undefined reference to 'memcpy'

问题出在哪里,我该如何解决?

0 投票
1 回答
2685 浏览

c - 在 C 中编译:对“memcpy”的未定义引用

我正在与 Nachos 一起做一个学校项目,我收到了一些奇怪的错误。你可以在这里看到我的代码:只是 c 文件,如果你需要更多,请让我知道

控制台的输出如下所示:

在我的整个 Nachos 项目文件夹中,没有一次调用“memcpy”(我在文件搜索中使用括号进行了查找)。

这是第 804+ 行:

0 投票
4 回答
946 浏览

c++ - C++ 在我的自定义对象数组中不匹配 'operator='

我有一个名为 KernelLock 的类,我正在创建一个名为 myLockArray 的 KernelLock 数组。我这样声明:KernelLock myLockArray[150];

当我尝试向 myLockArray 添加新的 KernelLock 时,出现上述错误。这是我得到错误的确切行:

这是确切的错误:

如果有帮助,我正在通过 Nachos 使用 gcc 进行编译。

0 投票
1 回答
2492 浏览

java - 在 NACHOS OS 中实现 KThread 类

我正在尝试在 nachos OS 中实现 KThread.join() 方法。我的示例代码片段如下:

我的问题是如果我创建一个父线程并在其中创建一个子线程并调用 child.join() 方法,那么父线程会发生什么?据我说,它会进入睡眠状态,直到子线程完成它的任务。我对吗?我对此还有一些问题:

  1. 什么时候会调用 finish() 方法?是否同时为父线程和子线程调用?
  2. 在finish() 方法中,我注释掉的行中实际做了什么?