![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 60
ustbxyls
这个作者很懒,什么都没留下…
展开
-
Linux内核虚拟内存空间
由于进程之间的用户态虚拟内存空间是相互隔离相互独立的,虽然在进程a,进程b,进程c 访问的都是虚拟地址 x 但是看到的内容却是不一样的(背后可能映射到不同的物理内存中)。但是当进程 a,进程 b,进程 c 进入到内核态之后情况就不一样了,由于内核虚拟内存空间是各个进程共享的,所以它们在内核空间中看到的内容全部是一样的,比如进程 a,进程 b,进程 c 在内核态都去访问虚拟地址 y。这时它们看到的内容就是一样的了。内核态虚拟内存空间是所有进程共享的,不同进程进入内核态之后看到的虚拟内存空间全部是一样的。原创 2024-06-27 11:48:14 · 130 阅读 · 0 评论 -
Linux Swap
第一种就是文件页,所谓文件页就是其物理内存页中的数据来自于磁盘中的文件,当我们进行文件读取的时候,内核会根据局部性原理将读取的磁盘数据缓存在 page cache 中,page cache 里存放的就是文件页。匿名页的回收机制就是我们经常看到的 Swap 机制。当内存资源紧张需要对不经常使用的那些匿名页进行回收时,因为匿名页的背后没有一个磁盘中的文件做依托,所以匿名页不能像文件页那样直接回收,无论匿名页是不是脏页,都需要先将匿名页中的数据先保存在磁盘空间中,然后在对匿名页进行回收。原创 2024-06-29 10:58:49 · 401 阅读 · 0 评论 -
Linux中进程和线程区别
当一个内核线程被调度时,它会发现自己的虚拟地址空间为 Null,虽然它不会访问用户态的内存,但是它会访问内核内存,聪明的内核会将调度之前的上一个用户态进程的虚拟内存空间 mm_struct 直接赋值给内核线程,因为内核线程不会访问用户空间的内存,它仅仅只会访问内核空间的内存,所以直接复用上一个用户态进程的虚拟地址空间就可以避免为内核线程分配 mm_struct 和相关页表的开销,以及避免内核线程之间调度时地址空间的切换开销。子进程共享了父进程的虚拟内存空间,这样子进程就变成了我们熟悉的线程,原创 2024-06-27 11:03:30 · 558 阅读 · 0 评论 -
hadoop jar执行任务,报错 java.io.FileNotFoundException:/tmp/hadoop-unjarxxxx/...(no space left on device)
问题描述:使用hadoop jar命令执行MapReduce任务,报错如下查看大数据提交机的磁盘使用情况:df -h发现/tmp目录空间没有用满查看inode使用情况:df -i/tmp目录的inode已经用满了。。。查看/tmp目录的使用情况:发现有许多MapReduce任务提交的临时目录,可以清理掉:清理完后,再次统计,发现inode...原创 2019-10-31 10:16:00 · 8167 阅读 · 0 评论