首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • Linux IO协议

     图片来源自网络,保持更新;更多内容请关注 cnblogs.com/xuyaowen 

    5.3K30发布于 2020-12-30
  • 来自专栏肉眼品世界

    Linux内核IO技术详解

    所以后面的讨论基本上是讨论IO相关的系统调用和文件系统Page Cache的一些机制。 Linux内核中的IO 这一小节来看Linux内核的IO的结构。 先上一张全貌图[4]: 由图可见,从系统调用的接口再往下,Linux下的IO致大致有三个层次: 文件系统层,以 write 为例,内核拷贝了write参数指定的用户态数据到文件系统Cache中,并适时向下层同步 块层,管理块设备的IO队列,对IO请求进行合并、排序(还记得操作系统课程学习过的IO调度算法吗?) 设备层,通过DMA与内存直接交互,完成数据和具体设备之间的交互 结合这个图,想想Linux系统编程里用到的Buffered IO、mmap、Direct IO,这些机制怎么和Linux IO联系起来呢 除了传统的Buffered IO可以比较自由的用偏移+长度的方式读写文件之外,mmap和Direct IO均有数据按页对齐的要求,Direct IO还限制读写必须是底层存储设备块大小的整数倍(甚至Linux

    3.5K10编辑于 2022-01-20
  • 来自专栏LINUX阅码场

    浅墨: 聊聊Linux IO(中)——Linux内核中的IO

    由图可见,从系统调用的接口再往下,Linux下的IO致大致有三个层次: 文件系统层,以 write(2) 为例,内核拷贝了write(2)参数指定的用户态数据到文件系统Cache中,并适时向下层同步 块层,管理块设备的IO队列,对IO请求进行合并、排序(还记得操作系统课程学习过的IO调度算法吗?) 设备层,通过DMA与内存直接交互,完成数据和具体设备之间的交互 结合这个图,想想Linux系统编程里用到的Buffered IO、mmap(2)、Direct IO,这些机制怎么和Linux IO联系起来呢 那Direct IO做了什么?这个机制更狠,直接让用户态和块IO层对接,直接放弃Page Cache,从磁盘直接和用户态拷贝数据。好处是什么? 除了传统的Buffered IO可以比较自由的用偏移+长度的方式读写文件之外,mmap(2)和Direct IO均有数据按页对齐的要求,Direct IO还限制读写必须是底层存储设备块大小的整数倍(甚至

    2.8K20发布于 2019-10-08
  • 来自专栏Hank’s Blog

    3-5 处理缺失值

    > x <- c(1,NA,2,NA,3) > is.na(x) [1] FALSE TRUE FALSE TRUE FALSE > x[!is.na(x)] #找出不是缺失值 [1] 1 2 3 > x <- c(1,NA,2,NA,3) > y <- c("a","b",NA,"c",NA) > z <- complete.cases(x,y) #都不是缺失值的元素 > x[z] [1] 1 > y[z] [1] "a" > library(datasets) #import dat

    52210发布于 2020-09-16
  • jvm入门2:3-5运行时数据区+程序技术器+虚拟机

    05 虚拟机概述内存中和堆,时运行时的单位,堆是存储的单位。 ,或在创建新线程时没有足够的内存创建虚拟机,会抛出outOfMemoryError设置内存大小,使用参-Xss设置线程的最大空间,的大小直接决定了函数调用的最大可达深度的存储单位中存储什么? 1每个线程都有自己中的数据都以帧的格式存在;2线程上正在执行的每个方法都对应一个帧;3帧是一个内存区块,一个数据集,维系着方法执行过程中的各种数据信息运行原理1jvm直接对的操作只有两个 只有当前正在执行的方法的帧是有效的,这个帧被称为当前帧,与当前帧对应的方法是当前方法,定义这个方法的类是当前类。 ,也称为表达式;2操作数,在方法执行过程中,根部字节码指令,往中写入数据或提取数据,即入;3某些字节码指令将值压入操作数,其余的字节码指令将操作数取出

    37810编辑于 2025-02-24
  • 来自专栏NetCore 从壹开始

    3-5 安装CICD管理平台:Jenkins

    大家这里可以先安装gitlab工具,我就省事了,直接用gitee做源代码管理平台了。

    35721编辑于 2023-01-09
  • 来自专栏叽叽西

    lagou 爪哇 3-5 spring cloud (下) 笔记

    Nacos就是注册中⼼+配置中⼼的组合(Nacos=Eureka+Config+Bus) 官⽹:https://nacos.io 下载地址:https://github.com/alibaba/Nacos http://edu.lagou.com/api/user/info/5d1ad7d9-53ba-4566-8a39-6a96078545da 参考 nacos 中文官网 https://nacos.io

    88520编辑于 2022-05-17
  • 来自专栏PHP实战技术

    3-5年的PHPer常见的面试题

    看到有很多,的总结一下,比较适合有一定经验的PHPer 平时喜欢哪些php书籍及博客?CSDN、虎嗅、猎云 js闭包是什么,原型链了不了解? for与foreach哪个更快? php鸟哥是谁?能不能讲

    1.6K100发布于 2018-03-09
  • 来自专栏LINUX阅码场

    打通IO:一次编译服务器性能优化实战

    作者简介 廖威雄,就职于珠海全志科技股份有限公司,负责Linux IO研发、性能优化、开源社区开发交流、Linux 内核开源社区pstore/blk,mtdpstore模块的作者(与maintainer 由于认知的局限性,如有考虑不周的地方,希望一起交流学习 整体认识IO 如果有完整的IO的认识,无疑有助于更细腻的优化IO。循着IO从上往下的顺序,我们逐层分析可优化的地方。 在网上有Linux完整的IO结构图,但太过完整反而不容易理解。按我的认识,简化过后的IO应该是下图的模样。 ? 用户空间:除了用户自己的APP之外,也隐含了所有的库,例如常见的C库。 根据这个流程,考虑到我没要到KVM host的权限,我只能着手从Guest端的IO做优化,具体包括以下几个方面: 交换分区(swap) 文件系统(ext4) 页缓存(Page Cache) Request 层(IO调度算法) 由于源码以及编译的临时文件都不大但数量极其多,对随机IO的要求非常高。

    2.5K51发布于 2020-05-13
  • 来自专栏沉默王二

    明白了的基本操作后,我们需要去深入地思考一下,是如何工作的。换句话说,为了使这个数据结构按照的方式去工作,它需要什么? 1)需要有一个指针,我们称之为 TOP,用它来指向中最顶部的那个元素。 2)当我们初始化一个的时候,我们把 TOP 的值设置为 -1,这样我们就可以通过 TOP == -1 来判断是否为空。 空的时候,TOP 等于 -1;把元素 1 压入中的时候,stack[0] 为 1,TOP 加 1 变为 0;把元素 2 压入中的时候,stack[1] 为 2,TOP 加 1 变为 1;把元素 3 假设中的元素是 int 类型,我们可以用 Java 语言来自定义一个最简单的。 3)用于浏览器:浏览器的后退按钮会把我们访问的 URL 压入一个中,每次我们访问一个新的页面,新的 URL 就压入了的顶部,当我们点了后退按钮,最新的那个 URL 就从中移除,之前的那个 URL

    97520发布于 2021-03-16
  • 来自专栏cwl_Java

    C++编程之美-结构之法(代码清单3-5)

    代码清单3-5 void RecursiveSearch(int* number, int* answer, int index, int n) { if(index == n)

    28020编辑于 2022-11-30
  • 来自专栏AI机器学习与深度学习算法

    机器学习入门 3-5 Numpy数组(和矩阵)的基本操作

    shape 属性查看数组的维度,返回值是一个元组,元组中对应位置的值为数组中对应维度的元素个数。

    87410编辑于 2022-05-25
  • 来自专栏这里只有VxWorks

    IO之Standard IO

    VxWorks provides a standard I/O package (stdio.h) with full ANSI C support that is compatible with the UNIX and Windows standard I/O packages.

    1.2K30发布于 2020-08-11
  • 来自专栏跟着官方文档学小程序开发

    第二章 小程序开发指南3-5

    在本章会介绍小程序的基本开发流程,结合前面章节的知识,完全可以独立完成一个体验很完善的小程序。为了让开发者更加了解小程序开发,在本章中还会通过常见的一些应用场景介绍小程序API的一些细节以及开发的一些技巧和注意事项。

    36810编辑于 2025-08-25
  • 来自专栏搬砖记录

    Java学习笔记-全-Java基础-09-IO流中的总结

    标准代码(try-with-source) import java.io.*; public class TestIO { public static void main(String[] args) 2.2 IO中的装饰器模式 ? 3. (2)字符流和字节流的区别 ①字节流操作本身用不到缓冲区(内存),直接与文件进行操作;字符流有缓冲区,写后需要flush(close后会自动flush) ②使用io流时,先考虑目标对象是字节流还是字符流

    70420发布于 2021-08-18
  • 来自专栏这里只有VxWorks

    IO之Formatted IO

    Formatted I/O /* ANSI */ /* write a formatted string to the standard output stream */ int printf(char *, ...); /* write a formatted string to a buffer */ int sprintf(char *, char *, ...); /* write a formatted string to a buffer, not exceeding buffer

    1.2K40发布于 2020-08-11
  • 来自专栏这里只有VxWorks

    IO之Basic IO

    Basic I/O system的7个函数:creat(), remove(), open(), close(), read(), write(), ioctl()。creat()与remove()主要用于文件系统。函数声明如下

    1.4K30发布于 2020-08-06
  • 来自专栏月梦·剑心的技术专栏

    IOIO模型

    这是普通的IO操作,除此之外还有各种方式用于加快IO,譬如DMA、零拷贝技术等。 网络IO 服务端如何实现高并发、海量连接与网络IO的方式有着千丝万缕的联系,与磁盘IO不同的是,网络IO是从网卡拿数据,仅此而已 在讨论网络IO的方式之前,我们应该先对阻塞/非阻塞、同步/异步的概念有一个比较清晰的认识 ,可以将网络IO分为阻塞IO和非阻塞IO 具体来说,用户态进程发起了读写请求,但是内核态数据还未准备就绪(磁盘、网卡还没准备好数据), 如果进程需要阻塞等待,直到内核数据准备好,才返回,则为阻塞IO; 如果内核立马返回,不会阻塞进程,则为非阻塞IO; 同步IO与异步IO 在一次IO中数据传输的两个步骤中,但凡有一处发生了阻塞,就被称为同步IO;如果两个步骤都不阻塞,则被称为异步IOIO多路复用 为了解决上面提到的NIO会导致大量系统调用的问题,出现了IO多路复用模型。

    1.1K00编辑于 2023-12-09
  • 来自专栏AI研习社

    未来 3-5 年内,哪个方向的机器学习人才最紧缺?

    所以以 3-5 年的跨度来看,这些工具依然会非常有用,甚至像 CNN 和 LSTM 之类的深度学习算法还在继续发展迭代当中。

    71760发布于 2018-03-19
  • 来自专栏linux驱动个人学习

    buffer io和direct io

    总的来说,Buffer I/O为了提高读写效率和保护磁盘,使用了页缓存机制,不过由于页缓存处于内核空间,不能被应用程序(用户进程)直接寻址,所以还需要将页缓存数据再拷贝到内存对应的用户空间中。这样,需要两次数据拷贝才能完成用户进程对数据的读取操作。写操作也是一样,将页缓存的数据写入磁盘的时候,必须先拷贝到内核空间对应的主存,然后在写入磁盘中。

    1.1K50编辑于 2023-07-09
领券