• 讲一讲操作系统是什么?你怎么理解操作系统的?

总的概括来讲,操作系统就是一个运行在计算机和应用软件之间的一个软件系统,他提供硬件资源的虚拟化使得计算机更加容易使用而且运作有序。其作用是替用户及其应用管理计算机上的软硬件资源,保证计算机资源的公平竞争和使用,同时保证操作系统本身正常运转。

  • 操作系统负责什么?

操作系统主要负责五大模块:分别是进程管理、内存管理、文件系统、设备管理、网络系统
进程管理涉及到多道程序的进程调度算法;内存管理涉及到地址空间概念里的虚拟内存和物理内存;文件系统涉及IO操作像DMA一类;设备管理涉及到底层驱动;网络系统涉及到计网等基础。

  • 讲一讲交换机和路由器?分别工作在哪一层?差别是什么?

交换机工作在数据链路层,根据MAC地址进行寻址,交换机只是将多个主机连接在一起,对外分别展示的是主机各自的IP地址。只是用来做端口扩展。

路由器工作在网络层,可以给局域网内的设备自动分配IP地址,根据IP地址进行寻址,对外只表现出一个IP地址(网络号),可以使用TCP/IP协议。路由器提供***功能,是用来连接不同的网络的。

路由器和交换机的区别一:交换机是一根网线上网,但是大家上网是分别拨号,各自使用自己的宽带,大家上网没有影响。而路由器比交换机多了一个虚拟拨号功能,通过同一台路由器上网的电脑是共用一个宽带账号,大家上网要相互影响。

路由器和交换机的区别二:交换机工作在中继层,交换机根据MAC地址寻址。路由器工作在网络层,根据IP地址寻址,路由器可以处理TCP/IP协议,而交换机不可以。

路由器和交换机的区别三:交换机可以使连接它的多台电脑组成局域网,如果还有代理服务器的话还可以实现同时上网功能而且局域网所有电脑是共享它的带宽速率的,但是交换机没有路由器的自动识别数据包发送和到达地址的功能。路由器可以自动识别数据包发送和到达的地址,路由器相当于马路上的警察,负责交通疏导和指路的。

路由器和交换机的区别四:举几个例子,路由器是小邮局,就一个地址(IP),负责一个地方的收发(个人电脑,某个服务器,所以你家上网要这个东西),交换机是省里的大邮政中心,负责由一个地址给各个小地方的联系。简单的说路由器专管入网,交换机只管配送,路由路由就是给你找路让你上网的,交换机只负责开门,交换机上面要没有路由你是上不了网的。

路由器和交换机的区别五:路由器提供了***的服务。路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。

  • OSI七层分别对应哪四层?

应用层、表示层、会话层 --> 应用层 HTTP、TFTP、FTP、NFS、SMTP

传输层 --> 传输层 TCP、UDP

网络层 --> 网络层 IP、ICMP、ARP、RARP、AKP、UUCP

数据链路层、物理层 --> 数据链路层 FDDI、Ethernet、Arpanet、PDN

  • IPv4和IPv6的区别?
  1. 拓展了路由和寻址的能力

IPv6将原来IPv4的IP地址由32位变为128位,从而提供了更大的寻址空间。IPv6地址的编码采用类似于CIDR的分层分级结构,如同电话号码。简化了路由,加快了路由速度。在多点传播地址中增加了一个“范围”域,从而使多点传播不仅仅局限在子网内,可以横跨不同的子网,不同的局域网。

  1. 报头格式的简化

IPv4报头格式中的一些冗余的域被丢弃或被列为拓展报头,从而降低了包处理的报头带宽的开销。虽然IPv6是IPv4地址的4倍。但是报头只有它的两倍大。

  1. 对可选项更大的支持

IPv6的可选项不放入报头,而是放在一个个独立的扩展头部。如果不指定路由器不会打开处理扩展头部.这大大改变了路由性能。IPv6放宽了对可选项长度的严格要求(IPv4的可选项总长最多为40字节),并可根据需要随时引入新选项。IPv6的很多新的特点就是由选项来提供的,如对IP层安全(IPSEC)的支持,对巨报(jumbogram)的支持以及对IP层漫游(Mobile-IP)的支持等。

  1. 身份验证和保密

在IPv6中加入了关于身份验证、数据一致和保密性的内容

  1. 安全机制和IPSec是必选的

IPv4的是可选的或者是需要付费支持的

  1. 加强了对移动设备的支持

IPv6在设计之初有着支持移动设备的思想,允许移动终端在切换接入点时保留相同的IP地址。

  1. 支持无状态自动地址配置

简化了地址配置过程,无需DNS服务器也可完成地址的配置,路由广播地址前缀,各主机根据自己的MAC地址和收到的地址前缀生成可聚合全球单播地址。这也方便了某一区域的主机同时更换IP地址前缀。

  1. 允许协议继续扩展、支持自动配置、支持资源的预分配、首部改为八字节
  • 物联网项目进行IP地址分配,会不会溢出?

不会。我说的不会溢出,DHCP服务器动态分配IP。

  • 讲一讲视频是怎么进行传输的(UDP)?

UDP协议是面向无连接、尽最大努力交付的协议,没有拥塞控制和流量控制以及超时重传等功能,是不可靠的连接。像这种音视频传输一般是使用的UDP,一方面它不需要重传。——我需要实时的看到你的图像跟声音,至于中间丢一帧什么的完全不重要。而为了重传往往会造成延迟与不同步,考虑一下,某一帧因为重传,导致 0.5 秒以后才到,那么整个音视频就延迟了0.5秒。考虑一下接收方视频,如果使用 TCP 丢包重传导致视频的中间延迟了0.5秒,那么后续的同化全都会比发送方延迟 0.5 秒。这种延迟是累加的,随着持续丢帧,延迟会越来越大,达到数秒,甚至分钟级,这会严重影响即时性比较强的音视频通话的用户体验。

  • 描述一下类、对象、函数重载?

类是面向对象中三大特性封装的体现,将对象的属性还有行为封装在一起。同时类是一个总的模板,而对象是类的具体表现,就像植物与草之间的关系。函数重载是在同一个作用域下同名函数但是拥有不同函数签名的现象。函数重载是在编译期完成的,由编译器对函数进行名称修饰以此来区分不同的重载函数。

  • DMA是什么?怎么工作的?什么场景下会去使用?

DMA称为直接存储器访问。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。整个数据传输操作在一个称为DMA控制器的控制下进行,CPU除了在数据传输开始和结束时做一点处理外(开始和结束时候要做中断处理),在外部设备和存储器进行数据传输的过程中,CPU可也进行其他的工作(前提是未设置停止CPU访问),这样,在大部分时间里,CPU和输入输出都处于并行操作,因此,计算机系统的效率将会大大提高。

DMA方式主要适用于一些高速的I/O设备。这些外部设备传输字节或字的速度非常快,对于这些设备,如果用输入输出指令或者采用中断的方式来传输字节信息,会大量占用CPU的时间,同时也容易造成数据的丢失。而使用DMA方式能让外部I/O设备直接和存储器进行成批数据的快速传送。 DMA主要用于需要高速、大批量数据传送的系统中,目的是提高数据的吞吐量,如磁盘存取、图像处理、高速数据采集系统方面应用甚广。通常只有数据量较大的外设才需要支持DMA能力,比如视频、音频和网络接口。

DMA的数据传输过程分为几个部分:

  1. 当外部设备有DMA使用需求时,会向DMAC控制器发出DMA请求信号(DREQ)
  2. DMAC控制器接收到外部设备的请求信号后,会向CPU发出一个总线请求信号(HRQ)
  3. CPU在接收到DMAC控制器发送过来的总线请求信号后,如果允许DMA传输,则会在总线空闲后,发出DMA响应信号(HLDA)。然后CPU会将控制总线、数据总线和地址总线置高阻态,即放弃对总线的控制权;另一方面,CPU会将有效的DMA响应信号发送给DMAC控制器,通知DMAC控制器CPU已经放弃了对总线的控制权
  4. DMAC控制器收到总线发来的DMA响应信号(HLDA)后,会获得总线的控制权,并向外部设备发送应答信号DACK,通知外设可以进行DMA传输了
  5. DMAC还会向存储器发送地址信号,向存储器和外设发出读/写控制信号,控制数据按设定的方向传输,实现外设与内存的数据传输
  6. 数据全部传输结束后,DMAC向CPU发送HOLD信号,要求撤销DMAC控制器对总线的控制权,CPU收到该信号后,会使HLDA(DMA请求)信号无效,收回总线控制权。

场景:降低了 I/O 中断操作对 CPU 资源的大量消耗。此时CPU被挂起。

  • 讲一讲冯诺依曼结构和哈佛结构?

冯·诺依曼结构(von Neumann architecture)又称作普林斯顿体系结构(Princetion architecture)。冯·诺依曼结构的处理器使用同一个存储器,经由同一个总线传输。冯·诺依曼结构处理器具有以下几个特点:

必须有一个存储器; 必须有一个控制器; 必须有一个运算器,用于完成算术运算和逻辑运算; 必须有输入和输出设备,用于进行人机通信。

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,如下图所示。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。哈佛结构是指程序和数据空间独立的体系结构, 目的是为了减轻程序运行时的访存瓶颈。哈佛结构能基本上解决取指和取数的冲突问题。

二者的区别就是程序空间和数据空间是否是一体的。冯·诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。

与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:

(1).使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;

(2).使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。