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

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


了解详情 >

MIT6.S081 mmap lab

mmapmmap和munmap系统调用让程序可以更详细地控制他们的地址空间。 如 可以让内存在进程间共享,可以将文件映射到进程的地址空间,可以用于实现用户态缺页策略(如lecture中讨论的垃圾回收算法) 这个lab你将要实现的mmap和munmap重点关注于文件到内存的映射。 可以查看man 2 mmap获得细节。mmap有多种调用方式,但这个lab只要求实现一部分功能。 12void *...

MIT6.S081 page table lab

page tables学习page table,然后够魔改使能够实现用户空间到内核空间的复制。 kern/memlayout.h内存布局 kern/vm.c虚拟内存相关代码 kernel/kalloc.c动态分配物理内存 print a page table实现vmprint(pagetable_t pt)打印页表的内容。在exec.c:exec()的return argc;前插入if(...

MIT6.S081 network lab

networking编写一个xv6设备驱动程序,驱动网卡 Background 参考书Chapter5 中断和设备驱动 你会使用一个叫作e1000的网络设备来处理网络通信。qemu虚拟化e1000,e1000就相当于现实中真正链接网络的网卡设备。 xv6的ip地址为10.0.2.15。qemu会让宿主机(the computer running qemu)的ip地址为10.0.2.2。qe...

MIT6.S081 syscall lab

system calls user space user.h usys.pl kernel space syscall.h syscall.c process related proc.h proc.c trace实现trace,以便后续实验调试 trace系统调用 一个int参数, “mask” trace(1 << SYS_fork) 对tracing的系...

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),意图实现操作多个分布式...