I/O
minipanda-luotj
这个作者很懒,什么都没留下…
展开
-
linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed writ...转载 2018-06-21 18:32:19 · 288 阅读 · 0 评论 -
网络IO和磁盘IO详解
1. 缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间。 读操作:操作系统检查内核的缓冲区有没有需要的数据,如果已经缓存了,那么就直接从缓存中返回;否则从磁盘中读取,然后缓存在操作系统的缓存中。 写操作:将数据从...转载 2018-06-21 19:07:16 · 9383 阅读 · 0 评论 -
5种IO模型和5种通信模式
操作系统的五种通信模型1、阻塞I/O就是我们常见的socket,监听端口收到消息进行处理,并把结果返回给客户端执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示,程序继续执行2、非阻塞I/O非阻塞IO通过进程反复调用IO函...转载 2018-06-21 19:16:41 · 3481 阅读 · 0 评论 -
5种网络IO模型(有图,很清楚)
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不...转载 2018-06-21 19:18:28 · 19152 阅读 · 0 评论 -
系统间通信知识点总结
1.信息格式常用的信息格式包括:XML: 可扩展标记语言,这个语言由W3C(万维网联盟)进行发布和维护。XML语言应用之广泛,扩展之丰富。适合做网络通信的信息描述格式(一般是“应用层”协议了)。例如Google 定义的XMPP通信协议就是使用XML进行描述的;不过XML的更广泛使用场景是对系统环境进行描述(因为它会造成较多的不必要的内容传输),例如服务器的配置描述、Spring的配置描述、Mave...原创 2018-07-02 19:35:29 · 334 阅读 · 0 评论 -
ActiveMQ RabbitMQ RocketMQ KafKa对比
ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还是可以的,比较清晰的反馈了这三个的具体情况已经使用场景,具体的对比如下:1)TPS比较:Kafka最高,RabbitMq 次之, ActiveMq 最差。2)吞吐量对比:kafka具有高的吞吐量,内部采用消息的批量处理,ze...转载 2018-07-02 19:54:52 · 4777 阅读 · 0 评论