摘要:
Unix文件系统 当今的Unix文件系统(Unix File System, UFS)起源于Berkeley Fast File System。和所有的文件系统一样,Unix文件系统是以块(Block)为单位对磁盘进行读写的。一般而言,一个块的大小为512Byte或者4KB。文件系统的所有数据结构都 阅读全文
摘要:
本文将会详细介绍Xv6操作系统中虚拟内存的初始化过程。 基本概念 32位X86体系结构采用二级页表来管理虚拟内存。之所以使用二级页表, 是为了节省页表所占用的内存,因为没有内存映射的二级页表可以不用分配地址来存储。在这个二级页表结构中,每个页的大小为4KB,每个页表的大小也为4KB,每个页表项的大小 阅读全文
摘要:
锁是操作系统中实现进程同步的重要机制。 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域。所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据。 同步(Synchronization)是指让两个或多个进程/线程能够按照程序员期望的 阅读全文
摘要:
RISC V是源自Berkeley的开源体系结构和指令集标准。这个模拟器实现的是RISC V Specification 2.2中所规定RV64I指令集,基于标准的五阶段流水线,并且实现了分支预测模块和虚拟内存模拟。实现一个完整的CPU模拟器可以很好地锻炼系统编程能力,并且加深对体系结构有关知识的理 阅读全文
摘要:
1. 进程的基本概念 从抽象的意义来说,进程是指一个正在运行的程序的实例,而线程是一个CPU指令执行流的最小单位。进程是操作系统资源分配的最小单位,线程是操作系统中调度的最小单位。从实现的角度上讲,XV6系统中只实现了进程, 并没有提供对线程的额外支持,一个用户进程永远只会有一个用户可见的执行流。 阅读全文
摘要:
XV6操作系统是MIT 6.828课程中使用的教学操作系统,是在现代硬件上对Unix V6系统的重写。XV6总共只有一万多行,非常适合初学者用于学习和实践操作系统相关知识。 MIT 6.828的课程网站是https://pdos.csail.mit.edu/6.828/。XV6操作系统有官方文档,英 阅读全文
摘要:
This is an interesting question from one of the lab assignments in Introduction to Computer Systems, fall 2018 at Peking University. Problem Descripti 阅读全文
摘要:
Building Robust and Flexible Event System in Unity3D 1. Prerequisites 1.1 Observer Pattern According to Wikipedia, the observer pattern is a "software 阅读全文
摘要:
隐马尔可夫模型(Hidden Markov Model) 隐马尔可夫模型(Hidden Markov Model, HMM)是一个重要的机器学习模型。直观地说,它可以解决一类这样的问题:有某样事物存在一定的状态,但我们无法得知某个时刻(或位置)它所处在的状态,但是我们有一个参照事物,我们知道这个参照 阅读全文
摘要:
真实感海洋的绘制(三):水面的渲染 之前的两篇博客: 1. [真实感海洋的绘制(一):基于统计学模型的水面模拟方法][http://www.cnblogs.com/hehao98/p/8544121.html] 2. [真实感海洋的绘制(二):使用快速傅里叶变换加速波形计算][http://www. 阅读全文