【操作系统复习】第8章 文件管理

news2024/12/23 5:05:20

数据项、记录和文件

数据项

基本数据项:描述一个对象的某种属性,又称字段

组合数据项:由若干个基本数据项组成记录

记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。

关键字:唯一能标识一个记录的数据项

如:学号、学号+课程号

文件:具有文件名的一组相关元素的集合

有结构文件(记录)、无结构文件(字符流)

在文件系统中文件是最大的数据单位,描述了一个对象集

文件的主要属性

文件类型

文件长度

文件的物理位置

文件的建立时间

扩展名:文件名后面的若干个附加字符

按用途分类

系统文件

用户文件

库文件

按文件中数据的形式分类

源文件

目标文件

可执行文件

按存取控制属性分类

p 只执行文件

p 只读文件

p 读写文件

按组织形式和处理方式分类

p 普通文件

p 目录文件

p 特殊文件

文件系统的层次结构

 

文件系统的功能

对文件存储空间的管理

对文件目录的管理

用于将文件的逻辑地址转换为物理地址的机制

对文件读和写的管理

对文件的共享和保护

与文件系统有关的软件

I/O控制层:文件系统最底层,设备驱动程序层

基本文件系统层:处理内存和磁盘之间数据块的交换

基本I/O管理程序:完成与磁盘I/O有关的事务

逻辑文件系统:处理与记录和文件相关的操作

文件操作

最基本的文件操作:

创建文件、删除文件、读文件、写文件。

设置文件的读/写位置。

文件的“打开”和“关闭”操作:

打开open:系统将文件从外存拷贝到内存打开文件表的一个表目中。

关闭close:把文件从打开文件表的表目中删除。

其他文件操作:

重命名、改文件拥有者、查询文件状态等。

创建/删除目录。

文件结构

文件的逻辑结构:从用户观点所观察的文件组织形式

文件的物理结构:文件的存储结构,指系统将文件存储在外存上所形成的一种存储组织形式

p 不仅与存储介质的存储性能有关

p 也与所采用的外存分配方式有关

文件的逻辑结构和物理结构,都影响文件的检索速度

按文件是否有结构分类

有结构文件(记录式文件)

定长记录

变长记录

无结构文件(流式文件)

源程序、可执行文件、库函数

有结构文件按文件的记录方式分类

顺序文件

索引文件

索引顺序文件

顺序文件的排列方式

串结构:按存入时间的先后排序,记录间的顺序与关键字无关

检索比较费时

顺序结构:指定一个字段为关键字,所有记录按关键字排序

检索时可利用有效的查找算法,折半查找法、插值查找法、跳步查找法等

顺序文件的优缺点

优点:

◼ 有利于大批记录读写

◼ 存取效率最高

◼ 可存储在顺序存储设备(磁带)上

缺点

◼ 查找或修改单个记录:差

◼ 增加或删除一个记录:难

隐式寻址方式(顺序访问)

◼ 定长记录:

◼ 变长记录:

显式寻址方式(直接/随机访问)

◼ 通过文件中记录的位置

➢ 定长记录:

➢ 变长记录:

◼ 利用关键字

 

索引文件

关键字建立索引

为变长记录文件建立一张索引表

索引表按关键字排序

实现直接存取

具有多个索引表的索引文件

为顺序文件建立多个索引表

为每一个可能成为检索条件的域配置一张索引表

 

索引顺序文件

有效克服了变长记录文件不便于直接存取的缺点。

保留了顺序文件的关键特征:记录按关键字的顺序组织。

新增2个新特征:

引入文件索引表:实现随机访问。

增加溢出文件:记录新增、删除和修改的记录。

 

直接文件:

关键字本身决定了记录的物理地址。

键值转换:关键字到记录物理地址的转换。

哈希文件:

利用Hash函数将记录键值转换为记录的地址。

文件目录

目录实现了对文件的有效管理

目录是一种数据结构,用于标识文件及其物理地址

对目录管理的要求

实现“按名存取”

提高对目录的检索速度

文件共享

允许文件重名

文件控制块(FCB):管理和控制文件的数据结构,与文件一一对应

文件目录:文件控制块的集合,即一个文件控制块就是一个文件目录项

目录文件:文件目录也被看做是一个文件

文件控制块包含信息

基本信息类:文件名、文件物理位置、文件逻辑结构、文件物理结构

存取控制信息类:文件主的存取权限、核准用户的存取权限以及一般用户的存取权限

使用信息类:文件的建立日期和时间、文件上一次修改的日期和时间及当前使用信息

索引结点的引入:减少磁盘访问次数

把文件名与文件描述信息分开,文件描述信息用索引结点iNode)保存,简称为i节点UNIX

磁盘索引结点:存放在磁盘上的索引结点

①文件拥有者标识符,②文件类型, ③文件存取权限, ④文件物理地址,⑤文件长度, ⑥文件连接计数,⑦文件存取时间

内存索引结点:存放在内存上的索引结点

①索引节点编号,②状态, ③访问计数, ④文件所属文件系统的逻辑设备号,⑤链接指针

目录结构的组织,是设计好文件系统的重要环节

关系到文件系统的存取速度

也关系到文件的共享性和安全性

目录结构和文件都驻留在磁盘上。

单级文件目录

所有用户的文件都在同一目录中

最简单的文件目录

目录项:

文件名、扩展名、文件长度、文件类型、物理地址、文件说明以及其他文件属性

缺点

查找速度慢

不允许重名

不便于实现文件共享

两级文件目录

每个用户有自己的目录结构

特点

提高了检索目录的速度

不同用户可以有相同的文件名

不同用户可以使用不同文件名访问同一个共享文件

不便于共享文件

路径名 从根目录到任何数据文件的通路

绝对路径名:从根目录开始的路径名

相对路径名:从当前目录开始的路径名

无环图目录

 

目录查询技术

线性检索法:

顺序检索法。

查找/usr/ast/mbox的过程。

Hash方法:

系统利用用户提供的文件名,将之变换为文件目录的索引值,再利用该索引值到目录中去查找。

模式匹配(* ?)时,无法使用Hash方法。

处理冲突使用有效规则。

基于有向无环图实现共享

有向无环图:树形目录中,允许一个文件有多个父目录

利用索引结点实现共享,设置链接计数count

利用符号链接实现共享

基本思想:允许一个文件有多个父目录,但其中仅有一个作为主父目录,其它的都是通过符号链接方式与之相链接。

Linux系统中的创建符号链接命令:ln –s 源文件 目标文件

优点

不会发生在文件拥有者删除一个共享文件后留下一个悬空指针的情况。

缺点

每次访问共享文件时都可能要多次地读盘,这使每次访问文件的开销甚大,且增加了启动磁盘的频率。

保护域

访问权

一个进程能对某对象执行操作的权利,称为访问权

表示:(对象名,权集),如(F1 , {R/W})

保护域

进程对一组对象访问权的集合,称为保护域

如进程和域一一对应,则称为静态联系方式,该域称为静态域

如进程和域是一对多关系,则称为动态联系方式

访问矩阵的概念

用矩阵来描述系统的访问控制

行代表域;列代表对象;每一项为访问权

 

具有域切换权的访问控制矩阵

能够将进程从一个保护域切换为另一个域

如,由于域D1D2所对应的项目中有一个S(即切换权),则允许在域D1中的进程切换到域D2

 

复制权

利用复制权将某个域所拥有的访问权accessij)扩展到同一列的其他域中

 

所有权

利用所有权(owner right)能增加某种访问权,或者能删除某种访问权

图中的“O”表示所有权

 

图(b)所示为:在域D1中运行的进程删除了在域D3中运行的进程对文件F1的执行权;在域D2中运行的进程增加了在域D3中运行的进程对文件F2和F3的写访问权。

控制权

用于改变矩阵内同一行(域)中的各项访问权,亦即,用于改变在某个域中运行的进程对不同对象的访问权

 

访问矩阵:稀疏矩阵

访问控制表ACL

对访问矩阵按列(对象)划分,为每一列建立一张访问控制表ACL,删除空项,由(域,权集)组成

当对象是文件时,ACL存放在文件的文件控制表中访问权限表

对访问矩阵按行(域)划分,为每一行建立一张访问权限表

当对象是文件时,访问权限表用来描述一个用户对文件的一组操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/571089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

04_GC垃圾回收

面试题: JVM内存模型以及分区,需要详细到每个区放什么 堆里面的分区:Eden,survival from to,老年代,各自的特点。 GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分…

python+vue高校网上跳蚤二手市场的设计与实现

商品信息是卖家供应用户必不可少的一个部分。在跳蚤市场发展的整个过程中,商品担负着最重要的角色。为满足如今日益复杂的管理需求,各类管理系统程序也在不断改进。本课题所设计的普通高校网上跳蚤市场,使用Django框架,Python语言…

【2023年电工杯数学建模竞赛】选题分析+A题B题完整思路+代码分享

思路和代码会第一时间分享出来,可以先关注博主 1.竞赛介绍 2.本次大赛选题分析 首先大家要清楚获奖只和比例有关,和具体题目关系不大,不会出现选难题就比简单题获奖率高很多的情况出现,这是一个选拔性质的比赛是按照比例来的 2…

(5.19-5.25)【大数据新闻速递】

关 注gzh“大数据食铁兽”,了解更多大数据快讯 【第八届亚太银行数字化创新峰会圆满落幕】 第八届亚太银行数字化创新峰会在2023年5月18日举行,邀请了30名大咖和超过300位行业顶尖人士参加。金融数据港和中银协中西部培训机构提供特别支持。峰会围绕银行…

Kafka实时数据即席查询应用与实践

作者:vivo 互联网搜索团队- Deng Jie Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档&#xff…

list的基本介绍

list的基本信息: list是一个带头双向链表的结构。constant,常数、常量,constant time 即O(1)时间复杂度。 先来简单认识一下list list支持尾插,尾删,头插,头删 都是一些已知的内容。 和vector的区别就是支…

Java货运物流园管理系统源码

技术架构:spring boot、mybatis、redis、vue、element-ui 开发语言:java、vue、uniapp 开发工具:idea、vscode、hbuilder 前端框架:vue 后端框架:spring boot 数 据 库:mysql 移 动 端: …

vue vant 登录增加图片验证码显示

<!-- 登录表单 --><van-form submit"onLogin" :show-error"false":show-error-message"false"ref"login-form"failed"onFailed"> <van-fieldv-model"user.account"icon-prefix"toutiao"…

如何借助spire.doc,在 Word 中插入 OLE 对象

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

AI的发展将会产生一个新的阶层

随着AI的发展将会产生一个新的阶层&#xff0c;那就是无用阶层&#xff0c;而且我们很多人都处在这个阶层。自今年以来&#xff0c;AI技术的发展所带来的应用&#xff0c;给我们的除了震撼还是震撼。Open AI的GPT4模型不但能够写出媲美专家发表的论文&#xff0c;还能通过各类专…

淘宝商品列表数据接口(支持价格、销量排序)

淘宝商品列表数据接口是淘宝提供的一种可以获取淘宝商品信息的接口。通过该接口&#xff0c;可以获取到具有一定规则的商品信息&#xff0c;例如按照价格排序、按照销量排序等。接口返回的数据格式为JSON格式&#xff0c;可以方便地处理数据。 我们可以通过调用淘宝提供的API&…

Flink SQL JOIN

双流JOIN(Regular Join) ​ Regular Join 就是大家熟知的双流 Join&#xff0c;语法上就是普通的 JOIN 语法。图中案例是通过广告曝光流关联广告点击流将广告数据打宽&#xff0c;打宽后可以进一步计算广告费用。从图中可以看出&#xff0c;曝光流和点击流都会存入 join 节点的…

优雅处理HTTP请求:过滤器、拦截器、ControllerAdvice和自定义AOP

我们在开发Spring Boot应用程序时&#xff0c;经常会遇到需要对HTTP请求进行一些处理的情况&#xff0c;例如鉴权、数据校验、请求日志记录等等。在处理HTTP请求时&#xff0c;我们可以使用四种不同的技术来实现这些功能&#xff1a;过滤器、拦截器、ControllerAdvice和自定义A…

谷歌seo多久才能见效?谷歌seo见效的参考时间线和效果预估

影响谷歌SEO的效果因素 谷歌SEO的效果因多种因素而异&#xff0c;包括竞争程度、关键词选择、网站优化程度、内容质量和网站的历史等。一般来说&#xff0c;SEO是一个长期的过程&#xff0c;而不是一夜之间见效的事情。e6zzseo&#xff08;e6zzseo的博客_CSDN博客-seo领域博主…

嵌入式音视频疑惑汇总

小小的脑袋里,大大的疑问,该文是博主在工作中遇见问题后,面向chatGPT学习的记录笔记 1.bypass hdr 是什么? “Bypass HDR” 是指绕过高动态范围(HDR)功能的一种设置。HDR 是指一种显示技术,它可以提供更高的色彩深度和亮度范围,从而产生更加真实、明亮和有层次感的图像…

Ludo:海外飞行棋游戏玩法,文末附源码

Ludo起源于印度的古老游戏Pachisi&#xff0c;玩法类似国内的飞行棋&#xff0c;是一种适合2至4人玩的战略类棋盘游戏。 其游戏规则也很简单&#xff1a;对局中&#xff0c;每人有2颗或4颗棋子&#xff0c;通过投骰子的方式决定前进的步数&#xff0c;在前进过程中赶上对手即可…

手把手带你分析 (net.devh.boot.grpc 包下面的)服务端 Grpc 自动装配、服务注册的源码(Java版)

前言 昨天写过一篇关于如何使用 Grpc 的博客&#xff0c;出于好奇想知道 GrpcService、GrpcClient、GrpcGlobalServerInterceptor、GrpcGlobalClientInterceptor这些注解是如何生效的&#xff0c;以及服务注册的流程是怎样的&#xff0c;就简单过了一遍源码&#xff0c;帮助大家…

新人必看!手把手教你如何使用浏览器表格插件(下)

摘要&#xff1a;本文由葡萄城技术团队于博客园原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 | 问题背景 作为一名优秀的打工人&#xff0c;Excel是大家上班中必不可少的办…

理解Linux TunTap设备

入门 TUN/TAP是操作系统内核中的虚拟网络设备&#xff0c;可以完成用户空间与内核空间的数据的交互。网络协议栈中的数据通过该设备可以进入到用户空间中&#xff0c;而用户空间中的程序通过该设备空间进入到内核空间的网络协议栈。 TUN模拟的是三层设备&#xff0c;操作三层…

chatgpt赋能python:Python主程序:提升编程效率与合作性的最佳选择

Python 主程序&#xff1a;提升编程效率与合作性的最佳选择 前言 Python 作为一门简单、易于学习并具备强大功能的编程语言&#xff0c;已经成为了最受欢迎的编程语言之一。Python 主程序不仅能够编写复杂的算法和进行数据处理&#xff0c;而且还可以实现广泛的应用&#xff…