问题标签 [xv6]

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 投票
2 回答
968 浏览

xv6 - 如何在 qemu 上构建 xv6 操作系统

我正在尝试使用 QEMU 在 linux 上构建 XV6 操作系统,但是每当我在终端上键入 make QEMU-nox 时,它都会给出错误“没有规则来制作目标 qemu-nox”我知道我已经正确安装了 qemu。谁能告诉我出了什么问题?还有什么命令可以让 XV6 运行?

0 投票
2 回答
1802 浏览

operating-system - 如何将两个虚拟地址空间映射到同一个物理地址范围?

我认为他们可能会覆盖彼此的数据。我知道两个相同的虚拟地址空间可以映射到物理内存。

0 投票
0 回答
2209 浏览

xv6 - 如何在 xv6 中制作新的调度程序?

我是 XV6 的新手,所以请耐心等待:D。我想制作一个新的调度器,它混合了两个调度器多级反馈队列(MLFQ)和另一个调度器彩票调度器。

基本思想很简单:构建一个两级调度器,首先将作业放入高优先级队列。当作业在第一个队列上使用其时间片时,将其移动到较低优先级的队列;低优先级队列上的作业应该在放弃 CPU 之前运行两个时间片。一个进程拥有的票越多,它运行的越多。每个时间片,随机抽奖决定抽奖的中奖者;该获胜过程是在该时间片内运行的过程。

我需要几个新的系统调用来实现这个调度器。

第一个是 int settickets(int num) ,它设置调用进程的票数。默认情况下,每个进程应该得到一张票;调用此例程使得进程可以增加它收到的票证数量,从而获得更高比例的 CPU 周期。如果成功,此例程应返回 0,否则返回 -1(例如,如果用户传入小于 1 的数字)。

第二个是 int getpinfo(struct pstat *) 。此例程返回有关每个正在运行的进程的一些基本信息,包括它被选择运行的次数及其进程 ID,以及它所在的队列(高或低)。

有什么帮助吗?任何可以帮助的lniks。

0 投票
1 回答
1701 浏览

c - XV6- 循环调度器

我正在我的 xv6 中实现一个新的调度程序,为此我需要了解它是如何工作的第一个,我面临一个有线问题,我无法真正理解 for 循环如何抛出进程

这是原始代码:


所以我尝试了一个简单的事情,我做了for循环,第一个应该循环抛出所有proc并计算它们而不做任何其他事情,第二个应该循环并像原来的那样运行它们,事情就是这样没有像我预期的那样工作,发生的事情是它从第一个 for 循环运行一个循环,然后从第二个循环运行一个循环,依此类推

} }


输出是这样的,


为什么会这样?

0 投票
2 回答
1369 浏览

c - C函数说明

有人可以向我解释一下这个函数的语法吗?其中 SYS_fork 是某个常数,而 sys_fork 是一个函数。

谢谢!

0 投票
3 回答
2627 浏览

c - 基于LCG的伪随机数发生器

我想在 xv6 中实现伪随机数生成器。我正在尝试实现线性同余生成器算法,但我不知道如何播种它。这是我的一段代码。我知道这段代码行不通,因为 X 并没有在全球范围内发生变化。我不知道该怎么做。

0 投票
0 回答
1701 浏览

scheduler - xv6 中的调度程序

我正在尝试在 xv6 中实现 MLFQ 和彩票调度程序的混合。我遇到的问题是我正在制作一个函数,该函数计算队列中具有高优先级的进程总数及其票证的总和。当我在循环中打印 no_of_tickets 时,它会打印正确的值。但是当我在返回值之前打印它时。它打印零并进入永远循环。这是我的代码

0 投票
1 回答
3265 浏览

xv6 - 当进程在 XV6 OS 中调用特定系统调用时,如何添加系统调用以获取特定系统调用的计数

有人可以帮我在 XV6 中添加一个名为 getcount(system call) 的系统调用吗?它有一个参数系统调用。当进程进行系统调用时,它应该增加计数并应该跟踪计数。过程完成后应显示。

0 投票
1 回答
177 浏览

operating-system - 为什么像limit和base这样的字段分别存储在os的gdt中?

rt,比如在xv6代码mmu.h中,segdesc就是这样设计的

为什么base被定义为base_15_0、base_23_16、base_31_24,而不是'uint base'?

我想这部分是因为每个子字段都有特殊的含义,所以分开存放而不是整体存放方便访问。但我不确定猜测是否完整或正确

0 投票
1 回答
260 浏览

c - 将 4 char 解释为整数

我有一个返回 n 个随机字节的函数。为了测试,我希望它产生 4 个随机字节,然后将整数的 4 个字节分配为随机字节。我有一些可行的方法,但对于我正在尝试做的事情来说,这似乎是过多的语法。我只是想看看它是否真的有必要,或者是否可以以更好的方式完成

注意:这是在xv6中完成的,没有涉及到include