[Work] 操作系统 面试问题整理
进程和线程
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;调度和切换:线程上下文切换比进程上下文切换要快得多;
(24条消息) 线程间到底共享了哪些进程资源?_程序员资源社区的博客-CSDN博客
看完这篇还不懂高并发中的线程与线程池你来打我(内含20张图) (qq.com)
(24条消息) 深入理解Linux内核进程上下文切换_宋宝华的博客-CSDN博客
fork和exec
fork和exec之间的区别? - 问答 - 云+社区 - 腾讯云 (tencent.com)
fork会复制线程吗 | 林夕水共 (rebootcat.com)
谨慎使用多线程中的fork - origins - 博客园 (cnblogs.com)
进程间通讯
进程间通信的方式——信号、管道、消息队列、共享内存 - 0giant - 博客园 (cnblogs.com)
协程的概念
堆栈的区别
①栈主要存储局部变量(比如局部的数据和for循环中的数据体),堆主要存储实体(数组,列表等等)
②栈的内存更新速度会快,因为局部变量的生命周期很短,堆的内存更新会慢一些实体的生命周期长。
③栈的生命周期短一旦被释放就会被摧毁,但是堆的实体生命周期长,内存空间会被回收机制不定时回收和释放
内核栈
(24条消息) Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈_木易博客专栏-CSDN博客_内核栈
程序运行时内存
(24条消息) 程序运行时的内存分配情况_weixin_30411997的博客-CSDN博客
内存管理
硬核操作系统指南 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 (leetcode-cn.com)
mmap系统调用
认真分析mmap:是什么 为什么 怎么用 - 胡潇 - 博客园 (cnblogs.com)
用户态和内核态
怎样去理解Linux用户态和内核态? - 知乎 (zhihu.com)
用户空间与内核空间,进程上下文与中断上下文总结 - Rabbit_Dale - 博客园 (cnblogs.com)
软中断和硬中断
DMA
(24条消息) DMA(Direct Memory Access,直接存储器访问)_破晓的成长之路-CSDN博客
CAS
(24条消息) 【并发编程】 — Compare And Swap(CAS)原理分析_nrsc-CSDN博客_compareandswap
I/O,零拷贝,PageCache
原来 8 张图,就可以搞懂「零拷贝」了 - 知乎 (zhihu.com)
(24条消息) 三种IO模式和Page Cache的关系_天行九歌-CSDN博客
(24条消息) 浅谈Buffer I/O 和 Direct I/O_w-CSDN博客_buffer io
I/O多路复用
VFS
浅谈Linux虚拟文件系统 - 知乎 (zhihu.com)
MMIO和PMIO
浅谈内存映射I/O(MMIO)与端口映射I/O(PMIO)的区别 - veli - 博客园 (cnblogs.com)
swap分区
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!