Software Test HOMEWORK01: In the previous operating system project, we need to enlarge the xv6 file distribution system. In this allocation, it will i ...
分类:
其他好文 时间:
2017-02-26 18:54:04
阅读次数:
323
xv6/bootasm.S xv6/bootmain.c ...
分类:
其他好文 时间:
2016-08-28 11:10:49
阅读次数:
269
1、每个进程通过时钟中断出发trap.c中的 if(proc && proc->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) yield();来强制把这个进程置为Runnable状态,yield的实现如下: acquire(&ptable.l ...
分类:
其他好文 时间:
2016-06-10 17:36:22
阅读次数:
199
1、在xv6 内核中 通过 nm kernel | grep _start 找到kernel的起始地址是0010000c 2、 br * 0x0010000c 设置断点,(如果在函数start处设断点就是 br start) 3、c 继续执行到这个断点 4、查看寄存器,找到通过esp找到程序在内存中 ...
分类:
数据库 时间:
2016-06-10 16:18:32
阅读次数:
386
Xv6使用lazy allocation当进程需要更多的内存的时候,调用malloc申请更多的堆内存,而系统调用sbrk()完成该工作但是有的进程会一次申请大量的内存,但是又可能根本用不到,比如说sparse array所以说复杂的内核涉及会将实际的allocation的工作推迟到实际用的时候,发生...
分类:
其他好文 时间:
2016-01-06 15:49:24
阅读次数:
204
这一部分要实现抢占式调度和进程间通信 前面的调度是进程资源放弃CPU,但是实际中没有进程会这样做的,而为了不让某一进程耗尽CPU资源,需要抢占式调度,也就需要硬件定时 但是外部硬件定时在Bootloader的时候就关闭了,至今都没有开启 而JOS采取的策略是,在内核中的时候,外部中断是始终关闭的,而...
分类:
其他好文 时间:
2016-01-06 15:40:22
阅读次数:
238
这里要实现的就是UNIX标准系统调用中的fork,核心当然是copy on write技术 至于为什么采用copy on write,是因为子进程在被创建之后很可能立刻执行exec()了,之前做的一系列的拷贝是无用功 所以说,当创建一个新的子进程的时候,只需要拷贝父进程的内存映射(页表)就可以了,而...
分类:
其他好文 时间:
2016-01-06 15:33:26
阅读次数:
209
这一部分是希望能够处理页错误、断点和系统调用处理系统页错误在发生了page fault之后,进入到系统中断中,然后经过_alltraps,进入到trap,再经过trap_dispatch分发,应该对中断类型为T_PGFLT的中断进行处理当然,页错误也有内核页错误和用户页错误处理断点在JOS中,断点中...
分类:
其他好文 时间:
2016-01-06 15:27:23
阅读次数:
179
这一部分要实现的是对多核处理器的支持,然后实现系统调用只喜欢用户应用创建新的应用,而且还要实现round-robin调度算法Multiprocessor supportjos中对CPU进行了抽象要描述一个CPU, 需要知道id,运行状态,当前正在运行的进程所有的cpu数目放在cpus数组中接下来则是...
分类:
其他好文 时间:
2016-01-06 15:27:01
阅读次数:
479