CMU 15-213 Lab6 Proxy Lab
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一部分回顾CSAPP的Proxy Lab。
参考资料:
https://www.jianshu.com/p/a501d0c2f131
https://blog.csdn.net/weixin_44520881/article/details/109518057
https://blog.csdn.net/qq_26440803/article/details/83795122
https://home.baidu.com/home/index
https://www.runoob.com/cprogramming/c-function-malloc.html
https://blog.csdn.net/jazzsoldier/artic ...
深入理解计算机系统 第12章 习题解析
这次回顾第12章部分习题。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
参考资料:
https://dreamanddead.github.io/CSAPP-3e-Solutions/chapter12/
说明:
19~20是难题,21,23,26以及31之后习题略过。
12.16代码:
#include "csapp.h"
void *thread(void *vargp); //line:conc:hello:prototype
int main(int argc, char **argv) //line:conc:hello:main
{
int n = -1;
if (argc != 2) {
fprintf(std ...
Hybrid Random Features:利用Bagging的思路降低Kernel法的误差
论文地址:
Hybrid Random Features
说明由于工作的原因平时要看不少论文,加上经常看苏神对论文的解析,所以决定自己也开始写论文解析,每篇解析主要分为以下几个部分:
论文的整体思想概述;
背景知识(可选);
论文的主体思想,忽略不必要的细节;
对该方法的分析和讨论(可选);
整体概述Hybrid Random Features是Rethinking Attention with Performers的续作,其主要思想是:
基于蒙特卡洛的Kernel法对Softmax的近似是有误差的,利用Bagging可以减少这个误差。
背景知识这部分对所需要的背景知识进行介绍。
Attention回顾首先回顾attention的核心计算公式:
输入:
Q\in \mathbb R^{n\times d},K \in \mathbb R^{n\times d} ,V \in \mathbb R^{n\times d}输出:
\begin{aligned}
O&= \mathrm{SoftMax}\left(Q K^\top \right) V
\end{aligned}备注 ...
深入理解计算机系统 第12章 笔记整理
这次回顾深入理解计算机系统第12章并发编程。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
备注:图片和总结内容均来自于电子书。
第12章:并发编程重要概念
如果逻辑控制流在时间上重叠,那么它们就是并发的,这种常见的现象称为并发。
现代操作系统提供了三种基本的构造并发程序的方法:
进程;
I/O多路复用;
线程;
主线程(main thread),对等线程(peer thread),两者的区别;
多线程程序中变量的种类:
全局变量;
本地自动变量;
本地静态变量;
信号量相关:
进度图(progress graph)
临界区(critical section)
互斥(mutual exclusion)
不安全区(unsafe region)
安全轨迹线(safe trajectory)
不安全轨迹线(unsafe trajectory)
信号量
二元信号量(binar ...
CMU 15-213 Intro to Computer Systems Lecture 23 to Lecture 24
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一部分回顾Lecture 23至Lecture 24,介绍了并发编程。
备注:图片和总结内容均来自于课件。
说明:
大部分内容已经整理过,这里仅仅进行补充。
Lecture 23并发编程很困难
并发编程的经典问题类:
竞争:结果取决于系统中其他地方的任意调度决策。
示例:谁获得了飞机上的最后一个座位?
死锁:资源分配不当阻碍前进。
例子:交通拥堵。
活锁/饥饿/公平:外部事件和/或系统调度决策可以阻止子任务的进展。
例子:人们总是在你前面排队。
迭代服务器的基本流迭代服务器一次处理一个请求:
解决方法是使用并发服务器,并发服务器使用多个并发流同时为多个客户端提供服务:
基于进程
优缺点优点:
并发处理多个连接;
...
CMU 15-213 Intro to Computer Systems Lecture 21 to Lecture 22
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一部分回顾Lecture 21至Lecture 22,介绍了网络编程。
备注:图片和总结内容均来自于课件。
说明:
大部分内容已经整理过,这部分参考之前的笔记:
https://doraemonzzz.com/2021/09/22/2021-9-22-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F-%E7%AC%AC11%E7%AB%A0-%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86/
这里仅仅进行补充。
Lecture 21计算机网络
网络是按地理邻近性组织的盒子和电线的分层系统
SAN(系统 ...
CMU 15-213 Intro to Computer Systems Lecture 18 to Lecture 20
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一部分回顾Lecture 18至Lecture 20,包含虚拟内存以及内存分配。
备注:图片和总结内容均来自于课件。
说明:
大部分内容已经整理过,这部分参考之前的笔记:
https://doraemonzzz.com/2021/09/16/2021-9-16-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F-%E7%AC%AC9%E7%AB%A0-%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86-p1/
https://doraemonzzz.com/2021/09/16/2021-9-16-%E6 ...
深入理解计算机系统 第11章 习题解析
这次回顾第11章习题。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
参考资料:
https://dreamanddead.github.io/CSAPP-3e-Solutions/chapter11/
https://www.cnblogs.com/wei-hj/p/7859707.html
https://www.cnblogs.com/pu369/p/12201707.html
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop/related
https://blog.csdn.net/chenchunlin526/article/details/78981965
代码均修改自
Code-all/code/netp/tiny/ ...
深入理解计算机系统 第11章 笔记整理
这次回顾深入理解计算机系统第11章网络编程。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
参考资料:
https://blog.csdn.net/u012294618/article/details/77979604
备注:图片和总结内容均来自于电子书。
第11章:网络编程重要概念
客户端服务器编程模型
网络对计算机来说是数据源和数据接收方
网络层次结构
局域网
以太网
广域网
internet和Internet
IP地址
点分十进制表示法
因特网域名,DNS(Domain Name System, 域名系统)
localhost,回送地址(loopback address),127.0.0.1
套接字:“地址:端口”
连接由套接字对确定
客户端服务器编程模型
许多网络应用都是基于客户端-服务器模型;
采用这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组 ...
深入理解计算机系统 第10章 习题解析
这次回顾第10章习题。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
参考资料:
https://dreamanddead.github.io/CSAPP-3e-Solutions/chapter10/
10.6#include "csapp.h"
int main()
{
int fd1,fd2;
fd1 = Open("foo.txt",O_RDONLY, 0);
fd2 = Open("bar.txt", O_RDONLY, 0);
Close(fd2);
fd2 = Open("baz.txt", O_RDONLY, 0);
printf("fd2 = %d\n", fd2);
exit(0);
}
输出结果为:
fd2 = 4
测试:
gcc -o 10.6 10.6.c -lp ...
深入理解计算机系统 第10章 笔记整理
这次回顾深入理解计算机系统第10章系统级I/O。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
参考资料:
https://blog.csdn.net/u012294618/article/details/77979604
备注:图片和总结内容均来自于电子书。
第10章:系统级I/O重要概念
描述符
输入输出的方式
打开文件
改变当前文件的位置
读写文件
关闭文件
EOF
文件类型:
普通文件(regular file)
目录(directory)
套接字(socket)
路径:
绝对路径名
相对路径名
stat, fstat函数获得元数据
目录流
共享文件
描述符表
文件表
v-node表
I/O重定向
dup2
双全工
Unix I/O一个Linux文件就是一个$m$个字节的序列:
B_{0},B_{1}, \cdots, B_{k}, \cdots, B_ ...
深入理解计算机系统 第9章 笔记整理 p2
这次回顾深入理解计算机系统第9章动态内存分配部分。
电子书地址:
http://eol.bnuz.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=2169600&resid=242120&lid=28605
备注:图片和总结内容均来自于电子书。
第9章:虚拟内存重要概念
一个区域(area)就是已经存在着的(已分配的)虚拟内存的连续片(chunk),这些页是以某种方式相关联的;
任务结构(task_struct);
内存映射(memory mapping);
普通文件,匿名文件(请求二进制零的页(demand-zero page)),交换文件;
共享对象,私有对象,共享区域,私有区域;
私有的写时复制;
vm_area_structs(区域结构);
显式分配器(explicit allocator),隐式分配器(implicit allocator);
聚集有效载荷(aggregate payload);
动态内存分配器考虑的问题:空闲块组织,放置,分割,合并;
内部碎片,外部碎片,假碎片 ...