恶补《操作系统》4_1——王道学习笔记

embedded/2025/1/15 22:47:52/

4文件管理

4.1_1 初识文件管理

操作系统提供的功能:

  1. 处理机管理
  2. 存储器管理
  3. 文件管理
  4. 设备管理

目标:安全高效

关于文件管理:

1)计算机中存放了各种各样的文件,一个文件有哪些属性?

  1. 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。
  2. 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。
  3. 类型:指明文件的类型
  4. 位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)
  5. 大小:指明文件大小创建时间、上次修改时间文件所有者信息
  6. 保护信息:对文件进行保护的访问控制信息

2)文件内部的数据应该怎样组织起来?

3)文件之间又应该又应该怎么组织起来?

目录结构 组织起来的

4.1_2 文件的逻辑结构

1、无结构文件(如.txt

文件由一系列二进制文件流组成

2有结构文件(记录式文件,如数据库文件)

1)顺序文件:文件中的记录一个接一个顺序排列,定长或变长,可以顺序存储或者链式存储

按照是否与关键字顺序有关,可以分为串结构和顺序结构

链式存储:无法随机存取

顺序存储:

  • 可变长:无法随机存取
  • 定长:可以随机存取,采用串结构,无法快速找到关键字;采用顺序结构,可以快速查找关键字

2)索引文件:索引表本身是定长的顺序文件

3)索引顺序文件:多级索引表嵌套查找

4.1_3 文件目录

1、文件控制块(FCB

需要对目录进行的操作:搜索、创建文件、删除文件、显示目录、修改目录

  1. 搜索:当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项创建文件:创建一个新文件时,需要在其所属的目录中增加一个目录项
  2. 删除文件:当删除一个文件时,需要在目录中删除相应的目录项
  3. 显示目录:用户可以请求显示目录的内容,如显示该目录中的所有文件及相应属性
  4. 修改目录:某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项(:文件重命名)

2、目录结构

  • 单级目录结构
  • 两级目录结构=主文件目录(MFD)+用户文件目录(UFD)
  • 多级目录结构(树形目录结构)

当代操作系统采用方法、不便于文件共享

  • 无环图目录结构
  • 可以共享

3、索引结点(文件控制块FCB的改进)

压缩文件名和信息

4.1_4 文件的物理结构(文件分配方式)

对非空闲磁盘块的管理:

1)连续分配:连续分配方式要求每个文件在磁盘上占有一组连续的块,对文件的拓展不方便,有很多磁盘碎片

2)链接分配

  • 隐式分配:采用链接分配方式的文件,只支持顺序访问,不支持随机访问,方便拓展
  • 显示分配:文件分配表显式记录下一块物理块的位置,方便拓展,支持随机访问,文件表会占内存空间

3)索引分配

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表记录了文件的各个逻辑块对应的物理块

支持随机访问

  • 链接方案
  • 多层索引
  • 混合索引

http://www.ppmy.cn/embedded/32070.html

相关文章

分片上传,分片合并

面是一种基于前端分片上传&#xff0c;后端合并的方法的代码实现&#xff1a; 前端代码&#xff08;HTML JavaScript&#xff09;&#xff1a; <input type"file" id"fileInput"> <button onclick"uploadFile()">Upload</butt…

深度学习之基于Matlab卷积神经网络验证码识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着互联网的发展&#xff0c;验证码作为一种常用的安全验证手段&#xff0c;被广泛应用于各种网站和…

深度学习训练八股

一、模型中的函数的定义 1.torchmetrics.AUROC &#xff08;1&#xff09;.binary >>> from torch import tensor >>> preds tensor([0.13, 0.26, 0.08, 0.19, 0.34]) >>> target tensor([0, 0, 1, 1, 1]) >>> auroc AUROC(task&quo…

C++list的模拟实现

文章目录 一、观察源码二、模拟实现1. 节点结构体2. list类3. 迭代器的定义与实现&#xff08;1&#xff09; 前置--后置--模拟实现&#xff08;2&#xff09; *和->重载模拟实现&#xff08;3&#xff09; 和!重载实现 4. list成员函数模拟实现。&#xff08;1&#xff09;…

4_C语言复杂表达式与指针高级应用

指针数组与数组指针 字面意思来理解指针数组与数组指针 指针数组的实质是一个数组&#xff0c; 这个数组中存储的内容全部是指针变量。 数组指针的实质是一个指针&#xff0c; 这个指针指向的是一个数组。 分析指针数组与数组指针的表达式 int * p[5]; 指针数组 int (*p)[5]…

华为 huawei 交换机 配置 MUX VLAN 示例(汇聚层设备)

组网需求 在企业网络中&#xff0c;企业所有员工都可以访问企业的服务器。但对于企业来说&#xff0c;希望企业内部部分员工之间可以互相交流&#xff0c;而部分员工之间是隔离的&#xff0c;不能够互相访问。 如 图 6-4 所示&#xff0c; Switch1 位于网络的汇聚层&#xff0…

二叉树的直径

题目描述&#xff1a;给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示。 示例 1&#xff1a; 输入&#xff1a;root […

45. UE5 RPG 使用元属性(Meta Attributes)以及使用Set by Caller修改伤害

在RPG游戏中&#xff0c;我们是不会直接修改生命值的属性&#xff0c;是因为在修改角色属性时&#xff0c;需要获取角色的属性并进行复杂的计算&#xff0c;所以&#xff0c;我们正常情况下使用元属性&#xff08;Meta Attributes&#xff09;作为计算的中间的媒。在服务器上先…