408强化(番外)文件管理
有点看不下去书,408,哎好久没看了,死磕数学时完全不想看其他科目,数学分数也尚未质变。
突然想到一个好点子,只看大纲尝试回忆一下这章的内容。
文件就是为了方便用户使用,按名访问而提出的,从组成上来看,是一系列的数据元素构成的,就是各种记录的集合吧,反正是组织一些数据。
文件管理主要是聚焦物理结构,用户关心的是逻辑结构,操作系统要做的是逻辑结构转换为物理结构和物理结构怎样安排。
先看逻辑结构,无结构文件又称流式文件,是一类相同的记录构成的,比如一堆二进制代码和文本文件,读取就是挨个读,可以说是集合这种逻辑结构。有结构文件的逻辑结构就不再是集合这种没有关系的结构了,记录定长与非定长,顺序存储还是链式存储,记录本身顺序还是无序,一共八种组合,链式存储都无法随机存取,非定长的要知道前面每个记录的长度才能计算给定记录的存储位置,顺序文件在408中默认是顺序存储的顺序文件,可以支持随机存取和折半查找。然后就是索引文件,一个索引表项对应一个记录。索引顺序文件是一个索引表项对应一组记录,索引顺序文件和分块查找是类似的,可以大大简化查找记录的查找次数。还有哈希文件,按内容访问。
文件管理更重要的是物理结构,大题也全部都是考的是物理结构,一种是Unix使用的索引结点的模型,一种是使用文件分配表FAT的模型。先看物理结构都分为什么,顺序结构,某文件的数据块在外存中必须连续存储,这种方式方便访问但是不易扩容。链式结构,一种就是普通的在一个数据块中分出几字节链接到下一个数据块,这种就不支持随机访问了,必须一个一个全部给我调入内存,还有一种链式结构就是使用FAT,开机后在内存中打开一个文件分配表FAT,根据FAT就能找到所有数据块的位置,它使用的是静态数组,就是单链表用数组实现的那种方式,这个印象很深,有一年的真题第一题就是考这个,第一次做是知道的,第二次模拟时忘了这种方式了,死活不知道那个表到底表示什么意思。此外树的双亲表示法也是用的这个数据结构,还有并查集,扯远了。FAT查找想访问数据块的地址因为是在内存中实现的,耗时几乎可以忽略。此外就是索引分配方式,提到这里不由吐槽,把物理结构和逻辑结构起的名字搞这么像干嘛,像就算了,课后题一堆错题垃圾题,混着考你。索引分配就是把一个外存块作为一个索引块,每个索引表项能表示一个外存块的地址,这样能大大提高可寻址的数据块的多少,应该是支持随机访问的把,读索引块的表项就能知道想访问的逻辑块号在哪一个外存块。此外还有二级乃至多级索引。这里又想到了王道课后题的几个错题,问多级索引能表示的数据块多少,它的答案不能超过一个索引表项位数能表示的数据块的多少,真题考过好几次这种,但都没有超过,出题老头应该是设计好的。然后就是混合索引分配,这就引出了大题最爱考的Unix的那个结构,10个直接地址索引,一个一级索引,一个二级,一个三级。物理结构应该就这么点内容,剩下的都是小题内容。
一个文件对应一个PCB,一个PCB就是一个目录项,多个目录项组成目录文件,也是一种文件。文件分为三种:普通文件,目录文件,特殊也就是I/O文件。查找文件是只需读名字,把PCB中的其他信息一块读出来浪费开销,于是引入了索引结点,只保留名字,然后指向一个什么什么区,固定位置,你去那找全部的目录信息然后再读数据块。文件的操作没啥好说的,主要是读和写文件之前要先打开文件,整个系统有一张打开文件表,每个进程维护各自的打开文件表,打开文件就是把对应的索引项的信息读入内容,然后对应于进程打开文件表中的一项,这个项有个什么什么编号,Open操作就是访问整个编号。文件的保护,记得课后题有几个说法一直记不清,文件的属性和用户的访问权限好像是最重要的。访问矩阵的每一个比特表示某用户针对某功能是否有权限。
目录,根目录文件很重要,开机时好像就到内存中了,目录的结构记不清怎么分的了,一开始是不允许重名,然后是根目录下不同用户才允许重名,也就是树形结构,最后还有个图型结构应该不考。目录的操作有啥啊,这个是真不知道了,更改还是添加目录或是添加普通文件把。软链接就是快捷方式,不会改变计数指针,硬链接当计数指针为0时才能删除。
外存空闲空间的管理方法就是用数组存储,用链表存储,还有位示图法,这个真题爱考,行列代表什么有点不清楚了,最后有个超级块,基本方式是什么,然后临界情况,一轮的时候清楚了,现在肯定是说不清了,有点复杂的一个过程,感觉不如多级反馈队列好记。剩下的内容就是新大纲的考点了,其中还包括操作系统引导吧,这个是考过的。剩下的真的是太抽象了,连背题都不好背,这个再过一遍基础课视频吧,11月再看吧,不然还要忘。
更正及补充:目录项仅有文件名和索引结点指针的对应,索引结点是在外存中Inode区中,固定区域。打开操作返回的那个编号是文件描述符,fd。
不是有序的那个叫串结构。索引文件的提出是为了针对可变长记录不能随机存取。链式分配那个叫隐式链接和显式链接FAT。
单机目录结构,两级目录结构,树形目录结构:绝对路径和相对路径。软链接速度更慢。
口令保护不安全,加密保护安全性高。
位示图法是用一个二进制位表示一个盘块,0表示空闲。成组链接法是使用超级块,第一行是显示下一块的空闲盘块数,然后各行是空闲块号。
相关文章:

408强化(番外)文件管理
有点看不下去书,408,哎好久没看了,死磕数学时完全不想看其他科目,数学分数也尚未质变。 突然想到一个好点子,只看大纲尝试回忆一下这章的内容。 文件就是为了方便用户使用,按名访问而提出的,从…...

iptables 防火墙配置
文章目录 iptables 防火墙配置规则链的分类–五链处理的动作iptables 常用参数和作用iptables 防火墙配置查看规则链清空规则链设置默认规则将流入的流量丢弃允许ICMP协议流量通过删除默认策略允许所以流量通过设置将所有流入22端口的流量全部拒绝允许指定网段的22端口通过设置…...

面试官:我们深入聊聊Java虚拟机吧
哈喽!大家好,我是奇哥,一位专门给面试官添堵的职业面试员 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟! 文章目录 前言面试Java虚拟机内存模型垃圾收集器…...

【电源专题】案例:异常样机为什么只在40%以下电量时与其他样机显示电量差异10%,40%以上电量差异却都在5%以内。
本案例发生在一个量产产品的测试中,因为产品带电池,所以需要测试产品对于电池电量显示的精确程度。产品使用的是最简单的开路电压查表法进行设计。 案例测试报告的问题在于不同样机之间电量百分比存在差异,大部分是在3%~4%之间。但在7.2V电压时,能够差异10%左右。 在文章:…...

React 全栈体系(七)
第四章 React ajax 一、理解 1. 前置说明 React本身只关注于界面, 并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react应用中需要集成第三方ajax库(或自己封装) 2. 常用的ajax请求库 jQuery: 比较重, 如果需要另外引入不建议使用axios: 轻…...
NVIDIA 显卡硬件支持的精度模式
很多炼丹师不知道自己英伟达显卡支持哪些精度模式,本文整理了NVIDIA官网的数据,为你解开疑惑。 1. 首先了解CUDA计算能力及其支持的精度模式; 2. 查看自己显卡(或其它NVIDIA硬件)的计算能力值为多少。 表1 CUDA计算…...

【Java|golang】210. 课程表 II---拓扑排序
一、拓扑排序的定义: 先引用一段百度百科上对于拓扑排序的定义: 对一个有向无环图 ( Directed Acyclic Graph 简称 DAG ) G 进行拓扑排序,是将 G 中所有顶点排成一个线性序列,使得图中任意一对顶点 u 和 v ,若边 <…...
STM32CubeMX systick bug?
发觉用新版(V6.9.1)的它生成代码,会有问题。可能是 BUG。具体如下: 一个简单的点灯程序,用 Keil MDK 5.38a(compiler version 6)编译。 如果在变量前,不加上关键字“volatile”&am…...

徐亦达机器学习:Kalman Filter 卡尔曼滤波笔记 (一)
P ( x t P(x_t P(xt| x t − 1 ) x_{t-1}) xt−1) P ( y t P(y_t P(yt| x t ) x_t) xt) P ( x 1 ) P(x_1) P(x1)Discrete State DM A X t − 1 , X t A_{X_{t-1},X_t} AXt−1,XtAny π \pi πLinear Gassian Kalman DM N ( A X t − 1 B , Q ) N(AX_{t-1}B,Q)…...
Java和vue的包含数组组件contains、includes
List<String> tempList Arrays.asList("10018","1007","10017","1012"); if(tempList.contains(initMap.get("asset_type_id").toString())){// todo 计算运营终点桩号-起点桩号BigDecimal diffSum collectNum(col…...

OpenCV_CUDA_VS编译安装
一、OpenCV 我这里是下载的OpenCV4.5.4,但是不知道到在vs里面build时一直报错,后面换了4.7.0的版本测试,安装成功。 Release OpenCV 4.5.4 opencv/opencv GitHub 这个里面有官方预编译好的OpenCV库,可以直接食用。 扩展包&am…...

基于减法优化SABO优化ELM(SABO-ELM)负荷预测(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

记录第一个启动代码的诞生
核使用R52,参考汇编模板,一步一步来实现。 首先是ld文件,这个没啥好说的,主要是关注给vector_table划一块地址、stack地址,如下: .text.intvec :{_vectors_start .;KEEP(*(.text.intvec))_vectors_end .;…...

基于STM32的简化版智能手表
一、前言 本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果。项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DHT11,RTC,LED,KEY等器…...

揭秘弹幕游戏制作
最近好多人问弹幕游戏,甚至是招人的也要DOTS做弹幕游戏... 实际上目前的弹幕游戏绝大多数应该和DOTS没有半点关系,别忘了DOTS这项技术渲染问题还没能够被合理解决呢 所以目前用的全都是GPU Instance这项技术,于是乎我决定下场写这篇帖子&am…...

2327. 知道秘密的人数;1722. 执行交换操作后的最小汉明距离;2537. 统计好子数组的数目
2327. 知道秘密的人数 核心思想:动态规划,每天的人可以分为三种,可分享秘密的人,不可分享秘密的人,忘记秘密的人。定义f[i]为第i天可分享秘密的人,那么第(idelay ,iforget)天,会增加f[i]个可分…...

【TCPDF】使用TCPDF导出PDF文件
目录 一、安装TCPDF类库 二、安装字体 三、使用TCPDF导出PDF文件 目的:PHP通过TCPDF类库导出文件为PDF。 开发语言及类库:ThinkPHP、TCPDF 效果图如下 一、安装TCPDF类库 在项目根目录使用composer安装TCPDF,安装完成后会在vendor目录下…...

MacBook苹果电脑重装、降级系统
1、下载balenaEtcher镜像启动盘制作工具 https://tails.net/etcher/balenaEtcher-portable.exe 2、选择从文件烧录选择下载好的Mac 镜像文件 百度网盘 请输入提取码(Mac OS 10.10-12版本镜像文件) 第二步选择目标磁盘,这里需要准备一块1…...
Java 解决long类型数据在前后端传递失真问题
问题:雪花算法的id长度为19位,前端能够接收的数字最多只能是16位的,因此就会造成精度丢失,得到的ID不是真正的ID。 解决: 在拦截器中加入Long类型转换,返回给前端string package io.global.iot.common.c…...

IDEA的快捷键大全
快捷键 说明 IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待。IntelliJ IDEA 本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不穷,对于快捷键设置也有各种支持,对…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...