随笔分类 - 6S081
摘要:Large files 磁盘的最小单位是block,每个block大小为1024字节,而inode的大小为64字节。 所以每个block能够存放16个inode block0 为操作系统的引导区,文件系统不会对这个blcok进行任何修改 block1 是super block,用来记录元数据(blo
阅读全文
摘要:buffer cache 原来的实现是一个双向链表,每次进行文件的读写操作都要锁住整个表,显然大大降低了系统的并发度。 所以可以仿照Java中currentHashMap的思路,使用分段锁,每个hash桶上一个锁。 但是在进行缓存驱逐的时候需要注意死锁的情况。 比如我们哈希值为2的缓存块不存在并且哈
阅读全文
摘要:Uthread: switching between threads 前置知识:知道任何一种语言创建并运行线程的方式 以 Posix 为例 int pthread_create( pthread_t *tid, //指向线程ID的指针 const pthread_attr_t *atrr, // 指
阅读全文
摘要:RISC-V assembly a0-a7存放参数,13放在了a2中 编译器内联了这两个函数,从li a1,12可以看出来,编译器直接算出了结果,做了内联优化 0x630 0x38,即函数的返回地址 57616=0xE110 0x00646c72小端存储则为72-6c-64-00 对照ASCII码表
阅读全文
摘要:Speed up system calls 根据hints查看kernel/proc.c中的函数proc_pagetable // kernel/proc.c // Create a user page table for a given process, // with no user memor
阅读全文

浙公网安备 33010602011771号