抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

MIT6.S081 traps lab

Trapsriscv assembly通过make fs.img的可以生成call.c对应的汇编代码辅助阅读和学习。如根据需求修改call.c然后时候make fs.img生成call.asm,就可以查看对应汇编内容。 回答以下问题 哪些寄存器用来保存函数? a0~a2 汇编代码如何执行函数调用的? f和g函数分别在哪调用? 编译优化成了li a1,12 函数printf...

MIT6.S081 thread lab

Multithreading熟悉多线程,实现用户空间线程间切换,使用多线程编程,实现barrier。 Uthread: switching between threads实现一种用户空间的上下文切换机制。 修改user/uthread.c和user/unthread_switch.S和在makefile中添加uthread程序。uthread.c中包含了测试和框架,还需要实现线程创建和线程切...

MIT6.S081 utils lab

lab1sleep编写一个sleep用户程序,可以参考grep(grep.c)。 目标: 熟悉lab架构:如何向xv6中插入自己编写的程序 熟悉一个用户程序的编写流程 熟悉编译系统之UPROGS 熟悉xv6提供的库函数ulib.c solution: user/sleep.c pingpong编写一个pingpong用户程序:创建一对父子进程, 一个进程使用一读一写两个管道传递数据。...

浅学WASM栈虚拟机

WASM栈虚拟机WASM简介 wat是比较可读的汇编文件 wasm的wat编译得到的结果 顾名思义, 它是某种汇编语法: 即人类不友好, 但机器友好。对人类比较友好的格式就称为WAT(WebAssembly Text Format)形如: 1234567(module (func $main i32.const 3 unreachable ) ...

MapReduce论文笔记

Abstract分布式数据处理的设计存在很多挑战,如:大数据如何分割、如何设计并行计算、如何处理故障、负载均衡等。MapReduce是一种变成模型,使用MR来隐藏这些繁琐的细节,用户端使用MR的库,只需要考虑Map函数和Reduce函数的设计,就可以方便高效得做一些分布式的数据处理。 MapReduce的本质上也是一种分治(Divide and Conquer)思想。 Preface基本模型...

GiantVM论文笔记

Abstract传统的:租用多台云主机,每台云主机安装OS,在使用一些分布式框架实现在这些OS的相互配合。这么做存在诸多问题,一方面分布式框架的使用和设计会增加开发者的门槛,另一方面,在超大规模的分布式环境下分布式的复杂性、操作难度都会进一步增加。 于是为了克服分布式系统带来的问题,隐藏分布式系统的复杂性,人们首先提出了SSI(Single System Image),意图实现操作多个分布式...

Sigma求和的思考

Abstract 改写求和,实际上是在改写程序。提出Sigma外 相当于 提出loop外 数学作为抽象工具,替代不可靠的直觉 PrefaceSigma求和有些常用的技巧:常量可以提出,如: $$\sum_{i=1}^m \sum_{j=1}^n ij$$ 对于内层循环$\sum_j ij$,i相对内存循环是”常量”,因此可以写成: $$\sum_{i=1}^m i \sum_{j=1}^n...

qemu中pci对中断的支持

Preface PCI Local Bus Specification: 2.2.6. Interrupt Pins (Optional) pci总线规范为pci设备准备了4个中断引脚(INTx#)用于传递中断。设备所使用的中断引脚信息保存在configuration space的Interrupt Pin Register中。这4个中断引脚在设备间的共享的,引脚的分配pci spec推荐...

qemu中对pcie的模拟

Overviewpcie对pci的功能进行了扩展,同步保留的对pci总线规范的兼容。这里仅对以下几点进行说明: root complex root complex是个抽象的概念,并不是某个具体的器件,表示一组pcie系统元素(桥、交换机、端口等)。简单的讲RC就是cpu与pcie拓扑结构的连接点(root),而这个连接点可以包含很多组件(所以叫complex)。主要功能(与pcie设备通信...

QEMU中GPA到HVA变换过程

GPA 到 HVA的过程QEMU通过GPA找到MemoryRegion从而完成到HVA的转换,而QEMU总是先从tlb中找tlbentry,再利用tlbentry找mr。GPA到HVA的问题就变为了,GPA找tlbentry的问题。 不是完整的状态机 指令经过qemu动态翻译后得到GPA地址字面值addr,qemu需要根据该地址找到对应的MR然后执行相应的读写操作 GPA地址字面值在XXX...