文件的逻辑结构
1.操作系统的概念与功能2.操作系统的特征3.操作系统的发展与分类4.操作系统的运行机制5.中断和异常6.系统调用7.计算机系统体系结构8.操作系统引导 (Boot)9.虚拟机10.进程的概念、组成、特征11.进程的状态与转换、进程的组织12.进程控制13.进程通信14.线程的概念、作用和属性15.线程的实现方式和多线程模型16.线程的状态与转换、组织与控制17.调度的概念与层次18.进程调度的时机、方式、切换与过程19.闲逛进程20.调度算法的评价指标21.调度算法22.调度算法(一)23.调度算法(二)24.调度算法(三)25.进程同步与进程互斥26.进程互斥的软件实现方法27.进程互斥的硬件实现方法28.互斥锁29.信号量机制30.信号量实现进程互斥、同步、前驱关系31.生产者-消费者问题32.多生产者-多消费者问题33.吸烟者问题34.读者-写者问题35.哲学家进餐问题36.管程37.死锁38.死锁的处理策略39.(一)预防死锁40.(二)避免死锁41.(三)死锁检测和解除42.内存的基础知识43.内存管理的概念44.覆盖与交换45.连续分配管理方式46.动态分区分配算法47.基本分页存储管理的基本概念48.基本地址变换机构49.具有快表的地址变换机构50.两级页表51.基本分段存储管理方式52.段页式管理方式53.虚拟内存的基本概念54.请求分页管理方式55.页面置换算法56.页面分配策略57.内存映射文件58.初识文件管理
59.文件的逻辑结构
60.文件目录61.文件的物理结构(文件分配方式)62.逻辑结构与物理结构63.文件存储空间管理64.文件的基本操作65.文件共享66.文件保护67.文件系统的层次结构68.文件系统的全局结构(布局)69.虚拟文件系统&文件系统挂载(安装)70.IO设备的概念和分类71.IO控制器72.IO控制方式73.IO软件层次结构74.IO应用程序接口&设备驱动程序接口75.IO核心子系统76.假脱机技术(SPOOLing技术)77.设备的分配与回收78.缓冲区管理79.磁盘的结构80.磁盘调度算法81.减少延迟时间的方法82.磁盘的管理83.固态硬盘文件的逻辑结构
重点:顺序表可以实现“随机访问”,而“链表”无法实现随机访问。
理解:这里的“随机”并不是平常认知中的随机,不是指访问的对象不确定,而是说“任意访问”,你想访问不论哪一个数据元素,在很短时间内都能访问到。
有结构文件根据各条记录的长度(占用的存储空间)是否相等,可分为:
- 定长记录
- 可变长记录
一、顺序文件
顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。
记录长度:
- 定长
- 可变长
记录存储方式:
- 顺序存储:逻辑上相邻的记录物理上也相邻(类似于顺序表)
- 链式存储:逻辑上相邻的记录物理上不一定相邻(类似于链表)
记录结构(顺序):
- 串结构:记录之间的顺序与关键字无关(通常按记录存入的时间决定记录的顺序)
- 顺序结构:记录之间的顺序按关键字顺序排列
重点:
-
一般说的顺序文件指物理上顺序存储的顺序文件(不会是链式存储!)
-
链式存储和可变长记录的顺序存储都无法实现随机存取
-
定长记录的顺序存储可以实现随机存取
理解:要区分体会随机存取和快速找到某关键字对应的记录两者的不同。后者是前者的更进一步。
二、索引文件
场景:由上文可知,定长记录的顺序存储才可以实现随机存取。但实际中很多应用场景中必须使用可变长记录,则如何解决可变长记录必须先顺序查找前 i-1 个记录才能找到第 i 个记录的效率问题?
——建立索引表。
- 索引表本身是定长记录的顺序文件。因此可以快速找到第 i 个记录对应的索引项。
- 可将关键字作为索引号内容,若按关键字顺序排列,则还可以支持按照关键字折半查找。
- 每当要增加/删除一个记录时,需要对索引表进行修改。由于索引文件有很快的检索速度,因此主要用于对信息处理的及时性要求比较高的场合。
- 另外,可以用不同的数据项建立多个索引表。如:学生信息表中,可用关键字“学号”建立一张索引表。也可用“姓名”建立一张索引表。这样就可以根据“姓名”快速地检索文件了。(Eg: SQL 就支持根据某个数据项建立索引的功能)
三、索引顺序文件
场景:由上文可知,建立索引文件相较于单纯的顺序文件有更好的泛用性和高效性。但索引文件也可能有以下缺点:
——建立索引顺序文件。
索引顺序文件是索引文件和顺序文件思想的结合。索引顺序文件中,同样会为文件建立一张索引表,但不同的是:并不是每个记录对应一个索引表项,而是一组记录对应一个索引表项。
对于分组后每组内仍然存在较多的记录导致查找次数仍然较多的场景:
——建立多级索引顺序文件。
如:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!