八股学习笔记 主要是 os 的内容

一、八股

OS

1.内存分配过程中的错误

第一种是内存分配失败,malloc 的指针是 nullptr 的,直接访问错误;第二种是内存分配成功但是未初始化,误以为默认有零值存在;第三种是内存分配成功但是访问越界。

第四种是内存没有释放出现内存泄漏,第五种是内存释放了但是还在访问。

2.多处理器是怎么实现原子性操作的

主要是通过缓存锁或者总线锁,首先通过缓存一致性协议保证进程对缓存行的独占,如果获取了独占权,其他进程访问会失效或者等待,如果是不能获得缓存行的情况需要对总线加锁,在持有锁期间其他进程不能访问内容,优先使用缓存锁,次选总线锁。

3.交换区有哪些注意点

交换区位于磁盘,通常是一块连续的区域用于存储完整的进程。

进程执行的时间要比交换的时间长,当出现系统负载升高,或者缺页频繁发生的时候需要把一部分进程换出直到性能不再下降。

4.线程池有哪些参数

有核心线程数,最大线程数,任务队列,非核心线程的存活时间,拒绝策略,CPU 密集型任务线程数接近核心的数量,通常多 1,如果是 IO 密集型的任务可以有更多线程,当系统负载升高就增加最大线程数。

复习计网:

1.一次完整的 RPC 请求的过程

首先请求方像调用本地函数一样去调用 RPC,然后序列化内容,包括函数名和参数,然后去由 TCP 封装成段,并经过 ip 层的路由,等由驱动网卡异步发送,在接收方把数据反序列化,并去调用对应的业务服务,业务服务的结果再序列化返回给客户端,由客户端反序列化得到最终结果。

2.由应用层到发送发生了什么

首先是序列化,然后 TCP 协议把数据根据 MSS 分段,并增加头部字段包括序号,确认号,然后进行 ip层路由,并在数据链路里封装成帧并由驱动网卡把数据异步发送给对端。

3.TCP 连接对端进程退出,机器崩溃或者网络不通分别发生什么

如果是进程正常退出会发送 FIN,可以 read 到 0 判断连接断开,如果是异常退出会发送 RST,可以放弃或者重建连接。

机器崩溃或者网络不通可以通过心跳机制发现,TCP 的 keepalive 或者应用层使用 ping 等根据响应判断连接是否有效决定后续怎么做。

相关推荐
蒸蒸yyyyzwd3 天前
秋招学习笔记 day109
笔记·八股
蒸蒸yyyyzwd7 天前
后端学习笔记三个知识
笔记·八股
蒸蒸yyyyzwd7 天前
学习笔记 复盘
笔记·八股
香蕉大香蕉(06敬畏市场)8 天前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
香蕉大香蕉(06敬畏市场)8 天前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
香蕉大香蕉(06敬畏市场)9 天前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
香蕉大香蕉(06敬畏市场)10 天前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
蒸蒸yyyyzwd10 天前
学习笔记day92
笔记·八股
香蕉大香蕉(06敬畏市场)12 天前
高频八股 · JVM(8)
java·jvm·面试·八股·大厂实习
蒸蒸yyyyzwd13 天前
kafka、redis、mysql不熟悉问题总结
笔记·八股