【论文】操作系统文件管理模块设计_第1页
【论文】操作系统文件管理模块设计_第2页
【论文】操作系统文件管理模块设计_第3页
【论文】操作系统文件管理模块设计_第4页
【论文】操作系统文件管理模块设计_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统文件管理模块设计 要 操作系统课程综合性强涉及面广,实验容量很大。但是学时是有限的。如何让同学们在最短的时间内,学到最多的知识是摆在老师和同学们面前的问题。设计一套小巧简单的模拟操作系统做参考实例,是解决这一问题的捷径。模拟操作系统简化了复杂的构造,着重突出核心思想,便于学习者参考理解。本次毕业设计就是遵循这一思想设计并实现了一个模拟文件系统。该文件系统的特点: 用了精简的数据结构和简便的算法,程序长度适中,非常适合做初学者编程实现操作系统时的参考程序。 求分析,概要设计,详细设计,编码,测试。 时下热门的操作系统,是操作系统未来的发展方向。通过测试证明模拟文件系统可以实现如下功能:新建文件、读取文件、删除文件、新建目录、访问目录、删除目录、显示当前目录信息、显示当前路径等。该模拟文件系统可扩展性非常强,适合同学们以此为基础进行创新。最终可以统一接口,发展成一个完整的模拟操作系统。 关键词 : 模拟 操作系统 文件系统 操作系统文件管理模块设计 he is to It is of of is to as as in is a of as a is is a to is to be by of a it by of is as of of is is to be to to of of is of 3. is of in is of of in as so is to be of At it be a by 作系统文件管理模块设计 录 第一章 前 言 .作系统概述 .件系统概述 .作系统的学习难点 .决方案 .章小结 .二章 文件系统理论基础 .件系统的定义 .件与文件系统 .件的逻辑结构和存取方法 .文件的物理结构和存储设备 . 连续文件. . 9 联文件. . 10 引文件. . 11 件 物理结构比较. 11 文件的存储空间管理 .文件目录 .章小结 .三章 台开发基础 .述 .习 意义 .台下的 C 语言程序开发和调试 . 译器使用基础 . 18 试器的基本用法 . 20 辑器 . . 21 章小结 .四章 模拟文件系统需求分析 .济可行性分析 .施可行性分析 . 平台选择. . 25 发语言选择. 2 6 发模型选择. 2 6 现目标 .章小结 .五章 模拟文件系统概要设计 .体数据结构 . 块结构. . 28 闲块表. . 29 件信息表. 29 序执行流程 .作系统文件管理模块设计 式化 .令实现 .章小结 .六章 模拟文件系统详细设计 .据结构 . 块结构. . 37 闲块表. . 37 件信息表. 37 能函数 . 主调函数. . 38 式化函数. 39 令 和参数获取函数. 39 建文件函数. 3 9 除文件函数. 4 0 取文件函数. 4 1 建目录函数. 4 1 取 当前目录信息函数. 42 问目录函数. 4 2 除目录函数. 4 2 示当前路径函数. 43 章小结 .七章 模拟文件系统测试 .试流程 .试用例 .试结果 .章小结 .八章 结论与展望 .论 .望 . 考 文 献 . 谢 . 录 . 明 .作系统文件管理模块设计 1第一章 前 言 作系统概述 操作系统(称 是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计 算机系统的核心与基石。 它的职责通常(但并非绝对) 包括对硬件的直接监管、对 各种计算资源(如内存、处理器时间等)的管理、以及提供诸如作业管理 之类的面向应用程序的服务等等。操作系统的理论是计算机科学中一个古老而又活跃的分支,而操作系统的设计与实现则是软件工业的基础与核心。 操作系统的概念是比较含混的,在历史上几乎没有过精确的、被广泛接受的定义,同时,随着操作系统本身的不断发展,它的概念也在不断的变化。 归纳起来,操作系统有以下四种定义: 1硬件与应用程序之中介 即操作系统是直接操控硬件并支撑应用程序运行的软件。从逻辑上来说,也就是应用程序与硬件打交道的中介。 这种定义是最常用的,但是不足之处在于,很多嵌入式系统中的应用程序是直接与硬件交互的。 2应用程序之公共交集 即操作系统是实现所有应用程序都需要的基本功能的软件的集合。 3应用程序之公共补集 即操作系统是所有实现必要但是不被任何应用程序所提供的功能的软件的集合。这种定义是最能够体现现代操作系统特性的定义。 4所有预装软件之集合 操作系统一词往往被误用,很多非专业人士都常常错误的使用它来泛指所有计算机上被厂家预装的软件。这种用法显然属于对术语的滥用,但它的使用面非常之广,以至于可以见于相当数量的专业刊物。 操作系统的历史在某种意义上来说也是计算机的历史。操作系统提供对硬件控制的调用和应用程序所必需的功能。 背景: 早期的计算机没有操作系统。用户有单独的机器,他(她)会带着记录有程序和数据的卡片 (较 后期的打孔纸带去操作机器。程序读入机器后,机器就开始工作直到程序停止。由于程序难免有误,所以机器通常都会中途崩溃。程序一般通过控制板的开关和状态灯来调试。据说图灵能非常熟练地用这操作系统文件管理模块设计 2种方法操作 机器。 后来,机器引入帮助程序输入输出等工作的代码库。这是现代操作系统的起源。然而,机器每次只能执行一件任务。在英国剑桥大学,这些任务的磁带从前是排成一排挂在衣钩上的,衣钩的颜色代表任务的优先级。 概念意义上的操作系统和通俗意义上的操作系统差距越来越大。通俗意义上的操作系统为了方便而把最普通的包和应用程序的集合包括在操作系统内。随着操作系统的发展,一些功能更强的“第二类”操作系统软件也被包括进去。在今天,没有图形界面和各种文件浏览器已经不能称为一个真正的操作系统了。 大型机时代: 早期的操作系统非常多样化,生产商生产出针对各自硬件的系统。每一个操作系统都有很不同的命令模式、操作过程和调试工具,即使它们来自同一个生产商。最能反映这一状况的是,厂家每生产一台新的机器都会配备一套新的操作系统。这种情况一直持续到二十世纪六十年代 司开发了 60 系列机器。尽管这些机器在性能上有明显的差异,但是他们有统一的操作系统60(在开发 60 过程中遇到的问题在 的软件工程经典之作人月神话中详细地叙述了) 60 的成功陆续地催化出 A、S/390和 z/小型机和 崛起: 作系统是由 公司开发出来的。由于它的早期版本是完全免费的,可以轻易获得并随意修改,所以它得到了广泛的接受。后来,它成为开发小型机操作系统的起点。由于早期的广泛应用,它已经成为的操作系统的典范。不过,它始终属于 公司,只有那些能负担的起许可费的企业才用得起,这限制了它的应用范围。 早期的操作系统是可以被用户软件所利用的功能的集合。一些有能力的公司发展更好的系统,但他们不支持其他公司硬件的特性。 60 年代末 70 年代初,几种硬件支持相似的或提供端口的软件可在多种系统上运行。早期的系统已经利用微程序来在他们的系统上实现功能。事实上,除了360/165和360/168外,360/40之后的大部分360系列的机器都实行微程序设计。 个人计算机时代:以后: 微型处理器的发展使计算机的应用普及至中小企及个人爱好者。而计算机的普及又推动了硬件组件公共接口的发展(如 I, ,并逐渐地要求有一种“标准”的操作系统去控制它们。在这些早期的计操作系统文件管理模块设计 3算机中,主要的操作系统是 8080/8085/的 建立在数位研究公司(前几个针对 构的操作系统的基础上。在此基础上又产生了 司的 。这些计算机在 读存储器)都有一个小小的启动程序,可以把操作系统从磁盘装载到内存。这一思想的延伸。自 1981 年第一台 生以来,功能得到不断地增强。 随着显示设备和处理其成本的降低,很多操作系统都开始提供图形用户界面。如:许多 供的 X 类的系统、微软的 统、苹果公司的 统和 司的 等。最初的图形用户界面是由 0 年代初期研发出来的,之后被许多公司模仿,继承发展。 常见操作系统都具备下列模块: 1用户机界面 2进程管理 3处理机调度 4存储管理 5文件系统 6设备管理 对操作系统的研究和学习也从上面的六个方向着手。 件系统概述 对大多数用户来说,文件系统是操作系统最直接可见的部分。计算机的重要作用之一就是能快速处理大量信息,从而,信息的组织、存取和保管成为一个极为重要的内容。文件系统是计算机组织、存取和保存信息的重要手段。 文件系统必须完成的工作: 1为了合理的存放文件,必须对磁盘 等辅助存储器空间(或称文件空间)进行统一管理。在用户创建文件时为其分配空 闲区。而在用户删除或修改某个文件时,回收和调整存储区。 2为了实现按名存取,需要有一个用 户可见的文件逻辑结构,用户按照文件逻辑结构所给定的方式进行信息的存取和加 工。这种逻辑结构是独立于物理存储设备的。 3为了便于存放和加工信息,文件在 存储设备上应按一定的顺序存放。这种存放方式被称为文件的物理结构。 4完成对存放在存储设备上的文件信息的查找。 操作系统文件管理模块设计 45完成文件的共享和和提供保护功能。 文件系统的理论基础将在第二章具体讨论。 作系统的学习难点 计算机系统一般分成四层:硬件层,操作系统层,编程层和应用软件层。从这个分层关系中可以看出。操作系统是硬件和软件的连接层。这就对操作系统的学习和研究人员提出了较高的要求:既拥有一定的硬件基础,也具备扎实的软件功底。所以在学习操作系统之前,一定要先对计算机组成原理,数据结构,面向对象编程,面向过程编程,等基础知识了然于胸。 操作系统的学习又很多自身的特点: 1与纯硬件学习的不同点:操作系统 的很多概念并没有实际物体与之对应。因此显得很抽象,不太容易理解。 2与纯软件学习的不同点:并没有完 全屏蔽底层硬件。对软件的学习要和硬件本身充分的结合,才能理解其精髓。 上述两个不同点也正是操作系统的学习难 点所在。大多数人在学习计算机时都会把学习重心偏移到软件或者硬件上。真正“软硬兼施”的很少。所以能够做到真正理解操作系统并不是一件容易的事。 在操作系统教学过程中,实验是非常重要 的一环,但学时太有限,想在短时间内从头到尾编程实现操作系统,是很困难的事情,这也是一直以来困扰很多老师和同学的问题。 决方案 首先一定要学习一些前序课程如:计算机组成原理、数据结构、面向过程编程、面向对象编程、C 语言、汇编语言、等等。 计算机组成原理是计算机硬件基础。操作系统的实现基础就是形形色色的数据结构以及算法。面向过程和面向对象是编程思想,C 和汇编是编程语言。 在有了上述软硬件基础之后,还要选择一个容易的切入点。这样有利于由浅入深,循序渐进。从文件系统入手就是一个不错的选择。对大多数用户来说,文件系统是操作系统最直接可见的部分。 普通使用者对操作系统的认识都是从文件系统开始的。 这符合通常认识事物的习惯。 文件系统更多的是软件层面上的应用,学习文件系统不需要太多的硬件知识(当然,设备文件除外) 。之后再接触存储管理和进程管理,循序渐进,逐步接近硬件。文件系统是对这个操作系统模块的操作系统文件管理模块设计 5一个非常形象的描述, 它不像进程那般的抽象。 学习时在脑海中很容易形成概念。 对于计算机最重要, 最有效的学习方式就是实践。 只有真正动手做了一件事,才能彻底了解其精髓。 所以想学好操作系统就要动手编程序去实现操作系统中的具体功能。 父)就是在上大学本 科的时候,为了了解作系统的内部构造,并扩展 己动手写出现今操作系统领域为人津津乐道的 雏形。由此可见,自己编程实现操作系统的部分功能并不是一件高不可攀的工作,本科生是完全可以胜任的。编程实现的过程不仅有助于彻底理解操作系统中的各个概念,更能锻炼编程能力,一举多得。操作系统是各门计算机基础课程的综合,对它的学习非常有利于将以往学过的知识融会贯通。 但是在编程时,并不必要需要每一个细节都去思考。这样做学习效率不高,同学们不是操作系统的研发者,而是操作系统的学习者。基于这个定位,在编程实践的过程中,实际是需要一些现成的代码供同学们参考学习。这些代码可以是开发框架,在其基础上可以添枝加叶;也可以是针对某个模块的完整代码,供学习者阅读理解。现行的操作系统课程是有试验这个实践环节的。但是课时非常有限,在这个有限的时间内如果让大家从头到尾写代码非常不现实。虽然试验指导书上有参考程序,但是那些程序错误百出,没有注释,讲解的也非常概括,更重要得是涵盖面太广重点不突出。总而言之,就是不适于短时间的试验。 为了解决上面的问题,可以考虑编写一个短小精悍,正确无误,注释详细的小程序,这个程序能体现核心的数据结构,去除细枝末节,不涉及复杂的算法和辅助功能。当然,程序的可扩展行也是很重要的。学习者在参考这个程序的时候可以掌握最基本的实现方法,在时间能力和兴趣允许的情况下,可以自己修改算法,添加功能。由此学习者可以在较短的时间内获得最大的收益,既学到了最基础的知识,自己又能在这之上有所创新。 这次毕业设计就是从这个思想出发,开发一个教学用的文件系统。从文件系统本身的实现,到开发环境的使用均有详细叙述。非常适合初学者介入文件系统的学习和开发。 章小结 本章对操作系统和文件系统作了简要概述。并分析了操作系统课程的学习难点。为了解决这一问题,提出了一个实践带动学习的解决方案。本次设计中的模拟文件系统的就是这个方案实施的一部分。 操作系统文件管理模块设计 6第二章 文件系统理论基础 件系统的定义 文件系统是操作系统中负责管理和存取文件信息的软件机构,它是由管理文件所需的数据结构和相应的管理软件以及访问文件的一组操作组成。 从系统的角度看:文件系统是一个负责文件存储空间管理的机构。 从用户的角度看:文件系统是用户在计算机上存储信息和使用信息的接口。 文件系统应具有以下功能: 1文件的组织管理; 2文件的存储空间管理; 3提供用户共享文件的机制; 4提供文件的保护功能; 件与文件系统 1文件是具有符号名的信息(数据)项的集合。 2文件名 根据文件的定义,每个文件必须有一个唯一的文件名,不论是系统管理,还是用户使用文件都使用文件名。文件名是一个有限长度的字符串。 统中文件名:文件名 文件扩展名 文件名是一个不大于 8 个字符的字符串,但 统中允许超长文件名,最多可有 256 个字符,不区分英文字母的大小写。 文件扩展名:不大于 3 个字符,一般用来表示文件的类型。例如: C 可执行文件(小模式) 可执行文件(大模式) 批处理文件 目标文件 统中的文件名: 文件名是一个不大于 14 个字符的字符串。并且区分英文字母的大小写。 例如: a 注意:在 统中文件名就是一个字符串,没有文件名和文件扩展名之分,文件的类型由用户命名时确定。例如, 统认为这个文件名的长操作系统文件管理模块设计 7度是 4 个字符。而在 统中则解释这个文件名, 文件名,c 是文件扩展名,表示该文件是一个 C 语言的源程序文件,而 是文件名和文件扩展名的分隔符。 3文件的分类 以 统文件分类方法为例: ( 1)普通文件:普通文件是无结构的字符的集合。 ( 2)目录文件:目录文件是由文件的目录项组成的文件。 ( 3)特别文件:特别文件就是设备。 4文件的属性 文件属性反映文件的类型、存取控制、等 统中文件属性: 普通文件 d 目录文件 p 管道文件 c 字符型设备文件 b 块设备文件 件的逻辑结构和存取方法 1可以用两种不同的观点去进行研究文件结构 ( 1)用户观点 : 是研究用户 “思维 ”中的抽象文件,或称逻辑文件,其研究的侧重点在于为用户提供一种逻辑结构清晰、使用简便的逻辑文件形式。用户将按照这种形式去存储、检索和加工有关文件中的信息。 ( 2)实现观点 : 是研究驻留在设备 “介质 ”中的实际文件,或称物理文件。它研究的侧重点是选择一些工作性能良好、设备利用率高的物理文件形式。系统将按照这种形式同外部设备打交道并控制信息的传输 2文件的组织有两种: ( 1)文件的逻辑结构: 文件的逻辑结构是指用户思维中文件的结构。逻辑结构分为: 无结构文件流式文件 有结构文件记录式文件。 流式文件: 无结构的流式文件是相关的有序字符的集合。文件的长度为所含字符数。操作系统文件管理模块设计 8统中的普通文件都是流式文件。 记录式文件: 记录式文件是一种结构式文件,文件是记录的集合 . 每个记录由彼此相关的域构成。记录可按顺序编号为记录 1,记录 2, ,记录 n。如果文件中所有记录的长度都相同, 则这种文件为定长记录文件。 定长记录文件的长度 = 记录个数 x 记录长度。变长记录文件的长度为各记录长度之和。 例如:学生登记表文件 名 学号 籍贯 通信地址 邮政编码 李铭 725678 武昌 武昌关山街 125 号 430074 司马乐 925679 北京 北京海军路 88 号 100034 两种文件的比较 流式文件就象给用户一张白纸,用户可将他的信息任意地写到纸上,没有任何格式上的限制。记录式文件就象给用户一张表格,用户要按表规定的格式填信息。显然,结构式文件对用户的限制很大,使用起来就不方 便。 ( 2)文件的物理结构: 文件的物理结构是指文件在存储介质上的结构(或称组织) 。在当代,文件的存储介质是磁盘,包括软盘、硬盘和光盘 、磁带,早期还有磁鼓。由于目前的磁盘是模拟磁带的结构, 所以文件的物理结构主要是指磁盘上文件的结构。 3存取方法 顺序存取:后一次存取总是在前次存取的 基础上进行的。每次存取不必给出存取开始的位置。 随机存取:每次存取操作都要指定存取操作的开始位置。 文件的物理结构和存储设备 一个文件存储介质,格式化后就分成许多大小相等的单位存储块(物理盘块) ,在现代计算机系统中,一般来说,每个物理块是一个磁盘的扇区, 512字节。并给每个存储块有个编号,称为物理块号。文件的物理结构指文件在存储介质上质结构,目前有三种基本结构,即连续文件结构、串联文件结构和索引文件结构。 文件的物理结构指文件在存储介质上质结构,目前有三种基本结构,即连续文件结构、串联文件结构和索引文件结构。 操作系统文件管理模块设计 9图 盘结构 续文件 图 理块示意图 操作系统文件管理模块设计 10评价: 优点:结构简单,实现容易,不需要额外的开销。 缺点:用户创建文件时要给出文件的大小;不利于文件的动态增加和修改;连续文件是一种连续结构的文件, 对每个文件要求存放在存储介质上的连续的物理块中,存储空间利用率不高。类似于存储管理中的分区管理。适用于变化不大的顺序访问的文件,在流行 的 统中仍保留了连续文件结构。 联文件 一个串联 (链接 )文件结构是用非顺序的物理块来存放文件信息,即文件的信息按存储介质的物理特性存于若干块中。每个物理块的最末一个字 (或第一个字 )作为链接字,它指出后继块的物理地址。链首指针存放在该文件目录中。文件的结尾块的指针为 “ ”。这种文件结构不要求连续存放。对于记录式文件一块中可包含一个逻辑记录或多个逻辑记录,也可以若干物理块包含一个逻辑记录。 图 联文件结构图 评价: 操作系统文件管理模块设计 机存取效率低,如果访问文件的最后的内容,实际上是要访问整个文件。类似于存储管理中的页式管理。 引文件 索引结构要求系统为每个文件建立一张索引表,表中每一栏目指出文件信息所在的逻辑块号和与之对应的物理块号。 索引表的物理地址则由文件说明信息给出。 图 件系统多级间接索引结构 件物理结构比较 连续文件的优点是不需要额外的空间开销,只要在文件目录中指出文件的大小和首块的块号即可,对顺序的访问效率很高。适应于顺序存取。缺点是动态地增长和缩小系统开销很大;文件创建时要求用户提供文件的大小;存储空间浪费较大。 操作系统文件管理模块设计 12串联文件克服了连续文件的不足之处,但文件的随机访问系统开销较大。 索引文件既适应于顺序存访问,也 适应于随机访问,是一种比较 好的文件物理结构,但要有用于索引表的空间开销和文件索引的时间开销。 统是使用索引结构成功的例子。 在当前流行的一些 作系统的版本中,同时支持连续文件结构和索引文件结构。 统支撑类似于索引文件结构 文件的存储空间管理 文件存储空间管理的方法:空白文件、空闲块链和位图。 1空白文件目录 空白文件:一个连续未用的空白盘区。 第一个物理块号 空白块个数 15 4 23 10 图 白文件 2空闲块链 图 闲块链 操作系统文件管理模块设计 133位示图 系统在内存中划出若干个字节,每个比特 对应一个物理块,若分出去该位为1,反之为 0。 图 示图 4分配策略 空闲块的分配有静态分配和动态分配两种。 在静态分配中,用户在建立文件时宣布文件的大小,系统一次分配其所需要的全部区域。 在动态分配中,用户在建立一个文件时,系统并不分配存储空间,而是在每次写信息时才按所写信息的大小进行分配。 文件目录 文件由文件体和文件说明部分组成。 1文件目录: 文件目录即文件名址录。它是一张记录所有文件名及其存放地址、文件的说明和控制信息的表格。一般情况下,每个文件占用一个表目,即每个文件有一 个文件的目录项。 2文件目录项: 操作系统文件管理模块设计 14( 1)文件名 ( 2)文件的大小,单位:字节 ( 3)文件在物理存储介质中的位置。取决于文件的物理结构。对于连续文件:文件起始块号(即文件的第一个物理块块号) ;对于串联文件:指向第一个物理块的指针;对于索引文件:索引表。 ( 4)存取控制信息:文件主和其它用户对该文件的访问权限。 ( 5)管理信息:包含文件创建的日期和时间,最近修改该文件的日期和时间等。 ( 6)文件的类型 3一级文件目录 最简单的文件目录结构是在系统中建立一张线性表,每个文件占一表目,由文件名和文件的说明和管理信息组成。这样的表称为一级文件目录。一级文件目录的主要功能是实现 “按名存取 ”, 并且实现容易。 4多级目录结构 目录文件由文件的目录项组成的文件称为目录文件。系统中有一个根目录(或根目录文件) ,在这个目录中可登记一般文件,也可以登记目录文件,在每个目录文件中可以登记一般文件,也可以登记目录文件。根据这个递归定义就形成了一个倒立的树的结构。对于一棵树,它有一个树根(只有一个,根目录) ,在树根上可以长树叶(一般文件) ,也可以长树枝(子目录文件) ;对于每个树技又可以长树枝,也可以长树叶。 路径名 :一个文件的路径名是由根目录到 该文件的通路上所有目录文件名和该文件的符号名组成的。 统中文件路径名: ART B D BP 统中文件路径名 /A/R/T /B/ /D /B/P 5目录管理 ( 1)文件目录使用时的存放: 全部复制到内存 把使用的那部分文件的目录复制到内存 ( 2)打开文件 ( 3)关闭文件 操作系统文件管理模块设计 章小结 本章介绍了模拟文件系统设计中涉及的基础知识。有了对这些基本概念了解编程实践才能开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论