# 💡Summary
> [!Info]
> 一句话说清楚
>
# 🧩 Cues
# 🪞Notes
| 问题 | 关键词/关键概念 | | |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --- | --- |
| [[进程]]、线程、协程区别? | **进程**:资源分配单位、独立地址空间、开销大<br>**线程**:调度单位、共享进程资源、内核调度<br>**[[协程]]**:用户态调度、更轻量、无上下文切换开销 | | |
| [[掌握哪些Linux常用命令?]] | **文件**:ls/cd/cp/mv/rm/find/grep<br>**进程**:ps/top/kill/lsof<br>**网络**:netstat/ss/tcpdump/curl<br>**性能**:vmstat/iostat/sar/perf | | |
| | | | |
| 什么是Page Cache? | **定义**:内核页面缓存、4KB页单位、LRU淘汰<br>**读**:预读机制、缓存命中直接返回<br>**写**:写回/写透、脏页标记、优点减少IO、缺点占内存 | | |
| GPU和CPU区别?为什么挖矿、大模型都用GPU? | **CPU**:复杂控制流、串行计算、大缓存、少核心<br>**GPU**:并行计算、简单控制、多核心(数千个)、高吞吐量<br>**原因**:哈希计算/矩阵运算高度并行、SIMD架构、内存带宽大 | | |
| IO多路复用和多线程区别? | **IO多路复用**:单线程管理多个IO、事件驱动、资源消耗少、C10K问题<br>**多线程**:线程池处理、上下文切换开销、内存占用大、编程复杂 | | |
| 为什么按位与运算比取模高效? | **按位与**:单CPU指令、&(2^n-1)等价%2^n、直接操作二进制<br>**取模**:除法指令、多个CPU周期、计算复杂 | | |
| 什么是IO密集、CPU密集?✅ | **IO密集**:大量IO等待、CPU利用率低、数据库/文件操作、适合多线程<br>**CPU密集**:大量计算、CPU利用率高、算法/加密、适合多进程 | | |
| 什么是CPU利用率?怎么算? | **定义**:非空闲时间占比、(总时间-空闲时间)/总时间×100%<br>**/proc/stat**获取、user+system+nice+irq+softirq时间 | | |
| 什么是Load(负载)? | **定义**:运行队列平均长度、1/5/15分钟平均值<br>**包含**:Running+Uninterruptible状态进程、CPU核数参考、Load>核数表示排队 | | |
| 什么是MESI缓存一致性协议? | **四种状态**:Modified修改、Exclusive独占、Shared共享、Invalid无效<br>**作用**:多核CPU缓存一致性、总线嗅探、状态转换、写失效/写更新 | | |
| 什么是全双工和半双工? | **全双工**:同时双向通信、如电话、TCP连接<br>**半双工**:交替双向通信、如对讲机、I2C总线 | | |
| 什么是分段和分页? | **分段**:逻辑划分、变长、外部碎片、程序结构<br>**分页**:物理划分、定长4KB、内部碎片、透明管理 | | |
| 什么是操作系统多级缓存? | **CPU缓存**:L1/L2/L3 Cache、寄存器<br>**内存缓存**:Page Cache、Buffer Cache<br>**磁盘缓存**:硬盘缓存、RAID卡缓存 | | |
| 什么是时间片? | **定义**:进程执行时间配额、10-100ms、轮转调度<br>**作用**:并发假象、公平性、响应性、上下文切换触发 | | |
| 什么是用户态、内核态?如何切换? | **用户态**:受限权限、应用程序运行、Ring3<br>**内核态**:最高权限、操作系统运行、Ring0<br>**切换**:系统调用、中断、异常、保存上下文 | | |
| 什么是零拷贝? | **传统**:4次拷贝2次系统调用<br>**零拷贝**:sendfile/mmap、DMA直接传输、减少CPU拷贝、用户态内核态切换少 | | |
| 同步异步阻塞非阻塞理解? | **同步**:等待结果返回、**异步**:不等待回调通知<br>**阻塞**:线程挂起、**非阻塞**:立即返回<br>四种组合:同步阻塞/同步非阻塞/异步阻塞/异步非阻塞 | | |
| select、poll、epoll理解? | **select**:fd_set位图、1024限制、O(n)遍历<br>**poll**:链表无上限、O(n)遍历<br>**epoll**:红黑树+就绪链表、O(1)、边缘/水平触发 | | |
| 操作系统IO模型? | **五种模型**:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO<br>**两个阶段**:等待数据、拷贝数据 | | |
| 持续写入日志如何清理? | **方案**:logrotate轮转、按时间/大小切割、copytruncate、重定向、压缩归档、定时删除旧文件 | | |
| 线程实现方式? | **用户级线程**:用户空间实现、切换快、不能利用多核<br>**内核级线程**:内核调度、开销大、多核并行<br>**混合实现**:M:N模型 | | |
| QQ号码去重Linux命令? | `sort qq.txt | | |
| [[计算机开机操作系统做了什么?]] | **[[BIOS]]/UEFI**→**POST自检**→**MBR/GPT**→**Bootloader**→**加载[[内核态]]**→**init[[守护进程 PID 1]]**→**运行级别**→**登录界面** | | |
| Load和CPU利用率区别? | **Load**:任务队列长度、包含等待IO、反映系统繁忙<br>**CPU利用率**:CPU工作时间比例、不含IO等待、反映CPU忙碌 | | |
| 进程间通信方式? | **管道**:pipe匿名/FIFO命名<br>**消息队列**:消息链表<br>**共享内存**:最快<br>**信号量**:同步<br>**Socket**:网络<br>**信号**:异步通知 | | |