目录
-
-
- 5.2 其他操作系统常见面试题
-
- 5.2.1 大小端的区别以及各自的优点,哪种时候用 ⭐⭐⭐⭐⭐
- 5.2.2 一个程序从开始运行到结束的完整过程(四个过程) ⭐⭐⭐⭐⭐
- 5.2.3 什么是堆,栈,内存泄漏和内存溢出? ⭐⭐⭐⭐
- 5.2.4 堆和栈的区别 ⭐⭐⭐⭐⭐
- 5.2.5 死锁的原因、条件 创建一个死锁,以及如何预防 ⭐⭐⭐⭐⭐
- 5.2.6 硬链接与软链接的区别 ⭐⭐⭐⭐⭐
- 5.2.7 虚拟内存,虚拟地址与物理地址的转换 ⭐⭐⭐⭐
- 5.2.8 计算机中,32bit与64bit有什么区别 ⭐⭐⭐
- 5.2.9 中断和异常的区别 ⭐⭐⭐⭐⭐
- 5.2.10 中断怎么发生,中断处理大概流程 ⭐⭐⭐⭐
- 5.2.11 Linux 操作系统挂起、休眠、关机相关命令 ⭐⭐
- 5.2.12 数据库为什么要建立索引,以及索引的缺点 ⭐⭐
-
5.2 其他操作系统常见面试题
5.2.1 大小端的区别以及各自的优点,哪种时候用 ⭐⭐⭐⭐⭐
-
大端(Big Endian):数据的高字节存储在内存的低地址处,低字节存储在高地址处。例如,0x12345678存储在内存中是 0x12 | 0x34 | 0x56 | 0x78。
-
小端(Little Endian):数据的低字节存储在内存的低地址处,高字节存储在高地址处。例如,0x12345678 存储在内存中是 0x78 | 0x56 | 0x34 | 0x12。
-
优点:
- 大端:数据按照存储顺序符合人类阅读习惯(高位在前)。通常在网络协议中采用大端,因为它便于数据传输的标准化。
- 小端:对处理器执行按字节访问的运算更为高效。大多数现代计算机(如x86架构)使用小端模式。
-
什么时候使用:
- 大端:网络通信(网络字节序),特别是数据传输时。
- 小端:在大多数现代计算机的本地计算中,使用小端进行高效处理。
5.2.2 一个程序从开始运行到结束的完整过程(四个过程) ⭐⭐⭐⭐⭐
- 编译:源代码通过编译器转换为可执行的机器代码。包含编译和链接两个阶段,输出的是一个可执行文件。
- 加载:可执行文件由操作系统的程序加载器加载到内存中。加载器会将程序的代码和数据段映射到进程的地址空间,并为其分配栈和堆。
- 执行:程序开始执行,CPU指针跳转到程序的入口点,执行指令和处理数据。
- 结束:程序完成执行后,通过返回码告诉操作系统成功或失败的状态,进程退出,操作系统回收分配的资源。