Home avatar

翼仔的博客

MIT 6.S081 Multiprocessors and locking

1 why lock防止多核并行运行下的 race condition 导致的错误。 内核中的数据是典型的 concurrently-accessed 的数据。 2 race condition and how the lock avoid itA race condition is a situation in which a memory location is accessed concurrently, and at least one access is a write. Locks

834. 树中距离之和 (Hard)

1 问题描述834. 树中距离之和 (Hard) 给定一个无向、连通的树。树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges , edges[i] = [aᵢ, bᵢ] 表示树中的

无向图形式组织的树

1 引入如 数组形式组织的树 中所说,树一般以链表结点的形式组织,定义如下: cpp struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x): val(x), left(nullptr), right(nullptr) {} }; 也可能以数组的形式组织,即使用 $parent$ 数组

MIT 6.S081 Page faults

1 概述这一章主要聚焦于,我们利用 virtural memory 和 page fault 这两个机制,能够实现一些什么样的有意思的优化。 虚拟内存的有两大优势: Isolation,保证每个进

Xv6 Lab6: Copy-on-Write Fork for xv6

1 思路经过 lab5: lazy page allocation 之后,对 xv6 的 page fault 的处理,算是有所了解了。 今天这个 COW 实验,在 2020 年的课程视频中有对思路的讲解,可以先看看 课程翻译,厘清一下思路

Xv6 Lab5: lazy page allocation

1 前言这个实验只有 2020 年的才有,2021 年的课程中是没有的,但是感觉这个实验还是挺有意义的,因此用 docker 创建了一个 debian 12 的容器,在容器中搭建了 2020 的实

Xv6 Lab4: Traps

1 RISC-V assemblyWhich registers contain arguments to functions? For example, which register holds 13 in main’s call to printf? a2 寄存器,函数调用时,参数从左到右会依次保存在 a0, a1, a2, a3 寄存器,似乎是一直到寄存器 a7 的。 Where is the call to function f in