queue.h: /* * Code for basic C skills diagnostic. * Developed for courses 15-213/18-213/15-513 by R. E. Bryant, 2017 */ /* * This program implements a queue supporting both FIFO and LIFO * operations. * * It uses a singly-linked list to represent the…
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. 在这个实验中我们需要实现自己的动态内存申请器(malloc.free.realloc) 前期准备: 完全阅读书本第9章 man 3 realloc 注意事项: 1.先从小的测试文件开始,例如short1-bal.rep 2.为了调试方便,在Makefile中将CFLAGS更改为: CFLAGS =…
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. getbuf()实现为: unsigned getbuf() { char buf[BUFFER_SIZE]; Gets(buf); /* 没有边界检查 */ return 1; } 其中的BUFFER_SIZE是在编译时候就确定的常量. Part I: Code Injection Attack…
bomb.c /*************************************************************************** * Dr. Evil's Insidious Bomb, Version 1.1 * Copyright 2011, Dr. Evil Incorporated. All rights reserved. * * LICENSE: * * Dr. Evil Incorporated (the PERPETRATOR) hereby…
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. 完整代码:https://paste.ubuntu.com/26257776/ 前期准备 Signal (IPC) signal(2) - Linux manual page - man7.org fork(2) - Linux manual page - man7.org wait(2) - L…
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. 虽然我们学校第四章没有要求做实验(Architecture Lab ),但课后作业用到了Y86-64的模拟器,也是实验材料的一部分.我在编译模拟器的时候遇到了两个困难,解决后在这分享一下. 1. Tcl/Tk等命令找不到 在编译的时候我们会碰到"XXX命令找不到"的情况,这时只需要使用&…
由于http://csapp.cs.cmu.edu/并未完全开放实验,很多附加实验做不了,一些环境也没办法搭建,更没有标准答案.做了这个实验的朋友可以和我对对答案:) 实验内容和要求可在http://csapp.cs.cmu.edu/3e/labs.html获得. Data Lab [Updated 5/4/16] bits.c /* * CS:APP Data Lab * * <李秋豪 Richard Li> * * bits.c - Source file with your soluti…
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. 本次实验难点在Part B的64 * 64部分,主要介绍这一部分. Part A: 编写缓存模拟器 前期准备: getopt和fscanf系列库函数对于这次实验很重要,不太明白的可以man一下,或者参考这两篇文章: Linux下getopt()函数的简单使用 C 库函数 - fscanf() 注意…
8.9 关于并行的定义我之前写过一篇文章,参考: 并发与并行的区别 The differences between Concurrency and Parallel +----------------------------+ | Process pair Concurrent?| +----------------------------+ | AB N | | | | AC Y | | | | AD Y | | | | BC Y | | | | BD Y | | | | CD Y | +--…
4.52以后的题目中的代码大多是书上的,如需使用请联系 randy.bryant@cs.cmu.edu 更新:关于编译Y86-64中遇到的问题,可以参考一下CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南 流水线部分只写了偶数题号的,这几天太浮躁,落下了好多课... 4.45 A. 不正确,当REG为%rsp时,这样会压入%rsp - 8而非%rsp B. 对于 pushq REG: movq REG, -8(%rsp) subq $8, %rsp 4.46 A. 不正确,当R…