XV6 进程调度分析
进程调度主要代码在proc.c 另外trap.c syscall.c sysproc.c vm.c spinlock.c等文件中有相关部分。
主要特性总结如下:
0、中断可以保证单CPU中代码段的原子性,自旋则实现多CPU之间的互斥。
&[……]
进程调度主要代码在proc.c 另外trap.c syscall.c sysproc.c vm.c spinlock.c等文件中有相关部分。
主要特性总结如下:
0、中断可以保证单CPU中代码段的原子性,自旋则实现多CPU之间的互斥。
&[……]
LAB3:
Q1.What is the purpose of having an individual handler function for each exception/interrupt? (i.e., if all exceptions/interrupts were delivered[……]
12.03:
今天是发薪水的日子,看到自己银行卡里小小的数字达到了五位数,觉得比以前稍微富裕一些了.给父亲发短信,父亲说:恭喜你成为万元户.
12.04,12.05:
一觉醒来,周末就快完毕,只记得看过<ef – a tale of memories/melodies>,其他怎么过的毫无[……]
异常处理:
在开启分页的状态下,CPU执行线性地址到物理地址转化的过程中检测到如下条件,就会引起页异常(Page fault)int 14:
1、页目录或者页表项中的存在位为0;
2、当前程序没有足够的权限访问指定页面。
这时CPU会做以下操作:
1、将错误码压入栈中,在14号中断中只有最低三位有效[……]
1、 规定系统最大物理内存为16MB。
2、 应用程序使用0-640K虚拟内存,640K-1M是映射IO空间,1M以上的高位内存只有内核可以使用,4064-4096最高32[……]
Challenge 1: 大页机制的实现
没有在代码中实现,写了个步骤供参考:
0、先把预定义的PGSIZE之类的宏都更改为与大页相匹配的情况。
1、由于页大小变成了4M,所以要修改从代码,要内核4M处加载。
3、page_init()中内存布局也会发生对应变化,低端4M保留给实模式和IO映射,然后[……]