计网

WEB服务器访问过程

1.IP域名解析

2.建立tcp连接

3.发送

(来源于计算机网络课程截图)

TCP三握四挥

中间的状态(如stop wait发生在什么时候)

2次×:clint端报文丢失->可能延迟到达,错误的重新简历连接

server端报文丢失->clint端未收到连接建立的响应,重新发送请求的报文,而此时连接已经建立,S可能已经开始发送报文

4次挥手:全双工,两边需要分别关闭两边报文发送结束不同步,一方仍可以继续发送报文

https://blog.csdn.net/qq_38950316/article/details/81087809

已建立连接客户端故障:TCP拥有计时器,收到请求后复位,未收到 探测报文 发送无反应 关闭

中间状态:

clint:syn_sent->estab_list

server: listen->syn_send->estab_lished

clint: estab_listed->fin_wait_1->fin_wait_2->time_wait->closed

server:estab_listed->close_wait->last_ack_closed

stop_wait:2MSL 如果最后一个ACK丢失,可以用来重发最后一个ACK报文

socket实现web服务器(简历)

socket 应用程序 底层网络之间的应用编程接口

包含 通信对等方的网络地址,进程号(端口号)

流类型(TCP)、数据报类型(UDP)

(面向无连接的数据报方式:)

clint:初始化winsocket->创建会话socket->receive和send->closesocket

server:初始化winsocket->创建会话socket->bind一个端口->receive和send->closesocket

套接字:

clint:初始化->穿件会话socket->bind会话socket->connect与server连接->send和recv进行会话->关闭

server:初始化winsocket->创建一个监听socket->bind监听socket->listen设置等待连接状态->accept连接并生成会话socket->调用send和recv进行会话->关闭

简易web服务器能够响应来自浏览器get类型的请求报文

设计服务器包含类 Config、Server、WinsockEnv。
Config 类中的数据为配置信息,包含服务器地址、端口、最大连接数、缓冲区大小、服务器主目录等内容。
WinsockEnv 类中的函数初始化了 Winsock,辅助类 Server 完成功能。
Server 类完成各功能。

首先初始化winsocket,使用的版本是2

接下来初始化server,创建socket,绑定服务器的IP和port(通过文件读取)

开始监听,等待来自clint的连接请求

以上各步都有提示消息,如果失败可以看到是在哪一步出错

将srvSock设为非阻塞模式以监听客户连接请求

准备读写socket,

当有请求到来的时候,用多线程CreateThread的方式进行处理

提取请求类型、请求的文件,根据文件类型的不同,响应的报文头不同,进行异常处理,将请求的文件发送。

GBN、SR、TCP协议

PING过程

a检查mac地址表,如果没有b,就发送一个arp广播包,a学习了b的mac地址,同时学习了a的mac地址,

两层封装????到链路层??

a发送icmp请求到b,b会同样格式的请求

格式:目的地址 原地址 目的ip 源ip icmp报文

不在同一网段:

通过网关转发

ARP广播没学到网关的mac地址,发封装的icmp报文给网关路由器,网关路由器查路由表项,得到一个出口至真,mac地址改为自己的mac地址,

网上面经

请求HTTP协议过程

超文本传输协议

头部Loptions head get post put delete trace connect

1** 消息,请求已被服务器接收,继续处理

2**成功,请求已被接收、理解、接受

3**重定向,需要后续操作才能完成

4**请求错误,词法错误/无法执行

5**服务器错误,服务器在处理摸个正确请求时发生错误

代码   说明 
100   (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。  
101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx (成功) 
表示成功处理了请求的状态代码。

代码   说明 
200   (成功)  服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 
201   (已创建)  请求成功并且服务器创建了新的资源。 
202   (已接受)  服务器已接受请求,但尚未处理。 
203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。 
204   (无内容)  服务器成功处理了请求,但没有返回任何内容。 
205   (重置内容) 服务器成功处理了请求,但没有返回任何内容。 
206   (部分内容)  服务器成功处理了部分 GET 请求。

3xx (重定向) 
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

代码   说明 
300   (多种选择)  针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 
301   (永久移动)  请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 
302   (临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 
303   (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 
304   (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 
305   (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 
307   (临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误) 
这些状态代码表示请求可能出错,妨碍了服务器的处理。

代码   说明 
400   (错误请求) 服务器不理解请求的语法。 
401   (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 
403   (禁止) 服务器拒绝请求。 
404   (未找到) 服务器找不到请求的网页。 
405   (方法禁用) 禁用请求中指定的方法。 
406   (不接受) 无法使用请求的内容特性响应请求的网页。 
407   (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 
408   (请求超时)  服务器等候请求时发生超时。 
409   (冲突)  服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 
410   (已删除)  如果请求的资源已永久删除,服务器就会返回此响应。 
411   (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。 
412   (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。 
413   (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 
414   (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。 
415   (不支持的媒体类型) 请求的格式不受请求页面的支持。 
416   (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。 
417   (未满足期望值) 服务器未满足”期望”请求标头字段的要求。

5xx(服务器错误) 
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

代码   说明 
500   (服务器内部错误)  服务器遇到错误,无法完成请求。 
501   (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 
502   (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 
503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 
504   (网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。 
505   (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

http1.0 每次都要建立新的tcp连接

1.1持续连接

HTTPS协议

安全 SSL层???

内容加密 身份认证确认网站的真实性 数据完整性防止内容被第三方魔宠或者篡改

http 明文传输 80

https ssl加密传输 443

HTTP请求方法

post head get delete options connect put trace

客户端最多能链接多少TCP连接

没看懂QAQ,再继续看

https://blog.csdn.net/solstice/article/details/6579232

服务端最多多少连接

了解http吗?http方法有什么?post和delete区别?在http协议上的区别?

你知道http状态码304吗

tcp为什么安全

有序列号和确认号,有超时重传和快速重传机制

有流量控制窗口

有拥塞控制

http传入的Request和返回的Response

503500区别。301302区别

http close-wait状态

滑动窗口和TCP流量控制

发送方维持一个滑动窗口

如果滑动窗口为0,则怎么办

TCP流量控制和拥塞控制?

流量控制 滑动窗口,只考虑发送方和接收方

拥塞控制,有一个永安寺窗口,拥塞预支,慢启动,避免拥塞,超时,3个重复ack,快速恢复

Time_wait有什么用(面试官补充了一个教科书上没有提到的作用,关于网络异常、数据失序的辨识)

如何改进UDP的不可靠传输,保证数据有序性?

增加seq和ack机制->确保数据发送到对端

添加发送接受缓冲区->超时重传

添加超时重传机制

DNS

OS

线程进程

https://blog.csdn.net/MoreWindows/article/details/7392749

https://blog.csdn.net/u012050154/article/details/52245396

1)一个线程可以创建和撤销另一个线程;

2)同一个进程中的多个线程之间可以并发执行;

3)线程也可以称作轻量级的进程;

4)进程在执行过程中拥有独立的内存单元,而线程则可以与同一个进程中的其他线程共享这段内存,但拥有自己的栈空间、拥有独立的执行序列;

1)进程拥有独立的地址空间,一个进程崩溃后在保护模式下不会对其他进程产生影响;但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮;

2)进程切换时,耗费资源较大,效率要差一些;线程切换的开销较小(不利用资源的管理和保护)。所以对于一些要求同时进行并且又要共享某些变量的并发操作,就只能用线程,不能用进程;

3)线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制;

4)多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配;

5)一个程序至少有一个进程,一个进程至少有一个线程;

6)线程的划分尺度小于进程,使得多线程程序的并发性高;

7)另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率;

通信

1、进程通信

(1)管道

a)、无名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系;

b)、高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式;

c)、有名管道(named pipe):有名管道也是半双工的通信方式,克服了管道没有名字的限制,同时是它允许无亲缘关系进程间的通信;

(2)信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送 信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该 函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);

(3)信号量(Semaphore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段;

(4)消息队列(Message queue): 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点;

(5)共享内存(Shared memory):共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信;

(6)套接字(Socket):套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字;
线程:

(1)共享内存,同上面所述。这里通过内部类实现线程的共享变量

(2)管道。首先建立管道流,并将管道流的输入输出对象进行链接;将管道流加入到生产对象(线程)中;通过管道流引出输入输出流,并在线程中对这些流进行操作;注:管道流的的read的方法是一种阻塞方法;

(3)调用公共接口,还有如Scala语言中的Actor机制等等

区别

线程本身有一个供程序执行时的堆栈

进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

线程在执行过程中与进程的区别在于每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用来实现进程的调度和管理以及资源分配。

Redis 是如何保证线程安全的

在多台服务器上如何用锁保证线程安全

线程为什么被称为轻量级的进程

创建一个新的进程时,系统要分配新的代码、存储器、对。对于线程只要分配新的堆栈,内存对统一进程中的多游戏那成都是共同的

简历坑

实现Linux环境下进程控制,多进程利用管道通信

两个进程利用管道进行通信,首先创建无名管道,创建两个子进程,在两个子进程使用滚到的时候要给pipe上锁

主进程等待两个子进程退出后关闭通道

利用多线程与信号灯机制实现计算机线程与I/O线程共享缓冲区的同步与通信

利用了信号灯pv操作,创建两个信号灯,分别用来表示buf中有无空位置和有无信息,创建两个线程,一个线程负责计算,一个线程负责打印,两个线程共享内存区,两个线程运行结束后删除两个线程,删除信号灯

利用环形缓冲实现进程誊抄;

有一个大的环形缓冲区,实现的是一个文件拷贝的功能,创建共享内存组,两个信号灯,一个表示空缓冲区的数量,一个表示满缓冲区的数量,创建两个进程,一个负责读文件,一个负责写文件,使用信号灯控制,防止出现读写错误,每5%更新一次进度条。通信方式是共享内存,父进程等待两个进程运行结束后,删除信号灯,删除共享内存组退出。

实现Linux文件系统目录查询功能。

输入一个目录,输出该目录即子目录下的文件信息,以该目录项的名字为参数,调用lstat得到该目录项的相关信息,linux文件系统的目录项中有..和.,不处理这两个目录项。如过目录项是一个目录的话,递归输出目录下的内容,是文件的话,打印文件的名称、访问权限、所有者、所有组、文件的大小、最后一次访问时间内容。

网上面经

一个进程,有10个子进程,那么一个子进程fork一个子进程,那么这个子进程有多少个进程。

加主进程21?

物理地址和虚地址

计算机内部的存储结构?虚拟内存和物理内存的区别?

寄存器、高速缓存、内存、硬盘、光盘

buffer和cacahe区别

buffer(缓冲)是为了提高内存和硬盘(或其他I/0设备)之间的数据交换的速度而设计的。

cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计,也就是平常见到的一级缓存、二级缓存、三级缓存。

多进程和多线程的区别

线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能。线程没有自己的系统资源。

程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

进程间的通信,文件通信了解过么?线程间共享的有哪些东西?

哲学家

第一题:线程的基本概念、线程的基本状态及状态之间的关系?

https://blog.csdn.net/bornlili/article/details/55805732

一个线程是进程的一个顺序执行流

进程状态:等待、就绪、运行

状态:新建、等待、就绪、运行状态、阻塞状态、死亡状态

https://blog.csdn.net/maoyuanming0806/article/details/78019044

1、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。

2、同步阻塞:运行的线程在获取对象同步锁时,若该同步锁被别的线程占用,则JVM会把线程放入锁池中。

3、其他阻塞:运行的线程执行Sleep()方法,或者发出I/O请求时,JVM会把线程设为阻塞状态。当Sleep()状态超时、或者I/O处理完毕时,线程重新转入就绪状态。

多线程有几种实现方法,都是什么?

1. 继承thread类,重写方法run()

2.实现runnable接口,实现方法run()

多线程同步和互斥有几种实现方法,都是什么?

同步:

1.同步方法 同步方法就是在方法返回类型后面加上synchronized, 比如:public void * synchronized add(){...}。

2.同步块 同步块就是直接写:synchronized (这里写需要同步的对象){...}

多线程同步和互斥有何异同,在什么情况下分别使用他们?举例说明。

线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。

线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。

线程同步一般是当多个线程相互协作,存在相互依赖的关系;

线程互斥是包括临界资源等的访问,相互线程之间是互斥访问。

举个例子,设有一个全局变量global,为了保证线程安全,我们规定只有当主线程修改了global之后下一个子线程才能访问global,这就需要同步主线程与子线程,可用关键段实现。当一个子线程访问global的时候另一个线程不能访问global,那么就需要互斥

wait和sleep的区别

wait():使一个线程处于等待状态,并且释放所持有的对象的lock。 
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程 ,而是由JVM确定唤醒哪个线程,而且不是按优先级  。 

Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

https://www.jianshu.com/p/4bf2f45796eb

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有指针对此对象发出notify方法(或者notifyAll)后线程才进入对象锁定池准备获得对象锁进入运行状态。

https://www.nowcoder.com/questionTerminal/a2959eae28fa4cbfb5672e67d943f59b

fork()是一个分叉函数, 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程   返回子进程标记;否则,出错返回-1

每一次fork()就翻倍;

fork();

fork() && fork() || fork();

fork();

第一条和第三条分别X2;关键在第二条语句。第二条有 5个分支;

A&&B||C

A为假,跳过B,判断C-----------------------2

A为真,判断B,若B为真,跳过C-----------1

若B为假,判断C  ------------2

故总数为2*(2+1+2)*2=10;减去自己就是19.

数据库

sum

Redis和数据库一致性怎么实现?

C++

vector安全??

多态:覆盖(子类重新定义父类虚函数)、重载(允许多个同名函数,参数的类型或个数不同)

vshe

C++面试宝典

https://www.jianshu.com/p/67f7df51266c

函数指针 指针函数

对于C与C++编译生成的符号表的区别你有了解吗(这个问题我是根据C++的name mangling来回答的,然后提到了为什么要有extern c这个关键字,看面试官的反应应该是答对了?)

算法

数组实现hashmap的get和put

排序

排序一定要复习!!!

1:  算法  12322121343434   123*22*121*34*343*4  必须插入五个星号,每个数字必须在0-600之间,有几种插入方法

一致性哈希了解么?

分布式哈希,

一个链表,奇数位升序,偶数位降序,如何整体排成升序?

算法题:千万级别的数据量,实现队列FIFO,如何设计数据结构节省内存空间(数据+链表)

完全不会的后台部分

Spring 是如何实现 AOP 的

讲一下事务特性和隔离级别

Redis集群搭建

添加一个节点如何分配槽(说详细具体过程)

迁移slot的过程中,我get或者set怎么办?

一个上T的文本文件,里面很多字符串并且用空格分隔,找到不同的字符串数量

让我计算一秒内QPS10W,消耗了多少流

要哪些数据能估算出全国每天发送的消息条数(包括微博条数+微信条数+短信条数等等)

简历给自己挖的坑

Phong光照模型

法线贴图

模拟凹凸处光照效果的计数,计算表面光照的漫反射纸,把高度图转化为一张发现图,RGB值分别是元高度图的法线指向Nx, Ny,Nz,渲染的时候与光源的向量点乘,得到没一点的明暗洗漱的图,能够呈现出模型在背光的凹面处有阴影,在面向光源处更亮的效果。3D模型会看起来真的凹凸不平平一样。

视角问题,接近水平的时候,

凹凸贴图

用灰度来描述目标表面的凹凸,是黑白的,贴图表面上存储的东西是高度域,每个点和原始表面的高度差,每个点的颜色是高度。把bbump map叠加在已经渲染好的表面上,造成亮度上的扰动,

反射贴图

模拟镜面,实现了一个木块上每一面有4面凸面镜,反射六个对应面的外部景象。

实时光线追踪

hadoop原理

map reduce原理过程

讲过运行任务所需的程序文件复制到HDFS上,存放在job tracker中,当作业调度器根据自己的调度算法调度到该任务时,会根据输入划分信息创建N个map任务,并将map任务分配给N个TaskTracker(DataNode)执行。

数据本地化(Data-Local)。意思是:将map任务分配给含有该map处理的数据块的TaskTracker上,同时将程序JAR包复制到该TaskTracker上来运行,这叫“运算移动,数据不移动”。而分配reduce任务时并不考虑数据本地化。

TaskTracker每隔一段时间会给JobTracker发送一个Heartbeat(心跳),告诉JobTracker它依然在运行,同时心跳中还携带着很多的信息,比如当前map任务完成的进度等信息。当JobTracker收到作业的最后一个任务完成信息时,便把该作业设置成“成功”。当JobClient查询状态时,它将得知任务已完成,便显示一条消息给用户。

https://www.jianshu.com/p/8d546acb2899
1.split阶段

首先mapreduce会根据要运行的大文件来进行split,每个输入分片(input split)针对一个map任务,输入分片(input split)存储的并非数据本身,而是一个分片长度和一个记录数据位置的数组。输入分片(input split)往往和HDFS的block(块)关系很密切,假如我们设定HDFS的块的大小是64MB,我们运行的大文件是64x10M,mapreduce会分为10个map任务,每个map任务都存在于它所要计算的block(块)的DataNode上。

2.map

map阶段就是程序员编写的map函数了,因此map函数效率相对好控制,而且一般map操作都是本地化操作也就是在数据存储节点上进行。本例的map函数如下:

3.shuffle阶段

shuffle阶段主要负责将map端生成的数据传递给reduce端,因此shuffle分为在map端的过程和在reduce端的执行过程。

1.map首先进行数据结果数据属于哪个partition的判断,其中一个partition对应一个reduce,一般通过key.hash()%reduce个数来实现。
2.把map数据写入到Memory Buffer(内存缓冲区),到达80%阀值,开启溢写进磁盘过程,同时进行key排序,如果有combiner步骤,则会对相同的key做归并处理,最终多个溢写文件合并为一个文件。

reduce节点从各个map节点拉取存在磁盘上的数据放到Memory Buffer(内存缓冲区),同理将各个map的数据进行合并并存到磁盘,最终磁盘的数据和缓冲区剩下的20%合并传给reduce阶段。

4.reduce

reduce对shuffle阶段传来的数据进行最后的整理合并

hos源码

模式是两种,用户态和核态,没有调试态

内存是分页机制,具体的方式是我们在CPU里写的

hos系统内部没有bootloader

内部不涉及文件系统

CPU异常处理

CP0,中断要配合

能够处理运算的溢出、软硬中断、分支延迟槽异常,地址错误(cache miss哈弗结构 指令 数据),

异常要记录EPC,修改异常标志,发生异常的地址,要清空流水线

向CP0报告异常或中断发生

(中断:系统调用,异常,IRQ)

异常处理在写会写段执行阶段

CP0包含了中断屏蔽字、异常级、地址空间、软、硬中断输出、EPC值、中断使能,

软硬件配合,修改EPC,中断判断、中断使能,跳转地址,关中断都是硬件的

现场保护,开中断是软件的

为后台面试做准备!!!一定能过!!!!相关推荐

  1. 一个优秀妹子的后台面试经验,含泪总结...

    来源:网络 今天给大家带来一个优秀妹子的后台面试经验总结,希望对正在面试或者以后需要面试的人提供一些参考和帮助.具体如下: 本人妹子,985硕士,211本科,专业都是软件工程,一直投的是java后台开 ...

  2. facebook 面试_如何为您的Facebook产品设计面试做准备

    facebook 面试 重点 (Top highlight) Last month, I joined Facebook to work on Instagram DMs and as a way t ...

  3. 美团后台面试经验参考

    美团后台面试经验参考 注: 错误1,二叉树的深度优先遍历不是后序遍历,而是相当于前序遍历(但不完全是),先左孩子后右孩子或者先右孩子后左孩子都行,总之得先遍历父节点 转载

  4. 视频教学丨在【星图地球开发者平台】的管理后台可以做什么?

    熟悉星图地球开发者平台(GEOVIS Earth Dev)的小伙伴都知道,它是一款面向数字地球开发者的低代码开发平台,同时具备了专业性和易用性,对于数字地球专业开发者来说,能大大降低数字地球应用开发的 ...

  5. 一个妹子的大厂后台面试经验总结

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 倾听潮汐 来源 | nowcoder.com/ ...

  6. java后台面试自我介绍_java腾讯远程面试后台研发岗面试题分享

    分享一个腾讯远程面试java后台研发岗位的面试经过,简单来说,自我介绍.经历分享.问题解答以及敲代码. 1. 上来先自我介绍. 2. 讲讲自己的项目经验. 3. ArrayList和LinkedLis ...

  7. 就9.5面试做个小结

    面试历程 第一次:未毕业,面试一家小广告公司,直接被录,没去 第二次:(都是培训骗人的,也没去),刚毕业,后来面试中型直接被录 第三次:2017.11,技术群里面聊的,面个试,通过录用 第四次:面到人 ...

  8. 京东后台面试(很全面,很符合现在的面试!!)

    Java笔试面试目录(一个大佬的总结)https://blog.csdn.net/weixin_41835916/article/details/81413498 1.自我介绍. 2.画出项目的架构图 ...

  9. 双非本科 337家Java后台面试总结

    前言 文章出自: www.nowcoder.com/discuss/133- 这是一位牛友粉丝的秋招经验贴,文章作者牛客网ID是"我们会尽快给你通知",是双非+本科+非科班(电气工 ...

最新文章

  1. MindSpore:自动微分
  2. 找出文件1中有而文件2中没有的数据
  3. 华为交换机SSH登录失败原因
  4. android 蓝牙 setscanmode,蓝牙LE扫描在后台无法在Android M上运行
  5. java opencv人脸识别_java+opencv+intellij idea实现人脸识别
  6. print\println\printf的区别
  7. jquery跨域请求示例
  8. H3C 命令行历史记录功能
  9. 泛微O A系统怎么获取服务器地址,泛微协同商务系统(Ecology)_系统底层包开发指南...
  10. C语言输出9 * 9口诀。
  11. U盘_PE启动+U存储+kali三合一启动盘制作教程
  12. 一级域名、二级域名、三级域名区分
  13. AutoIt 快速入门指南
  14. Java基础 -> 线程池的底层⼯作原理
  15. OpenRisc-6-wishbone实验
  16. 华为设备配置链路聚合(手工负载分担模式)
  17. oracle行转列实践
  18. linux中常用打开pdf文档指令软件
  19. 基于Canal+kafka监听数据库变化的最佳实践
  20. 基于PT8.2柔性传感器使用

热门文章

  1. 弘辽科技:种草是什么意思,为你分析其中含义。
  2. Zbrush基础操控与快捷键介绍
  3. 5G+VR直播,带来科技感爆棚的视觉盛宴
  4. 携程、美团“抢食”精致周边游
  5. 解决百度地图API无法正常显示地图
  6. idea完美破解(2018.3.5 ),亲测可用!
  7. 小家电—充电过压保护电路
  8. 楷书书法规则_楷书的3大基本结体规律详解
  9. 孩子还这么小就送去托育园,是小可怜吗?
  10. 大数据带来信息安全隐忧 陕西拟启动网络安全智库建设