Concurrency in Action: Managing threads
在上一篇笔记中,你已经了解了什么是线程,那么这一讲我们主要关注的重点就是:C++如何启动线程、等待线程结束以及如何管理线程。
7408 words
|
37 minutes
Concurrency in Action: Introduction
本系列笔记是关于如何使用C++写出多线程并发的应用以及关于C++对于多线程的特性、库工具做出解析。仍然需要注意的是,该系列的笔记只是个人理解下的观点,如有错误,请通过email发送信息给我(chenmiao.ku@gmail.com)。
4912 words
|
25 minutes
xv6: The Kernel Env
在上一节中,我详细介绍了xv6-riscv的start函数,里面对xv6-riscv的内核执行特权级环境、中断环境和定时器中断进行了一系列配置。现在,让我们来看看xv6-riscv内核态中的具体配置和实现。
1945 words
|
10 minutes
xv6: The Starter
在开始之前,我们需要知道的是,在start函数中,我们并未真正地进入内核。这是什么意思呢?实际上就是,start函数实际上还是属于引导程序的一部分,其最终的目的就是跳转到main函数中,从而进入内核态执行。同时,有一个最浅显的概念是:xv6-riscv的内核态是运行在S态的,而非M态,因此,我们从入口点转跳到start函数中时,其仍是M态。也就是说,start函数的另一个目的就是需要为进入main函数设置合适的环境配置。
6486 words
|
32 minutes
xv6: The boot loader
在我们正式介绍xv6-riscv源码之前,我们首先得了解一个操作系统的内存布局。也就是,xv6-riscv的入口点以及各个section的布局。
2143 words
|
11 minutes
rfc1951: DEFLATE Compressed Data Format Specification
2024-05-10
该规范定义了一种无损压缩数据格式,使用LZ77算法和哈夫曼编码的组合压缩数据,效率可与当前可用的最佳通用压缩方法相当。即使是对于一个长度任意的顺序呈现的输入数据流,数据可以被生成或消耗,而只需要有限的中间存储空间。该格式可以轻松地以一种未被专利覆盖的方式实现。
2660 words
|
13 minutes
rfc1952: GZIP file format specification
2024-05-09
本篇规范定义了一种无损压缩数据格式,与广泛使用的GZIP实用程序兼容。该格式包括循环冗余校验值(cyclic redundancy check, CRC),用于检测数据损坏。该格式目前使用DEFLATE压缩方法,但可以轻松扩展以使用其他压缩方法。该格式可以轻松地以未受专利覆盖的方式实现。
4287 words
|
21 minutes
DDCA: The Chapter 7 Reading
在本篇笔记中,我们为MIPS处理器架构开发了三种微体系结构:单周期、多周期和流水线。
9968 words
|
50 minutes