Rust生命周期与变形

最近对 rust 的生命周期有一些疑惑,在找资料学习的过程中自然就了解到由 rust 生命周期导出的 rust subtype、variance 的概念,对这一块儿的学习也解答了我一些对其他语言的问题,同时我也被认识的大佬赶鸭子上架,在 BUPT Rust Meetup 做了分享,keynote 讲稿在此

阅读更多

6.S081 lab10 mmap

mmapmunmap系统调用允许 UNIX 程序对其地址空间进行更为细致的控制。它们可用于在进程间共享内存,将文件映射到进程地址空间,并作为用户级page fault方案的一部分。在本实验室中,我们将在xv6中添加mmapmunmap系统调用,重点是memory-mapped files

阅读更多

6.S081 lab9 fs

Large files

本关需要为xv6添加对大文件的支持。xv6的 inode 默认使用 12 个直接块指针和 1 个间接块指针(指向一个存储着块指针的数据块),所以xv6支持的最大文件尺寸是12 + 1*256=268个 block。我们需要将一个直接块指针修改为双重间接块指针(执行一个存储着间接块指针的数据块),将xv6的最大文件尺寸扩展到11 + 1*256 + 1*256*256= 65803个 block。

阅读更多

6.S081 lab8 lock

在本实验室中,将重新设计代码以提高并行性。在多核机器上,并行性差的一个常见症状是高强度的锁竞争。提高并行性通常需要改变数据结构和加锁策略,以减少争用。您将对 xv6 内存分配器和文件块缓存进行改进。

阅读更多

6.S081 lab7 thread

本实验室将让你熟悉多线程。您将在用户级线程包中实现线程切换;使用多线程来加快程序的速度;并实现一个barrier

阅读更多