I/O 模型是操作系统处理“等待数据 + 拷贝数据”这两个阶段的不同策略,核心区别在于进程/线程在哪个阶段被卡住。下面按经典分类讲清楚,顺带把常见误解一次理清。 一、I/O 的两个阶段(必须先懂) 一次网络 I/O(比如 recv)通常分两步: 等待数据就绪:内核等待网卡收到数据,放入内核缓冲区 数据拷贝:内核把数据从内核缓冲区拷到用户缓冲区 不同…
CPU 调度算法是操作系统决定“下一个该让哪个进程/线程占用 CPU”的核心机制,目标是在吞吐量、响应时间、公平性、周转时间之间做权衡。下面按经典到现代、单核到多核的脉络系统梳理。 一、基础概念先对齐 抢占式 vs 非抢占式 非抢占:进程主动放弃 CPU(阻塞、结束)才调度 抢占:时间片用完或更高优先级到来,强行切走 核心评价指标 周转时间(Tur…
死锁(Deadlock)是并发系统中多个进程/线程因互相持有对方所需资源且不释放,导致全体永久阻塞、无法继续推进的状态。 四个必要条件(Coffman 条件) 必须同时满足才会死锁,破任一即可避免: 互斥:资源只能被一个占用(如锁、打印机) 占有且等待:持有一资源的同时等待另一资源 不可抢占:已分配资源不能被强行夺走,只能主动释放 循环等待:A等B…
下面从概念、区别、联系、执行流程、常见误区几个层面,系统讲清楚「中断」与「系统调用」。 一、什么是中断(Interrupt) 1. 基本定义 中断是 CPU 对异步事件的一种响应机制: CPU 在执行当前程序时,被某个外部或内部事件“打断”,转去执行一段预先设定好的代码(中断处理程序),处理完后再回来继续执行原来的程序。 一句话:中断 = CPU …
文件系统(File System)是 OS 用来在存储设备(磁盘、SSD、U盘等)上组织、存储、检索、保护和管理文件数据的一套机制与数据结构集合。它介于“裸块设备”和“用户/应用程序”之间,把物理扇区抽象成“目录—文件—字节流”的层次视图。 核心职责 命名与寻址:把人类可读的路径(/home/user/a.txt)映射到物理块地址。 空间管理:分配…
虚拟内存是操作系统把磁盘空间临时当作内存用的机制,核心目的是让程序能用到比物理内存(RAM)更大的地址空间,同时隔离进程、简化内存管理。 它到底怎么工作 每个进程拿到的是独立的虚拟地址空间,CPU 通过 MMU(内存管理单元)把虚拟地址翻译成物理地址。 数据按页(通常 4KB)管理,正在用的页放物理内存,不常用的页换出(swap)到磁盘的页面文件/…
进程(Process)和线程(Thread)是操作系统中最基本的执行单元,核心区别在于:进程是资源分配的基本单位,线程是 CPU 调度的基本单位。简单说,进程管“内存、文件、资源”,线程管“跑代码”。 一、进程(Process) 定义:一个正在运行的程序实例,拥有独立的内存空间(代码段、数据段、堆、栈)。 特点 独立地址空间,进程间互不干扰,一个进…