
计算机科学
文章平均质量分 89
楠兮兮
这个作者很懒,什么都没留下…
展开
-
算法导论——算法设计与分析
一、算法概述 在数学和计算机科学之中,算法是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。1.1 算法分析 所谓的算法分析,是指通过分析而非实验的手段来考察算法的某些性质。 算法的正确性,要求算法对于每一个输入都最终停止,并且产生正确的输出。当不满足算法的正确性时,会产生不正确错算法,对于某个输入不停止,或产生不正确的结果;或产生近似算法,对所有输入都停止,但会产生近似正确的解或产生少数的不正确解。算法的正确性分析要求: -证明算法对所有的输入都停止原创 2021-03-31 16:01:45 · 684 阅读 · 0 评论 -
离散数学——图论
一、图 图作为数学模型,是一种用于描述有穷系统的二元关系(V,R)(V, R)(V,R),图的二元关系使得图的集合产生了结构。1.1 图 设有穷集合VVV,取集合P2(V)={(u,v)∣u,v∈V}\mathcal{P}_2(V) = \{(u, v)|u, v \in V\}P2(V)={(u,v)∣u,v∈V},E⊆P2(V)E \subseteq \mathcal{P}_2(V)E⊆P2(V),则称二元组(V,E)(V, E)(V,E)为无向图。 对于图G=(V,E)G = (V,原创 2021-03-04 14:39:26 · 1470 阅读 · 0 评论 -
离散数学——朴素集合论
一、集合的基本结构 集合是不同对象的一个无序的聚集,对象称为集合的元素。1.1 集合引论 描述集合的方法有多种方式。一种方式是在可能的情况下一一列出集合中的元素,称为枚举,如A={1,2,3,4}A = \{1, 2, 3, 4\}A={1,2,3,4}另一种方法是集合构造器,形如B={x∣P(x)}B = \{x|P(x)\}B={x∣P(x)}描述了满足PPP的元素。当集合不包含任何元素,称为空集,记作∅\varnothing∅。 设AAA、BBB为集合,若AAA中的每个元素都属于BBB,原创 2021-02-11 12:03:16 · 1540 阅读 · 0 评论 -
计算机系统——系统级I/O
一、Unix I/O 一个Linux文件就是一个字节序列,所有的I/O设备都被模型化为文件,所有的输入和输出都被当作对响应文件的读和写。这种将设备优雅的映射为文件的方式,允许Linux内核引出一个简单、低级的应用接口,称为Unix I/O。1.1 文件 每个Linux文件都有一个类型来表明其在系统中的角色: -普通文件,包含任何数据,应用程序常常区分文本文件,仅包含ASCII或Unicode字符;和二进制文件,是除了文本文件之外的所有文件。对于内核而言,两者没有区别; -目录,包含一组链接原创 2020-10-14 12:59:18 · 396 阅读 · 0 评论 -
计算机系统——虚拟内存
一、虚拟内存 现代系统提供了一种对主存的抽象概念,即虚拟内存【Virtual Memory,VM】,以便于更加有效的管理内存,减少出错。VM使得每个进程使用统一的线性地址空间,同时又保持内存独立。1.1 地址空间 计算机系统的主存被组织成一个连续字节大小单元的数组。每个字节都有唯一的物理地址【Physical Address,PA】。CPU访问内存的最自然的方式就是使用物理地址,称为物理寻址。 现代处理器使用的是虚拟寻址的寻址形式,CPU通过生成虚拟地址【Virtual Address,VA】原创 2020-10-13 14:01:18 · 783 阅读 · 0 评论 -
数据结构——查找与排序
一、查找1.1 查找表 查找表示面向操作的数据结构,主要的查找结构分为线性表、树表与散列表。原创 2020-10-09 16:59:35 · 729 阅读 · 0 评论 -
计算机系统——异常与信号
一、异常控制流 从给处理器加电开始,处理器只是简单地读取和执行一个指令序列,这个指令序列就是处理器的控制流。现代系统使控制流发生突变,而对程序状态和系统状态的变化做出反应,称为异常控制流。1.1 异常 异常使指为了响应某个事件而将控制转移给操作系统内核的情况,其中内核指操作系统常驻内存的部分。异常的处理需要软件与硬件的配合,当处理器检测到事件时,会通过异常表进行处理。 异常表是一张跳转表,系统中可能的每一种类型的异常都分配了唯一的非负整数异常号,异常表的表目k包含了k类异常的处理程序的地址。当原创 2020-10-09 14:33:42 · 1250 阅读 · 0 评论 -
计算机网络——自顶向下的物理层
一、通信基础1.1 信号与数据 数据是传送信息的实体,信号是数据的电气或电磁变现,是数据在传输过程中的存在形式,包括模拟信号与数字信号。 码元是指用固定市场的信号波形或数字脉冲表示一个k进制的数字,这个时长内的信号称为k进制码元。例如在二进制编码中,只有两种码元,一种代表0,另一种代表1。 数字通信是指数字计算机或其他数字终端之间的通信。一个数据通信系统主要划分为信源、信道和信宿三个部分。 信源是产生和发送数据的源头,信宿是接收数据的终点,通常是计算机或其他数字终端装置。信源发出的信息需要原创 2020-10-08 16:50:57 · 709 阅读 · 0 评论 -
计算机网络——自顶向下的链路层
一、链路层协议原理1.1 链路层概述 数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。 运行链路层协议的任何设备均称为结点,包括主机、路由器、交换机与wifi接入点。沿着通信路径连接相邻结点的通信信道称为链路,包括以太网链路、Wifi链路等。在通过特定的链路时,传输结点将数据报封装在帧【fame】中。 链路层的主体部分是在网络适配器中实现,通常是一个实现了许多链路层服务的专用芯片,因此链路层的许多功能基于硬件实现。1.2 链路层提供的服务 链路层协议能够原创 2020-10-07 15:43:39 · 447 阅读 · 0 评论 -
计算机系统——链接与库
一、静态链接 链接是将各种代码和数据片段收集并组合成为一个单一文件的过程。1.1 链接器驱动程序 考虑main.c文件代码形如int sum(int *a, int n);int array[2] = {1, 2};int main(){ int val = sum(array, 2); return val;}与sum.c文件代码形如int sum(int *a, int n){ int i, s = 0; for (i = 0; i <原创 2020-10-07 14:03:44 · 627 阅读 · 1 评论 -
计算机系统——存储器层次结构
一、储存技术1.1 随机访问存储器 随机访问存储器【Random Access Memory,RAM】封装在芯片内,基本储存单位是单元,容量为1bit,多个RAM芯片组成了存储器。RAM分为静态随机访问存储器【Static Random Access Memory,SRAM】与动态随机访问存储器【Dynamic Random Access Memory,DRAM】。 SRAM将每个位存储在一个双稳态的存储器单元内,每个单元使用一个六晶体管电路实现的,其可以无限期的保持在两个不同的电压状态之一,而其原创 2020-10-06 11:36:21 · 1076 阅读 · 1 评论 -
计算机系统——处理器体系结构
一、Y86-64指令集体系架构 指令集体系架构定义了状态单元、指令集、编码、规范及异常事件处理。1.1 Y86-64指令集 Y86-64是Intel x86-64得一个简单版本。 Y86-64处理器的状态包括: -程序寄存器,除了%r15的64位寄存器; -条件码,由算术或逻辑指令产生的标识,包括ZF、SF与OF; -程序计数器【Program Counter,PC】记录下一条指令的地址; -程序状态【Program Status,Stat】指示程序的正常操作或错误状态;原创 2020-10-03 13:52:49 · 2895 阅读 · 3 评论 -
数据结构——图
一、图1.1 图 由顶点【vertex】的有穷非空集合和顶点之间的边【edge】的集合组成的数据结构称为图【Graph】,通常表示为G=(V,E)G = (V, E)G=(V,E)其中,GGG表示一个图,VVV是图GGG中顶点的集合,EEE是图GGG中顶点之间边的集合。顶点一般用于表示数据对象,而边表示了数据对象之间的关系。 若顶点viv_ivi和vjv_jvj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)(v_i, v_j)(vi,vj),而当图的任意两个顶点之间的边都是无向原创 2020-09-29 17:22:49 · 332 阅读 · 0 评论 -
计算机网路——自顶向下的网络层
一、网络层核心功能1.1 转发与路由 网络层的作用从表面上看极为简单,即将分组从一台发送主机移动到一台接收主机。为此,需要使用两种重要的网络层功能,即转发与路由。转发指的是当一个分组到达某路由器时的一条输入链路时,该路由器必须将该分组移动到适当的输出链路,通常用硬件实现;路由指的是分组从发送方流向接收方时,分组路径的决定策略,通常由软件实现。1.2 网络层服务模型 网络层服务模型可以分为无连接服务与连接服务。无连接服务不事先为系列分组的传输确定传输路径,由路由算法决定;而连接服务为系列分组的传输原创 2020-10-05 15:12:20 · 281 阅读 · 0 评论 -
计算机网络——自顶向下的传输层
一、传输协议原理1.1 传输层与网络层 传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制。在端系统运行传输层协议时,发送方将应用递交的消息分成一个或多个报文段【Segment】,并下传给网络层;而接收方将收到的segment组装成消息,并上交给应用层。 运输层提供了应用进程之间的逻辑通信机制,而网络层提供了Host之间的逻辑通信机制。传输层位于网络层之上,依赖于网络层服务的同时又对网络层服务进行可能的增强。 传输层协议包括可靠、按序交付的服务TCP与不可靠的交付服务UDP,两者均不原创 2020-09-22 17:46:21 · 648 阅读 · 0 评论 -
计算机系统——程序的机器级表示
一、IA32处理器体系结构 1965年,Intel的创始人根据当时的芯片技术做出推断,预计在未来10年,芯片上的晶体管数量每年都会翻一番,这个预测就称为摩尔【Moore】定律。事实上,在超过50年中,半导体工业一直能够使得晶体管的数目每18个月翻一倍。1.1 处理器体系结构 处理器体系架构【Instruction Set Architecture,ISA】用于定义了机器级程序的格式和行为,其定义了处理器状态、指令的格式,以及每条指令对于状态的影响。 架构的具体实现称为微架构,包括缓存大小、核心原创 2020-09-24 15:42:43 · 966 阅读 · 0 评论 -
数据结构——线性表
一、线性表的抽象数据型1.1、线性表数据结构 线性表【Linear List】是由元素组成的有序集合。记作(a0,...,ai−1,ai,ai+1,...,an−1)(a_0, ..., a_{i-1}, a_i, a_{i+1}, ..., a_{n-1})(a0,...,ai−1,ai,ai+1,...,an−1)其中: -nnn是有穷自然数,是线性表的长度,即线性表是有限的,当n=0n = 0n=0时,线性表为空表,记作()()(); -aia_iai是线性表的元素,iii是原创 2020-09-26 14:17:30 · 439 阅读 · 0 评论 -
计算机网络——自顶向下的应用层
一、应用协议原理1.1 网络应用程序体系结构 应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。 在客户-服务器体系结构中,有一个总是打开的主机称为服务器,它服务于来自许多其它称为客户的主机的请求,而客户相互之间不直接通信。服务器具有固定的、周知的地址,称为IP地址。配备大量主机的数据中心常被用于创建强大的虚拟服务器。 在对等【Peer-to-peer,P2P】体系结构中,应用程序在间断来接的主机对之间使用直接通信,这些主机称为对等方。P2P具有自扩展性,即对等方产原创 2020-09-16 17:31:43 · 685 阅读 · 0 评论 -
计算机系统——信息的表示与处理
一、信息的位表示 现代计算机储存和处理的信息以二值信号表示,这些二进制数字,或者称为位【bit】,形成了数字革命的基础。1.1 信息存储 大多数计算机使用8位的块,或者称为字节【byte】,作为最小的可寻址的内存单位,而不是访问内存中单独的位。一个字节由8位组成,在二进制表示法中,其值域为[000000002,111111112][00000000_2,11111111_2][000000002,111111112],在十进制的值域为[0,255][0, 255][0,255]。二进制表示法太原创 2020-09-16 13:02:27 · 1308 阅读 · 0 评论