摘要:
在安装mysql8.0的过程中总是频繁的出现配置出错等问题,总结一下可行的步骤。 安装mysql-server和mysql开发包 $ sudo apt-get install mysql-server $ sudo apt-get install libmysqlclient-dev 打开mysql 阅读全文
摘要:
cmu15445 2022fall lab1 Buffer Pool 此project实现一个buffer pool,缓存住磁盘查询的数据。 Task1 这部分需要我们实现一个可扩展的哈希表,这部分的难点在于插入操作时的分裂,由于Remove不需要我们将目录和桶收缩回去,所以它也很简单。 先分析清楚 阅读全文
摘要:
CMU15445 2022fall project4 这个project整体难度稍微高于project3,主要难点在于task1。 Task1 这部分实现一个锁管理器处理事务对表和行的加锁解锁,是这个project中最复杂的部分。 问题: 关于为什么在各个隔离级别下,锁要设计成下面这样? REPEA 阅读全文
摘要:
CMU15445 2022fall project3 project3相对project2的b+树来说简单太多了,整体没有什么痛苦的debug,基本就看看其他算子的实现参考一下,很快就能写出来。 Task 1 - Access Method Executors SeqScan 首先我们需要知道:in 阅读全文
摘要:
CMU15445 2022fall project2 CheckPoint 1 Task 1 B+Tree Pages 这部分主要是给page、internal、leaf三个page类实现一些get、set方法和一些简单的函数。 注意点: 判断root page:parent page id = I 阅读全文
摘要:
PA4-虚实交错的魔法:分时多任务 多道程序 上下文切换 内核线程 实现上下文切换(1) 首先是kcontext(),理解讲义之后我们会发现其实很简单,就是让我们创建一个Context *cp指向所给的栈底位置,然后把entry填入Context的mepc中,为了后续在__am_asm_trap中m 阅读全文
摘要:
PA3.1 在这一节中,我们通过yield test这个测试触发自陷操作,来梳理整个过程并在其中实现异常响应的机制。 设置异常入口地址 首先,yield test会调用cte_init(),这个函数会设置异常处理的入口地址,即把mtvec寄存器的值设置成__am_asm_trap,然后注册一个事件处 阅读全文
摘要:
PA1实验报告 1、查阅ISA手册回答问题 riscv32有哪几种指令格式? 6中指令,分别是I型,R型,S型,U型,B型,J型。 LUI指令的行为是什么? lui rd,imm将立即数的高20位加载到rd寄存器中,低12位补0。 mstatus寄存器的结构是怎么样的? 2、shell命令 阅读全文
摘要:
PA2 2.1 不停计算的机器 理解YEMU如何执行程序 画出在YEMU上执行的加法程序的状态机 R[0]=16,R[1]=33 -> R[0]=49,R[1]=33 2.2 RTFM RTFSC理解指令执行的过程 请整理一条指令在NEMU中的执行过程 execute()的循环中执行的exec_on 阅读全文
摘要:
LAB:cow 1.实验概述 本次实验的内容为给xv6实现一个cow功能,具体情况为,在fork时,子进程一般会立即复制父进程的内存并获取一段新的内存,但这些内存并不是会立即使用的,所谓我们要实现的功能为,在fork时,不给子进程分配内存,而是直接将子进程的pagetable和父进程映射同一段物理内 阅读全文