硬链接和软链接有什么区别

简介: 硬链接和软链接有什么区别

LRU

虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。为了实现 LRU,需要在内存中维护一个所有页面的链表。当一个页面被访问时,将这个页面移到链表表头。这样就能保证链表表尾的页面是最近最久未访问的。因为每次访问都需要更新链表,因此这种方式实现的 LRU 代价很高。

时钟算法

时钟算法使用环形链表将页面连接起来,再使用一个指针指向最老的页面。它将整个环形链表的每一个页面做一个标记,如果标记是0,那么暂时就不会被替换,然后时钟算法遍历整个环,遇到标记为1的就替换,否则将标记为0的标记为1。

Linux文件系统是怎么样的?
Linux文件系统里面有文件和目录,组成一个树状的结构,树的每一个叶子节点表示文件或者空目录。每个文件基本上都由两部分组成:

inode:一个文件占用一个 inode,记录文件的属性,同时记录此文件的内容所在的 block 编号;
block:记录文件的内容,文件太大时,会占用多个 block。
除此之外还包括:

superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
block bitmap:记录 block 是否被使用的位图。
当要读取一个文件的内容时,先在 inode 中查找文件内容所在的所有 block,然后把所有 block 的内容读出来。

硬链接和软链接有什么区别?
硬链接就是在目录下创建一个条目,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。删除任意一个条目,文件还是存在,只要引用数量不为 0。但是硬链接有限制,它不能跨越文件系统,也不能对目录进行链接。
符号链接文件保存着源文件所在的绝对路径,在读取时会定位到源文件上,可以理解为 Windows 的快捷方式。当源文件被删除了,链接文件就打不开了。因为记录的是路径,所以可以为目录建立符号链接。

相关文章
|
监控 调度 数据库
深入浅出Python协程:提高I/O密集型应用性能的利器
在本文中,我们将探索Python协程的强大之处,特别是在处理I/O密集型任务时如何显著提升应用程序的性能。我们不仅会介绍协程的基础知识,包括它们是如何工作的,还会通过实际示例展示如何在您的项目中有效地利用协程来优化性能。我们的目标是使读者能够深刻理解协程的原理,并学会如何在自己的编程实践中灵活运用这一强大的并发编程模型。
|
10月前
|
人工智能 自然语言处理 前端开发
【AI系统】LLVM 前端和优化层
本文介绍了 LLVM 编译器的核心概念——LLVM IR,并详细讲解了 LLVM 的前端 Clang 如何将 C、C++ 等高级语言代码转换为 LLVM IR。文章还探讨了编译过程中的词法分析、语法分析和语义分析三个关键步骤,以及 LLVM 优化层的 Pass 机制,包括分析 Pass 和转换 Pass 的作用及依赖关系。
232 3
|
8月前
|
人工智能
第二批拟立项名单|2024年阿里云协同育人项目立项通知
第二批拟立项名单|2024年阿里云协同育人项目立项通知
|
Prometheus 监控 Kubernetes
深入理解Prometheus: Kubernetes环境中的监控实践
Kubernetes简介 在深入Prometheus与Kubernetes的集成之前,首先简要回顾一下Kubernetes的核心概念。Kubernetes是一个开源的容器编排平台,用于自动化容器的部署、扩展和管理。它提供了高度的可扩展性和灵活性,使得它成为微服务和云原生应用的理想选择。 核心组件 • 控制平面(Control Plane):集群管理相关的组件,如API服务器、调度器等。 • 工作节点(Nodes):运行应用容器的机器。 • Pods:Kubernetes的基本运行单位,可以容纳一个或多个容器。
191 1
|
消息中间件 存储 Java
如何在Java中实现消息队列?
如何在Java中实现消息队列?
如何在 Angular 中将特定按键绑定到 keyup 和 keydown 事件
如何在 Angular 中将特定按键绑定到 keyup 和 keydown 事件
149 0
|
监控 Java 测试技术
GC Cause解析
通常,在基于Java生态体系中的应用程序抛出异常时,生产环境都会通过gc log[当然,也有2愣子直接去线上环境进行各种骚操作]去捕获各种可疑线索,以便快速、高效定位及解决问题。
389 0
|
设计模式 前端开发 算法
前端实现23种设计模式
在前端开发中,设计模式是一种被广泛应用的解决方案,它们可以帮助我们解决各种常见的问题,并提供可维护和可扩展的代码架构。本文将介绍前端开发中的23种设计模式,从创建型、结构型和行为型三个分类角度,对每个模式进行详细的解析和实际应用示例,帮助读者更好地理解和运用这些模式。
638 3
|
C语言
C语言字符串、宏定义及主函数介绍
C语言字符串、宏定义及主函数介绍
490 0
|
前端开发 JavaScript 测试技术
Vue3+Vite+TypeScript常用项目模块详解(下)
现在无论gitee还是github,越来越多的前端开源项目采用Vue3+Vite+TypeScript+Pinia+Elementplus+axios+Sass(css预编译语言等),其中还有各种项目配置比如eslint 校验代码工具配置等等,而我们想要进行前端项目的二次开发,就必须了解会使用这些东西,所以作者写了这篇文章进行简单的介绍。
289 0