Posts
Miigon's blog
Cancel

记一次 C++ 核心语言标准中一个 issue 的发现和提交经历

该文章记录自己的一次发现一个 C++ 核心语言标准规定中,关于枚举量重定义的一个规则缺陷(defect)并提交的经历。所有对标准的引用以 N4901 草案为准(当时的较新版本)。 C++ 核心语言标准 N4901 草案 引言 问题本身是关于 enum 中枚举值 (enumerator) 的重复定义问题的。 例子如下: enum { ee, ee }; 上面的代码,无论...

[SZU] 数据库内核课程 PostgreSQL 12.5 源码安装避坑 guide

课程:2022 年下学期,秦建斌老师的《数据库内核原理与实现》课程。 示例环境:Ubuntu 20.04 LTS PostgreSQL 版本: 12.5 1. 准备 linux 环境/虚拟机/或Windows下使用wsl Linux/Mac 用户可直接编译,Windows 用户自行搜索 wsl 教程配置后,剩余流程同 Linux 用户。 Mac 用户需要用其他方式(homebr...

[mit6.033] 第二部分 LEC 7-12 Networking 笔记

这是我自学 MIT6.033 课程的第二部分:Networking 的笔记。 该课程共分为 4 部分:Operating Systems、Networking、Distributed Systems、Security 课程详细介绍可以查阅:https://blog.miigon.net/posts/mit6033-computer-system-design/ 笔记为学习过...

[mit6.033] 第一部分 LEC 1-6 Operating Systems 笔记

这是我自学 MIT6.033 课程的第一部分:Operating Systems 的笔记。 该课程共分为 4 部分:Operating Systems、Networking、Distributed Systems、Security 课程详细介绍可以查阅:https://blog.miigon.net/posts/mit6033-computer-system-design/ ...

MIT6.033 Computer System Design | 计算机系统设计

MIT6.033 Computer System Design (Spring 2021) 前置课程: 6.004 Computation Structures 计算架构 6.006 Introduction to Algorithms 算法导论 ps. 本课 6.033 Computer System Design 和 6.S081 Operatin...

杂记随笔:唤醒丢失问题 & 条件变量 vs 信号量

Scenario 考虑 producer-consumer 同步模式中的 receiver: receive(bb): acquire(bb.lock) while bb.out >= bb.in: release(bb.lock) # release lock before sleep # so other threads can run wait(b...

MIT6.S081 Operating System Engineering 课程总结 & Lab 指北

课程介绍 MIT6.S081 Operating System Engineering 是麻省理工学院计算机科学本科的中级课程,前身是 MIT6.828 研究生课程。 课程基于 RISCV 架构以及类 unix 操作系统 xv6,介绍了操作系统最重要的几个基本概念,以及操作系统如何提供抽象、隔离、调度、资源管理,以及为上层应用程序提供服务。 Lab 作业几乎都是利用所学到的理论知识,为 x...

[mit6.s081] 笔记 Lab11: Networking | 网络

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第十一篇:Networking(最后一篇)。此 lab 大致耗时:2小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/net.html 我的代...

[mit6.s081] 笔记 Lab10: Mmap | 文件内存映射

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第十篇:Mmap。此 lab 大致耗时:6小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/mmap.html 我的代码地址:https://...

[mit6.s081] 笔记 Lab9: File System | 文件系统

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第九篇:File System。此 lab 大致耗时:4小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/fs.html 我的代码地址:htt...

[mit6.s081] 笔记 Lab8: Locks | 锁优化

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第八篇:Locks。此 lab 大致耗时:14小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/lock.html 我的代码地址:https:...

[mit6.s081] 笔记 Lab7: Multithreading | 多线程

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第七篇:Multithreading。此 lab 大致耗时:3小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/thread.html 我的代...

[mit6.s081] 笔记 Lab6: Copy-on-write fork | fork 懒拷贝

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第六篇:Copy-on-write fork。此 lab 大致耗时:4小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/cow.html 我的...

[mit6.s081] 笔记 Lab5: Lazy Page Allocation | 内存页懒分配

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第五篇:Lazy page allocation。此 lab 大致耗时:5小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/lazy.html...

[mit6.s081] 笔记 Lab4: Traps | 中断陷阱

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第四篇:Traps。此 lab 大致耗时:8小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/traps.html 我的代码地址:https:...

[mit6.s081] 笔记 Lab3: Page tables | 页表

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第三篇:Page tables。此 lab 大致耗时:19小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/pgtbl.html 我的代码地址...

[mit6.s081] 笔记 Lab2: System calls | 系统调用

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第二篇:System calls。此 lab 大致耗时:4小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/syscall.html 我的代码...

[mit6.s081] 笔记 Lab1: Unix utilities | Unix 实用工具

这是我自学 MIT6.S081 操作系统课程的 lab 代码笔记第一篇:Unix utilities。此 lab 大致耗时:4小时。 课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.html Lab 地址:https://pdos.csail.mit.edu/6.S081/2020/labs/util.html 我的代码地...

[StackOverflow] Difference between synchronous and asynchorous gRPC API

This is from one of my answers on StackOverflow. Original question: I am working on a service based on gRPC, which requires high throughput. But currently my program suffers low throughp...

[StackOverflow] C++ gRPC 异步 API 实例与优势

转自 我的一个 StackOverflow 回答。因为答案比较长,而且感觉比较有意义,就翻译成了中文发了出来。 原问题: 我正在用 gRPC 构建一个要求高吞吐量的服务。但是我现在用 C++ 同步式 gRPC 编写的程序的吞吐量并不高。 我已经读过了 gRPC 文档,但是我并没有找到对于同步/异步 API 的区别的清晰解释。我只知道异步 API 可以控制完成队列(...