随笔分类 - Computer Systems
1
摘要:简介 2019年秋,我自学了一下哈工大的操作系统课程,感觉其设计的教程和实验作为操作系统入门是个不错的选择(虽然是基于较老的Linux 0.11写的)。实验大致覆盖了操作系统中的核心概念,例如启动、中断、外设IO、上下文切换/系统调用,进程管理与调度,进程间通信,内存管理/地址转换,文件系统等。而且
阅读全文
摘要:什么是CPU保护环? 在 "计算机科学" 中, 分级保护域 (英语:hierarchical protection domains),经常被叫作 保护环 (Protection Rings),又称 环型保护 (Rings Protection)、 CPU环 (CPU Rings),简称Rings。这
阅读全文
摘要:注:tiny.c csapp.c csapp.h等示例代码均可在Code Examples获取 11.6 A. 书上写的示例代码已经完成了大部分工作:doit函数中的printf("%s", buf);语句打印出了请求行;read_requesthdrs函数打印出了剩下的请求报头,但是要注意书上写的
阅读全文
摘要:10.6 1.若成功打开“foo.txt”: -->1.1若成功打开“baz.txt”: 输出“4\n” -->1.2若未能成功打开“baz.txt”: 输出“-1\n” 2.若未能成功打开“foo.txt”: -->2.1若成功打开“baz.txt”: 输出“3\n” -->2.2若未能成功打开“
阅读全文
摘要:详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取。 在这个实验中我们需要实现自己的动态内存申请器(malloc、free、realloc) 前期准备:
阅读全文
摘要:9.11 A. 00001001 111100 B. C. 010111 111100 D. 9.12 A. 00001110 101001 B. C. 010001 101001 D. 9.13 更新:计算VPN时0x4写成0010,本错误由孙月晴指出,已更正。 A. 000000001 0000
阅读全文
摘要:详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取。 前期准备 Signal (IPC) signal(2) - Linux manual page -
阅读全文
摘要:8.9 关于并行的定义我之前写过一篇文章,参考: 并发与并行的区别 The differences between Concurrency and Parallel + + | Process pair Concurrent?| + + | AB N | | | | AC Y | | | | AD
阅读全文
摘要:7.6 + + |Symbol entry? Symbol type Module where defined Section | | | | buf Y extern m.o .data | | | | bufp0 Y global swap.o .data | | | | bufp1 Y loc
阅读全文
摘要:详细的题目要求和实验资源可以到 "教材官网" 或者 "课程官网" 获取。 本次实验难点在Part B的64 \ 64部分,主要介绍这一部分。 Part A: 编写缓存模拟器 前期准备: 和`fscanf man`一下,或者参考这两篇文章: "Linux下getopt()函数的简单使用" "C 库函数
阅读全文
摘要:6.22 假设磁道沿半径均匀分布,即总磁道数和(1-x)r成正比,设磁道数为(1-x)rk; 由题单个磁道的位数和周长成正比,即和半径xr成正比,设单个磁道的位数为xrz; 其中r、k、z均为常数。 所以C = (1-x)rk * xrz = (-x2 + x) * r2 * kz,即需要-x^2
阅读全文
摘要:5.13 A. 由浮点数加法的延迟,CPE的下界应该是3。 由整数加法的延迟,CPE的下界应该是1. 由A中的数据流图,虽然浮点数乘法需要5个周期,但是它没有“数据依赖”,也就是说,每次循环时的乘法不需要依赖上一次乘法的结果,可以各自独立进行。但是加法是依赖于上一次的结果的(sum = sum +
阅读全文
摘要:详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取。 虽然我们学校第四章没有要求做实验(Architecture Lab ),但课后作业用到了Y86-6
阅读全文
摘要:4.52以后的题目中的代码大多是书上的,如需使用请联系 randy.bryant@cs.cmu.edu 更新:关于编译Y86-64中遇到的问题,可以参考一下CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南 流水线部分只写了偶数题号的,这几天太浮躁,落下了好多课。。。 4.45 不正
阅读全文
摘要:3.58 long decode2(long x, long y, long z) { int result = x * (y - z); if((y - z) & 1) result = ~result; return result; } 3.59 这个题考察的是2.3.4和2.3.5节的一个定理
阅读全文
摘要:详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取。 getbuf()实现为: unsigned getbuf() { char buf[BUFFER_
阅读全文
摘要:bomb.c /*************************************************************************** * Dr. Evil's Insidious Bomb, Version 1.1 * Copyright 2011, Dr. Evi
阅读全文
摘要: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
阅读全文
摘要:初始完成日期:2017.9.26 许可 :除 2.55 对应代码外(如需使用请联系 randy.bryant@cs.cmu.edu),任何人可以自由的使用,修改,分发本文档的代码。 本机环境: (有一些需要在多种机器上测试的就没有试验) 2.55 编译运行输出: 数据的低位放置在低地址处,字符串按照
阅读全文
摘要:由于http://csapp.cs.cmu.edu/并未完全开放实验,很多附加实验做不了,一些环境也没办法搭建,更没有标准答案。做了这个实验的朋友可以和我对对答案;) 实验内容和要求可在http://csapp.cs.cmu.edu/3e/labs.html获得。 Data Lab [Updated
阅读全文
1