新闻详情

新闻详情

首页 / 资讯中心 / 详情

操作系统核心知识点(面试向,偏原理 + 考点)

发布时间:2026/9/1 16:09:30来源:尧图网络
操作系统核心知识点(面试向,偏原理 + 考点)
目录一、进程与线程最高频1. 进程、线程区别2. 进程状态3. PCB 进程控制块4. 线程实现三种模型5. 进程间通信 IPC6. 同步与互斥实现手段7. 死锁⭐⭐⭐死锁处理策略二、CPU 调度1. 调度层级2. 经典调度算法3. 抢占式 vs 非抢占式三、内存管理⭐⭐⭐1. 内存管理发展2. 分页机制TLB 快表3. 分段4. 段页式5. 虚拟内存⭐⭐⭐6. 写回策略四、文件系统磁盘物理文件分配方式inode 节点缓冲区 cache五、IO 管理IO 两种模式IO 软件分层阻塞 IO / 非阻塞 IO / 异步 IO六、中断、系统调用1. 系统调用2. 中断七、Linux 高频操作系统考点后端面试重点八、经典面试问题速记操作系统 (OS) 本质管理计算机软硬件资源为用户 / 应用程序提供抽象接口的系统软件向上给应用提供服务向下管理硬件CPU、内存、磁盘、IO 设备。 四大核心模块进程管理、内存管理、文件系统、IO 管理外加死锁、调度、中断、虚拟内存、缓存、系统调用等高频考点。一、进程与线程最高频1. 进程、线程区别进程资源分配的最小单位。每个进程拥有独立地址空间、文件描述符、堆、栈。进程之间隔离进程切换开销大页表刷新、保存全套上下文。线程CPU 调度的最小单位。一个进程内多个线程共享进程资源堆、全局变量、文件句柄每个线程私有程序计数器 PC、寄存器、栈。线程切换开销远小于进程。注意Linux 下线程本质是轻量级进程 LWP内核同等调度Windows 才严格区分进程 / 线程。2. 进程状态就绪等待 CPU 时间片运行正在 CPU 上执行阻塞 (等待)等待 IO / 资源不占用 CPU创建、终止状态流转就绪→运行调度器分配 CPU运行→就绪时间片用完运行→阻塞等待 IO阻塞→就绪IO 完成。3. PCB 进程控制块内核维护的数据结构保存进程全部信息PID、程序计数器、寄存器集合、内存地址空间、打开文件、进程状态、优先级。进程切换就是保存 / 恢复 PCB 上下文。4. 线程实现三种模型用户级线程内核不知道线程完全由用户态库管理缺点一个线程阻塞整个进程阻塞。内核级线程内核感知线程内核调度切换开销大。混合模型M:N 映射用户线程映射少量内核线程Go 语言 GMP 就是该思想。5. 进程间通信 IPC方式特点管道 pipe半双工父子进程字节流命名管道 FIFO无亲缘进程也可用消息队列内核维护消息可存多条消息共享内存最快 IPC直接映射同一块物理内存需要同步机制信号量同步互斥工具不是传递数据Socket跨机器通信也可本机信号 signal简单异步通知传递少量信息Java 中多线程通信不用 IPC直接共享内存进程通信常用 Socket、共享内存。6. 同步与互斥互斥同一时刻只允许一个进程访问临界资源锁同步进程执行有先后顺序条件等待临界区访问共享资源的代码片段。 临界区四大条件互斥进入、有空让进、有限等待、让权等待。实现手段软件方案Peterson 算法纯代码实现互斥硬件指令Test‑And‑Set (TestAndSet)Swap 交换指令硬件原子指令不能禁止中断操作系统提供信号量 semaphore、互斥锁 mutex信号量P 操作减一不够就阻塞V 操作加一唤醒等待进程。mutex 是初值 1 的二元信号量。7. 死锁⭐⭐⭐死锁四个必要条件全部满足才会死锁互斥资源排他访问占有且等待已经持有资源又申请新资源不可剥夺资源不能被强行抢走循环等待进程之间形成资源请求环路死锁处理策略预防死锁破坏 4 个条件任意一个代价大性能差避免死锁银行家算法分配前预判是否安全只分配安全状态检测死锁允许死锁发生定期检测找到死锁进程解除死锁杀死进程、抢占资源回滚开发中一般不做银行家算法业务层面避免循环等待统一资源申请顺序。二、CPU 调度1. 调度层级长程调度作业调度选择哪些程序进入内存中程调度挂起 / 换出内存虚拟内存短程调度CPU 调度就绪队列选进程上 CPU最常考2. 经典调度算法FCFS 先来先服务公平短作业容易被长作业拖慢SJF 短作业优先优先运行时间短会饥饿长任务永远得不到执行RR 时间片轮转分时系统分配时间片用完切就绪时间片不能太大也不能太小优先级调度高优先级优先会饥饿解决方案老化aging等待越久优先级升高多级反馈队列Linux 早期调度器思想多个优先级队列新任务进高优先级用完时间片降队列IO 阻塞进程保留高优先级。兼顾交互和 CPU 密集任务。评价指标CPU 利用率、吞吐量、周转时间、响应时间。3. 抢占式 vs 非抢占式抢占可以强制把 CPU 从进程拿走时间片到、高优先级进程到来现代 OS 都是抢占。非抢占进程主动放弃 CPU。三、内存管理⭐⭐⭐1. 内存管理发展连续分配 → 分页 → 分段 → 段页式 → 虚拟内存连续分配会产生外部碎片内存紧缩可以整理碎片开销大。碎片外部碎片空闲内存分散每块都很小合起来够但是单独一块不够分配内部碎片分配给进程的内存进程只用一部分剩下内部浪费。2. 分页机制把物理内存切固定大小页帧 (page frame)程序逻辑地址切同样大小页 (page)。 页表逻辑页号 → 物理页帧号。逻辑地址 页号 页内偏移。分页解决外部碎片会产生少量内部碎片。TLB 快表页表存在内存访问一次内存需要两次内存访问查页表 访问数据速度慢。 TLB 是 CPU 内部高速缓存缓存部分页表项加速地址转换。TLB 缺失则去内存查页表。3. 分段程序按逻辑模块划分段代码段、数据段、栈段段大小可变。逻辑地址 段号 段内偏移。 优点逻辑隔离缺点产生外部碎片。4. 段页式先分段段内部再分页兼顾逻辑隔离 无外部碎片。5. 虚拟内存⭐⭐⭐核心思想程序不需要全部加载进物理内存才可以运行只把当前需要的页放入内存其余放磁盘。 带来逻辑地址空间远大于物理内存。缺页中断访问页面不在物理内存触发中断OS 把磁盘页载入内存。页面置换算法内存满了需要淘汰一页腾出空间。页面置换算法OPT 最优置换淘汰未来最久不用的理论最优无法实现FIFO 先进先出Belady 异常分配内存越多缺页次数反而上升LRU 最近最少使用淘汰很久没访问的实际硬件实现代价高Clock 时钟算法近似 LRU使用访问位简单高效Linux 实际使用。抖动 (thrashing)内存不足频繁缺页大量时间耗在页面换入换出CPU 利用率暴跌。解决增加内存、降低并发进程数量。6. 写回策略写直达写内存同时写磁盘简单IO 多写回只写内存标记脏页延迟刷磁盘性能高掉电丢失风险。四、文件系统文件逻辑数据集合目录就是特殊文件。磁盘块是最小 IO 单元。磁盘物理磁盘由磁道、扇区、柱面寻道时间磁头移动 旋转延迟 传输时间。磁盘性能瓶颈主要是寻道。文件分配方式连续分配文件磁盘块连续读写快外部碎片。链表分配每个块存下一块指针随机读取慢。索引分配索引块保存文件所有块号ext 系列文件系统。inode 节点Linux 核心概念inode 保存文件元数据权限、大小、时间、磁盘块指针不保存文件名文件名保存在目录项。 硬链接多个目录项指向同一个 inodeinode 计数。 软链接独立 inode存储目标文件路径。缓冲区 cacheOS 文件读写不会直接操作磁盘读写走 page cache 页缓存。 read/write 系统调用操作 page cachefsync 强制把脏页刷入磁盘。五、IO 管理IO 两种模式程序查询轮询CPU 循环检查设备状态CPU 浪费严重。中断驱动 IO设备完成 IO给 CPU 发中断。适合少量 IO。DMA 直接内存访问⭐DMA 控制器把设备数据直接搬运内存不需要 CPU 参与拷贝完成后发中断。大数据 IO 用 DMA。IO 软件分层用户态 API → 设备无关 OS 层 → 设备驱动程序 → 硬件。阻塞 IO / 非阻塞 IO / 异步 IO阻塞 IO调用 read线程挂起等待数据就绪。非阻塞 IOread 立刻返回没数据返回错误需要轮询。IO 多路复用 select/poll/epoll单线程监听多个文件描述符内核通知哪些 fd 就绪。异步 IO AIO内核完成全部拷贝后通知应用。注意epoll 水平触发 LT、边缘触发 ET。LT只要有数据就通知ET状态变化才通知必须读完缓冲区全部数据。六、中断、系统调用1. 系统调用用户态程序请求操作系统内核服务的唯一入口。用户态不能直接操作硬件必须触发系统调用陷入内核。 陷入方式int 指令 /syscall。用户态权限低不能访问硬件内核态高权限可以操作硬件。库函数 ≠系统调用例如 printf 库函数内部调用 write 系统调用。2. 中断外部硬件打断 CPU 当前执行键盘、磁盘完成。 异常CPU 内部错误触发比如缺页中断、除 0。中断处理流程保存上下文 → 内核中断处理程序 → 恢复上下文回到用户程序。七、Linux 高频操作系统考点后端面试重点fork ()创建子进程拷贝父进程写时复制 COW只有修改内存时才真正复制页。exec替换进程地址空间加载新程序。zombie 僵尸进程子进程退出父进程没有 wait () 回收 PCBPCB 残留。解决父进程 wait/waitpid捕获 SIGCHLD 信号。orphan 孤儿进程父进程先退出子进程被 init 进程收养。无害。OOM Killer内存耗尽内核杀掉占用内存高的进程。swap 交换分区磁盘充当虚拟内存内存不足把冷页换出 swap。swap 频繁会系统卡顿。八、经典面试问题速记虚拟内存作用隔离进程地址空间内存不够时利用磁盘程序可以使用比物理内存更大地址空间。为什么需要 TLB避免每次内存访问两次内存查页表加速地址转换。进程切换开销保存寄存器 PC刷新 TLB切换页表内核栈切换。线程切换不需要切换页表开销更小。抖动频繁缺页置换CPU 大量时间处理缺页业务效率极低。COW 写时复制fork 不复制内存父子共享页当任意一方修改复制该页。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Docker Compose 实战:双技术栈项目容器化部署完整指南 2026/9/1 16:45:46

Docker Compose 实战:双技术栈项目容器化部署完整指南

很多入门教程会把 Docker 讲成“集装箱”,然后直接让你抄命令运行一个 Nginx。但真正到了企业级项目里,你会发现部署的痛点根本不是“能不能把进程跑起来”,而是“怎么让一套系统在任何机器上都稳定复制”。你本地能跑通的 Java 服务&#xf…

阅读更多 →
前端工程师进阶AI:掌握这些核心能力,轻松玩转大模型与Agent开发 2026/9/1 16:45:46

前端工程师进阶AI:掌握这些核心能力,轻松玩转大模型与Agent开发

本文专为前端工程师设计,解析AI Agent开发的核心概念与前端能力的迁移路径。通过分析Agent与普通大模型应用的差异,阐述前端在API调用、异步交互、状态管理及UI设计等方面的优势,并指出需补齐的服务端开发、LLM基础等知识。提供分阶段学习路线…

阅读更多 →
英雄游戏秋招Java笔试复盘:考点拆解与避坑指南 2026/9/1 16:45:46

英雄游戏秋招Java笔试复盘:考点拆解与避坑指南

2023年英雄游戏秋招JAVA岗笔试,我踩过的坑和复盘总结 又到一年秋招季,后台好些同学私信问我英雄游戏JAVA岗的笔试到底考什么、难度怎么样、该怎么准备。我去年走完了英雄游戏JAVA岗的秋招全流程,笔试、技术面、HR面都过了,虽然最…

阅读更多 →
TVA具身智能架构:情感认知计算与类人化交互风格迁移 2026/9/1 16:45:46

TVA具身智能架构:情感认知计算与类人化交互风格迁移

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的通用视觉技术体系。它有机融合深度强化学习(DRL)、卷积…

阅读更多 →
高质量数据集构建指南:从数据清洗到版本管理的完整实践 2026/9/1 16:45:46

高质量数据集构建指南:从数据清洗到版本管理的完整实践

全国高质量数据集超12.6万个、1815PB,这个数字对AI开发者到底意味着什么?如果你最近在做大模型微调或者某个行业AI项目,大概率会卡在同一个环节:找数据。要么公开数据集不够干净,要么行业数据散落在各个业务系统里&…

阅读更多 →
基于YOLOv5的中文车牌识别方案:覆盖12种车牌与双层车牌处理 2026/9/1 16:42:45

基于YOLOv5的中文车牌识别方案:覆盖12种车牌与双层车牌处理

简介:本资源是一套基于YOLOv5实现的中文车牌端到端检测与识别完整方案,面向计算机视觉初学者、智能交通系统开发者及高校课程实践者,解决真实场景下多类型中文车牌(含普通蓝牌、新能源绿牌、警车、军车、使馆车等12类)…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞