• 2024-09-180708,文件流,目录流,MMAP内存映射
    目录目录相关操作目录流及相关操作文件描述符和相关操作fopen()和open()的关系内存映射mmapmmap相关函数01_chdir.c02_mkdir.c03_rewinddir.c04_ftruncate.c05_mmap.c目录相关操作#include<unistd.h>#include<sys/stat.h>#include<sys/types.h>char*getcw
  • 2024-09-17进程的内存分配
    在操作系统中,进程的内存分配是指操作系统为每个进程管理和分配所需的内存资源。内存管理是操作系统的核心功能之一,它涉及到为进程提供虚拟内存、物理内存分配、页表管理、以及地址转换等操作。操作系统通过虚拟内存机制,使每个进程都可以认为自己拥有独立的、连续的内存空间。1.
  • 2024-09-11C语言中的磁盘映射与共享内存详解
    文章目录C语言中的磁盘映射与共享内存1.磁盘映射(MemoryMapping)1.1磁盘映射的深入概念1.2`mmap`函数的详细参数解析1.3磁盘映射的高级应用场景1.3.1大文件处理1.3.2内存共享1.3.3文件与内存同步1.3.4内存映射数据库1.4完整的磁盘映射代码示例1.5注意事项2.
  • 2024-09-05Linux驱动开发基础(定时器、mmap)
    所学来自百问网目录1.定时器1.1定时器时间单位1.2内核函数1.3定时器的应用举例2.mmap2.1内存映射现象与数据结构2.2ARM架构内存映射简介2.2.1一级页表映射过程2.2.2二级页表映射过程2.2.3应用程序新建内存映射2.2.3.1mmap调用过程2.2.3.2cache和buffer
  • 2024-08-13mmap原理
    https://www.cnblogs.com/binlovetech/p/17712761.htmlhttps://yangjie2.github.io/2021/11/14/mmap原理与应用/基础物理世界中的实体或者逻辑实体在计算机中都用数据结构来表示,比如一个进程就用一个task_struct来表示。进程的虚拟内存用一个代表虚拟内存的节点组成的链表来表
  • 2024-08-10Linux内核解读(1)--内存管理与malloc原理
        本文主要关注Linux环境的堆内存的管理,详细解析Glibc与TCMalloc的malloc原理, 由于本人能力有限,难免会出现解读错误的地方,望各位大佬批评指正,后面也会在进一步解读中对本文进行修改。1、Linux内存分布        下图的布局形式是在内核2.6.7以后才引入的,
  • 2024-08-04CPlusPlus - #034 C++ 中的零拷贝技术
    文章目录C++中的零拷贝技术探析1前言2.1使用mmap实现零拷贝2.2使用sendfile实现零拷贝2.3优缺点和适用场合2.3.1mmap2.3.1.1优点2.3.1.2缺点2.3.1.3适用场景2.3.2sendfile2.3.2.1优点2.3.2.2缺点2.3.2.3适用场景2.4总结
  • 2024-07-27【操作系统/C++ malloc 1KB和1MB 有什么区别?brk | mmap】
    关于malloc如何根据请求的内存大小选择使用brk还是mmap的机制,是glibc(GNUCLibrary)中malloc实现的一个常见策略,尽管具体的阈值(如128KB)可能会因glibc的不同版本或配置而有所不同。brkbrk是一个系统调用,用于改变数据段的结束地址(即“程序断点”)。在UNIX和类U
  • 2024-07-19传统缓存 IO 和 Mmap的区别
    在现代计算系统中,IO操作是数据处理的关键环节。为了提升IO操作的效率,开发者通常采用不同的技术手段来优化数据读写。传统缓存IO和内存映射(Mmap)是两种常用的方法,它们在性能、实现方式和应用场景上各有不同。本文将详细解释传统缓存IO和Mmap的区别,并探讨它们在不同场景下的应用。
  • 2024-07-10malloc实现原理【Liunx】
    malloc实现原理malloc是什么?malloc,calloc,realloc的区别malloc的实现原理malloc的两种实现方式为什么使用brk?为什么使用mmap?malloc怎么定界的malloc分配的是虚拟内存上的空间吗?malloc是什么?  通过malloc,我们可以开辟一个自定义大小的内存空间。  通过上图
  • 2024-07-0906 运行Lib-OS
    QEMU运行第一章代码切换分支gitcheckoutch1detailgitcheckoutch1命令是用来切换到名为ch1的分支或者恢复工作目录中的文件到ch1提交的状态运行代码cdosLOG=TRACEmakerundetailLOG=TRACE 是指定LOG的级别为 TRACE,可以查看重要程度不低于TRACE的输出日
  • 2024-07-05内存映射
    mmap内存映射函数(显示图片的新方法)----也是Linux系统IO中的函数之一基本概念系统IO函数的共同点:就是他们的形参中一定有一个是文件描述符(除open)。内存映射的意思:拆内存:普通运存,显存(集显和独显),是一块内存空间,存放显示画面的像素点。映射:两个集合中的元素,都具有
  • 2024-06-20【操作系统】MMAP内存映射|零拷贝
     
  • 2024-06-11glibc函数malloc的工作原理
    glibc提供了malloc函数来动态分配内存,我们只知道调用malloc会返回给我们一个指针,指向一块内存空间或NULL,那么malloc的工作原理是什么呢?概述:1.小于128kB的空间,使用内存池(在堆上)或brk或sbrk系统调用在堆上分配2.大于128kB的空间,使用mmap在文件映射区分配+----------------
  • 2024-06-11零拷贝
    普通流程网络IO读写流程应用进程的每一次写操作,都会把数据写到用户空间的缓冲区中,再由CPU将数据拷贝到系统内核的缓冲区中,之后再由DMA将这份数据拷贝到网卡中,最后由网卡发送出去。这里我们可以看到,一次写操作数据要拷贝两次才能通过网卡发送出去,而用户进程的读操作则是将整个
  • 2024-06-06Linux开发:多进程通过shm_open/mmap共享内存
    Linux编程:多进程间通过shmget共享内存_检测共享内存中是否有数据-CSDN博客介绍了通过SYSV的方式进行多进程间共享内存,这种方式属于比较久远的方式。POSIX也提供了共享内存的方法,使用起来要更容易些式其原理是利用Linux的tmpfs(Linux开发:tmpfs文件系统-CSDN博客)$df
  • 2024-04-27二进制文件内存映射
    点击查看代码#对二进制文件做内存映射#使用mmap模块对文件进行内存有映射操作importmmapimportos.pathdefmemory_map(filename,access=mmap.ACCESS_WRITE):""":paramfilename::paramaccess:mmap.ACCESS_WRITE:读写mmap.A
  • 2024-04-06mmap与remap_pfn_range
    参考资料:https://www.cnblogs.com/pengdonglin137/p/8149859.htmlhttps://blog.csdn.net/HuangChen666/article/details/133633120 remap_pfn_range:remap_pfn_range是Linux内核中的一个函数,用于将物理页面框号(PFN)映射到用户空间的虚拟地址范围中。PFN是物理页面在内存
  • 2024-04-04CSC3150Unix的教学操作系统
    CSC3150-说明书-A3介绍这项任务使用xv6,一个简单的、类似Unix的教学操作系统,作为平台指导您实现mmap和munmp系统调用。这两个用来共享进程之间的内存,并将文件映射到进程地址空间。一般来说,这项任务的重点是内存映射文件。支持内存映射的机制文件可以处理文件,就好像它们是程序内存
  • 2024-04-02MIT 6.S081入门lab10 mmap
    MIT6.S081入门lab10mmap一、参考资料阅读与总结1.JournalingtheLinuxext2fsFilesystem文件系统可靠性:磁盘崩溃前数据的稳定性;故障模式的可预测性;操作的原子性-论文核心:将日志事务系统加入Linux的文件系统中;事务系统的要求:元数据的更新;事务系统的顺序性;数据块写入磁
  • 2024-03-12RocketMQ为什么这么快?我从源码中扒出了10大原因!
    大家好,我是三友~~RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快那么,问题来了,RocketMQ为什么这么快呢?接下来,我将从以下10个方面来探讨一下RocketMQ这么快的背后原因如果你对RocketMQ还不了解,可以从公众
  • 2024-03-12RocketMQ为什么这么快?我从源码中扒出了10个原因!
    大家好,我是三友~~RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快那么,问题来了,RocketMQ为什么这么快呢?接下来,我将从以下10个方面来探讨一下RocketMQ这么快的背后原因如果你对RocketMQ还不了解,可以从公众
  • 2024-02-26零拷贝,mmap 和 sendFile
    传统的IOmmapmmap是一种内存映射技术,mmap相比于传统的IO来说,其实就是少了1次CPU拷贝而已,上图。sendFile在Linux中,提供sendFile函数,实现了零拷贝
  • 2024-02-23[MIT 6.S081] Lab: mmap
    Lab:mmap在本次实验中,我们要实现的是一个比较简简单的mmap实现,将文件映射到内存中的某个块,并根据权限设置这块内存的行为,以及为其提供延迟分配策略。mmap对于将文件映射到内存,其实是先规划好一块区域给文件使用,为什么要提供延迟分配,是因为如果需要映射一个文件时,就规划好一
  • 2024-02-14【XV6】 mmap
    代码:https://github.com/JasenChao/xv6-labs.git文件映射到进程地址题目要求实现两个系统调用:mmap和munmap。主要功能就是将文件映射到进程的内存中。题目给出了mmap和munmap的声明:void*mmap(void*addr,size_tlen,intprot,intflags,intfd,off_toffset)