自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 LRU之预读失效和缓存污染

Linux虚拟内存管理和mysql缓存buffer pool 采用LRU算法进行页面置换,但是会造成预读师失效和缓存污染问题。预读失效:因为计算机的局部性原理,每次从内存读入缓冲区都会多读一些,因为这些内存临近的内容很有可能被再次读到。但是如果这些内容不被使用,预读的作用就消失了,而且会占用热点数据的位置。

2023-03-15 16:25:30 414 1

原创 内存满了 会发生什么

所以,回收干净页的方式是直接释放内存,回收脏页的方式是先写回磁盘后再释放内存。这部分内存很可能还要再次被访问,所以不能直接释放内存,它们回收的方式是通过 Linux 的 Swap 机制,Swap 会把不常访问的内存先写到磁盘中,然后释放这些内存,给其他更需要的进程使用。缺页中断处理函数会看是否有空闲的物理内存,如果有,就直接分配物理内存,并建立虚拟内存与物理内存之间的映射关系。如果没有空闲的物理内存,那么内核就会开始进行回收内存的工作,回收的方式主要是两种:直接内存回收和后台内存回收。

2023-03-15 15:23:52 242

原创 malloc分配内存

只有在访问已分配的虚拟地址空间的时候,操作系统通过查找页表,发现虚拟内存对应的页没有在物理内存中,就会触发缺页中断,然后操作系统会建立虚拟内存和物理内存之间的映射关系。malloc 通过 brk() 方式申请的内存,free 释放内存的时候,并不会把内存归还给操作系统,而是缓存在 malloc 的内存池中,待下次使用;malloc 通过 mmap() 方式申请的内存,free 释放内存的时候,会把内存归还给操作系统,内存得到真正的释放。如果用户分配的内存小于 128 KB,则通过 brk() 申请内存;

2023-03-15 15:01:02 791

原创 虚拟内存是什么

我们可以把进程所使用的地址「隔离」开来,即让操作系统为每个进程分配独立的一套「虚拟地址」,人人都有,大家自己玩自己的地址就行,互不干涉。但是有个前提每个进程都不能访问物理地址,至于虚拟地址最终怎么落到物理内存里,对进程来说是透明的,操作系统已经把这些都安排的明明白白了。操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。如果程序要访问虚拟地址的时候,由操作系统转换成不同的物理地址,这样不同的进程运行的时候,写入的是不同的物理地址,这样就不会冲突了。

2023-03-15 14:36:45 165

原创 什么是软中断

计算机中,中断是系统用来响应硬件设备请求的一种机制,操作系统收到硬件的中断请求,会打断正在执行的进程,然后调用内核中的中断处理程序来响应请求。中断是一种异步的事件处理机制,可以提高系统的并发处理能力。操作系统收到了中断请求,会打断其他进程的运行,所以中断请求的响应程序,也就是中断处理程序,要尽可能快的执行完,这样可以减少对正常进程运行调度地影响。

2023-03-15 12:03:00 208

原创 CPU执行程序过程

CPU的GHz参数,代表CPU的时钟频率,每秒钟能产生多少脉冲信号。,根据程序计数器中的值,去内存中找到相应的指令,放到指令寄存器中解析执行,然后程序计数器自增,然后顺序取下一条指令。有的CPU可以超频,提高时钟频率,但是容易崩溃。当运算的数据大于32位时,64位CPU才比32位的快。一个时钟周期,CPU只能完成一个基本动作,大多数指令不能在一个时钟周期内完成。CPI,也就是每条指令的平均时钟周期数,现在的CPU通过流水线技术优化CPI。硬件的64位32位代表CPU位宽,也就是CPU能运算的最大数据。

2023-03-12 21:48:39 131

原创 Linux多进程(上)

linux

2022-11-20 15:30:15 404 1

原创 python main

python __name__==__main__

2022-06-22 01:01:21 250 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除