八股学习笔记 主要是 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 等根据响应判断连接是否有效决定后续怎么做。

相关推荐
蒸蒸yyyyzwd1 天前
八股和手撕总结
八股
蒸蒸yyyyzwd1 天前
秋招学习笔记 day46
c++·八股
蒸蒸yyyyzwd3 天前
秋招学习笔记 day48
八股
蒸蒸yyyyzwd9 天前
八股学习笔记 day42
c++·八股
蒸蒸yyyyzwd11 天前
cpp 选手秋招学习笔记 day40
笔记·八股
蒸蒸yyyyzwd12 天前
八股学习 MVCC 慢查询优化和 read 过程
c++·八股
蒸蒸yyyyzwd13 天前
算子开发面经学习笔记 day1
八股
蒸蒸yyyyzwd13 天前
cpp 选手秋招学习笔记 day38
笔记·八股
蒸蒸yyyyzwd14 天前
cpp 选手秋招学习笔记 day37 面经学习
c++·八股