张洪亮
小林coding
一、硬件结构
2.1 CPU 是如何执行程序的?
2.2 磁盘比内存慢几万倍?
2.3 如何写出让 CPU 跑得更快的代码?
2.4 CPU 缓存一致性
2.5 CPU 是如何执行任务的?
2.6 什么是软中断?
2.7 为什么 0.1+0.2 不等于 0.3 ?
二、操作系统结构
3.1Linux内核vsWindows内核
三、内存管理
4.1 为什么要有虚拟内存?
4.2 malloc 是如何分配内存的?
4.3 内存满了,会发生什么?
4.4 在 4GB 物理内存的机器上,申请 8G 内存会怎么样?
4.5 如何避免预读失效和缓存污染的问题?
4.6 深入理解 Linux 虚拟内存管理
4.7 深入理解 Linux 物理内存管理
四、进程管理
5.1 进程、线程基础知识
5.2 进程间有哪些通信方式?
5.3 多线程冲突了怎么办?
5.4 怎么避免死锁?
5.5 什么是悲观锁、乐观锁?
5.6 一个进程最多可以创建多少个线程?
5.7 线程崩溃了,进程也会崩溃吗?
五、调度算法
6.1进程调度/页面置换/磁盘调度算法
六、文件系统
7.1文件系统全家桶
7.2进程写文件时,进程发生了崩溃,已经写入的数据会不会丢失 ?
七、设备管理
8.1键盘敲入A字母时候,OS系统期间发生了什么?
八、网络系统
9.1 什么是零拷贝?
9.2 l/0 多路复用:select/poll/epoll
9.3 高性能网络模式:Reactor和Proactor
9.4 什么是一致性哈希?
九、Linux命令
10.1如何查看网络的性能指标?
10.2如何从日志中获取UV?
JavaGuide
来自牛客和别的地方的面经(暂时没有答案)
承担了一部分hr面的职能,最后周一也就是7号hr来加我商量入职,可惜当时我已经接了字节的offer了,所以最终就没去百度
物理内存和虚拟内存的区别
- malloc拿到的是什么内存
- 对于编程来说,malloc拿到的是物理内存还是虚拟内存是不是都没什么影响
- 虚拟内存对于操作系统和对于写代码能帮到什么忙
- 虚拟内存如何知道在磁盘的哪个位置,以及如何加载入内存
- 操作系统怎么知道它需要执行上述操作
- 讲一下缺页中断的机制
- 虚拟内存除了你刚才说的,还有其他优势吗
- a进程创建了一个共享内存,怎么通知b进程该共享内存的位置
进程运行时,怎么找到程序的加载位置
问了缺页算法和内存淘汰算法
模拟运行LRU,并指出缺页发生在哪些时候
TCP协议中,滑动窗口左右边界相关
一个HTTP协议可以通过两个TCP连接传输数据吗
两个HTTP协议可以通过一个TCP连接传输数据吗
HTTPS中SSL加密协议是怎么加密的
9、fork() 的原理,哪里体现了fork分配资源?10、fork()是把进程从1个变成2个,那么最初的进程是从哪里来的?
启动进程是用户态还是内核态?
进程是通过fork创建的,linux下线程是怎么创建的?
select poll epoll
直接 new 一个 1GB 大小的数组怎么实现的, 还是说虚拟地址
不用虚拟地址,只用物理地址不可以吗?
两个线程可以同时读写一个文件吗?可以同时读吗?不会出现读一半的情况吗?
中断的类型
终端的作用和
系统中堆栈的作用和区别
如果内存满了,会发生什么?
在 4GB 物理内存的机器上,申请 8G 内存会怎么样?
如何避免预读失效和缓存污染的问题?
深入理解 Linux 虚拟内存管理
深入理解 Linux 物理内存管理
一个进程最多可以创建多少个线程?
线程崩溃了,进程也会崩溃吗?
进程写文件时,进程发生了崩溃,已写入的数据会丢失吗?
一致性哈希是什么,使用场景,解决了什么问题?
明天Redis + MySQL + OS
训练营
系统调用为什么慢
林秋地OS面试题总结