计算机的组成模型?
这个模型提出的计算机的5个基本组成部分?
输入输出设备,存储器通过什么和CPU进行数据交互?
总线有哪三种?
计算机存储数据寻址数据的内存单位是多少?
32位操作系统和64位操作系统到底什么区别?
1、CPU运算器一次可以运算多少字节数据
2、寄存器一次最多存储多少字节数据
有内存为什么还需要寄存器呢?
内存距离CPU太远,寄存器就在CPU中,运算获取数据更快。
CPU的三级缓存
缓存一致性出现的原因,问题和解决办法?
写回是CPU写入数据的方法,是怎么写回的?
MESI协议解决缓存一致性。
任务调度
linux调度的对象是什么?
task_struct
软中断和硬中断
应该先说硬中断再说软中断
什么是中断,中断是谁产生的,谁接收中断并进行什么操作?
网卡接收到数据包,将数据包方法内存之后,通过什么方法通知内核有数据包到达?
硬件触发中断——操作系统执行前部分的硬中断处理程序,快速处理中断——内核触发软中断执行软中断处理程序,处理本次中断没完成的处理。
也就是说由硬件产生的一个中断要分两部分中断处理程序完成。
malloc中brk和mmap内存开辟和释放的区别
free怎么知道要释放多大的内存 16
当进程运行CPU填充页表分配物理内存时,如果没有足够的空闲物理内存,内核会怎么办?
后台线程异步回收——不够——内核直接听不回收——还是不够——OOM
哪些物理内存可以被回收
在4GB的物理内存上申请8GB的内存会怎么样?
首先要明白申请的是什么内存,再谈能不能申请
32位系统可以分配吗,64位呢?为什么系统只有4G物理内存,64位系统却可以分配呢?
linux怎么查看一个进程使用的虚拟内存的大小和物理内存的大小
那64位系统可以申请128TB内存吗?
不一定,还得看你自己的物理内存够不够大,因为申请虚拟内存时也会使用到物理内存,如果物理内存使用完了还没有分配好虚拟内存就会触发OOM。
swap机制
swap out
swap in
申请的虚拟内存大于物理内存也没关系,只要使用虚拟内存时不是全部使用,映射的物理内存足够就不会出现问题,如果映射的物理内存不够就会OOM。
你知道为什么磁盘沙沙响吗?
IO频率太高
mysql从磁盘读取的页存储在buffer pool中,linux从磁盘读取的页存储在哪?
什么是预读原理:
本来只需要读一个页,但是这个页附近的多个页都一起读了。
linux和mysql都是以页作为IO的单位。
linux和mysql缓存污染的相同点和区别。
PCB是什么
进程切换时,CPU此时的上下文保存在哪?
CPU上下文切换需要切换至少哪两部分:
CPU寄存器和程序计数器。
CPU上下文切换包括存储和读取两个过程。
CPU上下文切换分为哪三种:
进程的上下文切换
线程上下文切换
中断上下文切换
进程切换和线程切换的区别:
1,进程切换要切换的资源很多,用户空间的虚拟内存,变量等,内核空间的资源。
2,线程切换如果是不同进行的线程就是进程切换,如果是同一个进程的线程,只要切换线程私有数据,切换简单。
线程的切换分为同进程线程切换和不同进程线程切换
进程每发生一次状态转换,操作系统就会发生一次调度
自旋锁的实现原理,怎么编程实现?
原子变量值变换的函数参数——指针,新值
悲观锁和乐观锁的区别:
乐观锁:先改数据,该完之后再检查其他线程有没有改动这个数据,比如git的版本对比。
乐观锁其实没有加锁
秒速一下键盘输入字母A到显示A的整个过程
什么是DMA技术,DMA作为CPU和各种设备控制器的中间层,解决了CPU自己拷贝数据的过程。
通过两次中断告诉CPU准备好的数据。
为什么要有DMA技术?
CPU一次IO的过程
什么是零拷贝技术:
就是不需要再将数据从内核缓冲区拷贝到用户缓冲区
线程池的运行原理
线程池的运行过程
IO密集型和CPU密集型的区别
IO密集型的线程数配置过多会对CPU有什么影响。
什么是CPU密集型,什么是I/O密集型
IO多路复用解决了什么问题