
计算机基础
文章平均质量分 60
成知节
Simple life, Deep mind;
Keep studying, Open mind;
Curiosity, Modest, Kind and Benefits others!
展开
-
零拷贝,sendfile与mmap
sendfile Java中通过FIleChannel的transferFrom transferTo接口调用 sendfile是去掉了两次用户空间和内核空间的copy,节省了一次系统调用 copy在内核执行:kernel buffer->socket buffer,如果硬件支持 scatter-n-gather,这次copy也可以省了,通过DMA直接从kernel buffer读取即可 mmap 通过虚拟内存直接映射...原创 2021-01-13 18:53:59 · 302 阅读 · 0 评论 -
进程切换与系统调用(中断和异常)切换哪个耗时耗资源多
模式切换不同于进程上下文切换,它进行的应该是模式之间的上下文切换 切换模式并不会发生进程上下文切换,因为用户和内核都有自己独立的堆栈 每个进程都有两个堆栈:用户空间堆栈,内核空间堆栈 在这个过程中就发生了 CPU 上下文切换,整个过程是这样的: 1、保存 CPU 寄存器里原来用户态的指令位 2、为了执行内核态代码,CPU 寄存器需要更新为内核态指令的新位置。 3、跳转到内核态运行内核任务。 ...原创 2021-01-13 14:11:41 · 1515 阅读 · 0 评论 -
page cache 缓存页 内存缓存
为什么设计缓存?1. 存储设备访问速度的巨大差异2. temporal如何设计缓存?1. 大小2. 对齐,方便寻址3. 一致性(主要是写策略) 3.1 nowrite 3.2 write-through cache 3.3 回写,标dirty,按阈值回写 回写又要考虑何时写? 怎么写 3.3.1 按时间定期回写 3.3.2 按实际大小 3.3.3 按脏页百分比 3.3.4 调用sync(原创 2021-01-13 09:39:31 · 268 阅读 · 1 评论 -
10分钟了解Linux虚拟文件系统和文件描述符
Linux虚拟文件系统和文件描述符.mdLinux设计哲学之一切皆文件.Linux通过VFS, 虚拟文件系统管理文件系统,这个存储在内存中, 映射到物理位置.为了解决用户(应用)存储到各种各样的设备上,虚拟的,物理的,网络的等等. 提供一个统一的访问方式. 这样可以跟硬件解耦.IO设备指的是网卡,磁盘,键盘,鼠标,U盘等等外部设备.虚拟文件系统的一些结构 inode: 唯一的文件号 pagecache: 内核读文件缓存到内存;如果不同进程读同一...原创 2021-01-12 18:46:50 · 184 阅读 · 0 评论 -
中断和异常
中断和异常.md## 中断和异常的定义中断(interrupt)指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在 CPU 上的运行,转而执行响应的事件处理程序,待处理完成后再返回断点或调度其他程序。cpu对事件的响应.> 中断的本质是处理器对外开放的实时受控接口。中断和异常不同人的视角不同,有的统称为中断有的统称为异常,还有分别称呼的,这个并不重要.因为它背后的思想是一致的,只不过是看待它的视角不同进行人为划分,后续会说明异常和中断区别.## 为什么需要中断/异.原创 2021-01-06 12:36:58 · 854 阅读 · 0 评论 -
False share 伪共享-Cache line Padding 缓存行填充 缓存行对齐
False share翻译成伪共享确实有点令人苦恼Cache Line Padding缓存是以缓存行为最小单位 一个缓存行可以存储多个不同的数据 这些不同数据数据被不同线程中的任意一个修改之后,会导致整个缓存行失效,会导致其他线程更新缓存行,这就是低效的原因.Cache line Padding技术就是保证每个缓存行只缓存一个数据 这样虽然使缓存利用变低,但是会减少缓存频繁失效的问题cache line (typical) size is 6...原创 2020-12-25 11:39:55 · 758 阅读 · 0 评论