os161

    1热度

    1回答

    在配置和编译并安装我的ASST0后,始终使用sys161 kernel-ASST0。为什么sys161?

    1热度

    1回答

    地址空间和页表之间的关系是什么?我知道每个进程都应该有一个页表,它将虚拟地址映射到物理地址。但是地址空间是做什么的?在os161,地址空间是这样的: struct addrespace { vaddr_t as_vbase1; paddr_t as_pbase1; size_t as_npages1; vaddr_t as_vbase2; padd

    0热度

    2回答

    旗号声明,创造这样的 - static struct semaphore *done; done = sem_create("done",0); // semaphore value initialized to zero 现在的情况下,如果在上面执行 if(done==NULL) { //Something done here... } 条件会发生什么?由于完成设置为0做

    1热度

    1回答

    我想了解下面的代码是如何工作的。这是我的讲座幻灯片中的直接内容。这个P()和V()函数是我们在类(OS161)中使用的操作系统中信号量实现的一部分。我想你可能需要了解OS161来回答我的问题,因为它被广泛使用,希望有人能回答这个问题。 我这个代码与讲义的理解: X:在P()函数 1.当一个线程调用P(),我们禁止中断 2.检查,如果我们有流程如果count为0,那么我们去睡 3.b)如果count

    1热度

    2回答

    到结构我有一个struct ABC在一个文件中 struct abc { some variaables and functions } 我如下使用这个结构在其他的文件: struct abc *t = kmalloc(sizeof(struct abc)); 的kmalloc相当于malloc的 然后下面的错误发生: expected '=', ',', ';', 'a

    1热度

    1回答

    我试图调试os161,并且由于缺少调试信息而遇到麻烦。我的任何函数都没有行号信息,所以我可以做类似“b lock_acquire”的事情,但是当我做“s”时,它会说“单步执行直到退出函数lock_acquire, ”,它没有行号信息。当我尝试执行“l lock_acquire”时,我也会得到“无行号已知错误”,并获得“当前上下文中没有符号锁定”。当我在lock_acquire时输入“p lock”

    1热度

    1回答

    我一直在浏览OS/161中关于系统调用执行方式的代码。从我所看到的系统调用(例如reboot())实际上被OS/161内核转换为调用sys_reboot()。同样,致电fork()将被转换为致电sys_fork()。 我的理解是否正确? 谢谢。

    0热度

    1回答

    我已经完成了我的ASST0(hello world!)。但是,当我尝试做ASST1(同步)B请结果看起来像 - [email protected]:~/cs350-os161/os161-1.99/kern/compile/ASST1$ bmake cs350-gcc -g -Wall -W -Wwrite-strings -Wmissing-prototypes -Werror -st

    0热度

    1回答

    我想在我的OS/161代码中添加一个新的系统调用,但我很难找出添加原型的位置。我相信你应该将它添加到内核空间和用户空间,但我不确定哪些文件将原型放入其中。是否有指导说明如何在OS/161中添加示例系统调用? 作为一个测试,我试图添加一个函数printone(),当用户运行该程序时,它只会打印一个“1”。

    11热度

    2回答

    我正在学习不同类型的内存管理。我不明白在虚拟地址中有一个偏移位。还有为什么页面大小是2的权力? 我的主要困惑是: 给我一个在指令中用来访问某个虚拟地址的偏移量的例子吗? 我的第二个疑惑是: 通常的说法是,如果逻辑地址的大小是2^m,页大小是2^n,那么逻辑地址的高位m-n位指定页码。 在此先感谢