是通过ARP地址解析协议来完成的。每个主机都有一个ARP高速缓存,里面有一张ARP表,表里存放的是在本局域网上的各个主机和路由器的IP地址到MAC地址的映射。 工作的过程是: 在同一个局域网中: 当主机A想向本局域网中的某个主机B发送信息时----> 就先在ARPg高速缓存中查看有没有主机B的IP地址----> 如果有就可以找到对应的MAC地址,再将这个硬件地址写入mac帧,然后通过局域网将该MAC帧发往这个硬件地址 ----> 如果没有就通过广播的方式,使同一个局域网里的所有主机收到ARP请求,从而找到主机B 在不同的局域网中: 就要通过ARP协议找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,再让路由把分组转给下一个网络。
|
2、 OSI参考模型与TCP/IP的区别 1) OSI有七层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP有五层,是将OSI的物理层和数据链路层合并为网络接口层,将会话层、表示层、应用层合并为了应用层。 2)在网络层中:OSI模型是无连接和面向连接的,而TCP/IP是无连接的; 在传输层中:OSI模型是面向连接的,而TCP/IP是无连接和面向连接的;
|
3、 什么是面向连接和无连接? 面向连接:面向连接有三个阶段,分别是建立连接、传输数据和释放连接 无连接:无连接只有一个阶段,即直接进行数据传输; |
4、 5G的G是什么意思? 5、 安网线的啥?
|
6、 TCP和UDP的区别
|
7、 ARP和DNS有什么区别? |
|
4、 OSI参考模型(七层模型如何封装、解封装)(每一层的常见协议) |
5、 TCP/IP模型(是OSI的简化、简化了哪些层、相应的有什么好处) |
6、 IP协议(主要特点) |
7、TCP、UDP这两个协议的比较,TCP三次 握手(必问TCP UDP分别在哪一层)(三次握手为什么这样做)(TCP的拥塞阻塞协议、滑动窗口) |
8、 常见的应用层协议(DNS、DHCP) |
9、对称密钥、非对称密钥(要知道加密方式、两个什么时候应用、应用场景) |
所以浮点数不能够判断相等,像 if(x==0)的这样的编码是不总是正确的,我们在判断浮点数相等时,推荐用范围来确定,若x在某一范围内,我们就认为相等,至于范围怎么定义,要看实际情况而已了,float,和double 各有不同
所以const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON) 这样判断是可取的
至于为什么取0.00001,可以自己按实际情况定义
文件方面一般包含:(fgetc,fputc)(括号表示这是一组,在一起使用的),(fgets,fputs),(fread,fwrite),(fscanf,fprintf)。
fgetc和fputc是对单个字符(类似char ch)进行调用的:
fgetc的函数结构如下:fgetc(fp)(fp是定义的指针,如,FILE *fp; fp是指向一个文件的),fgetc是将文件中的字符进行调出,一般是ch=fgetc(fp),将里面的字符赋值给ch中。
fputc的函数结构如下:fputc(ch,fp),fputc是将字符输入到fp所指向的文件中。
在网络平台上,展示、传递信息给用户,或可以跟用户进行交流的界面;
前端开发最基础的技术 html(5) css(3) javascript
做一个页面,html是基本,通过html语言 记各种标签 把文字、图片等信息展示出来,
用css ,加以修饰,让内容的展示更美观,有需要的时候用javascript 让用户可以跟页面进行“交流”;
html css javascript 的作用,也是一个前端开发最基础的工作;
对这个方向的理解:
在实际应用场合,采集的信息很多都是图像信息,比如指纹、条码、人脸、虹膜、车辆等等。
在应用场合,医学图像这一块,医疗器械的主要功能是成像,都会涉及到对图像的处理;
还有就是计算机视觉和模式识别方向,比如指纹识别、人脸识别、虹膜识别;
比方说一个成像设备,在输出图像之前需要对原始图像进行增强或者去噪处理,存储时需要对图像进行压缩,成像之后需要对图像内容进行自动分析,这些内容都是图像处理的范畴
带宽就是传输速率,是指每秒钟传输的最大字节数(MB/S),即每秒处理多少兆字节,高带宽则意味着 系统的高处理能力。
类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。举一个例子说明下类,比如Person(人)就是一个类,那么具体的某个人“张三”就是“人类”这个类的对象,而“姓名、身高、体重”等信息就是对象的属性,人的动作比如“吃饭、穿衣”等就是对象的方法。总之类就是有相同特征的事物的集合,而对象就是类的一个具体实例。同时类有多态和继承,例如“人类”可以分为“男人、女人”,“老人、小孩”那么“男人、女人”就是“人类”的子类等等。
由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体(struct)。”
|
|
|
|
|
|
|
|
|
破坏四个必要条件 破坏不可剥夺:进程阻塞时要释放自己的资源,以后重新申请 破坏请求和保持:进程运行前要一次性申请完所需的所有资源(可能造成饥饿) 破坏循环等待:给系统中的资源编号,每个进程只能按照编号递增的顺序请求资源
银行家算法:在资源的动态分配中防止系统进入不安全状态
检测:通过化简资源分配图,有剩余边则存在死锁,没有剩余边则没有死锁 解除:通过释放资源的方法 资源剥夺法、撤销进程法、进程回退法 |
|
有时候并不是需要用到全部数据,可以先试着用这个小样本解决问题
|
|
|
编译、链接、装入 |
|
|
覆盖是在一个进程或程序之间进行,而交换是在不同的进程之间进行的 |
将程序的一部分调入内存,其余部分留在外存,当需要访问的信息不存在内存时,由操作系统将需要的部分调入内存,然后继续执行
多次性、对换性、虚拟性
请求分页、请求分段、请求段页
虚拟内存的大小要小于内存容量与外存容量之和,要小于计算机的地址位数所能容纳的最大容量 |
扩充内存 |
|
实现:将近来使用的指令和数据保存到高速缓存中
实现:使用较大的告诉缓存,将预取机制集成到高速缓存控制逻辑中 |
|
抖动是频繁地页面调度,刚刚换出的页面马上也有换入主存,刚刚换入的页面马上又要换出主存 主要原因是某个进程频繁访问的页面数目高于可用的物理块数 |
解决CPU与主存之间速度不匹配的问题; |
如果Cache命中,就将地址直接转换为Cache地址 如果Cache不命中,则访问主存,并将这个块调入Cache中 |
由于CPU写Cache时,把Cache中的某个单元的内容改变了,但是这个单元对应的主存中的内容并没有改变,所以需要使用写策略处理这个现象 命中的写策略:写回法、全写法 未命中的写策略:写分配法、非写分配法 |
地址映射是将主存中的映射到Cache中
|
相同处:
不同处:
Cache不命中时,CPU可以直接和主存通信,同时将数据调入Cache中;但虚拟内存不命中时,只能先由硬盘调入主存中,而不能直接和CPU通信 |
按照逻辑结构,文件分为无结构文件、有结构文件 有结构文件又分为顺序文件、索引文件、索引顺序文件 |
按照目录,目录是特殊的有结构文件 |
操作系统以块为单位为文件分配存储空间,外存分为一个个块且相等,操作系统将逻辑地址转换为外存的物理地址 |
文件是存储在计算机上的信息集合 文件的形式很多样,可以是文档、图片、程序等等 |
是操作系统中负责管理和存储文件信息的软件机构 文件系统由三部分组成:与文件管理有关的软件、被管理的文件、以及文件管理所需要的数据结构 |
|
文件共享:
文件保护:
|
因为文件共享使得用户(或者是进程)共享同一份文件,系统中只需要保留该文件的一份副本 如果没有这个共享功能,那每个需要使用这个文件的用户都要有对应的文件副本,就会使得存储空间极大,且造成存储空间的浪费 |
|
目录实现的方法有线性表和哈希表,也就对应有线性查找和散列查找
线性表就是把文件名组织成一个线性表,查找的时候一次与线性表的每个表项进行比较
哈希表是用文件名通过哈希函数得到的,这种方式比较快但是有可能有冲突 |
逻辑结构:是在用户的角度看的,文件内部数据应该如何组织起来 物理结构:是操作系统的角度看的,文件应该如何存储在外存 |
I/O设备分为机械部件和电子部件,电子部件就是I/O控制器,又叫设备控制器 CPU无法直接控制I/P设备,需要一个CPU与I/O设备之间的中介用于实现CPU对设备的控制 I/O控制器功能:
|
程序直接控制方式、中断驱动方式、DMA方式、通道控制方式 程序直接控制方式:计算机从外设读取数据到内存,对于读入的每个字,CPU需要对外设状态进行循环检查,直到这个字已经在I/O控制器的数据寄存器上; 中断驱动方式:首先CPU发出读信号,然后I/O接收到这个信号开始准备数据,这个时候CPU不用一直等待而是转而去做其他的事,等I/O准备 好数据了就会像CPU发送一个中断信号,CPU收到中断信号就会做出响应,向I/O请求数据,再将数据放到CPU寄存器中。每传输一个字就会经过一次CPU,频繁的使用CPU。 DMA方式:在I/O设备与内存之间开辟直接的数据减缓通路,仅在传送一个或多个数据块的开始和结束时才需要CPU的干预 通道控制方式:I/O通道是指专门负责输入/输出的处理机,在DMA的基础上,在传送一组数据块之后才需要CPU的干预 |
中断驱动方式ß程序直接控制方式:CPU不用轮询等待I/O的数据准备过程 DMAß中断驱动方式:不用每次发一个字的数据就访问一次CPU,而是在传送一个或多个数据块的开始和结束时才需要CPU的干预 通道控制方式ß DMA:在传送一组数据块之后才需要CPU的干预 |
中断:每个字在I/O设备与内存之间的传输,都需要经过CPU,而频繁的中断处理会消耗较多的CPU时间 DMA:相比中断方式进一步降低了CPU的介入,在I/O和内存之间开辟了一个直接的数据交换通路 |
I/O通道是一种硬件,是较为低级别的CPU 相比CPU通道执行的指令很单一,并且通道程序是放在主机内存中的,通道和CPU共享内存 |
DMA和通道都是在CPU和I/O之间开辟了直接的数据交换通路,但是DMA在传送一个或多个数据块的开始和结束时才需要CPU的干预,而通道在传送一组数据块之后才需要CPU的干预 |
相同点:都是介于高速设备、低速设备之间 区别:
缓冲区上存放的是低速设备和高速设备之间相互传递的数据,并不是低速设备数据的备份
缓冲区的存在,使得高速设备和低速设备之间的通信必须要经过缓冲区,而不能直接互相访问 |
|
|
|
1、 进程和线程的区别和联系 |
|
|
4、虚拟内存、页面置换算法(概念、为什么会产生虚拟内存、常见的置换算法) |
5、磁盘的调度 |
什么是数据结构?你怎么理解数据结构?
空间复杂度:最好log2n,最坏n
因为时间复杂度是这条语句重复执行的次数 |
||||||
|
顺序表是数据结构中的逻辑结构,数组是数据结构中的物理结构
线性表可以用数组存储也可以用链表存储 |
优点:随机访问性强、查找速度快 缺点:插入和删除效率低、不易于扩展、内存空间要求高,必须有足够的连续内存空间
优点:插入删除速度快、方便扩展、内存利用率高,不会浪费内存 缺点:不能随机查找,必须从第一个开始遍历,查找效率低 |
|
树的遍历有两种:
森林的遍历:
树----森林----二叉树 先序---先序---先序 后序---中序---中序 |
|
二叉树有很多类
|
2^(n) – 1
2^(n-1)
log2(n+1)向上取整 log2n向下取整 +1 |
因为二叉树的线索化不会用到递归,就避免了系统栈的使用,也不会用到自己定义的栈,而是将二叉树的遍历过程线性化了; 二叉树被线索化之后金熙宇一个线性结构,就转化为了近似于线性结构的遍历操作,用过线索的辅助,使得寻找当前结点前驱或者后继的平均效率大大提高 |
是平衡二叉树的一种 定义:红黑树是满足以下条件的二叉查找树
与AVL相比的好处是:
STL的set/map底层都是用红黑树(平衡二叉树的一种)实现的 |
同时为了让他更好的平衡,AVL调整的频次也更多
|
二叉排序树中序遍历是一个递增的序列
单支树:On 平衡二叉树:Ologn 二叉排序树平均:Ologn
|
|
平衡因子只有可能是-1,0,1 (AVL是对二叉排序树的改进,所以AVL是二叉排序树)
平均查找长度Ologn
|
|
连通:无向图中,从定点v到w有路径存在则是连通的 连通图:图中任意两个顶点都是连通的,则是连通图 强连通:有向图中,从v到w,或者w到v之间都有路径 强连通图:任何一对顶点都是强连通的 |
广度优先搜索:
深度优先搜索:
|
图的遍历算法可以用来判断图的连通性 如果图是连通的,则从任一结点出发,只需一次遍历就能够访问图中所有顶点; |
非递归
à 并且u入队之后在循环中遍历,每往下走一层,对应的d[i]就会+1 à 最后要找哪一个顶点的最短路径就输出对应的d[i]的值就可以了 |
生成树:连通图的生成树包含图中所有顶点的一个极小连通子图(包含所有顶点,但是边数最少) 如果图中有n个顶点,则是生成树n-1条边 Prim算法、克鲁斯卡尔算法 |
prim算法是从顶点开始拓展最小生成树
|
|
求图中某一顶点到其余各个顶点的最短路径
|
天勤 P204 |
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法
|
|
10、迪杰斯特拉 算法,具体实现?
|
顺序查找:从一端开始顺序扫描,时间复杂度On 二分查找(折半查找):先从中间结点开始比较,比中间结点小查找左边,大的话查找右边,递归下去,复杂度一直是Olog2n 斐波那契查找:也是二分查找的一种提升算法,通过运用黄金比例的概念在数列中选择查找点进行查找,提高查找效率。大部分比小部分:1:0.618 树表查找:二叉树查找树、平衡二叉树、红黑树、b树b+树 分块查找:块内无序,块间有序 哈希查找:地址映射、解决冲突 |
基本思想:从表的一端开始,顺序扫描线性表,一次与关键值k进行比较,如果相等则查找成功,如果扫描结束了都没有找到相等的,则查找失败 性能:ASL成功=(n+1)/2 ASL失败 = n+1 时间复杂度:一直是On |
二分查找仅适用于有序的顺序表(这里假设是递增有序的) 基本思想:首先将给定的值与表中的中间位置元素进行关键字比较,如果相等则查找成功,如果比中间结点小则查找的区间,比中间结点大的话查找右边的区间,处理新的区间的时候和一开始的操作一样,也是从中间位置元素开始比较 判定树:可以得到描述折半查找的判定树 性能:复杂度一直是Olog2n ASL近似于log2(n+1)-1 |
将线性表分成若干块,每一块中的元素在块内的存储是无序的,但是块与块之间是有序的 |
|
定义:左子树的结点值小于根结点,右子树的结点值大于根结点,且左右子树本身也分别是一棵二叉排序树 二叉排序树中序遍历是一个递增的序列 查找基本思想:BST的查找类似于二分查找,先从根结点开始和关键字k进行比较,如果相等则查找成功,如果根结点的值小于k,则在右边的子树上开始查找,如果根结点的值大于k,则在左边的子树上开始查找,然后在当前的子树重复刚刚的过程,如果最后来到了结点的空指针域,则说明查找失败; 时间复杂度:BST查找算法的平均查找长度主要取决于树的高度 单支树:On 平衡二叉树:Ologn 二叉排序树平均:Ologn |
AVL是对二叉排序树的改进,所以AVL是二叉排序树; 定义:任意结点的左右子树的高度差不超过1 的二叉树,且左子树右子树都是平衡二叉树 平衡因子只有可能是-1,0,1 查找基本思想:与BST相同,但AVL使得树的结构较好,查找的速率更快; 时间复杂度:n个节点的AVL最大深度Ologn 平均查找长度Ologn |
树的形状:BST的插入顺序不同树形不同,而二分查找的判定树树形唯一 时间复杂度:BST的插入删除Ologn,仅需修改指针即可,无需移动结点;二分查找的删除插入为On,因为对象是一个有序顺序表 |
2-3搜索树有两种结点:有两个分支的结点和有三个分支的结点—— 有两个分支的节点中,左子节点比父节点小,右子节点比父节点大。 有三个分支的节点中,左子节点比父节点里的所有数小,右子节点比父节点所有数大,中子节点介于父节点的两个数之间 |
是平衡二叉树的一种 定义:红黑树是满足以下条件的二叉查找树
时间复杂度:红黑树的平均高度为logn 与AVL相比的好处是: AVL是严格的平衡二叉树,红黑树是弱平衡二叉树 AVL适用于插入与删除的次数比较少,但是查找多的情况;红黑树适用于插入删除比较多的情况 每个结点不用再存左右子树的高度差了,存的就不是一个int而是bool的二进制位,把它要用的额外空间做到了最简,操作的频次更少
STL的set/map底层都是用红黑树(平衡二叉树的一种)实现的 |
同时为了让他更好的平衡,AVL调整的频次也更多
|
b树查找具体步骤:b树的查找分为两步,1在b树中找结点,2在结点内找关键字; 先让根结点的值与关键字比较,如果相等则查找成功,如果不相等则按照对应的指针信息到所指的子树中去查找,如果查找 到了叶节点,说明树中没有对应关键字,查找失败; m阶b树:
结点内关键字个数:m/2向上取整 - 1 ~ m-1
m阶b+树:
结点内关键字个数:m/2向上取整 ~ m
蓝色是b-树b+树相同的,黑色是b树b+树不同的
|
哈希表(散列表)思想:根据给定的关键字计算出关键字在表中的地址 哈希表与其他查找的不同之处:在其他的查找方法中,关键字的地址与关键字之间不存在确定的关系; 而在哈希表中,关键字和关键字的地址是有确定关系的,可以用哈希函数计算出来; 查找过程:首先根据hash函数计算出一个地址,然后用关键字与这个地址上的关键字进行比较,这时分为以下三种情况: 如果计算出来的地址上为空,则查找失败 如果计算出来的地址上的关键字相同,则查找成功 如果当前地址上的值与关键字不相同,则根据冲突处理方法到下一个地址继续比较,直到相同为止,则查找成功 如果这过程中又遇见空地址,则查找失败; 性能分析: 哈希函数构造方法:除留余数法 冲突处理方法:开放地址法、链地址法 冲突:当关键字1不等于关键字2,但是通过哈希函数映射到同一个地址,则称为冲突 |
BF算法(简单的模式匹配)、kmp算法 BF算法思想:假设有一个主串和一个子串; 先从主串的第一个位置起和模式串的第一个字符开始比较,如果二者相等,则逐一往后比较后续字符串; 否则从主串的第二个字符开始,模式串回到自己的第一个字符,再重新上一步的比较; 以此类推,直到比较完模式串中的所有字符为止; 如果匹配成功,则返回模式串在主串中的位置; BF时间复杂度:O(n*m) Kmp算法思想:kmp算法中有一个next[ ]数组,这个数组指导了模式串的下一步应该用几号位置的关键字去匹配; 每次匹配不成功时,都是从主串失配处重新开始,主串不回溯,只有模式串回溯; 先从主串的第一个位置起和模式串的第一个字符开始比较,如果二者相等,则逐一往后比较后续字符串; 否则从主串失配处的字符开始,模式串回到next[ ]数组中对应的位置,再重新上一步的比较; 如果模式串的首字符就与主串不匹配,则子串直接回到自己的第一个字符处 |
|
1、常见的排序算法过程、口述出来、时间复杂度、空间复杂度(最好最坏平均) |
|
|
5、二叉树的应用(哈夫曼编码、哈夫曼树)、遍历方式(中、前、后、层次、线索) |
6、 常见查找算法(b+树、b树的区别、红黑树、平衡二叉树、哈希算法如何进行查找、常见的哈希函数) |
7、快排的过程、时间复杂度 |
|
|
奇偶校验码:在信息码的基础上加以为校验码,分为奇校验,偶校验
海明校验码:
循环冗余校验码:应用的比较广泛,他的检错率高,开销小,易实现 |
|
|
|
共同点: 都是采用随机存取的方式;都是通过对地址进行译码,再选择某个单元进行读写。 不同点:
|
主要是存储信息、读数据和写数据; |
Cpu ----- 寄存器 ----- cache高速缓存 ------ 主存 ----- 磁盘 速度:快 ----------------------------------------------------------------------- 慢 容量:小 ----------------------------------------------------------------------- 大 价格:高 ----------------------------------------------------------------------- 低 |
半导体存储器最主要的是半导体存储芯片 半导体存储芯片主要是由存储矩阵、读写电路、译码驱动电路组成;并且包括了地址线、数据线、片选线、读写控制线; |
|
刷新的实质就是在读出后再按原样写入; 刷新一行的时间就是一个存储周期 |
优点:读写操作的时候不会受刷新操作的影响,系统的存取速度比较高; 缺点:会产生死区,在死区时间段里面就不能访问存储器;
优点:不会产生死时间,避免CPU连续等到过长的时间,而且提高了计算机的工作效率; |
读周期:对芯片两次连续读操作的最小时间间隔; 读时间:进行一次存储器读操作的时间; 写周期:对芯片两次连续写操作的最小时间间隔; 写时间:进行一次存储器写操作的时间; 存储周期:读周期、写周期都是存储周期; 存储时间:读时间、写时间都可以是存储时间; |
双端口存储器 or 多模块存储器 相同点:都是属于并行技术; 不同点:双端口存储器是空间上并行,而多模块存储器是时间上并行;
双端口存储器:在一个存储器的左右有两个独立的端口,分别具有独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步的访问存储单元 多模块存储器:
思想:单体多字存储器把存储器的存储字字长增加了n倍,以存放n个指令字或数据字,于是单体多字存储器就比单体单字存储器的最大带宽提高了n倍; 缺点:单体多字必须要凑齐n个数据字之后,才能作为一个存储字一次写入存储器; 并且指令和数据必须连续存放,如果存在转移指令就没有速度优势了;
高位交叉编址的多体存储器:高位交叉编址是用高位地址表示体号,低位地址来定位体内的地址; 优点:有利于存储器扩充; 缺点:各个模块的工作方式是串行地工作,因此存储器的带宽收到了限制; 低位交叉编址的多体存储器:低位交叉编址是用低位地址表示体号,高位地址来定位体内的地址;这样的话连续的地址是分布在相邻的不同模块中; 优点:对于连续的成块传送,低位交叉编址的多体存储器可以实现多模块流水线式的存取,大大的提高了存储器的带宽;
|
|
通过地址映射的方式
优点:实现起来比较简单; 缺点:不够灵活,并且直接映射的块冲突率很高,空间利用率是最低的;
优点:Cache块的命中率很高;因为可以映射到Cache中的任意位置;也就减小了块的冲突率,提高了Cache的利用率; 缺点:地址变换速度慢,实现成本高;
这是对两种方式的一种折中 |
替换算法
|
由于CPU写Cache时,把Cache中的某个单元的内容改变了,但是这个单元对应的主存中的内容并没有改变,所以需要使用写策略处理这个现象 命中的写策略:写回法、全写法 未命中的写策略:写分配法、非写分配法 通常写回法适合写分配法一起使用,全写法是和非写分配法一起使用;
写回法:当cpu写cache时,只修改cache的内容,而不立即写入主存,只有当此行被换出时才写回主存; 优点:可以减少访问主存的次数; 缺点:可能导致cache中和主存中内容的不一致 全写法:当cache命中时,cache如果被修改,那cache和主存会同时被修改; 优点:可以较好的保持cache与主存内容的一致性 |
|
|
|
|
|
又称为:页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器 页式虚拟存储: 段式存储: 段页式: |
|
|
|
|
|
|
|
指令就是要计算机执行某种操作的命令 |
一台计算机所有机器指令的集合,称为这台计算机的指令系统 |
因为引入指令系统,避免了用户与二进制代码直接接触,使用户编程更加方便 |
寻址方式多样化能让用户编程更方便,但这也会造成CPU的复杂化,也不利于指令流水线的运行 寻址方式太少,能够提升CPU的效率,但是对于用户而言,使得编程变得更复杂 |
两种方式的有效地址形成都是寄存器内容+偏移地址 基址寻址:面向OS,寄存器中的内容是由OS控制的,寄存器内容不变,程序员操作的是偏移地址 变址寻址:面向程序员,偏移地址固定不变,程序员操作的是变址寄存器 |
复杂指令系统计算机 vs 精简指令系统计算机
|
|
|
CPU主要由运算器和控制器组成 运算器功能:对数据进行加工,对数据进行逻辑运算和算术运算 控制器功能:是整个系统的指挥枢纽,对整个计算机进行控制,包括指令控制、操作控制、中断处理 其中指令控制就是协调计算机的各个部件执行程序的指令序列,包括取指令、分析指令和执行指令 |
指令周期:CPU从主存中取出并执行一条指令所需要的时间 = CPU完成一条指令的时间,称为指令周期 机器周期:执行指令周期中的一步操作需要的时间 时钟周期:完成一个微操作需要的时间,是CPU操作的最基本单位 指令周期通常包含若干的机器周期,机器周期里面又包含若干时钟周期 |
单指令周期:每条指令都在相同的时钟周期内完成,时间取决于最长的指令的执行时间,指令之间串行执行 多指令周期:不同类型的指令他的时钟周期不同,并不再要求所有指令占用相同的执行时间,指令之间串行 流水线方案:指令直接可以并行执行的方案 |
根据控制器产生未操作控制信号的方式的不同,控制器可分为硬布线控制器和微程序控制器 |
硬布线原理:根据不同的指令要求,当前的时序,按照时间顺序发送一系列微操作控制信号; 是由复杂的组合逻辑门电路与一些触发器构成的 微程序控制器原理:采用存储逻辑实现的,把微操作的信号代码化,使每条机器指令转化为一段微程序并存入控制存储器中 1机器指令à1微程序àn微指令1àn微操作命令 |
【背景:控制器中有控制单元,控制单元控制一条指令执行的过程,也就是控制一次执行一个确定的微操作系列的过程。不同指令的微操作序列不同,复杂程度不同,所需的执行时间也不同,所以有三种控制的方式】 同步控制方式:通常以最长的微操作序列作为标准,采取的是相同的时间间隔作为机器周期来运行不同指令 异步控制方式:各个部件按照自己固有的速度工作,通过应答方式来进行联络 联合控制方式:同步和异步的折中,大部分采用同步控制,小部分采用异步控制 |
指令 |
微指令:是一组微命令的组合 许多微指令构成了微程序,而微程序可以完成对指令的执行 |
流水线是把一个重复的过程分解成若干子过程,每个子过程与其他子过程并行执行,是一种并行处理技术 流水线技术可以只增加少量硬件的基础上就把计算机的运行速度提高几倍 |
控制相关(控制冲突):流水线遇到了转移指令造成断流 结构相关(资源冲突):多条指令在同一时刻使用同一资源形成的冲突 数据相关(数据冲突):前一条指令产生的结果是后一条指令的输入 |
指令流水线:一条指令的执行过程可以分多个阶段,比如取指、分析、执行 优势:
|
超标量流水线:每个时钟周期可以并发多条指令,以秉性操作的方式执行 超流水线技术:在一个时钟周期内再分段,一个时钟周期内一个功能部件使用多次 |
|
|
分时、共享 |
|
可能会导致总线上多个设备同时要求使用总线,产生总线的冲突; 解决这个问题应采用总线仲裁部件,以某种方式比如链式查询、计数器查询等方式选择一个主设备优先获得总线控制权 |
第一步:首先是一个设备要发送传输请求,然后总线进行仲裁,选择一个合适的设备使用总线 第二步:寻址阶段。获得总线使用权的设备通过总线发出本次要访问的模块的地址和命令,启动另一个从模块 第三步:传输阶段。主从设备进行数据交换 底色不:结束阶段。主模块的有关信息均从系统总线上撤出,让出总线使用权 |
1、冯诺依曼体系 |
2、 指令寻址过程 |
3、cache的作用是什么 |
|
|
|
float、double在32位计算机中占相同字节,都是32位 int 有2个字节和4个字节,分别是16位和32位 float是4个字节,32位 double是8个字节,64位 char是1个字节,8位 |
|
|
方法是新建一个lib文件夹,然后把mysql的jar包放在里面
使用jdbc提供的方法getConnection,里面有三个参数,分别是URLmysql路径、账户、密码
使用PreparedStatement
ExecuteQuery() executeUpdate()就是增删查改的操作
使用Resultset方法获取数据
关闭所有使用的jdbc对象,以释放jdbc,关闭顺序和声明顺序相反 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10、深度学习和一些前沿问题(如何看待无人驾驶、AI是否能够代替人类) |
11、说说傅里叶变换、矩阵的秩是什么、怎么求的 |
12、你对AI怎么看 |
13、你常用的语言是什么 为什么 |
|
物联网在生活中的应用:上学时使用的一卡通,高速上的ETC,近些年流行的智能手环可穿戴设备等。 物联网+AI:如扫地机器人,就是一个典型的智能家居的入门产品;还有智能音箱,主要的是语音交互,可以用语音控制家庭中的其他产品,使得产品之间可以相互通信,这也是智能家居未来发展的最终目标,即在物联网时代,把人为主体换成了物为主体。 2) 物联网主要分为三个组成部分:分别是传感器、网络连接、数据处理。 传感器被安装在各种产品中,这些传感器或者是芯片让产品拥有感知能力和数据处理能力。产品在收集完了数据之后,就要上传到云端进行集中处理,这个过程就是通过网络连接来完成的,物联网需要的是低功耗、长距离的传输协议,即低功率广域网络。数据处理的目的在于将原始的数据转换为有用的信息,数据处理一般都是在云服务器上完成的,这些服务器就是智能音箱的大脑,数据在这里经过处理之后再以直观易懂的形式返回给用户,
3) 嵌入式理解:把软件直接烧录在硬件里,而不是安装在外部的存储介质上。 我的理解就是给冷冰冰的机器注入了灵魂,而这个灵魂可以被人类以简单便捷的方式操控;它起源于单片机技术,发展到现在已经融入生活的方方面面。手机有了嵌入式技术,不仅可以打电话还可以视频、拍照,手表有了嵌入式技术可以监控你的健康状态。 进入物联网时代计算机应用的各行各业中的百分之九十左右的开发都涉及到嵌入式开发。嵌入式特点:功能更专一、功耗更低、专业性更强、定制性更突出。 智能家居系统,智能医疗系统,物联网系统等,这些系统的核心技术都有嵌入式。 虽然物联网具体给我们带来多大的改变现在还不清楚,但是他的发展是令人期待的,在4G时代,我们已经看到很多物联网的雏形,如今5G已经正式开始商用,似乎离理想中的物联网又近了一步。
智能家居联网方式有三种:wifi、蓝牙、zigbee
|
|
mqtt是一个协议的名称,主要是应用在物联网中
mqtt本质上是一种消息队列,整个工作方式是基于订阅和发布
比如有一个MQTT服务端,会有客户端连接进来,比如客户端C1 C2,
如果C1朝一个topic主题发布消息,C2如果订阅了这个主题topic就会接收到这个消息
针对物联网,MQTT做了一些相关的设定,比如有一个参数Qos,Qos决定了这个消息的质量
Qos有0 1 2 三种设定,在0的时候发送端只发送一次,不管服务端有没有收到,都只发送一次
1的时候就是至少发送一次,反正服务端一定能收到,不一定收到一次,可能收到多次
2的话就是能保证服务端能收到且仅收到一次
0 1 2 就是消息保证的质量越来越高
大多数在采集端会设置Qos是0,因为采集的时候是每秒1次,在某一秒数据丢失了其实并不在意
关键性的数据可能设置1 2
随着消息质量的升高,底层TCP的数据交互次数会变多,所以Qos越小是对网络占用越低的,能耗也越低
http的服务端有很多种实现方式比如阿帕奇的httpd
mqtt的server实现方式是emq,在官网下载emqx然后使用终端开启emq start,然后就可以进入dashboard后台
1883端口是mqtt协议的tcp版
8883是mqtt协议tcp+ssl版
18083端口是后台管理界面的
web socket 端口是8083
连接1883端口:
node-red启动mqtt
在刚刚的终端界面下载nodered,是个框架,nodered是个图形化工具
然后运行node-red,
然后就会在本机的1880端口:localhost:1880 进入到nodered界面
nodered是针对物联网的 对mqtt有支持
搭建的是linux服务器,ubuntu18.04的环境,在阿里云购买
购买了之后阿里云的配置安全组(实例à添加安全组规则)
然后通过ftp发送安装包到服务器(使用xshell工具里面)
解压安装
dashboard控制台查看:服务器地址+18083端口
esp8266里面使用mqtt协议要引入一个PubSubClient的头文件
然后是无线网的名字,无线网密码,服务器的ip
下一步是设置wifi:
里面包括 消息回调,处理消息payload
断开重连 reconnect()
初始化 setup:连接wifi、配置mqtt服务器地址、设置订阅消息回调
循环任务loop:重连机制、不断监听信息、每2s发布一次消息、发送消息
串口初试波特率115200
在控制面板dashboard里输入订阅,控制台可以发消息,esp8266也可以发
数电模电 嵌入式开发 整体把握
电阻 led 三极管放大电路 买芯片有参考电路
手册
低功耗、高集成度的 Wi-Fi 芯片。
最小系统仅需 7 个元器件
超宽工作温度范围:-40°C 至 +125°C
ESP8285 : ESP8266 内封 8 Mbit Flash。
ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命
1、zigbee与mqtt的区别 |
2、zigbee zigbee要借助工具才能联网,这个工具就是网关,网关就是一个桥梁。网关先自己连上网,再帮助zigbee设备去联网,zigbee设备用的是zigbee网关
|
2、为什么不直接用wifi联网,还要搞一个zigbee去联网,岂不是很麻烦? 因为用wifi的话,如果使用的人,接入这个网的人很多,会导致网速变得很慢,而且如果有线路故障,wifi就直接不能够使用了,所以wifi在一些情况下并不可靠。 而zigbee相对来说有一些优点,比如第一zigbee比较省电,不用插电,用电池工作就可以了,第二就是zigbee可以脱离网络,自己组建独立的网络,连接到zigbee网关的所有设备就是一个小网络,就算家里路由器坏了,zigbee网络里的设备是都可以正常工作的。 总结就是:wifi的连接距离较远,隔墙都没有问题,蓝牙比较简单,zigbee优势就是只需要很少的电,还可以建立自己的小网络不受到宽带的影响。 目前的智能家居中,这几种方式是和谐相处的,不同的设备采用不同的联网方式。
|
|
我个人认为健康码系统的推出在这次疫情中起到了很重要的作用,无论是对疫情的防控还是复工复产都提供了重要的支撑
健康码系统的核心特色在于一人一个健康码且动态更新,一次登记之后全市范围都可以使用,并且一套系统可以支撑多个场景,比如企业复工、小区出入等等
我了解的比较多的是支付宝健康码,有以下几个我个人觉得互联网应用很重要的点:实名制+大数据
1是支付宝是建立在实名体系上的,融合多个平台,如本地发热门诊、社区电子通行证等,他推动市民在线申请健康码,可以快速发现异常人员和掌握异常人群的活动范围。
2是大数据的综合处理能力,采用了同步异步相结合,实时和离线相结合的机制,通过融合多个平台实时更新数据库,做到通过数据批处理每日更新,确保数据的时效性大数据分析。并且结合当地的防控节奏和方向不断的调整,实现健康码的自动分配和动态更新。
它在经济上能极大节约城市治理成本,提升国家治理效率,稳定社会秩序,让人们更有安全感,对未来也更有美好的预期。