CoderZQYのBlog

个人不定期更新的学习周报

0%

CMU 15-213 Malloc Lab

1. Introduction

  1. 用 malloc 申请一块内存空间作为自己的空闲内存;
  2. 实现自己的 void *myalloc(int size)int myfree(void *ptr) 函数,用于分配和回收内存,替代 malloc 和 free 函数;
  3. 采用最先适应最优适应最差适应分配算法对空闲内存进行管理。
阅读全文 »

CS2205 Programming Language Design and Implementation

1. Background

程序设计语言的发展:机器语言 → 汇编语言 → 高级语言

编译器的作用:把某一种高级语言程序等价地转换成另一种低级语言程序

编译程序的工作过程大致可以分为五个阶段:词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成。

阅读全文 »

Checkpoint 6: putting it all together

1. Overview

Lab6 是一个选择性的实验,在前 6 个实验中我们已经完成了网络的框架:

  1. Checkpoint 0 (a reliable byte stream);
  2. Checkpoints 1–3 (the Transmission Control Protocol);
  3. Checkpoint 4 (an IP/Ethernet network interface);
  4. Checkpoint 5 (an IP router),

该实验的目的是使用前述的网络栈实现真实的网络通信,这需要我们有个 partner, 或者一人分饰两角。

阅读全文 »

Lab Checkpoint 5: building an IP router

1. Overview

IP router structure

​ Lab5 要求实现一个简易的路由器,通常路由器会有多个网络接口,能够从任意一个接口接收网络数据报。路由器的作用就是将 datagrams 依据路由表进行转发,路由表定义了路由转发的一些规则:

阅读全文 »

Lab Checkpoint 4: down the stack (the network interface)

0. Overview

The network interface

​ Lab4 要求实现网络接口部分,打通网络数据报(Internet datagrams)和链路层的以太网帧(link-layer Ethernet frames)之间的桥梁。之前的实验实现了 TCP segments 在使用 TCP 协议的设备之间的传输,而 TCP 报文有三种方式可被传送至远程服务器:

阅读全文 »