Linux的mmap文件内存映射机制是什么?
共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制。共享内存可以通过mmap()映射普通文件(特殊情况下还可以采用匿名映射)机制实现,也可以通过系统V共享内存机制实现。应用接口和原理很简单,内部机制复杂。为了实现更安全通信,往往还与信号灯等同步机制共同使用。mmap的机制如:就是在磁盘上建立一个文件,每个进程存储器里面,单独开辟一个空间来进行映射。如果多进程的话,那么不会对实际的物理存储器(主存)消耗太大。 shm的机制:每个进程的共享内存都直接映射到实际物理存储器里面。
1、mmap保存到实际硬盘,实际存储并没有反映到主存上。优点:储存量可以很大(多于主存);缺点:进程间读取和写入速度要比主存的要慢。
2、shm保存到物理存储器(主存),实际的储存量直接反映到主存上。优点,进程间访问速度(读写)比磁盘要快;缺点,储存量不能非常大(多于主存)使用上看:如果分配的存储量不大,那么使用shm;如果存储量大,那么使用mmap。
linux系统映射路径快捷键?
一、Linux下常用快捷键
(1)tap(命令或目录)补齐:
如果没有歧义,则一次性补齐,如果有歧义,二次 tap 给出提示
(2)查看历史命令:history 上下方向键翻看历史命令
二、Linux下目录结构
(1)/bin 存放系统可执行程序(大部分系统命令)
(2)/sbin 存放 root 用户的系统可执行程序
(3)/boot 存放内核和启动程序的相关文件
(4)/lib 库目录,存放系统最基本的动态库
(5)/media 默认挂载设备媒体的目录,例如 U 盘、光驱
(6)/mut 推荐挂载设备媒体的目录
(7)/usr 用于存放庞大而复杂的目录(unix system resource,用于安装软件的目录)
(8)/proc 系统内存的映射(随着系统的运行,时长变化的)
(9)/ect 系统软件的启动和配置目录
(10)/dev 用于存放设备文件
(11)/home 家目录,所用用户的根目录(当前用户的根目录是 /home/user)
三、绝对路径和相对路径
(1)绝对路径:以根目录 / 开始的路径
(2)相对路径:以·或者··开始的路径,其中·表示当前目录,··表示上一级目录
(3)使用场景:
文件路径不会发生变化时使用绝对路径,例如:读取配置文件;
执行程序与目标文件相对位置不变时使用相对路径,例如:makefile
快捷键包括:
1. ~:表示当前用户的主目录,比如~/Documents表示当前用户的Documents目录。
2. ..:表示上级目录,比如../表示当前目录的上级目录。
3. /:表示根目录。
4. ./:表示当前目录。
5. /dev/null:表示空设备文件,可以用于丢弃输出。
6. ~username:表示指定用户的主目录,比如~root表示root用户的主目录。
7. $HOME:表示当前用户的主目录。
8. $PWD:表示当前工作目录。
以上是一些常见的路径映射快捷键,可以让用户更方便地操作文件和目录。