- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 XV6 进程调度分析
<br />进程调度主要代码在proc.c 另外trap.c syscall.c sysproc.c vm.c spinlock.c等文件中有相关部分。<br />主要特性总结如下:<br /> 0、中断可以保证单CPU中代码段的原子性,自旋则实现多CPU之间的互斥。<br /> 1、系统先自构造一个init进程的数据保存起来待运行,构造init进程需要调用userinit()函数,构造其他进程则需当前进程调用sys_fork()(实际为fork()函数),这两个函数都需要使用allocpr
2010-12-31 19:02:00 3794 3
原创 [MIT6.828] LAB3总结
<br />LAB3:<br />Q1.What is the purpose of having an individual handler function for each exception/interrupt? (i.e., if all exceptions/interrupts were delivered to the same handler, what feature that exists in the current implementation could not be pro
2010-12-22 17:46:00 3653 7
原创 十二月记
<br />12.03:<br />今天是发薪水的日子,看到自己银行卡里小小的数字达到了五位数,觉得比以前稍微富裕一些了.给父亲发短信,父亲说:恭喜你成为万元户.<br />12.04,12.05:<br />一觉醒来,周末就快完毕,只记得看过<ef - a tale of memories/melodies>,其他怎么过的毫无印象...<br />12.06:<br />早晨的时候特别困,眼睛都睁不开.刷牙的时候才知道自己流鼻血,不知道是什么时候开始的,而且居然没有粘到被子上,应该流的
2010-12-19 01:43:00 1255 12
原创 [Linux内核完全剖析]第十三章 内存管理总结
<br />异常处理:<br />在开启分页的状态下,CPU执行线性地址到物理地址转化的过程中检测到如下条件,就会引起页异常(Page fault)int 14:<br />1、页目录或者页表项中的存在位为0;<br />2、当前程序没有足够的权限访问指定页面。<br />这时CPU会做以下操作:<br />1、将错误码压入栈中,在14号中断中只有最低三位有效。位0(P):0/1 页或者页表不存在/存在;位1(R/W):0/1代表读/写操作出错 ;位2(U/S):0/1代表用户/系统页。
2010-12-09 19:08:00 1007
原创 XV6内存布局
<br />1、 规定系统最大物理内存为16MB。<br />2、 应用程序使用0-640K虚拟内存,640K-1M是映射IO空间,1M以上的高位内存只有内核可以使用,4064-4096最高32M地址空间映射到不同的设备。<br />3、 每个应用程序都有自己的页表,页表的前160项(0-640K)内存是自己映射的,从640K到最高物理内存,其物理地址和虚拟地址是一致的,不过应用程序没有访问高于640K内存的权限。这样可以> 快速从应用层切换到内核层。
2010-12-06 19:38:00 2240 5
原创 [MIT6.828]LAB2 Challenge 总结
<br />Challenge 1: 大页机制的实现<br />没有在代码中实现,写了个步骤供参考:<br />0、先把预定义的PGSIZE之类的宏都更改为与大页相匹配的情况。<br />1、由于页大小变成了4M,所以要修改从代码,要内核4M处加载。<br />3、page_init()中内存布局也会发生对应变化,低端4M保留给实模式和IO映射,然后4M-8M是内核代码数据,8M-16M可以用来放置页目录以及物理页面数据结构,其他空闲。<br />4、用于页面映射的操作的pgdir_wa
2010-12-02 17:16:00 1978
Masm集成环境V1.5
2008-11-08
MASM6.15 V1.1
2008-03-02
MASM6.15v1.0
2008-01-09
MASM6.15 编译器
2008-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人