操作系统
文章平均质量分 87
liangsheng_g
这个作者很懒,什么都没留下…
展开
-
从硬件到软件去理解一致性
看了很多操作系统和软件中间件之类的知识之后发现,软件和硬件在大的方面有时候解决的是一样的问题软件层面需要解决的问题,其实在硬件层面早就解决过,在软件层面进行技术架构时可以进行参考。不过硬件层面比软件层面又好在没有网络因素在里面,所以需要对于具体的业务或者功能有相应的取舍。原创 2021-12-10 14:36:43 · 1446 阅读 · 0 评论 -
为什么有了MESI还需要volatile关键字
MESI的概念此处不再累赘,有兴趣的可以搜索store buffer引入store buffer是为了将同步改为异步引入store forwarding技术是为了让CPU可以直接从store buffer里加载数据但是因此可能会发生乱序情况,譬如a在store buffer里,b在cache里,但是赋值操作虽然先设置了a,后设置了b,但是实际上却可能是b先被刷新到cache里,因为store buffer里的a在等待其他cpu返回invalid ack引入写屏障技术,添加smp_w原创 2021-07-08 10:45:45 · 983 阅读 · 1 评论 -
java堆内堆外内存困惑
操作系统IO分为 直接IO和缓存IO可以参考:1. https://www.icode9.com/content-4-450323.html2. https://blog.csdn.net/lzh1179805109/article/details/79883523简单的理解缓存IO就是:可以把缓存IO认为是系统给磁盘增加的缓存,Linux的实现是通过内核缓存,这样的话,用户进程的数据write和read其实针对的就是内核缓存,至于内核缓存什么时候和磁盘同步,这个在此不多介绍。Linux系统默认.原创 2021-06-08 17:09:05 · 403 阅读 · 0 评论 -
阻塞/非阻塞IO和同步/异步IO
文章目录前言一、IO的理解二、IO的使用1.传统IO2.NonBlocking IO 非阻塞IO3. New IO : NIO4. 异步IO:AIO总结前言IO是个比较废人思量的东西,不管是自己理解,还是面试提问。一、IO的理解IO的作用一般分为,获取文件数据或网络请求数据。数据处理过程其实分为两阶段:A. 数据内核准备数据(把数据从网卡拷贝到内核的page cache或者把文件数据从磁盘拷贝到内核的page cache);B. 把数据从内核的page cache拷贝给用户的用户进程(用户空间原创 2021-05-10 11:20:19 · 292 阅读 · 0 评论