操作系统面经题:传统的计算机基础你是否掌握了?

目录

1、什么是冯诺依曼模型?

2、如何让程序跑的更快?

3、存储器的层次结构?

4、如何写出让CPU跑的更快的代码?

5、如何实现CPU缓存一致性?

6、什么是软中断?

7、为什么要有虚拟内存?

8、malloc 是如何分配内存的?

9、内存回收的方式?

10、在 4GB 物理内存的机器上,申请 8G 内存会怎么样?

11、了解进程吗?

12、了解线程吗?

13、线程和进程的比较

14、进程调度算法了解哪些?

15、进程间的通信方式有哪些?

16、多线程冲突了怎么办?

17、了解死锁吗?

18、线程崩溃了,进程会崩溃吗?

19、内存页面置换算法有了解吗?

20、磁盘调度算法有了解吗?

21、什么是DMA技术?

22、什么是零拷贝?

23、select、poll和epoll的区别?

24、什么是一致性哈希?


1、什么是冯诺依曼模型?

        计算机基本结构的五个部分:运算器、控制器、存储器、输入设备、输出设备

2、如何让程序跑的更快?

        优化指令数、每条指令的平均时钟周期数CPI、和时钟周期时间

3、存储器的层次结构?

        运行速度:CPU(寄存器, L1-L3 cache)、内存、磁盘

        存储容量:磁盘、内存、CPU(L3-L1 cache , 寄存器)

4、如何写出让CPU跑的更快的代码?

        提升缓存命中率,可分别从数据缓存和指令缓存两方面考虑,数据缓存,即我们可以连续存放数据,CPU在操作时一般是顺序地操作连续内存;指令缓存,我们可以使用有规律的条件分支,这样,这样有利于CPU分支预测器发挥作用;最后,如果是多核CPU,线程可能在不同CPU之间切换,影响缓存命中率,因此可以将线程绑定到某一CPU上,提升缓存命中率。

5、如何实现CPU缓存一致性?

        要想实现CPU缓存一致性,主要有2点,第一点是要写传播,即某一个CPU核心发送写入操作时,要通知其他CPU核心;第二点是事务的串行化执行,保障程序在不同的核心上的运行结果是一致的,这两点有赖于我们的基于总线嗅探机制的MESI协议。

        分别由已修改,独占,共享,已失效四种状态,其中,已修改,独占状态的写操作不需要分享给其他核心。

6、什么是软中断?

        正常的中断处理程序分为上下部分,上部分是硬中断,由硬件触发中断,用于快速处理中断,下部分是软中断,由内核触发中断,用来异步处理上半部未完成的工作。

7、为什么要有虚拟内存?

        为了让多进程环境下,各个进程之间的内存地址不受影响,相互隔离,操作系统为每个经常独立分配了一套虚拟内存空间,一方面可以让运行内存大于实际物理内存,一方面避免了多进程下的内存地址冲突混乱,虚拟内存中还包含了对于某页的读写权限等,提供了更好的安全性。

8、malloc 是如何分配内存的?

        主要由brk()和mmap(),分配大的内存空间时采用mmap(),避免回收内存空间时带来较大的性能消耗,而brk()分配时也有着会产生内存碎片的缺点,因此需要在分配内存的时候结合这两种方式来进行。此外,malloc分配的是虚拟内存。

9、内存回收的方式?

        一共有两种,后台内存回收和直接内存回收两种方式,后台内存回收指的是在物理内存紧张的时候,会唤醒内核线程来回收内存,这个回收的过程是异步的,不会阻塞进程的执行,直接内存回收是指如果后台内存回收的速度更不上进程内存申请的速度,就会开始直接回收,这个回收的过程是同步的,会阻塞进程的执行。

10、在 4GB 物理内存的机器上,申请 8G 内存会怎么样?

        在32位操作系统中,进程理论上最大申请3GB大小的虚拟内存,所以直接申请8G内存,会申请失败。 在64位操作系统中

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

准入职的java螺丝钉一枚

你的鼓励是我继续不断创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值