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)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/81662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux关闭某端口暂用的进程

查看是哪个端口暂用 sudo netstat -tulpn | grep :80根据图片 显示 80端口暂用的 进程id是 3002 结束进程id为3002的进程 sudo kill -9 3002

【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核

如果你在conda的base环境运行了jupyter lab打开了一个ipynb文本&#xff0c;此时选择的内核是base虚拟环境的Python内核&#xff0c;如果我想切换成其他conda虚拟环境来运行这个文件该怎么办&#xff1f;下面我们试着还原一下问题&#xff0c;并且解决问题。 【注】 这个问题出…

React Flow 边的基础知识与示例:从基本属性到代码实例详解

本文为《React Agent&#xff1a;从零开始构建 AI 智能体》专栏系列文章。 专栏地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。项目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代码示​例与实战源&#xff09;。完整介绍…

ZooKeeper 原理解析及优劣比较

大家好&#xff0c;这里是架构资源栈&#xff01;点击上方关注&#xff0c;添加“星标”&#xff0c;一起学习大厂前沿架构&#xff01; 引言 在分布式系统中&#xff0c;服务注册、配置管理、分布式锁、选举等场景都需要一个高可用、一致性强的协调服务。Apache ZooKeeper 凭…

模糊照片变清晰:照片高清修复 ComfyUI 使用教学

模糊照片变清晰 满心欢喜地翻出旧相册&#xff0c;想重温那些美好的回忆&#xff0c;结果照片却模糊不清&#xff0c;根本看不清当年的模样&#xff1b;又或者精心拍摄了一张超有氛围感的照片&#xff0c;结果因为手抖或者光线问题&#xff0c;变得模糊&#xff0c;无法发朋友圈…

IEEEtran中文献中的作者大于3个时,用et al.省略

latex&#xff1a; 在使用bib文件的时候&#xff0c;当参考文献超过三个作者时&#xff0c;第三个作者后加逗号并接上et al.。我使用的是IEEEtran.bst。 \begingroup \small \bibliographystyle{IEEEtran} \bibliography{newbmyref1} \endgroup1.需要将IEEEtran.bst添加到这个…

Android Studio Kotlin 中的方法添加灰色参数提示

在使用 Android Studio 时&#xff0c; 我发现使用 Java 编写方法后在调用方法时&#xff0c; 会自动显示灰色的参数。 但在 Kotlin 中没有显示&#xff0c; 于是找了各种方法最后找到了设置&#xff0c; 并且以本文章记录下来。 博主博客 https://blog.uso6.comhttps://blog.…

python宠物用品商城系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

《具身智能机器人:自修复材料与智能结构设计的前沿探索》

在具身智能机器人的研发进程中&#xff0c;自修复材料与智能结构设计无疑是极具挑战性与创新性的关键领域&#xff0c;吸引着无数科研人员投身其中&#xff0c;探寻未知。 传统机器人在复杂多变的环境中执行任务时&#xff0c;一旦材料出现损伤&#xff0c;如外壳刮擦、内部线…

矩阵的秩(Rank)

矩阵的秩&#xff08;Rank&#xff09;是线性代数中的核心概念&#xff0c;表示矩阵中线性无关的行&#xff08;或列&#xff09;的最大数量&#xff0c;反映了矩阵所包含的“独立信息”的多少。以下是其核心要点&#xff1a; 1. 秩的定义 行秩&#xff1a;矩阵中线性无关的行…

麒麟系统编译osg —— 扩展篇

一、背景 前文讲到麒麟系统编译osg&#xff0c;通常情况下会提示&#xff1a; 意思是无法生成插件osgdb_jpeg&#xff0c;需要配置“JPEG_LIBRARY”和“JPEG_INCLUDE_DIR”。 经查&#xff0c;本机不存在jpeglib.h和libjpeg.so&#xff0c;需要另外安装。 二、编译jpeg库 …

【数据仓库面试题合集①】数据建模高频面试题及解析

🧠 面试官爱问什么?——核心考察点 数据建模作为数仓岗位面试的重头戏,考察的不只是模型知识,更是对业务理解、抽象能力和工程落地经验的综合评估。常见题型可分为三类: 概念类:模型类型、建模方法论(如维度建模、范式建模) 场景类:给定一个业务场景进行模型设计(如…

园区无人机智能巡检项目方案

在工业4.0与智慧园区建设加速推进的今天&#xff0c;传统人工巡检的局限性日益凸显&#xff1a;效率低、覆盖范围有限、安全隐患大。而无人机智能巡检技术的崛起&#xff0c;正以其 "高空视角AI大脑全自动作业" 的创新模式&#xff0c;重新定义园区管理标准。本文将深…

【C++】vector:容器的别样风采

目录 vector&#xff1a; vector实例化&#xff1a; vector构造函数&#xff1a; vector对象尾插&#xff1a;v1.push_back() vector迭代器&#xff1a; vector实例化string类型的对象 vector接口: begin()end()//rbegin()rend() resize()&#xff1a; vector&#xff…

大语言模型 15 - Manus 超强智能体 开源版本 OpenManus 案例与原理深入解析

写在前面 Manus 是由中国初创公司 Monica.im 于 2025 年 3 月推出的全球首款通用型 AI 智能体&#xff08;AI Agent&#xff09;&#xff0c;旨在实现“知行合一”&#xff0c;即不仅具备强大的语言理解和推理能力&#xff0c;还能自主执行复杂任务&#xff0c;直接交付完整成…

【node.js】安装与配置

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js简介1.1 Node.js的特点1.2 Node.js架构 2. Node.js安装2.1 下载和安装方法2.1.1 Windows安装2.1.2 macOS安装2.1.3 Linux安装 2.2 使用NVM安装和管理Node.js版本2.2.1 安装NVM2.2.2 使用NVM管理Node…

Neo4j(一) - Neo4j安装教程(Windows)

文章目录 前言一、JDK与Neo4j版本对应关系二、JDK11安装及配置1. JDK11下载2. 解压3. 配置环境变量3.1 打开系统属性设置3.2 新建系统环境变量3.3 编辑 PATH 环境变量3.4 验证环境变量是否配置成功 三、Neo4j安装&#xff08;Windows&#xff09;1. 下载并解压Neo4j安装包1.1 下…

深信服golang面经

for range 中赋值的变量&#xff0c;这个变量指向的是真实的地址吗&#xff0c;还是临时变量 不是真实地址&#xff0c;是临时变量 package mainimport "fmt"func main() {slice : []int{4, 2, 3}for _, v : range slice {fmt.Println(v, &v) // 这里的 v 是临…

PLC双人舞:profinet转ethernet ip网关奏响施耐德与AB的协奏曲

PLC双人舞&#xff1a;ethernet ip转profinet网关奏响施耐德与AB的协奏曲 案例分析&#xff1a;施耐德PLC与AB PLC的互联互通 在现代工业自动化中&#xff0c;设备之间的互联互通至关重要。本案例旨在展示如何通过北京倍讯科技的EtherNet/IP转Modbus网关&#xff0c;将施耐德P…

链接家里电脑

要在外网访问家里的电脑&#xff08;或NAS&#xff09;&#xff0c;主要有 5种主流方法&#xff0c;各有优缺点&#xff0c;适用于不同需求。以下是详细方案和操作指南&#xff1a; 一、方案对比速查表 方法适用场景速度安全性难度是否需要公网IP远程桌面&#xff08;RDP&…