抓取资料库
- 安装 git (Windows版本) 后执行
git clone https://github.com/cs-course/computer-architecture-experiment
- git 详细知识可以通过 git-tutorial 学习
- 或者 下载 后解压缩
在Windows上还需要建立实验用Linux 64-bit虚拟机环境
- 安装 VirtualBox 虚拟机 (下载)
- 安装 Vagrant 虚拟机管理工具 (下载)
- Vagrant 详细知识可以通过 vagrant-tutorial 学习
- 导入基础镜像
- 初始化虚拟机系统
- 在资料库目录中执行
vagrant up
- 执行
vagrant status
检查是否正常运行 - 使用完成后,执行
vagrant halt
关闭虚拟机,下次仍通过vagrant up
重启虚拟机 - 注意:若不再需要,或需重建,可用
vagrant destroy -f
清除
- 在资料库目录中执行
检查系统配置
- 处理器信息
vagrant@ubuntu-bionic:~$ lscpu
Architecture: x86_64 # 这些内容各机不完全一样
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2 # CPU核数 (虚拟机只使用部分主机处理器核)
On-line CPU(s) list: 0,1
...
L1d cache: 32K # L1数据缓存
L1i cache: 32K # L1指令缓存
L2 cache: 256K # L2缓存
L3 cache: 6144K # L3缓存
NUMA node0 CPU(s): 0,1
...
- 主存储器信息
vagrant@ubuntu-bionic:~$ free -h
total used free shared buff/cache available
Mem: 985M 76M 726M 588K 181M 771M
Swap: 0B 0B 0B
注意:在 Vagrantfile 里面已经设置虚拟机内存为 1GB。
- 外部存储器信息
vagrant@ubuntu-bionic:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 10G 0 part /
sdb 8:16 0 10M 0 disk
vagrant@ubuntu-bionic:~$ df -h -x tmpfs
Filesystem Size Used Avail Use% Mounted on
udev 481M 0 481M 0% /dev
/dev/sda1 9.7G 1.7G 8.1G 17% /
vagrant 237G 175G 62G 74% /vagrant
vagrant_data 237G 175G 62G 74% /vagrant_data
vagrant@ubuntu-bionic:~$
如果是Linux环境,解压缩 cachelab-handout.tar.gz 即可。
如果是Windows环境则需要使用前面(Lab0)建立的虚拟机:
- 开启 Windows 命令行窗口,进入资料库目录,执行
vagrant up
开启实验用虚拟机; - 执行
vagrant ssh
进入虚拟机,可以看到/vagrant_data
目录,内容对应于主机data
目录,可以先在主机里将 cachelab-handout.tar.gz 放进去; - 在虚拟机内,进入
/vagrant_data
目录解压缩 cachelab-handout.tar.gz 文件,可执行如下命令cd /vagrant_data && tar xzvf cachelab-handout.tar.gz
- 缓存仿真器实现
- 矩阵转置(可选)
注意:如果运行 ./test-csim
存在问题,比方说 MSYS/MinGW 环境,可以使用脚本版,进入 cachelab-handout 文件夹执行 <资料库路径>/computer-architecture-experiment/cachelab-extended/test-csim.sh
即可。
- Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e),实验作业
- CMU 15-213 CSAPP 深入理解计算机系统 课程视频 (Part12)
- 手工演算工具
建议使用虚拟机进行实验
- 执行
vagrant up
开启实验用虚拟机; - 执行
vagrant ssh
进入虚拟机; - 执行
cat /proc/mdstat
确认 mdadm 与 Linux 内核配置正常:
vagrant@ubuntu-bionic:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
vagrant@ubuntu-bionic:~$
- 创建几个loop设备
- 使用mdadm配置软阵列