这里可能没有你想看的...
【数据删除】
08
05
后缀自动机(Suffix Automaton) 后缀自动机(Suffix Automaton)
翻阅网络资料两天后顿悟,遂写下心得。 参考资料 OI Wiki 知乎。并贴心地给出了构建过程的中间形态 #性质 关于**后缀自动机(SAM)**的所有概念,其实网上说的都已经差不多了。个人总结出以下几个关键的性质: 在
2024-08-05
04
19
03
31
21
TCP Things TCP Things
聊聊传输控制协议(TCP, Transmission Control Protocol)。 #简述 TCP 位于传输层,是面向连接且基于字节流的可靠协议。 所谓面向连接,就是指如果使用 TCP 协议进行数据传输,那么必须在数据传输之前进行
03
CS149 の 笔记 CS149 の 笔记
并行计算。>>> 传送门 <<< #Lecture 1: Why Parallelism 很早以前实现并行的性价比并不高,因为人们只需要等最新的 CPU 出来就行。厂商通过以下两种方式提升 CPU 性能
2024-03-03
11
13
.C 文件の编译过程(Compile Process) .C 文件の编译过程(Compile Process)
对于一个程序员而言,不仅仅要知道代码是怎么写的,还得知道你的源代码文件是怎么经过一系列操作变成可执行文件的。 参考神书《CSAPP》 #整体流程 本文将以以下程序为基础进行分析。 main.c#include <stdio.h&
2023-11-13
09
C++ の 标准模板库(STL) C++ の 标准模板库(STL)
标准模板库(Standard Template Library, STL)是一个 C++ 软件库,大量影响了 C++ 标准程序库但并非是其的一部分。其中包含 5 个组件,分别为迭代器、容器、容器适配器、算法、函数。 #迭代器 #容器 #s
2023-11-09
08
设计模式 设计模式
设计模式是软件设计中常见问题的典型解决方案。每个模式就像一张蓝图,可以通过对其进行定制来解决代码中的特定设计问题。 #创建型 #单例模式 单例模式保证一个类只有一个全局共享的实例,并提供一个访问该实例的全局 API。 所有单例的实现都包含
2023-11-08
04
6.s081 Lab9 Mmap 6.s081 Lab9 Mmap
最后一个,也是最有挑战性的一项 coding 任务,是所有前置 lab 的知识综合。 #Preparation 切换到对应分支 $ git fetch $ git checkout mmap $ make clean 我们需要实现的 mm
2023-11-04
02
6.s081 Lab8 File System 6.s081 Lab8 File System
现在开始进入文件系统的阶段。 #Preparation 切换到对应分支 $ git fetch $ git checkout fs $ make clean #Task1: Large files 该任务要求我们为 inode 实现二级间
2023-11-02
01
6.s081 Lab7 Lock 6.s081 Lab7 Lock
这个 lab 就是对原先的并发控制进行优化。 #Preparation 切换到对应分支 $ git fetch $ git checkout lock $ make clean #Task1: Memory allocator 原来的内存
2023-11-01
10
31
6.s081 Lab6 Networking 6.s081 Lab6 Networking
这里要我们在软件层面实现数据包的收发操作。 #Preparation 切换到对应分支 $ git fetch $ git checkout net $ make clean #模拟网络 我们将使用名为 E1000 的网络设备来处理网络通信
2023-10-31
30
6.s081 Lab5 Multithreading 6.s081 Lab5 Multithreading
现在进入操作系统的另一大特性:并发。 #线程切换 in xv6 在 xv6 中,每个进程都可以视为有一个主线程,逐行运行指令,享有所有寄存器的使用权。然而,时间片到期,也就是进程收到时钟中断后,会调用 yield() 函数自愿让出 CPU
2023-10-30
30
6.s081 Lab4 Copy-on-Write Fork for Xv6 6.s081 Lab4 Copy-on-Write Fork for Xv6
课上谈了个 COW 优化策略,这里就要具体实现了。 #关于 COW(Copy-On-Write, 写时拷贝) #The Problem The fork() system call in xv6 copies all of the pa
2023-10-30
26
6.s081 Lab3 Traps 6.s081 Lab3 Traps
现在是,陷入内核时间。 #Preparation 切换到对应分支 $ git fetch $ git checkout traps $ make clean #Task1: RISC-V assembly 第一个任务就是了解一下 RISC
2023-10-26
25
6.s081 系统调用流程 6.s081 系统调用流程
番外篇,探究通过 shell 运行命令时,系统调用到底是个什么流程。 #用户层是如何进行系统调用的 以 sleep.c 为例,在 lab0 中我们知道要修改 Makefile 中的 UPROGS 变量,并且 user/user.h 中也为
2023-10-25
24
6.s081 Lab2 Page Tables 6.s081 Lab2 Page Tables
在本 lab 中,我们将进行页表机制的探索。 #Preparation 切换到对应分支 $ git fetch $ git checkout pgtbl $ make clean #Task1: Speed up system calls
2023-10-24
23
6.s081 Lab1 System Calls 6.s081 Lab1 System Calls
本 lab 要求我们进行系统调用代码的编写。 #Preparation 切换到对应分支 $ git fetch $ git checkout syscall $ make clean 可以看到 Makefile 里内容都重置了,且测试脚
2023-10-23
2 / 5