这里可能没有你想看的...
10
19
面经 面经
个人的 面试经验整理。 C++ C 和 C++ 的区别 说实话这是个比较宏大的问题。要考虑这个问题,首先得明白什么才算「区别」。就面向对象而言,C 中也可以实现封装(成员函数可以用函数指针代替,构造/析构函数可以用工厂函数代替)、继承(
2023-10-19
11
进程间通信(IPC) 进程间通信(IPC)
为了保护操作系统中进程互不干扰,需要使用进程隔离技术,以防不同进程能够修改其他进程数据。但进程之间又不能完全隔离,需要一定的通信手段,于是开发出了进程间通信(IPC, InterProcess Communication)技术。 管道(P
09
切换进程/线程前后发生了什么? 切换进程/线程前后发生了什么?
该问题是进程与线程的区别中的一个核心问题。 进程有什么 一个进程需要存放若干数据,以及若干指令,那么首先其会有一片内存,在分页机制下,所有进程都必须有其独立的页表(PT, Page Table),从而完成虚拟地址到物理地址(用户地址空间)
07
09
23
Linux 常用命令 の Note Linux 常用命令 の Note
记录常用命令及对应的常用 option,方便查。 切换用户当前工作目录 - cd 全称为 change directory ### example: ## 绝对路径 cd /usr/bin ## 相对路径 cd ./foo/bar/di
2023-09-23
06
最长递增子序列 の O(nlogn) 最长递增子序列 の O(nlogn)
最长递增子序列(Longest Increasing Subsequence, LIS) 是非常经典的一个算法问题。 在计算机科学中,最长递增子序列(longest increasing subsequence)问题是指,在一个给定的数
2023-09-06
05
树状数组 树状数组
树状数组,也称作二叉索引树(Binary Indexed Tree)或 Fenwick 树。 它可以在 \(O(\log n)\) 的时间复杂度下实现单点修改与区间查询两个操作。 参考自 OI wiki。 无特殊说明,本文所有数组下标均
2023-09-05
08
20
TinyKV-Project4 Transaction TinyKV-Project4 Transaction
本 Project 需要我们实现基于 MVCC 的事务模块。 思路 Part A Mvcc Txn 需要实现的代码在文件夹 kv/transaction/mvcc 下。 这一 part 需要我们实现支持 MVCC(多版本并发控制, Mul
2023-08-20
20
TinyKV-Project3 Multi-Raft TinyKV-Project3 Multi-Raft
本 Project 需要我们实现多个存储节点之间的管理。 思路 Part A Leadership/Membership Change in Raft 需要修改的代码位于 raft/raft.go。 在 3A 中我们仅需修改 Raft 层
2023-08-20
14
TinyKV-Project2 RaftKV TinyKV-Project2 RaftKV
本 Project 需要我们实现基础 Raft 算法。 思路 Part A Raft 需要实现的代码在整个 raft 文件夹下。 这一 part 我们要实现三个模块,分别为 Leader election => 领导选举 Log
2023-08-14
13
TinyKV-Project1 StandaloneKV TinyKV-Project1 StandaloneKV
本 Project 需要我们基于 badger 实现一个独立存储引擎。 思路 Part A Implement standalone storage engine 需要实现的代码在 kv/storage/standalone_storag
2023-08-13
07
01
训练安排 训练安排
三分化,双循环。 周一 & 周四 胸: 杠铃平板卧推 4×8 杠铃上斜卧推 4×8 蝴蝶机夹胸 4×8 三头: 绳索下拉 4×8 周二 & 周五 背: 高位下拉 4×8 坐姿划船 4×8 俯身下压 4×8 二头
2023-07-01
03
21
CS144 Lab Note CS144 Lab Note
CS144 lab 记录过程。 环境配置 本课程所有 lab 均需要在 Linux 环境下运行,课程组提供了 4 种运行方式,直接照着 Instructions 来就好了。我这里因为实验室自带 Ubuntu 工作站,所以用了第三种方式,按
2023-03-21
06
02
C++ の 可变说明符(Mutable) C++ の 可变说明符(Mutable)
mutable 意为可变的,可以在非引用非常量非静态数据成员的声明中出现,允许被常量类对象修改。 类中的 mutable 先聊聊一个有趣的话题,关于 const 类成员函数有两大观点流派: bitwise constness:主张成员函
2023-03-02
01
Effective C++ の Note Effective C++ の Note
久仰本书大名,花了若干时间入门 C++ 后,终于可以拜读一下这部经典作品。 当 C++ 律师! 1. 视 C++ 为一个语言联邦 C++ 高效编程守则视情况而变化,取决于使用 C++ 的哪一部分。 C++ = C + Object-
2023-03-01
01
C++ の 异常处理(Exception) C++ の 异常处理(Exception)
异常,在操作系统中指的是指令内部出现的"内中断",如除数为零,地址越界等。这些情况在程序中也时有发生,C++ 为了应对偶发的程序异常事件,引入了异常处理机制。其基于三个关键字:try,throw 与 catch。 异常处理流程 一个完整的
2023-03-01
02
28
C++ の 泛型编程(Generics) C++ の 泛型编程(Generics)
泛型编程是程序设计语言的一种风格或范式,允许程序员在编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。在 C++ 里,这是与 OOP 并列的一大分支,通过模板来实现。 Why 模板? 现在有一个需求,就是写一个简单的 s
2023-02-28
3 / 6