MIT6.S081 Lab: Xv6 and Unix Utilities
这是 MIT6.S081 的第一个 Lab ,目的是为了让学生熟悉 Xv6 和 Unix 的一些实用程序,例如 sleep find xargs 等。 sleep 这一关是实现 sleep 命令。由于在 user/user.h 目录中给出来了可以直接由 C 语言调用的...
这是 MIT6.S081 的第一个 Lab ,目的是为了让学生熟悉 Xv6 和 Unix 的一些实用程序,例如 sleep find xargs 等。 sleep 这一关是实现 sleep 命令。由于在 user/user.h 目录中给出来了可以直接由 C 语言调用的...
最近开始学习操作系统的相关知识,选择学 MIT6.S081 的课程。 首先在 课程官方网站 上拉取仓库配置环境。 $ git clone git://g.csail.mit.edu/xv6-labs-2020 $ cd xv6-labs-2020 $ git checkout util $ make qemu make 时发现有报错: user/sh.c: In function ‘r...
高中第一次看到在 C 语言中嵌入汇编语言时,我就觉得它非常好玩,到大学刚开学的时候,我甚至有使用它的需求,可惜直到现在我才抽出时间开始学习它。 分...
最近在学习汇编语言,和朋友聊天时聊到了 C 语言中的变长数组,想知道在汇编后是什么样子的。 变长数组(Variable-length array) 可变长数组是...
最近看到了一些关于侵入式和非侵入式链表的讨论,决定研究一下它们两个。 侵入式和非侵入式链表的区别 这里的侵入是相对于链表的指针域来说,所以最主要...
继续学习 OpenMP 的使用,尤其是一些较新版本。 OpenMP 4.0 Controlling OpenMP thread Affinity 因为很多硬件如今是 NUMA 结构,分配线程的位置可以很大程度上影响性能。 与核绑定有关的 OpenMP 结构 proc_bind (master |...
写 OpenMP 的时候总是感觉怪怪的,不知道什么时候该用什么,所以最近系统化地看一遍 OpenMP 的使用,主体为 OpenMP 2.0 和 3.0。 What is OpenMP? OpenMP Model 每个线程都有可以访问全局的共...
C 语言没有原生支持异常处理,但是可以使用setjmp和longjmp函数实现类似try ... except的功能。 本文主要参考: C Interfaces and Implementation Implementing exceptions in C setjmp.h...
最近本来在看 CSAPP 后面的内容,但突然发现自己前面可能还有一些知识掌握不完全,因此做一下 Lab 检验一下。 准备工作 在 CSAPP 的官网上找到 Lab,下载 Self-Study Hand...
联创 Lab 组新人任务第一弹。 关于斐波那契堆 结构与特点 斐波那契堆是由一组最小堆有序树构成的。每个节点的度数为其子节点的数目。树的度数为其根节点的度...