Home
clingfei
Cancel

The Design of a Practical System for Fault-Tolerant Virtual Machines

Introduction 实现容错服务器的通常方法是primary/backup机制,当primary server出错时,backup server可以作为primary server推动系统继续向前运行。backup server的状态必须在任何时候都与primary server保持一致,因此在primary出错时backup可以立即接替,并且这种机制将错误对外部的客户端隐藏,并...

MapReduce--Simplified Data Processing on Large Clusters

Abstract mapreduce是一个用于处理和生成大数据集的编程模型。用户指定一个用于处理键值对的函数来生成键值对集合的中间表示,和一个reduce函数来合并与相同的key相关联的中间值。许多真实任务可以使用此模型来表达。 按照这种函数模型编写的程序可以在计算机集群上并行运行。运行时系统负责划分输入数据的细节,在不同的机器上调度程序的执行,处理机器错误和管理内部机器之间的通信。...

BJDCTF2020 Easy MD5

访问靶机,初始页面如图所示: 看上去像是SQL注入,尝试注入后并没有反应,F12查看源码,看到其中存在提示:Hint: select * from 'admin' where password=md5($pass,true) 因此需要找到使password=md5($pass, true)返回值为true的$pass。 md5函数的用法: 参数 ...

Tai-e Assignment 3 死代码检测

『 无论你是玩游戏多,还是成绩不太好,觉得自己没有别人毕业有优势,这都是因为浮躁、去比较产生的事情。这门课,老师希望你重新的审视自己,不断地认识自己、挖掘自己,看看真的什么东西能让你你快乐起来,什么东西能让你花时间去搞。哪怕你以后只是开了一家奶茶店,哪怕是一个和计算机毫无相关的行业,也希望你能从这门课中清楚的认识到自己喜欢的是什么,你不是没有别人优秀,你只是选择了你喜欢的事情。 』 ...

Tai-e Assignment 2 常量传播和Worklist求解器

『 无论你是玩游戏多,还是成绩不太好,觉得自己没有别人毕业有优势,这都是因为浮躁、去比较产生的事情。这门课,老师希望你重新的审视自己,不断地认识自己、挖掘自己,看看真的什么东西能让你你快乐起来,什么东西能让你花时间去搞。哪怕你以后只是开了一家奶茶店,哪怕是一个和计算机毫无相关的行业,也希望你能从这门课中清楚的认识到自己喜欢的是什么,你不是没有别人优秀,你只是选择了你喜欢的事情。 』 ...

Tai-e Assignment 1 活跃变量分析和迭代求解器

『 无论你是玩游戏多,还是成绩不太好,觉得自己没有别人毕业有优势,这都是因为浮躁、去比较产生的事情。这门课,老师希望你重新的审视自己,不断地认识自己、挖掘自己,看看真的什么东西能让你你快乐起来,什么东西能让你花时间去搞。哪怕你以后只是开了一家奶茶店,哪怕是一个和计算机毫无相关的行业,也希望你能从这门课中清楚的认识到自己喜欢的是什么,你不是没有别人优秀,你只是选择了你喜欢的事情。 』 ...

Static single-assignment form (SSA)

LLVM要求输入代码为SSA形式,那么什么是SSA以及如何利用LLVM将拥有可变类型的代码转换为SSA形式? SSA是IR的一种属性,要求每个变量仅被赋值一次并在被使用前定义。在初始的IR中已经存在的变量被划分为不同的版本,新的变量通常由原始名称和下标表示,因此每个定义实际上都有自己的不同版本。在SSA中,use-def链是显式的,并且每个链都包含一个单独的变量。 use-def...

LeetCode 761 特殊的二进制序列

Description 特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前...

x86-64 Assembly notes

Registers 用于保存前六个参数和返回值的寄存器是callee-owned,即被调用者所有。被调用者可以任意修改和读取这些寄存器的值。如果调用者需要继续使用%rax中的值,那么需要在安全的位置保存一份副本(因为无法保证被调用者不会修改%rax中的值,其他也同理。)如果被调用者希望使用caller-owned寄存器,必须首先保存寄存器的值,并在函数结束前将其恢复。 ...

字符串字面值作为实参时,被放在哪了?

coding时突然想到的一个问题? 在写NJU os的libco时,看到给的使用示例里有这么一段代码: #include <stdio.h> #include "co.h" void entry(void *arg) { while (1) { printf("%s", (const char *)arg); co_yield(); } } ...