虚拟化--进程管理API:fork, execve, exit 操作系统上的进程 背景回顾:有关状态机、并发和中断的讨论给我们真正理解操作系统奠定了基础,现在我们正式进入操作系统和应用程序的 “边界” 了。让我们把视角回到单线程应用程序,即 “执行计算指令和系统调用指令的状态机”,开始对操作系统和进程的讨论。 本讲内容:操作系统上的进程 操作系统上的第一个进程 UNIX/Linux 进程管理 API: fork, execve, exit fork() 2025-02-02 OS #xv6 #虚拟化
xv6-环境搭建 xv6 启动! 万事开头难! 这是我所用的开发环境,Kubuntu+VsCode,这样的环境对我来说是比较舒服的,也是比较好用的在实际使用的过程中我没感觉ubuntu和kubuntu有任何的区别,反正我也不在乎桌面,我只在终端里用。 用debian系的有一个好处就是软件生态真的很不错,可别是最新的,版本什么的直接用apt都能直接获得,虽然不想archwiki那样完善,但是Google一下基本上 2025-01-04 OS #CPP #Note #xv6
CMU15-445总结 先随便写几个要点,等整个结束了再详细写。 动手之前先计划,详细周到考虑 多动手,多试错 多读源代码,多练习debug 英语好好学,英语太重要了。 2024-02-22 CMU15-445 #Note #CMU15-445 #Summary
Bustub架构简单分析 写在前面 在这篇文章中我们先抛开SQL在bustub的中的历程,直接快进到最后开始执行的阶段,这篇文章只关注设计上的细节。 至于如何理顺这些细节在[[CMU15-445 Project3 - Query Execution]]文章中会有详细的介绍,这里就不再赘述。😃 架构总览 上图中catalog其实不是特别准确,按照我的理解应该是下面这种情况👇。通过一个table_id双向映射表的名字 2024-02-21 CMU15-445 #Note #CMU15-445
数据库事务 事务 Transaction 在英文中事务用transaction表示,一般约定俗成的缩写为txn,所以在数据库的源代码中看到txn的话多半就是事务。 事务诞生的背景 我们假设一个银行的场景,转账这一操作在外界看来是单一的操作,但是在数据库内部涉及到很多的操作,假如转账操作发生了失败,那么数据的不一致是不能被接受的。所以这一连串的操作可以被归为逻辑上的一个操作集。要么整体都成功要么都失败。 事 2024-02-20 CMU15-445 #Note #CMU15-445
查询的处理和优化 Join Operation, 连表 在查询过程中经常会涉及到连表的操作。那么为什么总是需要连表呢? 为什么需要连表? 在存储的时候为了避免数据的冗杂,将表进行规范化,导致表的割裂。 在查询的时候需要获取完整的信息,所以将表进行重新的组装。 连表的算法 Fetching Title#i6kq 2024-02-09 CMU15-445 #Note #CMU15-445
CMU15-445-Project #3 - Project3 - Query Execution 做这个p3首先需要明晰整个bustub的架构[[Bustub执行器架构简单分析]],在这个文章中进行了很详细的分析。 怎么个事???? ⚠️upload failed, check dev console 2024-02-08 CMU15-445 #CMU15-445 #Project
CMU15-445-Project #2 - B+ Tree Index Checkpoint 2 CHECKPOINT-2 Task #3 - Index Iterator 简单来说就是实现一个迭代器 将所有的叶子节点视为一个链表,要求实现给出的函数。在当前的迭代器中保存所在的pageId和当前的起始位置,然后通过leafpage中的next_page_id来获取下一个叶子节点。 总体上来说难度不是很大,没有什么好说的,就是还是注意要加锁,其中的某一个函数在实现的时候需要考虑跨页的情况,这 2024-02-04 CMU15-445 #CMU15-445 #Project
CMU15-445-Project #2 - B+ Tree Index Checkpoint 1 一些工具 BusTub B+Tree PrinterCMU官方在线的B+树的生成工具。我主要用来细节实现的时候进行参考。 JavaScript B+ TreeB+树插入和删除的动态演示。 Graphviz Online可视化自己的树。在debug的时候会用到。将生成的dot文件转换成svg图片。 Log In | Gradescope在线评测网站,邀请码:PXWVR5, Project #2 2024-02-01 CMU15-445 #CMU15-445 #Project