摘要: 这里讲讲有关锁的基础知识点 coordination 为啥需要coordination?当我们在写线程代码时,有些场景需要等待一些特定的事件/条件,或者不同的线程之间需要交互,考虑这样一种情形:有一个进程从pipe中读数据,需要等待一个pipe不空的事件,所以就有: void busy_wait() 阅读全文
posted @ 2022-07-15 15:27 我是小BH 阅读(244) 评论(0) 推荐(0)
摘要: Lab9 File System 由于本人这段时间忙于其他事务,这一篇可能会写得比较简略,并且文件系统的有关知识和前面课程的知识不同,文件系统的知识十分庞杂,相应的笔记都会记录在另一篇文章中。 1. Large files(moderate) 1.1 题目 在原始xv6中,每个inode有13个bl 阅读全文
posted @ 2022-07-15 15:26 我是小BH 阅读(137) 评论(0) 推荐(0)
摘要: Lab10 mmap(hard) (期末复习操作系统的时候,过于无聊,因为题目都写不来,于是做了这个lab,比做题有意思多了。这个实验是hard,不过我做的很顺利,感觉有一种自己变强的假象hhh) void *mmap(void *addr, size_t length, int prot, int 阅读全文
posted @ 2022-07-15 15:23 我是小BH 阅读(137) 评论(0) 推荐(0)
摘要: Lab7 Multithreading ~~迄今为止做到的最简单的lab~~ 1. Uthread: switching between threads(moderate) 1.1 题目 可以算是对课程里讲的线程切换的简化实现版本。已知给了user/uthread.c和user/uthread_sw 阅读全文
posted @ 2022-07-15 15:19 我是小BH 阅读(104) 评论(0) 推荐(0)
摘要: Lab5 xv6 lazy page allocation 1. Eliminate allocation from sbrk()(easy) 1.1 题目 删除sbrk系统调用中的页面分配代码,旧的sbrk将进程的内存大小增加n个字节,然后返回新分配区域的开始部分(即旧的大小),新的sbrk应该只 阅读全文
posted @ 2022-07-15 15:17 我是小BH 阅读(148) 评论(0) 推荐(0)