这次主要复习计算机网络、操作系统等知识。
1.TCP三次握手和四次挥手?
三次握手:
四次挥手:
2.进程间通信(IPC)有哪几种方式?
- 管道(pipe)
- 共享内存(shared memory)
- 信号量(semaphore)
- 消息队列(message queue)
- 队列(queue)
3. TCP和UDP 的区别?
— | TCP | UDP |
---|---|---|
是否连接 | 面向连接 | 面向非连接 |
重传机制 | 有 | 无 |
是否可靠 | 可靠 | 不可靠 |
速度 | 慢 | 快 |
应用场合 | 传输大量数据 | 传输小量数据 |
4. 滑动窗口算法?
在论坛找到一个很浅显易懂的解释:王道论坛
总结一下:
- 1.滑动窗口算法是停等算法的改进,是停等算法的一个特殊情况(当接收方的窗口大小为1的时候,滑动窗口算法和停等算法一样。)
- 在网络丢帧率很小的情况下,滑动窗口算法可以大大缩短等待时间,提高传输效率。
- 滑动窗口算法的某次传输中,只要有丢帧的情况发生,那么整组数据都要重传。
5. 死锁产生的四个条件?
- 资源互斥
- 请求并保持
- 不可剥夺
- 循环等待
6. 操作系统如何进行分页调度?
7. 进程和线程的区别?
- 进程是资源分配的基本单位。线程是CPU调度,或者说是程序运行的最小单位。
- 线程之间可以通信。一个进程中可以有多个线程并发执行。
8. Window内存管理方式:段存储,页存储,段页存储?
9. 进程的几种状态?
- 新建(new)
- 运行(start)
- 阻塞(synchronized)
- 等待(wait)
- 消亡(执行完毕)
10. 什么是虚拟内存?
- 虚拟内存别称虚拟存储器(Virtual Memory)
- 电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存 技术,即匀出一部分硬盘空间来充当内存使用。
- 虽然虚拟内存可以缓解上面的问题,但是计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量(可加内存条)是最佳选择。
11.虚拟地址、逻辑地址、线性地址、物理地址的区别?
物理地址(physical address)
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。逻辑地址(logical address)
Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。以上例,我们说的连接器为A分配的0x08111111这个地址就是逻辑地址。
——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为 [段标识符:段内偏移量],也就是说,上例中那个0x08111111,应该表示为[A的代码段标识符: 0x08111111],这样,才完整一些”线性地址(linear address)或也叫虚拟地址(virtual address)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。
12. OSI与TCP/IP各层的结构与功能,都有哪些协议?
OSI七层模型:
TCP/IP层:
12. 电脑上访问一个网页,整个过程是怎么样的?
这个大神讲得挺详细的:牛客面经
13. Http的报文结构?
先看一下具体的格式:
再来看一个实际的Http请求报文:
14. Http的状态码含义?
HTTP 状态码是用以表示网页服务器HTTP响应状态的3位数字代码
第一个数字代表响应的五种状态之一:
- 1:代表消息
- 2:代表成功
- 3:代表重定向
- 4:代表请求错误
- 5:代表服务器错误
1xx:信息
101:Switching Protocols, 服务器讲遵从客户的请求转换到另外一种协议
2xx:成功
200:OK, 请求成功
201:Created, 请求被创建完成,同时新的资源被创建
3xx:重定向
301: Moved Permanently, 锁清秋的页面转移到新的url
4xx:客户端错误
401:Unauthorized, 被请求的页面需要用户名和密码
404:Not Found, 服务器找不到被请求的页面
5xx:服务器错误
501:Not Implemented, 请求未完成,服务器不支持所请求的功能