归档
按时间浏览全部文章。
Java Lock:ReentrantLock、可中断获取与 Condition
理解 Java Lock 接口与 ReentrantLock 的获取、释放、中断、超时和多条件队列机制。
Java 并发问题:原子性、可见性与有序性
从原子性、可见性与有序性三个维度理解 Java 并发程序为什么会产生错误结果。
Java ReadWriteLock:共享读、独占写与锁降级
理解 ReentrantReadWriteLock 的读写互斥规则、锁降级以及 AQS 状态拆分方式。
xv6 Trap 机制
梳理 RISC-V Trap 的硬件支持,以及 xv6 从用户态进入内核、保存上下文并返回用户态的完整流程。
Java AQS:同步状态、等待队列与阻塞唤醒
理解 AQS 如何用同步状态、等待队列、CAS 和 LockSupport 构建 Java 锁与同步器。
Java Condition:条件等待、通知与队列转移
理解 Condition 如何与 Lock 配合,通过 await、signal 和多个条件队列实现线程协调。
Java 内存模型:happens-before 与可见性
理解 Java 内存模型如何通过 happens-before 规则定义跨线程的可见性与执行顺序。
Java ReentrantLock:重入、公平性与条件队列
理解 ReentrantLock 的重入机制、锁获取方式、公平策略、AQS 排队和 Condition 协作。
Java synchronized:用法、Monitor 与锁竞争
从互斥、可见性、锁对象、字节码、Monitor、锁膨胀与可重入理解 Java synchronized。
Java 线程池:参数、任务调度与拒绝策略
理解 ThreadPoolExecutor 的核心参数、任务提交流程、队列选择、拒绝策略与异常处理。
xv6 进程切换
以时钟中断为主线,梳理 xv6 从 usertrap、yield、sched 到两次 swtch 的完整进程切换过程。
英语学习:Anki+查拉查词+HypperTTS
学习英语的配置。
WebSocket
WebSocket的介绍。
TCP拥塞控制:快速恢复算法
记录自己关于TCP拥塞控制中快速恢复算法的理解。
Obsidian:RSS阅读与管理
在Obsidian中集成RSS功能,实现RSS的集中管理和阅读。
CS144 Checkpoint2
实现序号转换以及接收端的receive/send函数。
CS144 Checkpoint1
实现TCP层次结构中的Reassembler(重组器),用于将分组拼接成字节流。
CS144 Checkpoint0
实现get_URL请求Web数据,和TCP层次结构中的ByteStream。
2025-08-31
暑假结束,大二上新学期伊始。
MIT6.S081 Lab mmap
实现mmap和munmap功能。
MIT6.S081 Lab fs
对文件系统的inode扩容,并实现软链接功能。
MIT6.S081 Lab lock
通过更细致的数据结构和锁划分来减少锁的争用,从而提升执行效率。
MIT6.S081 Lab thread
实现线程切换,使用多线程加速程序运行,并实现一个屏障(barrier)。
MIT6.S081 Lab cow
通过Page Fault 来实现 Copy-On-Write Fork机制。
MIT6.S081 Lab traps
实现系统调用和中断处理,分析 trapframe 和上下文切换。
MIT6.S081 Lab pgtbl
探索 Xv6 页表机制,修改页表映射并打印信息。
MIT6.S081 Lab syscall
尝试在 Xv6 中添加系统调用,理解用户态与内核态的交互。
MIT6.S081 Lab util
添加一些简单的系统调用,主要涉及进程和文件描述符的知识点。
MIT6.S081 环境配置及踩坑
MIT6.S081环境配置以及踩坑补充。
2025-06-27
期末周的总结与假期的展望。
2025-06-08
开始准备期末考试,总结一下此前的学习。