计组面经2:存储系统
1 多级存储系统?为了解决存储系统大容量、高速度和低成本 3 个相互制约的矛盾,在计算机系统中,通常采用多级存储器结构,在图中由上至下,位价越来越低,速度越来越慢,容量越来越大, CPU 访问的频度也越来越低。
实际上,存储系统层次结构主要体现在“Cache-主存”层次和“主存-辅存”层次。前者主要解决CPU和主存速度不匹配的问题,后者主要解决存储系统的容量问题。在存储体系中, Cache 、主存能与 CPU 直接交换信息,辅存则要通过主存与CPU 交换信息;主存与CPU 、Cache 、辅存都能交换信息。
存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。从 CPU 的角度看,”Cache—主存”层次速度接近于Cache,容量和位价却接近千主存。从“主存—辅存”层次分析,其速度按近于主存,容址和位价动接近于辅存。这就解决了速度、容量、成本这三者之间的矛盾。
在“主存—辅存”这一层次的不断发展中,逐渐形成了虚拟存储系统,在这个系统中程序员编程的地址范围与虚拟存储器的地址空间相对应。对具有虚拟存储器的计算机系统而言,编程时可用的地址空间远大于主存间。
2 半导体随 ...
信息安全实验8:漏洞利用
1 实验环境
操作系统版本:Windows 11 家庭中文版23H2
VMware® Workstation 16 Pro:16.2.3 build-19376536
Metasploitable2虚拟机版本:2.6.24-16-server
Kali虚拟机版本:6.6.9-amd64
2 实验内容2.1 系统信息收集使用命令nmap -sV -P 192.168.160.136是使用Nmap工具进行的一次服务版本探测扫描,扫描结果如图2.1所示。
图2.1 服务及版本侦测
2.2 笑脸漏洞后门利用笑脸漏洞(Smiling Face vulnerability)是一个网络安全术语,用来描述一种特定类型的安全漏洞,通常发生在软件或系统的用户界面(UI)设计中。这种漏洞的本质是,用户界面或提示信息通过图标、符号或文字表达了一种错误的信息或安全状态,导致用户错误地认为系统或应用程序处于安全状态,而实际上存在安全风险。
2.2.1 手动漏洞利用(1)连接目标主机
如图2.2所示,在Kali终端使用ftp协议连接目标主机,输入任意用户名并添加笑脸符号“:)并输入任意密码。
图2.2 ...
计组面经1:计算机系统概述和数据的表示
1 冯诺依曼机和存储程序的概念?冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·诺依曼机,其特点如下:
计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5 大部件组成。
指令和数据以同等地位存储在存储器中,并可按地址寻访。
指令和数据均用二进制代码表示。
指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。现代计算机以存储器为中心。
“存储程序”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
冯诺依曼结构的模型机:
2 计算机的工作过程?计算机的工作过程分为以下三个步骤:
把程序和数据装入主存储器
将源程序转换成可执行文件
从可执行文件的首地址开 ...
信息安全实验7:情报收集
1 实验环境
操作系统版本:Windows 11 家庭中文版23H2
VMware® Workstation 16 Pro:16.2.3 build-19376536
Metasploitable2虚拟机版本:2.6.24-16-server
Kali虚拟机版本:6.6.9-amd64
2 实验内容2.1 系统信息收集2.1.1 whois
图2.1 使用whois命令查询
图2.1所示是从使用whois命令查询到的IP地址范围的结果,具体来说是192.168.0.0到192.168.255.255这个范围,以下是各个字段的解释:
NetRange(网络范围):192.168.0.0~192.168.255.255,表示这个地址范围从192.168.0.0到192.168.255.255,共计65536个IP地址。
CIDR(无类域间路由):192.168.0.0/16,这是用CIDR表示法表示的同样的地址范围,其中/16表示了子网掩码为255.255.0.0。
NetName(网络名称):PRIVATE-ADDRESS-CBLK-RFC1918-IANA ...
信息安全实验6:SQL注入(数字注入)
1 实验环境
操作系统版本:Windows 11 家庭中文版23H2
VMware® Workstation 16 Pro:16.2.3 build-19376536
Metasploitable2虚拟机版本:2.6.24-16-server
Kali虚拟机版本:6.6.9-amd64
2 实验内容2.1 判断注入点与注入类型(1)分别测试输入:1、1”和1’。
图2.1 判断注入类型:输入1
图2.2 判断注入类型:输入1”
图2.3 判断注入类型:输入1’
由图2.1所示,从url可知,页面采用GET方法提交数据。由图2.2和图2.3可知,输入1”和1’后不能正确得到查询结果,所以推测注入类型为数字型注入,同时输入的单引号和双引号均被转义,可以推测数据库为MySQL。
(2)测试输入:2 and 2 = 2和2 or 2 = 2
图2.4 判断注入类型:输入2 and 2 = 2
由图2.4可知,当输入“2 and 2 = 2”时,其中后面的and条件始终成立,所以查询的条件还是前面的1起作用,所以查询的结果即为查询id是1 ...
数据结构面经3:栈、队列和串
1 栈和队列的区别和存储结构1.1 栈定义:只允许在表尾(栈顶)进行插入和删除的线性表,“先进后出”
顺序栈:数组(存放栈中元素)、栈顶指针
链栈:栈顶是一个指针
1.2 队列定义:只允许在表的一端(队尾)插入,在另一端(队首)删除的线性表,“先进先出”
顺序队列:数组(存放队列中元素)、头指针、尾指针
链式队列:队首指针、队尾指针
两个栈模拟一个队列:队列是先进先出,栈的是先进后出。同一组数据连续执行两次先进后出之后再出栈就可以实现队列的先进先出。
2 共享栈利用栈底位置相对不变的特性,让两个顺序栈共享一个一维数组空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸。这样能够更有效的利用存储空间,防止上溢。
3 如何区分循环队列是队空还是队满?一般情况,队空和队满的判断条件都是Q.front == Q.rear,可以使用以下2种方法来进行区分:
(1)方法1:牺牲一个单元(即最后一个单元不存数据)来区分队空和队满
队空:Q.front == Q.rear
队满:(Q.rear + 1) % MaxSize == Q.front
元素个数:(Q.r ...
Diffusion Model
1 Diffusion Model原理1.1 整体实现
首先要生成一个和要生成图片相同大小的杂讯的图,然后每通过一个 Denoise Network 就把噪音过滤掉一些,把这个过程做很多次,就可以得到想要的图片。其中 Denoise 进行的步骤是实现规定好的,对每个 Denoise 分配一个编号,越靠近最终的图片,编号越小。想要的图片其实就在噪音中,只不过把不想要的部分去除,
上述过程称为 reverser process,把同一个 Denoise Model 使用很多次。但是由于每次输入的图片差异较大,因此如果是同一个模型,可能不一定做的很好。
所以这个 model 除了会接收图片的输入,还会接收一个当前这个图片 noise 的程度的输入,1000 代表现在 noise 部分很大,而 1 代表现在噪音占比很小。
1.2 Denoise内部实现
Noise Predicter:预测这张图片中杂讯的分布,先学习加噪,再进行减噪
把Noise Predicter输出预测的杂讯剪掉一开始的输入,就得到去掉部分噪音之后的图片。
为什么要这么设计:因为产生满足噪声分布的数据更简单,因此学习 ...
数据结构面经2:线性表
1 各种线性表1.1 优缺点顺序表
优点:可以随机存取,快;存储密度大
缺点:插入、删除效率低;存储空间固定,分多了浪费,分少了又不足
单链表
优点:插入、删除效率高;空间可动态分配
缺点:不能随机存取,要顺序存取,慢;存储密度不大(有指针域)
静态链表:融合顺序表和单链表的优点,既能快速访问元素,又能快速插入、删除元素
1.2 对比1.2.1 存取(读写)方式顺序表可以顺序存取,也可以随机存取,链表只能从表头顺序存取元素。例如在第i个位置上执行存或取的操作,顺序表仅需一次访问,而链表则需从表头开始依次访问i次。
1.2.2 逻辑结构与物理结构采用顺序存储时,逻辑上相邻的元素,对应的物理存储位置也相邻。而采用链式存储时,逻辑上相邻的元素,物理存储位置则不一定相邻,对应的逻辑关系是通过指针链接来表示的。
1.2.3 查找、插入和删除操作对于按值查找,顺序表无序时,两者的时间复杂度均为$O(n)$;顺序表有序时,可采用折半查找,此
时的时间复杂度为$O(log_2n)$ 。
对于按序号查找,顺序表支持随机访问,时间复杂度仅为$O(1)$, 而链表的平均时间复杂度为$O(n)$ 。 ...
数据结构面经1:绪论
1 时间复杂度一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为 $T(n)$,它是该算法问题规模 $n$ 的函数。
时间复杂度主要分析 $T(n)$ 的数量级。算法中基本运算(最深层循环内的语句)的频度与 $T(n)$ 同数量级,因此通常采用算法中基本运算的频度$f(n)$来分析算法的时间复杂度。因此,算法的时间复杂度记为$$ T(n) = O(f(n))$$
$O$ 的含义是 $T(n)$ 的数量级,其严格的数学定义是:若 $T(n)$ 和 $f(n)$ 是定义在正整数集合上的两个函数,则存在正常数 $C$ 和 $n_0$,使得当 $n \geq n_0$ 时,都满足 $0 \leq T(n) \leq Cf(n)$。
算法的时间复杂度不仅依赖于问题的规模 $n$,也取决于待输入数据的性质(如输入数据元素的初始状态)。
2 空间复杂度算法的空间复杂度 $S(n)$ 定义为该算法所耗费的存储空间,它是问题规模 $n$ 的函数。记为
$$ S(n)=O(g(n))$$
一个程序在执行时除需要存储空间来存放本身所用的指令、常 ...
d2l学习笔记1:第3章线性回归课后题
1 线性回归1.1 问题1假设我们有一些数据$x_1, \ldots, x_n \in \mathbb{R}$。我们的目标是找到一个常数$b$,使得最小化$\sum_i (x_i - b)^2$。
找到最优值$b$的解析解。
这个问题及其解与正态分布有什么关系?
1.1.1 第一问线性回归的解可以用一个公式简单地表示,这类解叫做解析解。
$$\begin{array}{c}\underset{b}{\operatorname{argmin}} \sum_{i=1}^{n}\left(x_{i}-b\right)^{2} \ \Rightarrow \frac{\partial \sum_{i=1}^{n}\left(x_{i}-b\right)^{2}}{\partial b}=0 \ \Rightarrow \sum_{i=1}^{n}\left(x_{i}-b\right)=0 \ \Rightarrow \sum_{i=1}^{n} x_{i}=n b \ \Rightarrow b=\frac{ ...