高并发-系统内核基础
文章平均质量分 75
系统内核统一调度不同硬件设备(CPU、内存、硬盘)
技术分子
用简洁方式表达
展开
-
系统内核基础-零拷贝
实际上sendfile的使用场景是比较受限的,大前提是用户态无需看到操作的数据,并且只能从文件描述符往socket中传输数据,而且DMA Gather Copy也需要硬件支持,那么有没有一种不依赖硬件特性同时又能在任意两个文件描述符之间以零拷贝方式高效传递数据的方法呢?尽管mmap可以节省数据拷贝,但维护文件与地址空间的映射关系也是有代价的,除非CPU拷贝数据的时间超过维系映射关系的代价,否则基于mmap的程序性能可能不及传统的read/write。这次拷贝看上去也是没有必要的。原创 2024-04-17 09:21:01 · 621 阅读 · 0 评论 -
系统内核基础-数据拷贝过程
在 DMA 技术出现之前,应用程序与磁盘之间的 I/O 操作都是通过 CPU 的中断完成的。每次用户进程读取磁盘数据时,都需要 CPU 中断将数 据读进暂存器,然后发起 I/O 请求等待数据读取和拷贝完成,然后写进其它地方,每次的 I/O 中断都导致 CPU 的上下文切换。DMA(Direct Memory Access,直接存储器访问) ,在DMA之前的CPU复制,需要CPU将数据读进暂存器(区别于寄存器),然后写进其它地方,这个过程中,CPU被挤占,而DMA在拷贝时不影响CPU去运行其他任务。原创 2024-04-17 09:11:00 · 413 阅读 · 0 评论 -
系统内核基础-什么是内核?
微内核架构的内核只保留最基本的能力,比如进程调度、虚拟机内存、中断等,把一些应用放到了用户空间,比如驱动程序、文件系统等。内核一般会提供 4 个基本能力: 进程调度能力(Windows 内核是抢占式、Linux是时间分片)、内存管理能力(通过虚拟内存映射mmap )、硬件通信能力、系统调用能力。内核具有很高的权限,可以控制 cpu、内存、硬盘等硬件,而应用程序具有的权限很小,因此大多数操作系统。Linux 内核架构就是宏内核意味着 Linux 的内核是一个完整的可执行程序,且拥有最高的权限。原创 2024-04-16 14:14:58 · 502 阅读 · 0 评论