CMU15445
文章平均质量分 81
aaa_zhong
这个作者很懒,什么都没留下…
展开
-
CMU15-445 2023 spring p1
对于task1主要就是对LRUK算法的理解,当时我写的时候也是把算法理解错了,花了很多时间才发现。这里对于Evict,首先是在访问次数小于k的里面寻找,找到当前第一次访问的时间戳最小的,如果is_evictable为true的话就将其驱逐,如果没有找到,再在大于等于k的里面寻找最近一次访问往前k次的时间戳为最小的。否则的话通过调用task1写的Evict判断得到一个page,若是不能则返回nullptr,当能够得到一个page的时候,首先判断删除的page是否为脏页,如果是脏页需要写回磁盘。原创 2023-11-26 23:54:28 · 259 阅读 · 0 评论 -
CMU15-445 2023 spring p0
在写入时复制 trie 中,操作不会直接修改原始 trie 的节点。相反,将为修改后的数据创建新节点,并为新修改的 trie 返回新的根。需要注意的是遍历到最后一个点的时候需要通过dynamic_cast将父类指针转换为子类指针。Remove的思路和Put有些类似也是将出现的结点存入栈中,遍历到最后如果该点的children为空,则将该点释放,如果该点有value则删除value。这里还是通过遍历std::string_view key当该结点没有的时候就停下,同时需要将已有的结点存入栈中用于之后的复制。原创 2023-10-18 00:26:04 · 348 阅读 · 1 评论