[Work] 操作系统 面试问题整理

进程和线程

线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;调度和切换:线程上下文切换比进程上下文切换要快得多;

(24条消息) 线程间到底共享了哪些进程资源?_程序员资源社区的博客-CSDN博客

送命题:进程切换与线程切换的区别? (qq.com)

看完这篇还不懂高并发中的线程与线程池你来打我(内含20张图) (qq.com)

(24条消息) 深入理解Linux内核进程上下文切换_宋宝华的博客-CSDN博客

fork和exec

fork和exec之间的区别? - 问答 - 云+社区 - 腾讯云 (tencent.com)

fork会复制线程吗 | 林夕水共 (rebootcat.com)

谨慎使用多线程中的fork - origins - 博客园 (cnblogs.com)

进程间通讯

进程间通信的方式——信号、管道、消息队列、共享内存 - 0giant - 博客园 (cnblogs.com)

协程的概念

协程 - 简书 (jianshu.com)

堆栈的区别

①栈主要存储局部变量(比如局部的数据和for循环中的数据体),堆主要存储实体(数组,列表等等)

②栈的内存更新速度会快,因为局部变量的生命周期很短,堆的内存更新会慢一些实体的生命周期长。

③栈的生命周期短一旦被释放就会被摧毁,但是堆的实体生命周期长,内存空间会被回收机制不定时回收和释放

内核栈

(24条消息) Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈_木易博客专栏-CSDN博客_内核栈

程序运行时内存

(24条消息) 程序运行时的内存分配情况_weixin_30411997的博客-CSDN博客

函数运行时在内存中是什么样子? (qq.com)

程序员应如何理解内存:下篇 (qq.com)

内存管理

硬核操作系统指南 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 (leetcode-cn.com)

神秘!申请内存时底层发生了什么? (qq.com)

mmap系统调用

认真分析mmap:是什么 为什么 怎么用 - 胡潇 - 博客园 (cnblogs.com)

用户态和内核态

怎样去理解Linux用户态和内核态? - 知乎 (zhihu.com)

用户空间与内核空间,进程上下文与中断上下文总结 - Rabbit_Dale - 博客园 (cnblogs.com)

软中断和硬中断

软中断和硬中断 - 简书 (jianshu.com)

DMA

DMA详解 - 简书 (jianshu.com)

(24条消息) DMA(Direct Memory Access,直接存储器访问)_破晓的成长之路-CSDN博客

CAS

(24条消息) 【并发编程】 — Compare And Swap(CAS)原理分析_nrsc-CSDN博客_compareandswap

I/O,零拷贝,PageCache

读取文件时,程序经历了什么? (qq.com)

原来 8 张图,就可以搞懂「零拷贝」了 - 知乎 (zhihu.com)

(24条消息) 三种IO模式和Page Cache的关系_天行九歌-CSDN博客

(24条消息) 浅谈Buffer I/O 和 Direct I/O_w-CSDN博客_buffer io

I/O多路复用

终于明白了,一文彻底理解I/O多路复用 (qq.com)

VFS

浅谈Linux虚拟文件系统 - 知乎 (zhihu.com)

MMIO和PMIO

浅谈内存映射I/O(MMIO)与端口映射I/O(PMIO)的区别 - veli - 博客园 (cnblogs.com)

swap分区

(24条消息) Linux交换空间(swap space)_GoodIdea-CSDN博客_swap空间


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!