计算机基础面试(操作系统)

操作系统

1. 什么是进程和线程?它们的核心区别是什么?
  • 专业解答
    进程是操作系统分配资源的基本单位,拥有独立的内存空间;线程是进程内的执行单元,共享同一进程的资源。区别在于:进程间资源隔离,线程间资源共享;进程切换开销大,线程切换开销小。

  • 初中生版
    进程像独立工厂,每个工厂有自己机器和材料;线程是工厂里的工人,共享资源。工人协作高效,但一个工人出错可能影响整个工厂。


2. 进程间通信(IPC)有哪些方式?简述管道和共享内存的实现原理。
  • 专业解答
    IPC方式包括管道、共享内存、消息队列、信号量、套接字。

    • 管道:单向数据流,通过内核缓冲区传递数据。
    • 共享内存:进程映射同一块物理内存,需配合信号量同步。
  • 初中生版
    进程通信像两个工厂合作:

    • 管道是单向传送带,A厂放货,B厂取货。
    • 共享内存是共用仓库,但需管理员协调避免冲突。

3. 什么是死锁?如何避免和检测死锁?
  • 专业解答
    死锁是进程循环等待资源导致僵局。避免方法如银行家算法;检测需分析资源分配图是否存在环。

  • 初中生版
    死锁像四个人各拿一只筷子等对方放手。
    避免:规定拿齐筷子才能吃饭;检测:观察是否有人一直拿不到筷子。


4. 分页和分段的主要区别是什么?
  • 专业解答
    分页将内存分固定大小页,减少碎片;分段按逻辑模块分段,段长可变,易产生碎片。

  • 初中生版
    分页像切固定大小的纸片存档;分段像按章节分书,章节长短不一可能浪费空间。


5. 虚拟内存的作用是什么?如何通过TLB加速地址转换?
  • 专业解答
    虚拟内存允许进程使用比物理内存更大的地址空间,通过分页机制扩展。TLB缓存最近页表项,减少内存访问。

  • 初中生版
    虚拟内存像书桌:常用书放桌面(内存),其他放书架(硬盘)。TLB是便签本,记录最近用过的书页位置。


6. 页面置换算法有哪些?LRU和LFU的区别是什么?
  • 专业解答
    常见算法:LRU(最近最少使用)、LFU(最不经常使用)。LRU淘汰最久未访问页,LFU淘汰访问次数最少页。

  • 初中生版
    书包只能装5本书:

    • LRU:扔掉最久没看的书;
    • LFU:扔掉看得最少的书。

7. 什么是上下文切换?何时会发生上下文切换?
  • 专业解答
    上下文切换是保存当前进程状态并加载新进程状态的过程,发生在进程/线程切换、中断或系统调用时。

  • 初中生版
    像做作业时被叫去倒垃圾:记住做到哪题(保存状态),回来继续(恢复状态)。切换越频繁,效率越低。


8. 进程调度算法有哪些?多级反馈队列调度如何工作?
  • 专业解答
    算法包括FCFS、SJF、RR、MLFQ。MLFQ设多级队列,高优先级队列时间片小,低优先级时间片大,动态调整进程优先级。

  • 初中生版
    多级反馈队列像游乐场排队:急事走快速通道(高优先级),慢任务去普通通道(低优先级)。插队太多会被降级。


9. 什么是临界区?如何用信号量解决生产者-消费者问题?
  • 专业解答
    临界区是访问共享资源的代码段。信号量通过wait()signal()控制资源访问,同步缓冲区状态。

  • 初中生版
    临界区像公共厕所隔间,一次进一人。信号量是计数器:进隔间减1,出隔间加1,为0时需等待。


10. 什么是僵尸进程和孤儿进程?如何避免?
  • 专业解答
    僵尸进程结束但未被回收,保留PID;孤儿进程被init接管。父进程需调用wait()回收子进程。

  • 初中生版

    • 僵尸进程:气球爆了但绳子还拴着;
    • 孤儿进程:孩子被社区阿姨收养。
      解决:及时清理气球(调用wait())。

11. 文件系统的inode是什么?如何通过inode管理文件存储?
  • 专业解答
    inode存储文件元数据(权限、大小、时间戳)和数据块指针,通过inode号唯一标识文件。

  • 初中生版
    inode像图书馆的书目卡:记录书的位置、作者、出版时间,但不存书内容。找书先查卡,再按地址取书。


12. 磁盘调度算法有哪些?SCAN和C-SCAN的区别是什么?
  • 专业解答
    算法包括FCFS、SSTF、SCAN、C-SCAN。SCAN(电梯算法)双向移动磁头;C-SCAN单向循环扫描。

  • 初中生版
    SCAN像电梯上下接送乘客;C-SCAN只上到顶后直接跳到底层,再继续上行。


13. 什么是RAID?RAID 0、RAID 1、RAID 5的特点是什么?
  • 专业解答
    RAID通过多磁盘组合提升性能或可靠性。

    • RAID 0:条带化,提升性能但无冗余;
    • RAID 1:镜像,数据完全冗余;
    • RAID 5:分布式奇偶校验,兼顾性能和冗余。
  • 初中生版
    RAID像存钱方式:

    • RAID 0:钱分两份存不同银行,取钱快但一家倒闭就全丢;
    • RAID 1:两份存折完全复制,安全但浪费空间;
    • RAID 5:钱分三份,每份加密码,坏一份也能恢复。

14. 操作系统如何实现多任务并发?
  • 专业解答
    通过时间片轮转和上下文切换,快速切换进程/线程,宏观上实现“同时”运行。

  • 初中生版
    像魔术师同时抛三个球:快速切换手的动作,看起来所有球都在空中。


15. 什么是系统调用?用户态和内核态的区别是什么?
  • 专业解答
    系统调用是用户程序请求内核服务的接口。用户态权限低,内核态权限高,通过软中断切换。

  • 初中生版
    用户态像普通员工只能用办公电脑;内核态像管理员能操作服务器。员工需申请(系统调用)才能让管理员执行特权操作。


16. 什么是DMA(直接内存访问)?它如何提升I/O效率?
  • 专业解答
    DMA允许外设直接读写内存,无需CPU介入,减少CPU等待时间。

  • 初中生版
    DMA像快递员直接把包裹放进你家储物柜,不用每次都找你签收(CPU)。


17. 什么是SPOOLing技术?举例说明其应用场景。
  • 专业解答
    SPOOLing将独占设备模拟为共享设备,如打印机任务先存入磁盘队列,再由守护进程处理。

  • 初中生版
    SPOOLing像食堂打饭:先写需求到纸条(磁盘队列),后厨按顺序处理,避免挤在窗口。


18. 什么是内核模块?动态加载模块的作用是什么?
  • 专业解答
    内核模块是可动态加载的代码片段,扩展内核功能(如驱动),无需重启系统。

  • 初中生版
    内核模块像乐高积木:需要新功能时,直接插上对应积木(模块),不用拆整个玩具(重启)。


19. 什么是进程的地址空间?代码段、数据段、堆栈段的作用是什么?
  • 专业解答
    地址空间是进程的虚拟内存区域。

    • 代码段:存放程序指令;
    • 数据段:存放全局变量;
    • 堆栈段:堆存动态数据,栈存函数调用和局部变量。
  • 初中生版
    进程地址空间像书包:

    • 代码段是课本;
    • 数据段是文具盒;
    • 是零食袋(随时增减),是作业本(按顺序使用)。

20. 什么是写时复制(Copy-on-Write)?如何优化fork()的性能?
  • 专业解答
    写时复制在fork()时共享父进程内存,仅在写操作时复制,减少内存开销。

  • 初中生版
    写时复制像共享笔记:两人共用同一本笔记,只有当一方要修改时,才复印一页自己改。


21. 什么是设备驱动程序?为什么需要它?
  • 专业解答
    设备驱动是操作系统与硬件的桥梁,封装硬件操作细节,提供统一接口。

  • 初中生版
    驱动程序像翻译官:把操作系统的指令翻译成硬件能听懂的语言(如打印机驱动)。


22. 什么是微内核和宏内核?它们的优缺点是什么?
  • 专业解答

    • 微内核:最小化内核功能,服务运行在用户态,模块化强但通信开销大;
    • 宏内核:内核集成更多服务,效率高但扩展性差。
  • 初中生版
    微内核像小政府:只管核心事务,其他外包;宏内核像大政府:事事亲力亲为,效率高但难调整。


23. 什么是实时操作系统(RTOS)?其调度策略有何特殊性?
  • 专业解答
    RTOS保证任务在确定时间内完成,调度策略如优先级抢占,硬实时(严格截止时间)和软实时(尽量满足)。

  • 初中生版
    RTOS像准时公交:必须按时到站(硬实时),或尽量准点但允许偶尔迟到(软实时)。


24. 什么是内存泄漏?如何检测和避免?
  • 专业解答
    内存泄漏是已分配内存未释放,导致可用内存减少。需通过工具(如Valgrind)检测,代码规范避免。

  • 初中生版
    内存泄漏像水龙头没关紧:水(内存)一直流走,最终水池(系统)干涸。需检查水管(代码)是否关严。


25. 什么是缓存替换策略?为什么LRU比FIFO更高效?
  • 专业解答
    缓存替换策略决定淘汰哪些数据。LRU基于时间,FIFO基于顺序。LRU更适应局部性原理。

  • 初中生版
    LRU像整理衣柜:最近没穿的衣服先扔;FIFO像排队,先放进衣柜的先扔。LRU更懂你最近的需求。


26. 什么是文件描述符?Linux中文件描述符的限制如何调整?
  • 专业解答
    文件描述符是内核用于追踪打开文件的索引。可通过ulimit或修改/etc/security/limits.conf调整限制。

  • 初中生版
    文件描述符像图书馆借书卡的编号。如果编号用完了(默认1024),需找管理员(修改配置)增加额度。


27. 什么是信号(Signal)?如何通过信号实现进程间通信?
  • 专业解答
    信号是异步通知机制(如SIGKILL终止进程)。进程可注册信号处理函数响应事件。

  • 初中生版
    信号像手机通知:收到短信(信号)时,手机(进程)会响铃或震动(执行处理函数)。


28. 什么是原子操作?如何通过CAS实现无锁编程?
  • 专业解答
    原子操作是不可中断的操作。CAS(Compare-And-Swap)通过比较并交换实现无锁数据结构。

  • 初中生版
    原子操作像抢椅子游戏:只有音乐停下(比较成功)时才能坐下(修改数据),否则重试。


29. 什么是进程的优先级反转?如何解决?
  • 专业解答
    低优先级进程持有资源导致高优先级进程等待。可通过优先级继承协议解决。

  • 初中生版
    优先级反转像VIP用户(高优先级)等普通用户(低优先级)还书。解决方法:让普通用户临时升级为VIP还书。


30. 什么是容器化技术(如Docker)?与传统虚拟化有何区别?
  • 专业解答
    容器共享宿主机内核,轻量级;传统虚拟化需模拟完整硬件,资源开销大。

  • 初中生版
    容器像独立房间:共用整栋楼的水电(内核),但彼此隔音;虚拟化像每套房自带发电机(虚拟硬件),更耗电。

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

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

相关文章

考研408数据结构线性表核心知识点与易错点详解(附真题示例与避坑指南)

一、线性表基础概念 1.1 定义与分类 定义:线性表是由n(n≥0)个相同类型数据元素构成的有限序列,元素间呈线性关系。 分类: 顺序表:元素按逻辑顺序存储在一段连续的物理空间中(数组实现&…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.2.2倒排索引原理与分词器(Analyzer)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 1.2.2倒排索引原理与分词器(Analyzer)1. 倒排索引:搜索引擎的基石1.1 正排索引 vs 倒排索引示例数据对比: 1.2 倒排索引核心结…

Springboot项目本地连接并操作MySQL数据库

目录 前提 准备工作 用cmd在本地创建数据库、表: 1.创建springboot项目(已有可跳过) 2.编辑Mybatis配置 3.连接数据库 4.创建模型类,用于与数据库里的数据表相连 5.创建接口mapper,定义对数据库的操作 6.创建…

《宝塔 Nginx SSL 端口管理实战指南:域名解析、端口冲突与后端代理解析》

📢 Nginx & SSL 端口管理分析 1️⃣ 域名解析与 SSL 申请失败分析 在使用宝塔申请 www.mywebsite.test 的 SSL 证书时,遇到了解析失败的问题。最初,我认为 www 只是一个附加的前缀,不属于域名的关键部分,因此只为…

java和Springboot和vue开发的企业批量排班系统人脸识别考勤打卡系统

演示视频: https://www.bilibili.com/video/BV1KU9iYsEBU/?spm_id_from888.80997.embed_other.whitelist&t52.095574&bvidBV1KU9iYsEBU 主要功能: 管理员管理员工,采集员工人脸特征值存入数据库,可选择多个员工批量排班…

DeepSeek学习规划

DeepSeek是一个专注于深度学习和人工智能技术研究与应用的平台,旨在通过系统化的学习和实践,帮助用户掌握深度学习领域的核心知识和技能。为了在DeepSeek平台上高效学习,制定一个科学合理的学习规划至关重要。以下是一个详细的学习规划&#…

打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题

一、关联文章: 1、Docker Desktop 安装使用教程 2、家庭版 Windows 安装 Docker 没有 Hyper-V 问题 3、安装 Windows Docker Desktop - WSL问题 二、问题解析 打开 Docker Desktop 出现问题,如下: Docker Engine Stopped : Docker引擎停止三、解决方法 1、检查服务是否…

突破Ajax跨域困境,解锁前端通信新姿势

一、引言 在当今的 Web 开发领域,前后端分离的架构模式已经成为主流,它极大地提升了开发效率和项目的可维护性。在这种开发模式下,前端通过 Ajax 技术与后端进行数据交互,然而,跨域问题却如影随形,成为了开…

Mercury、LLaDA 扩散大语言模型

LLaDA 参考: https://github.com/ML-GSAI/LLaDA https://ml-gsai.github.io/LLaDA-demo/ 在线demo: https://huggingface.co/spaces/multimodalart/LLaDA Mercury 在线demo: https://chat.inceptionlabs.ai/ 速度很快生成

Rust~String、str、str、String、Box<str> 或 Box<str>

Rust语言圣经中定义 str Rust 语言类型大致分为两种:基本类型和标准库类型,前者由语言特性直接提供,后者在标准库中定义 str 是唯一定义在 Rust 语言特性中的字符串,但也是几乎不会用到的字符串类型 str 字符串是 DST 动态大小…

大数据SQL调优专题——底层调优

引入 上一篇我们提到了调优的常见切入点,核心就是通过数据产出情况发现问题,借助监控等手段收集信息排查瓶颈在哪,最后结合业务理解,等价重写思路去解决问题。 在实际工作场景中,去保证数据链路产出SLA的时候&#x…

Hue 编译异常:ImportError: cannot import name ‘six‘ from ‘urllib3.packages‘

个人博客地址:Hue 编译异常:ImportError: cannot import name six from urllib3.packages | 一张假钞的真实世界 在编译Hue的时候出现错误信息如下: Running /home/zhangjc/ysten/git/ysten-hue/build/env/bin/hue makemigrations --noinpu…

计算机网络——详解TCP三握四挥

文章目录 前言一、三次握手1.1 三次握手流程1.2 tcp为什么需要三次握手建立连接? 二、四次挥手2.1 四次挥手流程2.2 为什么是四次,不是三次?2.3 为什么要等待2msl?2.4 TCP的保活计时器 前言 TCP和UDP是计算机网络结构中运输层的两…

# C# 中堆(Heap)与栈(Stack)的区别

在 C# 中,堆和栈是两种不同的内存分配机制,它们在存储位置、生命周期、性能和用途上存在显著差异。理解堆和栈的区别对于优化代码性能和内存管理至关重要。 1. 栈(Stack) 1.1 定义 栈是一种后进先出(LIFO&#xff0…

如何把图片或者图片地址存到 MySQL 数据库中以及如何将这些图片数据通过 JSP 显示在网页中

如何优雅地管理图片:从MySQL数据库存储到JSP展示的全流程解析 在互联网时代,一张引人入胜的图片往往能为网站带来巨大的流量。而作为开发者的我们,如何高效地管理和展示这些图片资源则成为了一项重要的技术挑战。今天,我们就一起…

「拼好帧」小黄鸭 Lossless Scaling 软件介绍与下载

「拼好帧」小黄鸭 Lossless Scaling 软件介绍与下载 在游戏和视频播放时,你是否遇到过分辨率不匹配、画质模糊的问题?今天给大家介绍一款神器——Lossless Scaling(拼好帧),也被玩家们亲切地称为“小黄鸭”&#xff0…

科普|无人机专业术语

文章目录 前言一、飞控二、电调三、通道四、2S、3S、4S电池五、电池后面C是什么意思?六、电机的型号七、什么是电机的KV值?八、螺旋桨的型号九、电机与螺旋桨的搭配 前言 无人机飞控系统控制飞行姿态,电调控制电机转速,遥控器通道控制飞行动作。电池C…

和鲸科技携手四川气象,以 AI 的力量赋能四川气象一体化平台建设

气象领域与农业、能源、交通、环境科学等国计民生关键领域紧密相连,发挥着不可替代的重要作用。人工智能技术的迅猛发展,为气象领域突破困境带来了新的契机。AI 技术能够深度挖掘气象大数据中蕴含的复杂信息,助力人类更精准地把握自然规律&am…

Linux mount命令

Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。 一、挂载功能介绍 挂载方法:mount DECE MOUNT_POINT 命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要挂载的设备&…

《Operating System Concepts》阅读笔记:p177-p178

《Operating System Concepts》学习第 18 天,p177-p178 总结,总计 2 页。 一、技术总结 1.implicit thread A programming model that transfers the creation and management of threading from application developers to compilers and run-time l…