摘要:
MapReduce MapReduce 是一种编程模型,其思想是让程序员通过编写简单的 Map 和 Reduce 程序就能完成分布式系统的任务,而不需要关注分布式的具体细节。 用户自定义的Map函数接受一个 key/value pair 的输入值,然后产生一个中间 key/value pair 值的 阅读全文
摘要:
协议设计 ~ 事件 动作 发送方 从应用层收到数据 检查发送窗口是否已满,若窗口未满,产生一个分组并发送,并存储对应分组;若窗口已满,将数据存入缓冲区 发送方 超时 重传所有已发送但还未被确认的分组 发送方 收到ACK 若收到连续的ACK,窗口向前滑动,发送新的分组,重启计时器 接收方 序号为n的分 阅读全文
摘要:
协议设计 ~ 事件 动作 发送方 从应用层收到数据 若处于等待上层数据状态,产生一个分组并发送,启动计时器;若处于等待ACK状态,将数据存入缓冲区 发送方 超时 重传当前未确认的数据包 发送方 收到ACK 若对应当前数据包的ACK,停止计时器,开始发送缓冲区中的下一个数据包;若ACK不对应当前数据包 阅读全文
摘要:
RPC(Remote Poresedure Call)是远程方法调用的缩写。Go的RPC库可以实现通过网络或者其他I/O方式远程调用对象的方法。 服务器注册一个对象,让它作为一个以对象类型命名的服务,让这个对象导出的方法可以被远程调用。一个服务器可以注册多个不同类型的对象,但是不能注册同一类型的多个 阅读全文
摘要:
函数 (function) 函数可以没有参数或者接受多个参数。 当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。 func add(x, y int) int { return x + y } 函数(或者变量)的名称以大写字母开头时,它就是已导出的。 函数可以返回任意 阅读全文
摘要:
什么是知识图谱 知识图谱是在2012年由谷歌提出的,是一种结构化的语义知识库,用来描述物理世界中的概念以及相互关系。知识图谱的基本组成单位是“实体(Entities)--关系(Relations)-实体(Facts)”三元组。实体之间通过关系相互连结,构成网状的知识结构。在这个网状的知识结构中,节点 阅读全文
摘要:
Fedora 我原本的环境是 win11 + wsl2(Ununtu22.04LTS),但后来发现 wsl 在某些时候的启动和响应速度还是会比较慢,一开始我以为是 Ubuntu 太“重”了,于是换了 Debian,但并没有立竿见影的改善。再加上 wsl 每次开启和关闭代理都要重启,以及有的软件比如终 阅读全文
摘要:
写在前面 这次折腾配置的起因是我越来越觉得在敲代码的过程中去抓鼠标和按方向建实在是太不爽了,而 vscode 的 vim 插件又有着诸多的问题,于是打算直接用 vim。 由于打算用 vim 写的大多数都是一些小项目,大型的 Java 项目还得用 idea,所以本来只打算装个 NerdTree,再加上 阅读全文
摘要:
Speed up system calls (easy) 任务 通过在内核空间和用户空间之间通过共享只读存储区域内的数据,加速特定的系统调用。在每个进程被创建时,将一个只读的页映射到 USYSCALL。在这一页的开始部分,存储一个 struct usyscall 结构体,将它初始化来存储当前的进程的 阅读全文
摘要:
任务概述 在这个作业中,需要增加 xv6 系统允许的文件大小。当前的 xv6 文件大小被限制为 140 扇区 (sectors),因为 xv6 的索引节点 (innode) 包含了 12 个 “直接的” 块 (block) 的序号和一个 “单独间接 (singly-indirect)” 块序号,这个 阅读全文