自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 【CMU 15-445】学习笔记与Lab汇总

又来开新坑啦!本门课程为CMU的数据库原理课程,我学习的版本为Fall2023,教授为Andy(上课有DJ)。准备跟着课程的Schedule来做,就是先看配套教材的相应章节(Database-System-Concept-7th),再看Lecture,最后做Project。在看完教材与Lecture之后,我会写出自己的学习笔记,在做完之后,我会写出相应的思考过程与自己的解题思路,但不会公开任何代码(应Andy强烈要求!

2023-05-23 10:30:44 1334

原创 【MIT 6.S081】课程介绍与Lab汇总

从3月份到5月份,我断断续续(4月份开始实习了时间片比较零碎)看完了Lec1-Lec15,也就是xv6book相应章节的讲解,并做完了Lab1-Lab9,后面一些lecture和两个lab涉及论文的阅读和讲解,暂时不准备看了,等后面有时间再来填坑!为MIT的本科生操作系统课程,由浅入深的讲解了页表、trap、系统调用、中断、锁、文件系统等操作系统概念及其在xv6中的实现,个人收获颇丰,也是第一次学习操作系统,每一部分的源码都详细的看了一遍,感觉非常棒!以下为我对每一个Lab的理解与实现,如有瑕疵,请指正!

2023-05-15 15:34:52 885

原创 【计算机网络:自顶向下方法】学习笔记

本系列文章为笔者在学习的计算机网络课程时(郑老师讲得很清晰!!),结合课程PPT与《计算机网络:自顶向下方法》(第七版)所作的学习笔记,部分图片源自课程PPT或书中,如有侵权,请联系作者删除。

2023-02-26 22:24:49 311

原创 【CMU 15-445】Proj4 Concurrency Control

本文对应的project版本为CMU-Fall-2023的project4由于Andy要求,本博客只提供思路,不会公开任何代码终于要完结15445的所有project了(一些leaderboard没写,以后再说吧,至少基础的部分都完成啦)拖了好久,期间有实习毕设等各种各样的事情阻碍了进程。

2024-05-12 12:28:06 783

原创 若依安装过程

需要在https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/下载maven文件。在官网https://www.oracle.com/java/technologies/downloads/#java8-windows下载8u401版本。根据https://blog.csdn.net/weixin_42195311/article/details/114012338。mysql之前下载过,版本符合要求。

2024-04-10 23:50:43 174

原创 【CMU 15-445】Lecture 17: Timestamp Ordering Concurrency Control 学习笔记

本节课主要介绍一些基于时间戳的并发控制协议。

2024-03-16 11:37:55 668

原创 【CMU 15-445】Lecture 16: Two-Phase Locking Concurrency Control 学习笔记

本节课主要介绍两阶段锁协议。

2024-03-15 09:04:26 512

原创 【CMU 15-445】Lecture 15: Concurrency Control Theory 学习笔记

本节课主要介绍事务的概念和特性。

2024-02-27 16:33:15 649

原创 【CMU 15-445】Lecture 13: Query Execution II 学习笔记

本节课主要介绍一些并行查询的机制。

2023-12-21 16:09:47 895

原创 【CMU 15-445】Lecture 12: Query Execution I 学习笔记

本节课主要介绍SQL语句执行的相关机制。

2023-12-17 21:10:31 890

原创 【CMU 15-445】Lecture 11: Joins Algorithms 学习笔记

本节课主要介绍的是数据库系统中的一些Join算法。

2023-12-17 17:07:37 877

原创 【CMU 15-445】Lecture 10: Sorting & Aggregations Algorithms 学习笔记

本节课主要介绍的是数据库系统中的排序算法以及聚合算法。

2023-12-16 16:58:28 972

原创 【CMU 15-445】Proj2 Hash Index

本文对应的project版本为CMU-Fall-2023的project2由于Andy要求,本博客只提供思路,不会公开任何代码本博客默认读者已懂可扩展哈希的插入删除理论知识,若不清楚流程可以看。

2023-12-10 19:32:48 2447

原创 【CMU 15-445】Proj1 Buffer Pool Manager

本文对应的project版本为CMU-Fall-2023的project1由于Andy要求,本博客只提供思路,不会公开任何代码。

2023-11-10 20:41:35 507 5

原创 【Database System Concept 7th】Chapter 24 Advanced Indexing Techniques 读书笔记

这个结构是如何建立出来的、两个位深度分别有什么用处、以及为什么会有以上性质,我们先不管,下一节中会细说,先了解基本概念即可。当插入一条新的记录时,首先同查询过程一致,根据搜索码找到对应的桶。以上就是基本的查询操作与插入操作的过程,但插入操作并不是很完善。本节主要介绍可扩展散列的记录查询与插入过程,删除过程暂时还没了解,后续补上。,当我们存在3条记录均包含相同的搜索码时,就会造成桶溢出,此时使用。可以注意下图中,桶地址表上方与每个桶的上方都标有一个整数,其中,,由于全局位深度为2,则对应的表项为。

2023-11-07 15:09:11 201

原创 【Database System Concept 7th】Chapter 14 Indexing 读书笔记

中搜索码的排列顺序与被索引文件中的记录排列顺序不一致,换句话说,文件中的记录不按照辅助索引的搜索码排序。也可以建立出如下图所示的稀疏索引,若我们需要找到搜索码值为22222的记录,则根据索引项的搜索码值,找到小于等于22222的最大搜索码值为10101,则从10101对应的记录往下顺序寻找。但是,此时根节点只剩下一个指针,我们规定根节点至少要有两个指针(因为只有一个指针没啥用啊),于是将根节点也删除,并让它指向的那个儿子作为新的根节点,最终的修改结果如下所示。的情况,但是一般情况下,搜索码都有重复项。

2023-11-01 09:56:18 179

原创 【Database System Concept 7th】Chapter 13 Data Storage Structures 读书笔记

即可,具体来说,若每个块长度为X,记录长度为Y,则每个块只存放。

2023-09-16 21:56:54 274

原创 【CMU 15-445】Proj0 C++ Primer

本文对应的project版本为CMU-Spring-2023的project0默认读者已经学会了字典树Trie。

2023-09-16 14:46:24 571 4

原创 CS61B Spring 2021 proj2 gitlet

gitlet是一个版本控制系统,与git类似,但对git的一些功能做了一些简化,可以看作是低配版的git,支持大多数git支持的功能,比如add/commit等等。在本项目中,系统维护的文件仅考虑当前工作目录下(CWD, current working directory)的子文件,即不包括子文件夹。提交commit用于维护历史版本,即commit功能。

2023-08-07 09:46:35 699

原创 【Database System Concept 7th】Chapter 2 Introduction to the Relation Model 读书笔记

这一章主要讲的是Relation Model(关系模型)的一些相关概念,并举了很多相关例子说明。下面举例子中提到的relation参考相关章节定义(会给出书中的Figure编号)。

2023-05-24 16:47:14 1001

原创 【MIT 6.S081】Lab9: file system

这个lab难度不大,主要理解file system中几个较高层的函数就可以做笔者用时约3h。

2023-05-15 15:32:10 794

原创 【MIT 6.S081】Lab8: Locks

这个lab比起上个lab难度大了一些,需要熟练掌握锁的使用。笔者用时约7h(我太菜啦。

2023-04-19 09:02:26 585

原创 【MIT 6.S081】Lab7: Multithreading

本Lab比较简单,就是为xv6添加一个用户级的多线程功能,然后熟悉一下Linux下多线程编程。笔者用时约2h。

2023-04-06 20:14:31 399

原创 【MIT 6.S081】Lab6: Copy-on-Write Fork for xv6

xv6中原始fork系统的实现是,当产生一个子进程时,直接把父进程页表中的每一页复制给子进程的页表,这样子做无疑有许多物理空间被浪费,因为并不是每一个空间都会在之后被修改。一个经典的思路就是,也就是一开始父子进程共享一块物理空间,当某一个物理空间需要被写的时候,再进行复制。具体的做法就是,当父进程fork出一个子进程的时候,关闭父进程所有页表项的写权限,然后进行复制,复制时父子进程映射到相同的物理地址空间。当代码对没有写权限的页表项进行写操作时,有两种情况,分为内核态与用户态,如果在用户态,则会产生。

2023-04-05 13:56:47 464

原创 【MIT 6.S081】Lab5: xv6 lazy page allocation

xv6中的用户程序使用sbrk系统调用向内核请求增长堆内存或者缩减堆内存。对于增长内存的情况,用户往往会申请多于实际需要的内存以便使用。于是,对于暂未使用的内存,如果在用户申请时就将其分配给用户,挺浪费的。基于这样一种思想,当用户申请增长内存时,暂时不分配物理内存,而是仅增长用户进程的空间大小。这时如果用户实际使用到了新分配的内存,则会引发page fault(因为进程页表暂未维护该内存的虚拟地址与物理地址的映射)。page fault。

2023-03-31 10:26:20 462

原创 【MIT 6.S081】Lab4: traps

首先讲讲我对系统调用时trap的理解,用户程序通过系统调用进入内核态,在汇编代码中的体现就是ecall指令,会把系统调用参数保存在寄存器a7中。在用户态中执行ecall指令之后,会将pc寄存器的内容复制到sepc中,并将模式转换为监督者模式,且会将stvec复制到pc中。由于stvec的值为函数uservec(定义在)的地址,故在执行完ecall指令之后,会跳转到uservec函数中。由于ecall指令并没有切换页表的功能,于是在用户页表中必须要维护uservec函数虚拟地址的映射。

2023-03-28 21:00:32 727

原创 【MIT 6.S081】Lab3: page tables

PgtblPrint a page tableA kernel page table per processSimplify copyin/copyinstr本Lab简单优化了系统的页表功能,使得程序在内核态时可以直接解析用户态的指针。笔者用时约8hPrint a page table第一部分是为系统添加一个打印给定页表的函数vmprint,该函数接收一个参数pagetable(根页表的物理地址),递归遍历整张页表,打印有效的表项。参考freewalk函数(定义在kernel/vm.c:331),

2023-03-23 13:08:50 455

原创 【MIT 6.S081】Lab2: system calls

根据文档说明,当我们添加一个系统调用时,比如第一个任务是添加一个trace首先将系统调用的原型添加到中,比如trace函数接收一个参数作为掩码,其函数原型如下图所示。然后添加一个存根到中,如下图所示。将系统调用编号添加到中,如下图所示。在中添加相关的系统调用函数即可,如sys_trace函数,实现对应的功能即可。

2023-03-18 17:03:03 924

原创 【MIT 6.S081】Lab1: Xv6 and Unix utilities

根据文档说明,我们需要把写的每个程序文件放在user文件夹下,并且在MakeFile的UPROGS添加相应的程序名,这样子就可以在qemu中直接用命令行指令调用相应的程序啦。如下图所示。sleepsleep程序接收一个参数,调用库函数sleep进行睡眠即可,没啥好说滴。if(argc!exit(0);pingpong。

2023-03-08 23:53:22 318

原创 【CS144】Lab1总结

CS144 lab1

2023-03-06 21:24:29 498

原创 【CS144】Lab2总结

CS144 lab2

2023-03-06 15:49:15 469

原创 【CS144】Lab5与Lab6总结

CS144 lab5 lab6

2023-03-05 21:34:24 562 1

原创 【计算机网络:自顶向下方法】Chapter5 网络层:控制平面

top down Chapter5

2023-03-01 22:33:02 470

原创 【CS144】Lab3总结

CS144 lab3

2023-02-26 23:36:03 270

原创 【CS144】Lab4总结

CS144 lab4

2023-02-26 22:40:47 552

原创 【计算机网络:自顶向下方法】Chapter4 网络层:数据平面

计算机网络学习笔记

2023-02-26 22:23:12 472

原创 2021CCPC哈尔滨【个人题解BDEGIJ】

CCPC哈尔滨

2022-11-04 16:56:24 934

原创 2021CCPC威海【个人题解ADGJM】

ccpc

2022-11-03 16:44:14 726

原创 2019ICPC南昌【个人题解CEGKL】

2019 ICPC 南昌

2022-10-26 16:13:48 558

原创 2019ICPC南京【个人题解ACHJK】

2019ICPC南京

2022-10-21 15:20:30 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除