当前位置: 首页 > news >正文

Linux:面试题

1. 什么是中断和异常?

中断:由外部设备(如键盘、网卡)触发的异步事件,用于通知 CPU 有紧急事件需要处理。
异常:由 CPU 内部执行指令时产生的同步事件(如除零错误、缺页异常),需要操作系统介入处理。

2. 用户态和核心态

用户态:进程运行在受限环境,只能访问自己的内存空间和受限系统调用。
核心态:操作系统内核运行的特权模式,可访问所有硬件资源和内存空间。

3. 并行和并发

并行:多个任务在多核 CPU 上同时执行。
并发:多个任务在单核 CPU 上通过时间片轮转交替执行,宏观上看似同时运行。

4. 内部碎片和外部碎片

内部碎片:分配的内存块大于实际所需,导致部分空间浪费(如固定分区分配)。
外部碎片:内存中存在多个小空闲块,但无法合并为大连续空间(如动态分区分配)。

5. 僵尸进程和孤儿进程

僵尸进程:子进程结束后,父进程未回收其状态信息(PID、退出码等),导致进程控制块残留。
孤儿进程:父进程提前退出,子进程被 init 进程(PID=1)收养。

6. 信号和信号量

信号:用于进程间异步通知的机制(如SIGTERM、SIGKILL)。
信号量:用于进程 / 线程同步的计数器,通过 P/V 操作控制临界资源的访问。

7. 常用 Linux 命令

文件操作:ls、cd、mkdir、rm、cp、mv
文本处理:grep、sed、awk
进程管理:ps、top、kill、pkill
网络:ping、ifconfig/ip、netstat/ss
权限:chmod、chown

8. 查看和杀死进程

查看进程:ps aux(详细列表)、top/htop(实时监控)、pgrep <进程名>(获取 PID)。
杀死进程:kill (默认发送 SIGTERM)、kill -9 (强制终止)、pkill <进程名>。

9. 局部性原理

程序在执行时倾向于访问近期使用过的内存区域(时间局部性)和相邻内存位置(空间局部性),是缓存设计的基础。

10. 进程 vs 线程

在这里插入图片描述

11. 进程的状态

运行态:正在 CPU 上执行。
就绪态:等待 CPU 调度。
阻塞态:等待外部事件(如 IO)。
创建态:进程正在被创建。
终止态:进程正在退出。

12. 进程间通信(IPC)方式

管道:半双工通信(如|)。
消息队列:基于消息的存储 - 转发机制。
共享内存:最快的方式,直接访问同一块物理内存。
信号量:同步机制,控制对共享资源的访问。
套接字(Socket):跨主机通信。

13. 线程同步方式

互斥锁:同一时间只允许一个线程访问临界区。
读写锁:允许多个线程同时读,写时互斥。
条件变量:线程等待特定条件满足。
信号量:允许多个线程并发访问有限资源。

14. 常见锁

互斥锁(Mutex):二进制锁,用于互斥访问。
自旋锁(Spinlock):不睡眠,循环等待锁释放(适用于短时间持有)。
读写锁(ReadWriteLock):读共享、写互斥。
递归锁(Reentrant Lock):允许同一线程多次加锁。

15. 死锁的条件与解除

死锁条件:互斥、占有并等待、不可抢占、循环等待。
解除方法:
预防:破坏死锁的四个条件之一(如资源一次性分配)。
避免:银行家算法动态检测安全性。
检测与恢复:定期检测并强制释放资源。

16. 进程调度算法

先来先服务(FCFS):按到达顺序调度。
短作业优先(SJF):优先调度执行时间最短的进程。
时间片轮转(RR):每个进程分配固定时间片。
多级反馈队列:动态调整优先级,平衡长短期作业。

17. 分段 vs 分页

在这里插入图片描述

18. 页面置换算法

FIFO:淘汰最早进入内存的页面。
LRU:淘汰最久未使用的页面(需维护访问顺序)。
OPT:淘汰未来最长时间不会使用的页面(理论最优)。
Clock:近似 LRU,用访问位(Reference Bit)实现。

19. IO 多路复用

通过一个线程监视多个 IO 事件(如 socket 连接),当有事件就绪时通知应用程序处理。
常见实现:select、poll、epoll(Linux)、kqueue(BSD/macOS)。

相关文章:

  • jenkins授权管理.
  • 界面控件DevExpress WinForms v24.2——PDF Viewer功能升级
  • 佰力博科技与您浅谈低温介电材料特性及应用分析
  • Matplotlib 高级进阶实战:多维度数据可视化组合图表
  • RK3588 IREE+Vulkan ResNet50推理测试
  • Hive drop column 的解决方法
  • Linux系统之traceroute命令详解:追踪网络路径的核心工具
  • docker常用指令总结
  • 嵌入式项目之交叉编译m2440篇
  • 深入探讨redis:哨兵模式
  • 【ISP算法精粹】什么是global tone mapping和local tone mapping?
  • 吃透 Golang 基础:数据结构之数组
  • 中级网络工程师知识点8
  • 【Linux笔记】——简单实习一个日志项目
  • AI编程辅助哪家强?深度解析主流AI编程工具的现状与未来-优雅草卓伊凡
  • 内核常见面试问题汇总
  • Mujoco 学习系列(二)基础功能与xml使用
  • 鸿蒙开发——7.ArkUI进阶:@BuilderParam装饰器的核心用法与实战解析
  • Oracle中如何解决BUFFER BUSY WAITS
  • Oracle Apps R12——报表入门:如何定义一个Concurrent Program(请求)
  • 第九届非遗节首设主宾国主宾城机制,非遗品牌IP授权获关注
  • 杭州3宗住宅用地收金42.49亿元,最高溢价率51.38%
  • 国家发改委:大部分稳就业稳经济政策将在6月底前落地
  • 66岁华仁世纪集团有限公司创始人、董事长梁福东逝世
  • 外交部:将持续便利中外人员往来,让“中国游”金字招牌更加闪耀
  • 意德首脑会谈,梅洛尼警告欧盟绿色政策面临“工业荒漠化”