自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 s081-2020 Lab5 lazy allocation

lazy page allocation所谓的lazy allocation就是当用户进程通过sbrk()申请内存时,内核不会立即为其分配内存,而只是简单的增加了用户进程内存地址范围(增加p->sz),也没有为其分配页表项。这主要是因为用户程序申请的内存量可能会超过其实际使用的量,另一方面可以加快sbrk()的执行速度。当cpu访问到lazy allocation的虚拟地址时,由于没有对应的页表项会触发缺页中断,我们要做的就是在缺页中断处理函数中为其分配物理内存。发生中断时,scause中存储的.

2021-12-21 23:44:30 467

原创 s081-2020 Lab4 traps

Lab4 trapsRISC-V assembly (easy)将问题的答案添加到answers-traps.txtQ: Which registers contain arguments to functions? For example, which register holds 13 in main’s call to printf?A: a0-a7; a2;Q: Where is the call to function f in the assembly code for main?

2021-12-08 11:20:38 312

原创 【无标题】

lab3: pgtbl[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g1VAtxqH-1638793994235)(/Users/liuzhilei/workspace-git/study-repo/6.S081/lab/pgtbl.assets/image-20211206202845356.png)]Print a page table(easy)添加一个打印页表的内核函数,以如如下格式打印出传进的页表,用于后面两个实验调试用:page table 0x00000

2021-12-06 20:35:02 145

原创 s081-2020 Lab2: system call

Lab2: system calllab2总体来说还是很简单的,只要我们打通system call的调用链路,就没有问题了。教材第四章中对于xv6处理trap的软硬件过程有详细的讲解,具体的执行流程这里不在赘述,简单讲解一下用户程序执行system call在函数级别的执行路径,当然知道这些已经能够完成该实验了。我们以System call tracing为例描述整个过程:首先要在Makefile文件中添加$U/_trace ,使得trace.c能给被正确编译连接到xv6中。trace.c中的ma

2021-12-06 20:32:20 323

原创 论文学习——链式复制

链式复制Chain Replication构建大规模分布式存储服务的一个挑战是,在扩大系统规模以提高系统的吞吐量和可用性时,随之而来的是系统节点的故障频率也会不断增加,引起整个系统频繁的配置变更;并且大规模分布式存储服务往往需要在“提供强一致性保证但会将其系统的吞吐率,以及提高系统的吞吐率但不能提供强一致性保证”之间做抉择。使用链式复制构建的大型分布式存储服务具有较高的可用性,能够在提供线性一致性保证的同时有良好的吞吐量(适合于read-mostly的系统)。基于链式复制构建的系统具有良好的可用性,

2021-11-18 07:43:19 372

原创 raft优化

处理只读请求对于只读请求它不会改变状态机的状态,因此可以直接执行而无需写入日志,这能够大大减少持久化导致的性能开销。但是这样可能导致leader返回过时的结果。比如,只读请求被发送到了一个处于分区中的leader,它的响应很有可能是过时的。为了解决该问题,在收到只读请求后leader需要执行如下步骤:leader在自己的任期内必须至少提交过一个当前Term的日志,这可以通过leader当选时立马提交一个no-op请求来实现。这是为了保证leader的commit index至少和其他节点的一样大。

2021-09-08 00:57:36 734

原创 etcd-raft的启动过程

本文基于etcd 3.1.10版本所写etcd-raft的主要模块etcd-raft 采用极简的设计理念,仅实现核心 raft 算法;将网络通信与持久化操作交给应用层来实现,即应用层负责实现 raft 节点之间的网络通信,和 raft 日志与节点状态的持久化操作。为了便于对etcd-raft 进行测试,将raft节点抽象成一个状态机。raft状态机是由事件驱动的,会引起raft状态机状态发生变化的事件主要有:定时器超时,leader选举,日志复制,成员变更。除了定时器超时之外所有的事件都封装在Me.

2021-09-08 00:45:49 303

原创 共识与一致性

此文为缝合的结果,来源见参考。本文为学习所用,如有侵权请告知本人。共识与一致性共识描述了分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。 在实践中,要保障系统满足不同程度的一致性,核心过程往往需要通过共识算法来达成。共识算法解决的是对某个提案(proposal)大家达成一致意见的过程。提案的含义在分布式系统中十分宽泛,如多个事件发生的顺序、某个键对应的值、谁是领导……等等。可以认为任何可以达成一致的信息都是一个提案。对于分布式系统来讲,各个节点通常都是相同的确定性状态机模型(又称.

2021-07-26 00:47:24 1614

原创 左倾红黑树Go语言实现

左倾红黑树的定义含有红黑链接(边)并满足下列条件的二叉查找树:红链接均为左链接没有任何一个结点同时和两条红链接相连;该树是完美黑色平衡的,即任意空链接到根结点的路径上的黑链接数量相同。红链接将两个2-结点(普通二叉树结点)链接起来构成一个3-结点(含有两个键,3个链接);黑链接则是2-3树中的普通链接。满足这样定义的红黑树和相应的2-3树是一一对应的。 将红链接画平时,一颗红黑树就是一颗2-3树红黑树性质(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(

2021-02-03 14:00:44 169

原创 230. 二叉搜索树中第K小的元素

二叉搜索树中第K小的元素给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 6 / \.

2021-01-16 14:23:59 89

原创 leetcode 1079解题报告

1079. 活字印刷【中等】你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。**注意:**本题中,每个活字字模只能使用一次。示例 1:输入:“AAB”输出: 8解释: 可能的序列为 “A”, “B”, “AA”, “AB”, “BA”, “AAB”, “ABA”, “BAA”。示例 2:输入:“AAABBC”输出: 188关于构造全排列的代码请见:本题看样例输出,既不像子集,也不像排列,但更像排列。实际

2020-07-27 09:30:05 328

原创 leetcode经典子集问题

题目汇总78. 子集:枚举不含重复元素的数组子集。90. 子集 II:枚举含有重复元素数组的子数组,子数组中可以含重复元素但不能有重复子数组。解决办法见: 回溯——版本二、 枚举子集的规模——版本二不含重复元素的子集枚举二进制法集合的每个元素,都有可以选或不选,用二进制和位运算,可以很好的表示。每个子集对应一个掩码(将其看作0,1串),掩码的第i位表示nums[i]是否在子集中:1——子集中包含当前元素0——子集中不含当前元素含有nnn个元素的集合,一共有2n2^n2n个子集,掩码的最

2020-07-25 18:15:50 517

原创 leetcode经典排列问题

文章目录推荐题目Permutations字典序法——nextPermutation版本一版本二不含重复元素的全排列含有重复元素的全排列Kth Permutation推荐题目LeetCode 上有几道题都和排列组合有关,非常经典,值得放在一起总结一下。这几道题分别是:Permutations。给定一组各不相同的数字,求这些数字的所有排列。Permutations II。给定一组数字,这些数字中可能有重复的,求这些数字的所有不重复的排列。Next Permutation。给定一组数字的全排列中的一个

2020-07-25 10:38:52 269

原创 leetcode解题报告——60. 第k个排列

60. 第k个排列【中等】给出集合 [1,2,3,…,n],其所有元素共有 n!种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是[1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3输出: “213”示例 2:输入: n = 4, k = 9输出: “2314”思

2020-07-25 10:24:24 313

原创 博弈论与SG函数

基础博弈BZOJ2463: [中山市选2009]谁能赢呢?环取点POJ2484A Funny Game nim博弈——SG函数BZOJ1299POJ2975有向图POJ2425SG函数典型应用POJ2960必胜状态向必败状态的转移,方法数,以及操作BZOJ1874阶梯博弈BZOJ1115POJ1704HDU4315Multi...

2018-09-03 11:57:05 706

原创 集合运算

C++ STL的集合运算

2018-02-23 16:10:56 801

原创 常用的数论算法

素数晒,欧拉函数,快速幂,逆元,组合数

2018-02-08 01:12:43 1779

空空如也

空空如也

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

TA关注的人

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