面试问题
网络分几层 交换机 路由器属于那一层?
- 交换机(数据链路层)
数据交换机(Switch)也叫交换式集线器,是一种工作在OSI第二层(数据链路层,参见“广域网”定义)上的、基于MAC (网卡的介质访问控制地址)识别、能完成封装转发数据包功能的网络设备。 - 路由器(网络层)
路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。
路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
dns是什么?
- 通俗来说,域名管理系统DNS(Domain Name System)是域名解析服务器的意思.它在互联网的作用是:把域名转换成为网络可以识别的ip地址.比如:我们上网时输入的www.abc.com会自动转换成为61.145.112.141 。
队列和栈的区别
- 都是线性表(一位数组来实现,顺序存储的),但是栈是先进后出,队列是先进先出。
- 属性不一样。
- 栈:容量,指示栈顶位置的下标。
- 队列:容量,front指针,rear队尾指针。
- 应用场景
进程和线程的区别
- 进程是资源分配的基本单位,线程是调度的基本单位。系统会给每一个进程分配资源,但是不会给线程单独分配内存。
- 进程的个体间是完全独立的,而线程间是彼此依存的。多进程环境中,任何一个进程的终止,不会影响到其他进程。而多线程环境中,父线程终止,全部子线程被迫终止(没有了资源)。而任何一个子线程终止一般不会影响其他线程,除非子线程执行了exit()系统调用。任何一个子线程执行exit(),全部线程同时灭亡。
- tips:exit()是用来结束一个进程的,不可以用来结束线程,一旦调用,那么进程结束,所有线程结束。
- 线程结束函数函数:return 和 pthread—exit(),主线程通过pthread_join()来进行回收。
- 进程短板:通信不方便,切换的开销比较大,但是线程的话实现并发,独立运行,通信起来就比较的方便。
进程之间的通信方式
- ipc
- posix
- system v
- 普通文件
两个栈实现队列
程序变成二进制可执行文件的几个过程
过程 | 转变 | 生成文件 |
---|---|---|
预编译 | 替换宏,展开头文件等工作 | .i文件 |
编译 | 文本变成汇编程序 | .s文件 |
汇编 | 汇编文件变成二进制的机器玛 | .o文件 |
链接 | 多个二进制的机器玛文件链接成为一个二进制可执行文件 | a.out文件 |