操作系统
文章平均质量分 86
疯狂撸代码的奋青
道阻且长,行则将至,行而不辍,未来可期。
展开
-
linux文件删除正在读写的文件
背景知识多进程环境下,打开同一个文件,进行读写操作过程中,如果其中一个进程删除这个文件,那么,另外正在读写这个文件会发生什么呢?因为文件被删除了,正在读写的进程发生异常?正在读写的进程仍然正常读写,好像没有发现发生了什么?Linux 是通过 link 的数量来控制文件删除,只有当一个文件不存在任何 link 的时候,这个文件才会被删除。每个文件都有 2 个 link 计数器 —— i_count 和 i_nlink。i_count 的意义是当前使用者的数量,i_nlink 的意义是介质连接的数转载 2021-12-16 10:40:56 · 1214 阅读 · 0 评论 -
操作系统中锁的原理
概述为了保证数据的一致性,在多线程编程中我们会用到锁,使得在某一时间点,只有一个线程进入临界区代码。虽然不同的语言可能会提供不同的锁接口,但是底层调用的都是操作系统的提供的锁,不同的高级语言只是在操作系统的锁机制基础上进行了些封装而已,要真正理解锁,还是得看操作系统是怎么实现锁的。锁的本质所谓的锁,本质上只是内存中的一个整形数,不同的数值表示不同的状态,比如1表示空闲状态和加锁状态。加锁时,判断锁是否空闲,如果空闲,修改为加锁状态,返回成功,如果已经上锁,返回失败,解锁时,就把锁状态修改为空闲状态。转载 2021-10-14 10:36:52 · 1104 阅读 · 0 评论 -
IO 多路复用
作者:小林coding链接:https://www.zhihu.com/question/32163005/answer/1802684879来源:知乎如果直接抛出多路复用的概念,或许会一脸懵逼,这次,我们以最简单 socket 网络模型,然后带着「如何服务更多的用户」的思考,一步一步的过度到 I/O 多路复用,到后面你就会突然弄懂了这个概念!好了,发车!最基本的 Socket 模型要想客户端和服务器能在网络中通信,那必须得使用 Socket 编程,它是进程间通信里比较特别的方式,特别之处在于它转载 2021-10-11 15:24:50 · 157 阅读 · 0 评论 -
linux的零拷贝(zero copy)
linux的零拷贝转载 2021-10-12 09:43:22 · 1299 阅读 · 0 评论