电子科技大学操作系统期末复习笔记(五):文件管理
目录
前言
文件管理:基础
基本概念
文件
文件系统
文件系统的实现模型
文件的组成
文件名
文件分类
文件结构
逻辑结构
物理结构
练习题
文件管理:目录
文件控制块FCB
FCB:File Control Block
FCB信息
目录
基本概念
目录功能
目录基本操作
⭐FCB组织方法
⭐改进的FCB组织方法
目录的组织
路径
无环图目录
链接
通用图目录
文件管理:磁盘管理
空闲分区表
概念
特点
空闲分区链表
概念
特点
位示图
成组块链接法
分配方法
释放方法
例题
文件一致性:盘块
链接数一致性检查
文件执行
数据结构
文件共享
文件操作
执行过程
虚拟文件系统 VFS
前言
设备管理模块已经更新,传送门:电子科技大学操作系统期末复习笔记(四):设备管理
本复习笔记基于电子科技大学计算机操作系统-教学大纲(2022)中的课程模块部分,分为五大章节,分别是:
- CM1:操作系统概念。操作系统基本功能、操作系统发展历史及趋势、操作系统主流架构、常见操作系统特点、操作系统安全机制。
- CM2:进程管理。进程概念、线程概念、进程生命周期、进程调度算法、进程同步互斥、进程间通信和死锁。
- CM3:内存管理。内存空间的概念、连续分配、离散分配(分页管理、分段管理、段页式管理)、虚拟存储管理和页面置换算法。
- CM4:设备管理。I/O 系统结构、缓冲管理、磁盘结构和磁盘调度算法。
- CM5:文件管理。文件系统的作用、逻辑结构、物理结构、目录、文件共享和文件系统的一致性。
本节是最后一部分,要点在CM5,大致内容如下:
第五章 文件管理(6 学时,多媒体课件结合板书面授)CM51、主要内容文件和文件系统的概念,文件逻辑结构(堆文件、顺序文件、索引顺序文件、索引文件、HASH 文件),外存分配方法(连续分配、链接分配、索引分配),目录管理(一级目录、二级目录、多 级目录),文件存储空间的管理技术(位示图、空闲链表、索引)。文件系统性能的改善、数据一致性控制。2、应达到的要求记忆:文件系统性能的改善、数据一致性控制。理解:文件系统的基本概念、目录管理、文件共享、文件保护的方法。分析:文件逻辑结构、文件的物理结构、文件目录、外存空间的管理。
一共3个PPT,就分三大块:文件管理:基础、文件管理:目录、文件管理:磁盘管理。
文件管理:基础
基本概念
文件
- 一种具有符号名的、相关联元素的有序集合。
- 用户按照信息的逻辑功能将关联存储单元组织成文件。
- 文件是信息在磁盘上存储的基本逻辑单位。
- 文件名:对相关联元素的Naming
文件系统
- 概念:
- 对文件实施管理、控制与操作的一组软件。
- 用户或应用程序访问文件的唯一方式
- 目标与功能:
- 保证文件中的数据有效
- 减少或消除丢失或破坏数据的可能性
- 从系统角度优化总吞吐量,从用户角度优化响应时间
- 为各种类型的存储设备提供I/O支持,并提供统一接口
- 统一管理文件的存储空间,实施存储空间的分配与回收
- 实现文件的按名存取:文件名字空间
存储空间
- 实现文件信息共享,提供文件保护和保密措施
- 用户观点
- 实现“按名存取”功能
- 操作系统观点
- 文件目录怎样实现、管理存储空间、文件存储位置、磁盘实际运作方式(与设备管理的接口)
文件系统的实现模型
- 文件系统接口:命令、系统调用和图形窗口的文件系统访问功能。
- 逻辑功能层:根据接口层所发下的文件访问需求,通过相关的文件控制块、文件目录、文件分配表等,获取访问存储介质的物理参数。
- 物理驱动层 :将逻辑功能层所发下的命令转化为相应的驱动程序的动作,完成对文件物理存储设备的处理。
文件的组成
- 文件=元数据+文件内容
- 元数据:文件名、内部标识(如unix的inode)、拥有者、访问时间/权限、文件大小 ……
文件名
- 格式:A.B
- A: 文件名称 B: 文件类型/文件格式/文件扩展名
文件分类
- 对不同文件进行管理,提高系统效率
- 提高用户界面友好性
- 设备文件:统一的抽象接口(了解即可)
文件结构
逻辑结构
从用户角度研究文件的组织形式,独立于物理存储结构
- 无结构文件:流式文件
- 构成文件的基本单位是字节,文件是有逻辑意义的、无结构的一串字节的集合。
- 自身不提供任何数据结构 提供很大的灵活性
- 用户自定义文件内容含义
- 有结构文件:记录文件
- 文件是由若干个记录组成,每个记录有一个键,可按键进行查找。
- 记录(record)、字段(field)、键(key)
- 文件组织与访问
- 原则:
- 原则可能互相矛盾(如索引 vs. 空间)
- 优先级取决于使用文件的应用程序
- 堆文件:数据按到达时间顺序存放;每个记录长度、字段数量不确定;随机访问效率极低,对大多数应用都不可用;例:log(日志文件)
- 顺序文件:所有记录有序排列(主字段);字段定义、记录长度固定;批处理,顺序访问最佳;查询或更新记录的交互式应用,性能差;(随机)访问大型顺序文件时性能差(包含某个key的记录)
- 索引顺序文件:是一个顺序文件;将顺序文件中的记录进行分组(block);索引表仅记录每组中第一个记录的信息;组与组之间记录的关键字必须有序排列;搜索非key字段困难
- 索引文件:每个索引项指向一个记录,索引项按照记录中的某个关键字排序;记录大小不必相同,不必排序,存放在主文件中。 可以对不同的关键字域建立多个索引;主文件中增/减/变更记录时,索引文件须相应更新
- 直接,散列/哈希文件:记录的存储位置由以关键字为参数的哈希函数计算得到。 记录大小一般相同;检索时给出记录的关键字值,通过哈希函数计算出该记录在文件中的位置;访问速度快, 一次只需访问一条记录时使用。例:目录、价格表、调度和名字列表等。
- 原则:
- 有结构文件和无结构文件的区别:
物理结构
文件的逻辑地址和物理地址 文件在物理介质上的存放方式
- 文件访问方法
- 用户在使用文件时按何种次序存取文件
- 顺序存取:按照文件信息的逻辑顺序(记录的排列顺序)依次存取。
- 随机存取(直接存取):按任意的次序对文件进行读写操作
- 与文件使用方式有关
- 源程序文件用顺序存取
- 数据库文件用随机存取
- 与存储介质的特性有关
- 磁带
- 磁盘
- 用户在使用文件时按何种次序存取文件
- ⭐文件分配表
- 为了有效地管理文件存储器,通常把文件存储空间划分成若干个大小相等的物理块。
- 物理块是分配及传输信息的基本单位。
- 块的大小通常是扇区的倍数,如512B、1KB、2KB或者4KB。
- 文件分配表:描述文件所获得物理块的详细信息,不同的操作系统赋予了该结构不同的名字
- DOS:FAT / Windows NTFS: MFT (master file table)
- UNIX类操作系统:inode
- 分配方式
- 静态分配:文件创建时申明需要的最大空间
- 预分配,实现简单,易于维护,但灵活性差
- 动态分配:文件存储空间按需分配
- 实现较复杂,需要维护较多的数据结构,实用性高
- 静态分配:文件创建时申明需要的最大空间
连续结构(顺序)
- 文件信息存放在若干连续的物理块中
- 优点:简单;支持顺序存取和随机存取;顺序存取速度快:磁盘寻道次数(寻道时间)最少
- 缺点:不利于文件尺寸的动态增长(插入、删除);可能会导致磁盘碎片,降低外存空间的利用率(可以采用紧凑技术处理,从而改善)。
链接结构
- 文件信息存放在若干不连续的物理块中,各块之间通过指针连接。
- 隐式链接
- 每个物理块都设有一个指针字段,指向下一个物理块的位置。
- 随机访问性能差
- 显式链接
- 用于链接文件各物理块的指针,显示地存放在一张内存链表中,该表在整个磁盘中仅一张。
- 随机性能优于隐式链接
- 隐式链接
- 优点:提高了磁盘空间利用率,不存在外部碎片问题;有利于文件插入和删除
- 缺点:更多的寻道次数和寻道时间;随机访问性能差;可靠性问题,如指针出错
- 改进方法:扩大文件块分配单位。若干个连续的数据块,称之为簇(Cluster)。
- 簇(Cluster)
- 一组连续的扇区→虚拟扇区
- 分配单位 Cluster=2^n Sectors
- 簇(Cluster)
索引结构
文件信息存放在若干不连续物理块中,每个文件关联一个索引表,记录块号
索引表就是磁盘块地址数组,第i个条目指向文件的第i块
优点:支持随机存取(优于链接结构,找第i块更快);满足了文件动态增长、插入删除要求;利用多级索引,可以支持大型文件的存取
缺点:较多的寻道次数和寻道时间(对比页表)
一个数据块容纳不了一个文件的所有分区时,需要若干个索引结点进行存储
多级索引
- 盘块大小:1 KB,每个盘块号:4B
- 一个索引块中可存放1K/4B=256个盘块号
- 两级索引时, 最多可包含的存放文件的盘块总数N = 256 × 256 = 64 K个盘块号。
- 最大文件长度:64MB
- 计算:盘块大小:4KB,盘块号:4B,一级、两级索引时最大文件分别为?
- 4KB/4B=2^10; 1_file=2^10*4KB=4MB; 2_file=2^10*2^10*4KB=4GB
⭐综合/混合模式
将多种索引分配方式相结合而形成的一种分配方式。
例如,系统既采用了直接地址,又采用了一级索引分配方式,或两级索引分配方式,甚至还采用了三级索引分配方式。
Unix iNode
13个索引项,每项2个字节 前10项为直接块
第11项指向一个物理块,该块中最多可放256个文件物理块的块号(一次间接寻址)。
第12和第13项作为二次和三次间接寻址
单个文件最大长度:(10+256+256*256)*block-storage
练习题
设文件索引节点中有7个地址项 4个直接地址索引 2个一级间接地址索引 1个二级间接地址索引 每个地址项大小为4B 磁盘索引块和磁盘数据块均为256B
问:单个文件的最大长度是多少?
答:每个索引块中的项目数为:256/4=64个
4个直接地址索引块,可索引块数:4
2个一级间接地址索引块,可索引块数:2×64=128
1个二级间接地址索引块,可索引块数:1×64×64=4096
单个文件的最大长度为:(4+128+4096)*256B=1057KB
假定UNIX磁盘块的大小为1KB,每个盘块号占4个字节,文件索引节点中的磁盘地址明细表如图所示,请将下列文件的字节偏移量转换为物理地址?
1. 9000 2. 14000 3. 350000
答:字节偏移量为9000时
逻辑块号为:9000/1024=8 块内偏移量为:9000 % 1024=808 逻辑块号小于10→该块为直接块。逻辑块号8对应的物理盘块号为367,该块中的第808字节即为文件的第9000字节。
字节偏移量为14000时
逻辑块号为:14000/1024=13 块内偏移量为:14000 % 1024=688 逻辑块号9<13<266→该块为一次间接块。 一次间接的盘块号为428,从一次间接块中读出盘块号表,查得逻辑块号13的物理块号为952,该块中的第688字节即为文件的第14000字节。
字节偏移量为350000时
逻辑块号为:350000/1024=341 块内偏移量为:350000 %1024=816 因逻辑块号265<341<65802(256*256+256+10)→该块为二次间接块。 由图可知,二次间接块的盘块号为9156。一个一次间接块中可容纳256个块号,341-10-256=75 75/256=0,故字节偏移量350000在二次间接块的第0个一次间接块的第75个表项中,其盘块号为333,该块中的第816字节即为文件的第350000字节。
文件管理:目录
文件控制块FCB
FCB:File Control Block
描述和控制文件的数据结构 与文件一一对应
文件存在的标志
文件控制块的组成——与操作系统相关
FCB信息
文件名:用户利用该名字进行存取。
文件物理位置:在外存的存储位置(设备名、起始盘块号、占用的盘块等)
使用信息:创建时间:create time ;最后一次读访问的时间:access time ;最后一次写访问的时间:modify time
目录
基本概念
文件目录:一组文件的集合
目录:文件元数据(控制块)的集合
目录文件:目录项构成的文件
递归效果:目录也用FCB表示
目录即文件
目录文件具有固定格式 由系统进行管理,用户不能直接访问目录文件
目录功能
- 按名存取
- 提高检索速度
- 合理地组织目录结构,可以加快对目录的检索速度,从而提高对文件的存取速度。
- 文件共享
- 允许共享文件,节省存储空间,方便用户。
- 允许文件重名
- 方便用户按照自己的习惯来命名和使用文件。
目录基本操作
- 罗列文件
- 搜索文件
- 通过查找目录结构,实现特定文件的按名查找
- 创建文件
- 建立新文件,将相应控制块加到目录中去
- 删除文件
- 当一个文件不再需要时,从目录中删除
- 重命名文件
⭐FCB组织方法
计算: 一个FCB有48字节,假设物理块512字节,某目录有128个文件。 计算查找一个文件平均访盘次数。
- 每块存储的FCB数量:512/48=10
- 128个文件的目录文件需要磁盘块:128/10=13
- 平均访盘次数:(1+13)/2=7(最少一次找到,最多13次,取均值)
⭐改进的FCB组织方法
采用目录项分解法,把FCB分成两部分
一个FCB有48字节,符号目录项占 8字节(文件名6字节,文件号2字节),假设物理块512字节,某目录有128个文件。 采用改进的FCB组织方法,查找一个文件平均访盘次数。
每块存储的符号目录项:512/8=64
每块存储的基本目录项:512/42=12
128个文件,符号文件、基本文件分别需要:128/64=2, 128/12=11
平均访盘次数:(1+2)/2+1=2.5(最少一次查找符号目录,最多两次,取均值,再加上一次精准查找的基本目录项)
目录的组织
- 组织文件目录是文件系统的主要内容之一
- 有效性:快速定位一个文件
- 命名:用户使用方便
- 两个用户对不同的文件可以使用同一个文件名
- 同一个文件可能有不同的文件名
- 文件数据,元数据
- 空目录≠文件数为0的目录:不存在文件数为0的目录!
- 单级目录结构
- 所有文件都包含在同一目录中
- 缺点:查找速度慢;不允许重名;不便于共享;不能分组
- 两级目录结构
- 为每个用户创建单独的目录
- 用户文件目录UFD 主文件目录MFD
- 优点:不同用户可以有相同的文件名;提高了检索速度;将一个用户与另一个用户有效隔开
- 缺点:不利于文件的共享
- 树状目录结构
- 每一级目录可以包含文件,也可以包含下一级目录。
- 只有一个根目录,除根目录外,其余每个目录或者文件都有唯一的一个上级目录。(父目录、子目录)
- 优点:文件的层次和隶属关系清晰;便于实现不同级别的存取保护和文件系统的动态装卸
- 缺点:
- 不便于共享(相比较而言)
路径
从树根(namespace)到节点的唯一表达
不同文件→文件可以同名,但路径名不同。(路径名不同 ≠ 文件不同)
文件可按照相对于工作目录的方式访问:
绝对路径(absolute):从根目录开始指定
相对路径(relative):从当前工作目录开始(./当前目录)(../上一级目录)
练习:当前目录/spell/mail/copy 请用绝对和相对路径表达红色箭头文件
prog: ./prog ; /spell/mail/prog
find: .../programs/p/find ; /programs/p/find
all: /all ; /spell/mail/copy/all
first: ./prt/first ; /spell/mail/prt/first
无环图目录
在树型目录的基础上,允许多个目录项指向同一个数据文件或者目录文件,实现了目录或者数据文件的共享
一个文件或者目录在多个父目录中占有项目
目录结构不再是一颗树,而是一个无环图
实现共享文件:多个用户同时访问一个文件,可节约存储空间
数据复制:数据不一致
通过路径名共享:不灵活
链接:在多个目录中对要共享的文件建立相应的表项,一个文件或目录在目录树中多处出现(引用) 在外存上只有一份物理存储。
链接
硬链接:多个文件名链接到同一个索引结点,链接文件和被链接文件必须位于同一个文件系统中。
软链接:符号链接(symbolic link, shortcut) 特殊类型的文件,其内容是另一个目录或文件的路径。 无硬链接的限制,可跨盘,跨目录,甚至跨机器。建立符号链接文件,并不影响原文件→它们是独立的文件。
缺点: 空间和时间开销更大;如果设置不当,上下级目录关系可能会形成环状
硬链接和软链接的比较
硬链接
只允许文件链接,不允许目录链接;
只能在同一个文件系统范围内进行,不允许跨文件系统。
删除文件时,如果还有其他链接链至该文件,则该文件不能被删除。
软链接
访问速度相对慢一些,但适用范围和灵活性要大一些。
允许目录链接,允许在不同的文件系统间进行链接,这两个文件系统可以在同一个计算机上,也可以在不同的计算机上。
被链接文件的删除和符号链接的删除是完全独立的
通用图目录
无环图目录结构中,加上允许子目录对上层目录的引用的条件
允许环存在:搜索子目录时要避免无穷地循环搜索——限制访问目录的次数来确定;释放孤立环(orphan cycle)——垃圾回收(garbage collection) 。
文件管理:磁盘管理
磁盘存储器
文件存储空间的分配单位是磁盘块而非字节;
文件系统必须记录存储空间的使用情况;
文件系统对存储空间进行分配和回收;
常用的磁盘空间的管理方式有:
空闲分区表
概念
将空闲分区登记在一张表中,一个分区对应一个表项,每个表项包含有空闲分区号、分区起始块号、分区长度等主要信息,按起始块序号排序
特点
- 实现简单
- 将各空闲分区按照长度有序进行排列,能很快找到需要大小的空闲分区。 (排序规则不固定)
- 当空闲分区分布较分散且数量较多时,空闲分区表将会很大。
空闲分区链表
概念
利用空闲分区空间通过指针将各个空闲分区连接起来,并记载各空闲分区大小。
无空闲分区表的额外空间开销。
特点
回收由许多离散小分区组成的文件时,小分区链接到空闲分区链表中需要很长时间(按照某种规则,大小或者位置)。
类比可变分区管理
位示图
- 一个向量,每位(bit)对应于磁盘中的一个块(block)
- 空闲块:0,已使用块:1
- 方便地查找一个或一组连续的空闲分区。
- 位示图需要占用的存储空间大小
- 磁盘容量(字节数)/ (8×数据块大小) Byte
- 大位示图搜索将会降低文件系统的性能
成组块链接法
- 将所有空闲块每n块划分为一组,用索引表表示
- 每组的第一块用来存放后一组中各块的块号和总块数
- 各组间自然构成链表
- 第一组的块号与总块数放在一个专用栈中:空闲盘块号栈
- 栈计数count:栈中的空闲块数目
- 栈中的元素是空闲块编号
- 对块的分配和释放在栈中进行
分配方法
- 查看栈中是否count==1,若不是,那么就弹出栈顶元素N(表示可用磁盘块号),分配出去,--count;若是,弹出栈顶元素N,把空闲块N中的内容读入到栈中;返回空闲块编号N。因为所分配的磁盘块号是栈中最后一个可用盘块号,由于在该盘块中存放了下一组的所有盘块号,于是要先将该块的内容读入栈中,然后才能将该块分配出去
释放方法
- 被释放空闲块为编号N。查看是否栈已满,若不是,则N入栈,++count; 若是,则将栈(包括栈计数)写入到空闲块N,然后把N放入栈顶并置count为1。说明栈已满,须先将栈中所有盘块号复制到新回收的盘块中,再将新回收盘块的编号放到栈中,成为栈中第一个盘块
例题
解:92=41+50+1,所以是#400最下面的一个,也就是401。
文件一致性:盘块
链接数一致性检查
每个目录项都含有一个索引结点号
共享文件的索引结点号会在目录中出现多次
若某文件被共享(硬链接)N次,其索引结点号会在目录中出现N次;
另一方面,该共享文件索引结点中的链接计数count,用来指出共享本文件的引用数。
正常情况下这两个数据应该一致
数据块使用数组和空闲数组互补
文件执行
数据结构
用户打开文件表:每个进程一个,记录用户打开文件
系统文件打开表:整个系统一张:放在内存,用于保存已打开文件的FCB文件号、共享计数(打开共享)、读写位置、打开模式、修改标志等;指向内存inode(也有共享计数)
内存inode表:操作文件时要将磁盘inode加载到内存中;访问速度;共享控制(计数)
三张表之间的关系
文件共享
不同进程独立访问
同进程复制fd:dup() / dup2() / fcntl()
跨进程复制fd:fork()
fork()可以共享文件,但是fork()以后打开文件则不共享
文件操作
执行过程
create:实质是建立FCB,返回一个文件描述符
open:把FCB送到内存,创建用户、系统打开文件表项,建立与内存inode三者关联,返回文件描述符
close:缓存数据写回磁盘;清理用户文件打开表;清理系统文件打开表;清理内存inode表
虚拟文件系统 VFS
支持面向对象式的文件系统实现——多态
用户程序:统一接口
底层支持:不同文件系统
VFS接口:API,而非具体的文件系统实现
相关文章:

电子科技大学操作系统期末复习笔记(五):文件管理
目录 前言 文件管理:基础 基本概念 文件 文件系统 文件系统的实现模型 文件的组成 文件名 文件分类 文件结构 逻辑结构 物理结构 练习题 文件管理:目录 文件控制块FCB FCB:File Control Block FCB信息 目录 基本概念 目…...

SpringBoot+ActiveMQ-发布订阅模式(生产端)
SpringBootActiveMQ-发布订阅模式(生产端)Topic 主题* 消息消费者(订阅方式)消费该消息* 消费生产者将发布到topic中,同时有多个消息消费者(订阅)消费该消息* 这种方式和点对点方式不同…...

Android实例仿真之三
目录 四 Android架构探究 五 大骨架仿真 六 Android实例分析思路拓展 四 Android架构探究 首先,Android系统所带来的好处,就在于它本身代码的开放性,这提供了一个学习、借鉴的平台。这对分析仿真而言,本身就是一大利好…...

关于MySQL的limit优化
1、前提 提示:只适用于InnoDB引擎 2、InnoDB存储特点 它把索引和数据放在了一个文件中,就是聚集索引。这与MyISAM引擎是不一样的。 3、SQL示例 -- 给cve字段建立索引 select * from cnnvd where cveCVE-2022-24808 limit 300000,10;由于M…...
Java-Stream流基本使用
collection.stream将会破坏原有的数据结构,可以通过collect方法收集,可以用Collectors提供的构造器,add等方法构造形成新的数据结构。 HashSet<List<Integer>> rs new HashSet<>(); rs.stream().toList();Collection集合转…...

Liunx(狂神课堂笔记)
一.常用命令 1. cd 切换目录 cd ./* 当前目录cd /* 绝对路径cd .. 返回上一级目录cd ~ 回到当前目录pwd …...
【史上最全面esp32教程】点灯大师篇
文章目录前言ESP32简介认识arduino的两个函数点灯步骤函数介绍LED灯闪烁流水灯总结前言 esp32有很多的功能,例如wifi,蓝牙等,这节我们学习最简单的点灯。 提示:以下是本篇文章正文内容,下面案例可供参考 ESP32简介 …...

【Java 面试合集】内存中为什么要区分栈和堆
内存中为什么要区分栈和堆 1. 概述 嗨,大家好Java 面试合集又来了,今天我们分享的主题很大众化以及普通。无论是Java 语言本身还是别的语言都会有所涉及,但是今天我们从Java角度来讲下 2. 分析 今天我们会从多个方向来分享这个话题 2.1 栈是…...

【NLP实战】Python字符串处理
一、Python字符串基本操作 1. 去掉前后的特殊字符(strip) Python的strip操作可以去除字符串前后的空格(不改变原串)下例将前后的空格均删掉👇 str 人工智能 str.strip() # OUT:人工智能rstrip删除右边的空格&a…...

17.CSS伪类
举一个简单的例子来说明什么是伪类? 从之前的代码中,如下图,我们像给这两个列表中的某一列单独设置样式,我们该如何做呢? 我们肯定会选择在li标签上添加class去实现,如下 开始标记结束标记实际元素 <…...

数据链路层
一.以太网数据链路层考虑的是相邻两个节点(通过网线/光纤、无线直接相连的两个设备)之间的传输,这里的典型协议中最知名的就是“以太网”这个协议了数据链路层,也规定了物理层的内容以太网帧格式:IP地址用来描述整个传…...

投票需要什么流程微信投票互助平台的免费投票平台搭建
“最美家政人”网络评选投票_免费小程序投票推广_小程序投票平台好处手机互联网给所有人都带来不同程度的便利,而微信已经成为国民的系统级别的应用。现在很多人都会在微信群或朋友圈里转发投票,对于运营及推广来说找一个合适的投票小程序能够提高工作效…...

数据结构——算法的时间复杂度
🌇个人主页:_麦麦_ 📚今日名言:生命中曾经有过的所有灿烂,都终究需要用寂寞来偿还。——《百年孤独》 目录 一、前言 二、正文 1.算法效率 1.1如何衡量一个算法的好坏 1.2算法的复杂度 2. 时间复杂度 2.1时间复杂度的…...
Go基础-类型
文章目录1 bool2 有符号整数3 无符号整数4 浮点数5 复数6 string7 关于类型转型1 bool bool类型有两个值,一个是true,一个是false。 测试 package mainimport "fmt"func main() {a : trueb : falsec : a && bd : a || bfmt.Println(a…...

良许翻天覆地的2022年
大家好,我是良许,新年快乐呀~ 在我女室友坚持不懈的努力之下,2022年的最后一天我终于被她传染了,阳了~ 此时的我,正顶着37多度的低烧写下这篇年终总结。 2022年,对于大多数人而言,封控是主旋…...

node+vue微信小程序的社区后勤报修系统
社区后勤报修系统小程序进行总体设计和详细设计。总体设计主要包括小程序功能设计、小程序总体结构设计、小程序数据结构设计和小程序安全设计等:详细设计主要包括社区后勤报修系统小程序数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对社区后…...

WSL(Windows Subsystem for Linux)
一、WSL优势 •传统方式:获取Linux操作系统环境,必须安装完整的虚拟机,如VMware•WSL:以非常轻量化的方式,得到Linux系统环境总结:WSL更方便,简单、好用、轻量化、省内存 二、什么是WSL ①不…...
华为OD机试题 - 单词反转(JavaScript)
最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试题 - 最小步骤数(JavaScript) 华为OD机试题 - 任务混部(JavaScript) 华为OD机试题 - N 进…...
人工智能原理复习 | 产生式系统的搜索策略
文章目录 一、回溯策略二、图搜索策略三、A 算法与 A* 算法CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 主要内容:回溯策略、图搜索策略(无信息的图搜索、启发式的图搜索)、A 算法与 A* 算法 一、回溯策略 回溯算法(BackTracking Algorithm) 实际上是一个类似枚举的搜…...

初始C语言 - 数组(一维数组、二维数组、数组越界、数组传参)
目录 一、一维数组的创建和初始化 1、数组的创建 2、 数组的初始化 3.一维数组的使用 数组通过下标来访问 总结: 1. 数组是使用下标来访问的,下标是从0开始。 2. 数组的大小可以通过计算得到。 4、一维数组在内存中的存储 二、 二维数组的创建和初始化 1.二…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...