操作系统模拟文件管理
操作系统文件管理实验报告
操作系统文件管理实验报告操作系统文件管理实验报告一、实验目的操作系统是计算机系统中的核心软件之一,负责管理计算机硬件资源和提供用户与计算机硬件之间的接口。
文件管理是操作系统的重要功能之一,它涉及到文件的创建、读取、写入、删除等操作。
本次实验旨在通过编写简单的文件管理程序,加深对操作系统文件管理机制的理解。
二、实验环境本次实验使用C语言编写,运行在Linux操作系统上。
实验过程中使用了gcc 编译器和Linux系统提供的文件管理函数。
三、实验内容1. 文件的创建在操作系统中,文件是存储在存储介质上的数据集合。
文件的创建是指在存储介质上分配一块空间,并为其分配一个唯一的文件名。
在本次实验中,我们使用了Linux系统提供的open函数来创建文件。
open函数接受两个参数,第一个参数是文件名,第二个参数是文件的打开模式。
通过调用open函数,我们可以在指定的路径下创建一个文件。
2. 文件的读取和写入文件的读取和写入是文件管理的核心操作。
在本次实验中,我们使用了Linux 系统提供的read和write函数来实现文件的读取和写入。
read函数接受三个参数,第一个参数是文件描述符,第二个参数是存储读取数据的缓冲区,第三个参数是要读取的数据的长度。
write函数也接受三个参数,第一个参数是文件描述符,第二个参数是要写入的数据的缓冲区,第三个参数是要写入的数据的长度。
通过调用read和write函数,我们可以实现对文件的读取和写入操作。
3. 文件的删除文件的删除是指在存储介质上释放文件占用的空间,并删除文件的相关信息。
在本次实验中,我们使用了Linux系统提供的unlink函数来删除文件。
unlink函数接受一个参数,即要删除的文件名。
通过调用unlink函数,我们可以删除指定的文件。
四、实验步骤1. 创建文件首先,我们使用open函数创建一个文件。
在调用open函数时,需要指定文件的路径和文件的打开模式。
文件的路径可以是绝对路径或相对路径,文件的打开模式可以是只读、只写、读写等。
《操作系统》课程教案
《操作系统》课程教案第一章:操作系统概述1.1 学习目标理解操作系统的概念、作用和重要性掌握操作系统的基本功能和分类了解操作系统的历史和发展趋势1.2 教学内容操作系统的定义和作用操作系统的功能:进程管理、存储管理、文件管理、作业管理和设备管理操作系统的分类:批处理系统、分时系统、实时系统和分布式系统操作系统的发展趋势:个人操作系统、服务器操作系统、嵌入式操作系统和云计算操作系统1.3 教学方法讲授:讲解操作系统的概念、功能和发展趋势案例分析:分析不同类型的操作系统实例讨论:引导学生思考操作系统的未来发展方向1.4 教学资源教材:操作系统相关书籍课件:操作系统的图片、图表和动画网络资源:操作系统相关的文章和视频1.5 教学评估课堂问答:检查学生对操作系统概念的理解小组项目:培养学生合作分析和解决问题的能力第二章:进程管理2.1 学习目标理解进程的概念和作用掌握进程管理的基本方法和策略了解进程调度和死锁的解决方法2.2 教学内容进程的定义和作用:进程的属性、进程的状态和进程的控制块进程管理的基本方法:进程的创建、进程的终止和进程的同步进程调度:短作业优先调度、优先级调度和轮转调度死锁的解决方法:资源分配图、银行家算法和死锁避免2.3 教学方法讲授:讲解进程的概念、进程管理的方法和策略模拟实验:模拟进程调度和死锁的解决过程讨论:引导学生思考进程管理的优化方法2.4 教学资源教材:操作系统相关书籍课件:进程的概念、进程管理的图表和动画网络资源:进程调度和死锁解决相关的文章和视频2.5 教学评估课堂问答:检查学生对进程概念的理解小组项目:培养学生合作分析和解决问题的能力第三章:存储管理3.1 学习目标理解存储管理的作用和重要性掌握存储管理的策略和方法了解虚拟存储器和页面置换的算法3.2 教学内容存储管理的作用和重要性:存储器的层次结构、存储管理的任务和目标存储管理的策略:分页存储管理、分段存储管理和段页式存储管理页面置换的算法:先进先出置换、最近最久未使用置换和最少使用置换虚拟存储器的实现:虚拟地址空间、页面表和缺页中断3.3 教学方法讲授:讲解存储管理的作用、策略和页面置换算法模拟实验:模拟虚拟存储器和页面置换的过程讨论:引导学生思考存储管理的优化方法3.4 教学资源教材:操作系统相关书籍课件:存储管理的图表和动画网络资源:虚拟存储器和页面置换相关的文章和视频3.5 教学评估课堂问答:检查学生对存储管理作用的理解课后作业:巩固学生对存储管理策略和方法的掌握小组项目:培养学生合作分析和解决问题的能力第四章:文件管理4.1 学习目标理解文件的概念和作用掌握文件管理的基本方法和策略了解目录结构和文件系统的实现4.2 教学内容文件的概念和作用:文件的基本属性、文件的类型和文件的操作文件管理的基本方法:文件的创建、文件的删除和文件的权限管理目录结构:树状目录结构、层次目录结构和虚拟目录结构文件系统的实现:文件系统的层次结构、文件系统的存储方式和文件系统的访问控制4.3 教学方法讲授:讲解文件的概念、文件管理的方法和策略模拟实验:模拟文件操作和目录结构的过程讨论:引导学生思考文件管理的优化方法4.4 教学资源教材:操作系统相关书籍课件:文件的概念、文件管理的图表和动画网络资源:目录结构和文件系统实现相关的文章和视频4.5 教学评估课堂问答:检查学生对文件概念的理解课后作业:巩固学生对文件管理方法的掌握小组项目:第六章:作业管理6.1 学习目标理解作业管理的作用和重要性掌握作业调度和作业控制的方法了解作业优先级和作业队列的实现6.2 教学内容作业管理的作用和重要性:作业的概念、作业的类型和作业管理的任务作业调度:作业优先级调度、作业期限调度和多级反馈调度作业控制:作业的创建、作业的执行和作业的终止作业队列的实现:作业队列的维护和作业队列的优化6.3 教学方法讲授:讲解作业管理的作用、方法和策略模拟实验:模拟作业调度和作业控制的过程讨论:引导学生思考作业管理的优化方法6.4 教学资源教材:操作系统相关书籍课件:作业管理的图表和动画网络资源:作业优先级和作业队列实现相关的文章和视频6.5 教学评估课堂问答:检查学生对作业管理作用的理解课后作业:巩固学生对作业控制方法的掌握小组项目:培养学生合作分析和解决问题的能力第七章:设备管理7.1 学习目标理解设备管理的作用和重要性掌握设备管理的基本方法和策略了解设备驱动程序和I/O调度7.2 教学内容设备管理的作用和重要性:设备的分类、设备管理的目标和设备管理的任务设备管理的基本方法:设备分配、设备驱动程序和设备控制设备驱动程序:设备驱动程序的原理、设备驱动程序的编写和设备驱动程序的调试I/O调度:轮转调度、优先级调度和反馈调度7.3 教学方法讲授:讲解设备管理的作用、方法和策略模拟实验:模拟设备驱动程序和I/O调度过程讨论:引导学生思考设备管理的优化方法7.4 教学资源教材:操作系统相关书籍课件:设备管理的图表和动画网络资源:设备驱动程序和I/O调度实现相关的文章和视频7.5 教学评估课堂问答:检查学生对设备管理作用的理解课后作业:巩固学生对设备管理方法的掌握小组项目:培养学生合作分析和解决问题的能力第八章:用户接口8.1 学习目标理解用户接口的作用和重要性掌握命令接口和图形用户接口的设计了解用户接口的实现和用户界面设计的原则8.2 教学内容用户接口的作用和重要性:用户接口的概念、用户接口的任务和用户接口的设计目标命令接口的设计:命令的语法、命令的语义和命令的帮助图形用户接口的设计:图形用户接口的元素、图形用户接口的布局和图形用户接口的交互用户接口的实现:用户接口的框架、用户接口的库和用户接口的编程接口8.3 教学方法讲授:讲解用户接口的作用、设计和实现案例分析:分析常见的命令接口和图形用户接口实例讨论:引导学生思考用户界面设计的优化方法8.4 教学资源教材:操作系统相关书籍课件:用户接口的图表和动画网络资源:用户接口设计和用户界面设计相关的文章和视频8.5 教学评估课堂问答:检查学生对用户接口作用的理解课后作业:巩固学生对命令接口和图形用户接口设计的掌握小组项目:培养学生合作分析和解决问题的能力第九章:操作系统安全9.1 学习目标理解操作系统安全的作用和重要性掌握操作系统安全的基本策略和方法了解操作系统安全漏洞和攻击手段9.2 教学内容操作系统安全的作用和重要性:操作系统的安全级别、操作系统的安全目标和操作系统的安全威胁操作系统安全的基本策略:访问控制、身份验证、加密和审计操作系统安全的方法:安全内核、安全操作系统和操作系统安全增强操作系统安全漏洞和攻击手段:缓冲区溢出、恶意软件和网络攻击9.3 教学方法讲授:讲解操作系统安全的作用、策略和方法案例分析:分析操作系统安全漏洞和攻击手段的实例讨论:引导学生思考操作系统安全的优化方法9.4 教学资源教材:操作系统相关书籍课件:操作系统安全的图表和动画网络资源:操作系统安全策略和操作系统安全漏洞相关的文章和视频9.5重点解析本《操作系统》课程教案涵盖了操作系统的概述、进程管理、存储管理、文件管理、作业管理、设备管理、用户接口和操作系统安全等十个章节。
操作系统在线练习(4)——文件管理
操作系统在线练习(4)——文件管理总共21题满分:100分一、选择题(共15题,共60分)1.引入文件系统的主要目的是。
(本题4分)A)实现文件的按名存取B)实现虚拟存储C)提高外存的读写速度D)用于存储系统文件2.文件的逻辑结构分,数据库文件是一种文件。
(本题4分) A)有结构文件B)无结构文件C)索引文件D)顺序文件3.在下列文件的物理结构中,不利于文件长度动态增长。
(本题4分)A)顺序结构B)链接结构C)索引结构D)多重索引结构4.目录文件所存放的信息是。
(本题4分)A)某一文件存放的数据信息B)该目录中所有子目录文件和数据文件的目录C)该目录中所有数据文件的目录D)某一文件的文件目录5.文件的物理结构方式是与有关的。
(本题4分)A)记录个数B)文件的目录结构C)用户对文件的存取方式D)文件长度6.位示图可用于。
(本题4分)A)文件目录的查找B)磁盘空间的管理C)主存空间的共享D)实现文件的保护和保密7.文件系统采用二级文件目录可以。
(本题4分)A)节省内存空间B)实现文件共享C)解决不同用户间的文件命名冲突D)缩短访存时间8.下列哪一项不是文件系统的功能?____________(本题4分)A)文件系统实现对文件的按名存取B)负责实现数据的逻辑结构到物理结构的转换C)提高磁盘的读写速度D)提供对文件的存取方法和对文件的操作9.逻辑文件是的文件组织形式。
(本题4分)A)从用户观点看B)从系统观点看C)目录D)在外部设备上10.下面的不是文件的存储结构。
(本题4分)A)索引文件B)记录式文件C)串联文件D)连续文件11.操作系统为每一个文件开辟一个存储区,在它的里面记录着该文件的有关信息。
这就是所谓的。
(本题4分)A)进程控制块B)文件控制块C)设备控制块D)作业控制块12.一个文件的绝对路径名是从开始,逐步沿着每一级子目录向下,最后到达指定文件的整个通路上所有子目录名组成的一个字符串。
(本题4分)A)当前目录B)根目录C)多级目录D)二级目录13.某文件用作主文件,要求对此文件既能直接访问,又能顺序访问。
操作系统课程设计-一个简单的文件系统的详细设计
计算机系课程设计实验报告课程名称操作系统课程设计实验学期 2012 至 2013 学年第 1 学期学生所在系部计算机与信息管理系年级 2010 专业班级计算机001班学生姓名学号任课教师实验成绩计算机系制一个简单的文件系统的详细设计一、实验目的(1)阅读并调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
(2)了解设计一个n个用户的文件系统,每个用户可以保存M个文件。
用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令。
二、实验要求1、阅读所给文件系统源程序,并加注释(注释量达60%),2、修改、完善该系统,画出所设计的文件系统的详细流程图。
三、文件系统功能设计1. 功能设计该文件系统是一个多用户、多任务的文件系统。
对用户和用户的文件数目并没有上限。
也就是说该系统允许任何用户申请空间,而且在其目录下的文件数目并不做任何的限制。
该系统可以支持的操作命令如下:①bye——用户注销命令。
当使用该命令时,用户退出系统,注销该用户功能设计并回到登陆界面。
命令格式:bye②close——删除用户注册信息命令。
执行该命令后,用户在系统中的所有信息,包括该用户目录下的所有文件都被删除。
命令执行完成后返回登陆界面。
命令格式:close③create——在当前目录下创建一个文件,且该文件不能跟当前已有的文件重名。
该文件的管理信息登记在用户文件信息管理模块中。
执行完该命令后回到执行命令行。
命令格式:create>file1其中:“>”符为提示符,file1为要创建的文件名。
④delete——删除当前用户目录下的一个文件,命令执行完毕返回至命令行。
命令格式:delete>file1其中:file1为要删除的文件名。
⑤list——显示当前注册目录下的所有文件信息,包括文件名、文件长度、文件操作权限。
操作系统实验报告文件管理
操作系统实验报告文件管理文件管理是操作系统的重要功能之一,它负责对计算机系统中的文件进行组织、存储和访问。
文件管理系统的设计和实现对操作系统的性能和可靠性起着重要作用。
本文将介绍文件管理的基本概念、文件系统的组织方式和文件的操作方法。
一、文件管理的概念文件是计算机系统中存储和管理数据的基本单位,它可以是文本、图像、音频、视频等各种类型的数据。
文件管理的目标是实现对文件的有效组织和高效访问,使得用户和应用程序可以方便地读取、写入和删除文件。
文件管理系统主要包括以下几个方面:1.文件组织方式:文件可以按照不同的方式进行组织,包括顺序文件、索引文件、哈希文件等。
不同的组织方式有不同的优势和适用场景,可以根据实际需要选择合适的组织方式。
2.文件存储管理:文件在存储设备上的存储方式包括连续存储、链式存储和索引存储等。
不同的存储方式对文件的读写性能和空间利用率有影响,需要根据实际情况进行选择。
3.文件访问控制:对文件的访问需要进行权限控制,保证只有合法的用户或应用程序可以读取和写入文件。
文件访问控制主要通过访问权限和文件属性来实现。
二、文件系统的组织方式1.单级目录结构:这是最简单的文件系统组织方式,所有文件都位于同一个目录下。
由于没有目录的嵌套结构,文件的查找和管理比较简单,但是对于大量文件的管理不够灵活。
2.层次目录结构:该方式通过目录的嵌套结构来组织文件,可以形成一棵树状结构。
目录可以包含子目录和文件,用户可以通过目录路径来访问文件。
这种组织方式可以更好地组织大量的文件,提高文件的查找效率。
3.索引目录结构:该方式使用一个索引表来记录文件的位置和属性信息,用户通过索引表中的索引来访问文件。
索引表可以根据文件名、文件类型等信息快速定位到文件的位置,提高访问效率。
此外,索引表还可以支持对文件的动态增删改查操作。
三、文件的操作方法1.创建文件:文件的创建是指在文件系统中创建一个新文件,并为其分配存储空间。
创建文件时需要指定文件名和文件类型,并根据需要为文件设置访问权限和属性。
操作系统文件管理实验报告
操作系统文件管理实验报告操作系统文件管理实验报告1:引言本实验报告旨在详细描述操作系统文件管理实验的设计、实施和结果。
文件管理是操作系统的重要组成部分,负责对计算机中的文件进行组织、存储和访问。
本实验通过模拟文件管理的过程,加深对文件管理的理解和实践。
2:实验目的本实验的主要目的是:- 理解文件系统的概念和原理- 掌握文件的创建、读取、写入和删除等基本操作- 实施并测试文件的分配和回收算法- 评估不同的文件分配算法对系统性能的影响3:实验环境本实验的实施环境如下:- 操作系统:Windows 10- 开发环境:C++ 编程语言4:实验内容4.1 文件系统设计在文件系统设计中,首先确定文件的基本单位,例如块或扇区。
然后,定义文件控制块(FCB)结构,用于存储文件的元数据信息,如文件名、大小、创建时间、权限等。
接下来,设计文件分配表,记录系统中每个块的使用情况,用于实现文件的分配和回收。
4.2 文件的创建和删除在文件的创建过程中,首先为文件分配空间,并更新文件分配表。
然后,创建文件的FCB,并将其到目录项中。
在文件的删除过程中,首先释放文件的空间,并更新文件分配表。
然后,删除文件的FCB,并从目录项中移除。
4.3 文件的读写操作文件的读写操作是用户对文件进行读取和修改的过程。
在文件读取操作中,首先找到要读取的文件的FCB,获取文件的起始块地址,并从起始块中读取数据。
在文件写入操作中,首先找到要写入的文件的FCB,获取文件的起始块地址,并将数据写入起始块。
若文件大小超过起始块的容量,则按照一定的分配算法继续分配空间。
4.4 文件分配算法文件分配算法决定了操作系统如何管理文件的空间分配。
常用的文件分配算法包括顺序分配、分配和索引分配。
顺序分配将文件连续地存储在磁盘上,易于实现但可能产生外部碎片。
分配使用链表结构将文件存储在磁盘的不连续块中,不易产生外部碎片但可能引起存取时间增长。
索引分配使用索引表将文件存储在磁盘的不连续块中,不易产生外部碎片且存取时间相对较短,但索引表本身需要占用存储空间。
操作系统文件系统管理
操作系统文件系统管理1. 引言操作系统是计算机系统中最重要的软件之一,它负责管理计算机的硬件资源,包括文件系统的管理。
文件系统是指操作系统用来组织和管理计算机存储设备上数据的一种机制。
本文将探讨操作系统的文件系统管理,在提供高效访问和安全性的同时,确保数据的完整性和可靠性。
2. 文件系统概述文件系统是指操作系统对计算机存储设备上数据的组织和管理方式。
它提供了一种逻辑结构,使得用户可以方便地访问存储设备上的文件和目录。
文件系统的核心任务是文件的存储和访问管理,以及对文件进行保护和维护。
3. 文件的组织和管理文件系统通过文件的组织和管理来满足用户的需求。
文件系统采用层次化的目录结构来组织文件,使得用户可以方便地查找和访问所需的文件。
文件系统也提供了对文件的创建、复制、删除和重命名等操作,以及对文件属性的管理,如读写权限、创建时间等。
4. 文件的存储管理文件的存储管理是文件系统的核心功能之一。
文件系统将文件分成若干个逻辑块,并将这些块存储在物理存储设备上。
文件系统使用文件分配表(FAT)或索引节点(inode)来管理文件的存储位置。
文件系统还会进行文件的碎片整理和压缩,以提高存储效率和性能。
5. 文件的读写操作文件系统提供了文件的读写操作,使得用户可以通过应用程序对文件进行读取和修改。
文件读写操作需要经过文件系统的缓存管理,以提高访问速度和性能。
文件系统还提供了对文件的锁定机制,以防止多个进程同时对同一文件进行读写,保证数据的一致性和完整性。
6. 文件系统的安全性和权限管理文件系统通过安全性和权限管理来保护文件的机密性和完整性。
文件系统使用访问控制列表(ACL)来定义文件的访问权限,只有具有相应权限的用户才能对文件进行访问和修改。
文件系统还使用加密技术对敏感文件进行加密,以防止未经授权的访问和泄露。
7. 文件系统的备份和恢复文件系统提供了文件的备份和恢复机制,以防止数据的丢失和损坏。
文件系统可以进行全盘备份或增量备份,将数据保存在外部存储介质上。
计算机操作系统模拟试题
一,单选题:16分,每题02分1, 系统调用的目的是( ).A:请求系统服务B:终止系统服务C:申请系统资源D:释放系统资源2, 下列描述中不是作业的组成部分的是( ).A:进程B:程序C:数据D:作业说明书3, 一个作业的完成要经过若干加工步骤,每个步骤称为( ).A:作业流B:子程序C:子进程D:作业步4, 在各种作业调度算法中,若所有作业同时到达,则平均等待间最短的算法是( ).A:先来先服务法B:优先数法C:最高响应比优先法D:短作业优先法5, UNIX系统中,用户可以终止一个进程的进行,命令格式为kill [数值] 进程号,其中数值为"3"时的含义为( ). A:中断B:挂起C:退出D:杀死6, 关于DOS Shell叙述有错的是( ).A:是命令解释和控制语言B:能扩展原有命令的功能C:最早应用于DOS系统D:有会话式和命令文件两种输入方式7, 使用绝对路径名访问文件是从( )开始按目录结构访问某个文件.A:当前目录B:用户主目录C:根目录D:父目录8, 文件管理实际上是管理( ).A:主存空间B:辅助存储空间C:逻辑地址空间D:物理地址空间9, 将信息加工形成具有保留价值的文件是( ).A:库文件B:档案文件C:系统文件D:临时文件10, ( )存储管理方式提供一维地址结构.A:固定分区B:分段C:分页D:分段和段页式11, 系统抖动是指( ).A:使用机器时,屏幕闪烁的现象B:被调出的页面又立刻被调入所形成的频繁调入调出现象C:系统盘有问题,致使系统不稳定的现象D:由于主存分配不当,偶然造成主存不够的现象12, 下列存储管理方案中,不采用动态重定位的是( ).A:页式管理B:可变分区C:固定分区D:段式管理13, 在操作系统中,用户在使用I/O设备时,通常采用( ).A:设备的绝对号B:设备的相对号C:虚拟设备号D:设备名14, 大多数低速设备都属于( )设备.A:独享B:共享C:虚拟D:SPOOLing15, 利用信号量实现进程的( ),应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于P(mutex)和V(mutex)原语之间.A:同步B:互斥C:竞争D:合作16, 进程间的同步是指进程间在逻辑上的相互( )关系.A:联接B:制约C:继续D:调用17, 当处理器处于管态时,处理器可以执行的指令应该是( ).A:非特权指令B:仅限于特权指令C:一切指令D:访管指令18, 当操作系统退出执行,让用户执行时,系统会( ).A:继续保持管态B:继续保持目态C:从管态变为目态D:从目态变为管态19, CPU状态分为管态和目态,从目态转换到管态的唯一途径是( ).A:运行进程修改程序状态字B:中断屏蔽C:系统调用D:进程调度程序20, 在传统操作系统设计中,采用的结构模型主要是( )和整体内核模型.A:对象模型B:层次模块模型C:进程模型D:原型模型二,多选题:20分,每题04分21, 在具有分时兼批处理的计算机系统中,总是优先调度前台作业,所谓前台作业指( )( )( ).A :交互式作业B :联机作业C :脱机作业D :终端型作业E :会话型作业22, 文件的存取方法依赖于( )( )( ).A :文件的物理结构B :存放文件的存储设备的特性C :文件类型D :文件的逻辑结构E :文件的存储结构23, 常用的主存管理方法有( ),( )和( ).A :分区B :分页C :分段D :虚拟存储E :最坏适应法24, 内存的类型主要有( )( )( ).A :虚拟内存B :扩展内存C :高速缓冲存储器D :动态内存E :常规内存25, 在现代操作系统中,资源的分配单位是( ),而处理机的调度单位是( );A与C之间的关系是( ).A :进程B :原语C :线程D :系统调用E :一对多F :多对一三,判断题:10分,每题02分26, 实时操作系统追求的目标是高吞吐率.27, UNIX的i节点是文件内容的一部分.28, 虚拟存储器实际上是一种设计技巧,使主存物理容量得到扩大.29, 固定分区存储管理的各分区的大小可变化,这种管理方式不适合多道程序设计系统. 30, 采用SPOOLing技术的目的是提高独占设备的利用率.31, CPU输出数据的速度远远高于打印机的打印速度,为了解决这一矛盾,可采用通道技术. 32, 进程的互斥和同步总是因相互制约而同时引起.33, 如果在加锁法实现互斥时,将未进入临界区的进程排队时,从而让其有被再调度的机会的话,加锁法和P,V原语实现互斥时效果相同.34, Windows是一个多任务操作系统,允许同一时间运行多个程序,能方便快速地在各程序间切换.35, 操作系统的易维护性设计应使系统具有一定的自动修补能力.四,填空选择题:03分,每题03分36, 37, 见另一张纸,题目相同38, 在操作系统中,设有三个批处理作业,所需执行时间分别为2 小时,1小时和25分钟,相继到达时间分别为6:00,6:10和6:25.若对这三个批处理作业采用调试算法S1,其执行情况如下: 作业号到达时间开始执行时间执行结束时间1 6:00 6:00 8:002 6:10 8:00 9:003 6:25 9:00 9:25若对这三个批处理作业采用调试算法S2,其执行情况如下:作业号到达时间开始执行时间执行结束时间1 6:00 7:50 9:502 6:10 6:50 7:503 6:25 6:25 6:50(1)则调试算法S1属于( ),调试算法S2属于( ).(2)通常把作业进入系统至最后完成的时间称为该作业的周转时间.在调试算法S1下,作业平均周转时间为( )小时,在调度算法S2下,作业平均周转时间为( )小时.填空选择:选项1 : 选项2 :A优先数法B先来先服务算法C最短作业优先法D资源搭配算法E最高响应比优先算法F 多队列循环算法选项3 : 选项4 :2.61 2.5 2.42 1.97 1.72 2.139, 在具有( )机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同.前者称为( ),后者称为( ).A逻辑地址B执行地址C编程地址D物理地址E地址变换FSPOOLing40, 存储保护的工作由( )和( )配合实现,若硬件检查程序不允许进行存取,则产生( )中断.填空选择:A软件B地址越界C硬件D缺页E固件41, 在分页式存储管理中,将每个作业的( )分成大小相等的页,将( )分块,页和块的大小( ),通过页表进行管理.A符号名空间B主存空间C辅存空间D逻辑地址空间E相等F不等42, 虚拟存储的思想基础是( ),实现虚拟存储的物质基础是( )和( )机构.A程序执行的局部性B代码的顺序执行C动态地址转换D变量的连读访问E二级存储结构43, 采用假脱机技术的目的是([1]).假脱机技术是将输入输出控制工作大部分交由相应的通道来承担,利用磁盘作为后援存储器,实现了外设同时联机操作,使得([2])成为([3]),减少了对频繁使用外设的压力.选项1 :A提高外设和主机的利用率B提高内存和主机效率C减轻用户编程负担D提高程序运行速度选项2 : 选项3 :A块设备B字符设备C独占设备D虚拟设备44, 从资源特点的角度来分析外围设备的特性,外围设备分为三类( ),( )和( ).A虚拟设备B存储设备C独享设备D字符设备E共享设备F输入输出设备45, 为了对设备进行管理,计算机系统为每一台设备确定一个编号,这个编号称为设备的( ),而用户总是用设备的( )来提出使用设备的要求,由操作系统进行转换,变成系统的设备的( ).A绝对号B相对号C物理名D逻辑名E类型号46, 一个具有通道装置的计算机系统,通常一个CPU可以连接( )通道,一个通道可以连接( )设备控制器,一个设备控制器可连接同类的( )设备.A多个B一个C一台D多台E二个47, 操作系统中,可以并行工作的基本单位是([1]),[1]也是系统核心调度及资源分配的基本单位,它是由([2])组成的,它与程序的主要区别是([3]).填空选择:选项1 :A作业B函数C进程D过程选项2 :A程序,数据和PCB,B程序,数据和标识符,C程序标识符和PCB,D数据,标识符和PCB 选项3 :A程序有状态,而它没有B它有状态,而程序没有C程序可占用资源,而它不可D它可占用资源,而程序不可48, 进程执行时的间断性,决定了进程可能具有多种状态.进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由( )进入( ).如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一个进程,并将处理机分配给它,此时该进程进入( ).A就绪状态B静止状态C等待状态D执行状态E终止状态49, 进程被创建后,最初处于( )状态,然后经( )选中后进入( )状态.A等待B进程调度C执行D就诸E地址转换五,简答题:35分,每题05分50, 什么是虚拟机答:虚拟机是指"虚拟"的计算机,是由软件模拟实现出来的计算机,实际上它是将本地主机上的硬盘和内存划分出一部分或几部分,虚拟成一台或多台子机.这些虚拟出的新计算机拥有独立的硬盘,软驱,光驱和操作系统,可以像使用普通计算机一样使用它们,如同时运行多个不同的操作系统等,对真实的计算机不会产生任何的影响.51, 简述模块接口法的缺点.答:(1)很难保证模块设计的正确性.各单个模块的设计,通常都是基于不完全正确的环境的,故很难保证每个模块设计的正确性.(2)装配的困难性.往往会发生由若干模块共享的数据项的逻辑结构和内部表示,各个模块均不相同.对于修改这样的错误,在模块编码后往往是很困难的.(3)模块相对独立性差.由于模块接口法是从功能观点而不是按资源管理的观点来设计系统,且未能分清为很多进程所共享的资源,以及为某进程独占的资源,在管理方法上的差异,此时模块之间的牵连甚多,从而造成了模块的相对独立性差.综合题:11分,每题11分52, 一个由3个页面(页号为0,1,2),每页有2048个字节组成的程序,假定在某时刻调入8个物理块的内存,其页面的页号和物理块号的对照表如下:逻辑页号主存块号,0,4,1,7,2,1请根据页表,计算下列给出的逻辑地址对应的绝对地址.(1)100 (2)2617 (3)5196参考答案:答:首先根据逻辑地址查页表,得到主存的块号,再根据公式绝对地址=块号(块长+页内地址进行计算.(1)100的页号为0(100/2048=0),页内地址为100 mod 2048=100;查表得主存块号为4,于是绝对地址=4(2048+100=8292;(2)2617的页号为1(2617/2048=1),页内地址为2617 mod 2048=569;查表得主存块号为7,于是绝对地址=7(2048+569=14905;(3)5196的页号为2(5196/2048=2),页内地址为5196 mod 2048=1100;查表得主存块号为1,于是绝对地址=1(2048+1100=3148.(注:mod为取模运算,即求余数.)。
操作系统模拟试题(答案)
模拟试题1试题类型包括:选择题(20分),判断题(10分),填空题(30分),解答题(25分),应用题(15分)。
(一)选择题(每空2分,共 20 分)1.在计算机系统中,操作系统是()。
A.一般应用软件; B.核心系统软件; C.用户应用软件; D.系统支撑软件。
2.UNIX操作系统是著名的()。
A.多道批处理系统; B.分时系统; C.实时系统; D.分布式系统。
3.在现代操作系统中采用缓冲技术的主要目的是()。
A.改善用户编程环境; B.提高CPU的处理速度;C.提高CPU和设备之间的并行程度;D. 实现与设备无关性。
4.进程和程序的一个本质区别是()。
A.前者为动态的,后者为静态的; B.前者存储在内存,后者存储在外存;C.前者在一个文件中,后者在多个文件中;D.前者分时使用CPU,后者独占CPU。
5.某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将()。
A.从就绪变为运行; B.从运行变为就绪;C.从运行变为阻塞; D.从阻塞变为就绪6.进程控制块是描述进程状态和特性的数据结构,一个进程()。
A.可以有多个进程控制块; B.可以和其他进程共用一个进程控制块;C.可以没有进程控制块; D.只能有惟一的进程控制块。
7.在一般操作系统中必不可少的调度是()。
A.高级调度; B.中级调度; C.作业调度; D.进程调度。
8.把逻辑地址转变为内存的物理地址的过程称作()。
A.编译; B.连接; C.运行; D.重定位。
9.在UNIX系统中,目录结构采用()。
A.单级目录结构; B.二级目录结构;C.单纯树形目录结构; D.带链接树形目录结构。
10.避免死锁的一个著名的算法是()。
A.先入先出法; B.银行家算法; C.优先级算法; D.资源按序分配法。
(二)判断题(每题2分,共10分)从下列叙述中选择正确的叙述,在题号前划上对勾;对于你认为是错误的叙述要划上叉,并予以改正(但要符合原义,改动应少)。
操作系统模拟试卷
南阳理工学院2009-2010学年第一学期试卷答案课程:操作系统(A)评卷人(签名):复核人(签一、选择题(每题1分,共20分)1.使系统中所有的用户都能得到及时响应的操作系统应该是(B)。
A.多道批处理系统 B.分时系统 C.实时系统 D.网络系统2.在单一处理机上执行程序,多道程序的执行是在(B)进行的。
A.同一时刻B. 同一时间间隔内C. 某一固定时刻D. 某一固定时间间隔内3.某进程由于需要从磁盘上读入数据而暂停执行。
当系统完成了所需的读盘操作后,此时该进程的状态将(D)。
A.从就绪态变为执行态 B.从执行态变为就绪态C.从执行态变为阻塞态 D.从阻塞态变为就绪态4.临界区是指并发进程中访问临界资源的(D)段。
A.管理信息 B.信息存储 C.数据 D.程序5.下列各项步骤中,哪一个不是创建进程所必须的步骤(B )。
A. 建立一个进程控制块PCBB. 由CPU调度程序为进程调度CPUC. 为进程分配内存等必要的资源D. 将PCB链入进程就绪队列6.两个进程合作完成一项任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种制约关系是进程间的(A)关系。
A.同步B. 互斥C.竞争D. 合作7.计算机系统产生死锁的根本原因是(D)。
A.资源竞争 B.进程推进顺序不当 C.系统中进程太多 D.A和B8.在下列特性中,哪一个不是操作系统的基本特性(D)。
A. 异步性B. 并发性C. 共享性D. 动态性9.在动态分区分配方案中,某一作业完成后,系统回收其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数加1的情况是( A )A.无上邻空闲区,也无下邻空闲区B.有上邻空闲区,但无下邻空闲区C.有下邻空闲区,但无上邻空闲区D.有上邻空闲区,也有下邻空闲区10.请求分页存储管理中,若把页面尺寸增加一倍,在程序顺序执行时,则一般缺页中断次数会(B)。
A.增加 B.减少 C.不变 D.可能增加也可能减少11.下列哪个不是虚拟存储器的特征(B)A.虚拟性B.结构性C.多次性D.对换性12.若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许(D)个进程参于竞争,而不会发生死锁。
考研计算机掌握常用操作系统的五个实用案例
考研计算机掌握常用操作系统的五个实用案例操作系统是计算机硬件和应用软件之间进行有效交互的桥梁,是计算机系统中至关重要的组成部分。
对于考研计算机专业的学生来说,熟练掌握常用操作系统的使用和管理是必不可少的。
本文将介绍五个实用案例,帮助考研学生更好地掌握常用操作系统。
一、Linux系统下文件管理Linux是一种开源的操作系统,具有稳定性和安全性的优势。
在Linux系统下,文件管理是非常重要的一项技能。
考研学生可以通过掌握Linux系统下的文件管理命令,如ls、cd、mkdir、cp、mv、rm等,来实现对文件和目录的查看、创建、复制、移动和删除等操作。
例如,通过使用ls命令可以查看当前目录下的文件列表,使用cd命令可以切换到其他目录,使用cp命令可以复制文件,使用rm命令可以删除文件等。
二、Windows系统下网络配置Windows操作系统是目前应用最广泛的操作系统之一。
在考研学习和研究中,经常需要进行网络连接和配置。
学生可以学会如何在Windows系统下进行网络配置,包括设置IP地址、子网掩码、默认网关等。
此外,还可以学会如何进行网络共享和远程访问设置,方便与其他计算机的互动和数据交流。
三、macOS系统下应用程序管理macOS是苹果公司推出的操作系统,适用于苹果电脑。
在macOS系统下,学生可以学习如何进行应用程序的管理。
macOS系统提供了App Store,其中包含了大量的应用程序供用户下载和使用。
学生可以学会如何搜索、安装和卸载应用程序,以及如何更新和管理已安装的应用程序。
四、Android系统下应用开发Android是目前最流行的移动操作系统之一,学习Android应用开发对于计算机专业考研学生来说是一项重要的技能。
学生可以学会如何使用Android Studio开发环境进行应用程序的开发、调试和发布。
通过学习Android系统的应用开发,学生可以实现自己的创意和想法,开发出符合各种需求的应用程序。
操作系统文件管理
操作系统文件管理操作系统文件管理操作系统中的文件管理是指对计算机系统中存储的文件进行管理和操作的一系列措施和技术。
文件管理是操作系统的重要功能之一,它涉及文件的创建、组织、存储、检索、保护和共享等方面。
本文将介绍操作系统文件管理的各个方面内容,并提供相应的示例和解释。
一、文件管理概述文件管理是指对计算机系统中的文件进行管理和操作的一系列措施和技术。
它通常涉及以下几个主要方面:1、文件的创建与删除:操作系统通过提供相应的系统调用来支持用户创建新文件和删除已有文件的操作。
2、文件的组织与存储:文件系统将文件组织为目录结构,并在辅助存储设备上存储文件的数据和元数据。
3、文件的读取与写入:用户程序可以通过打开文件、读取文件和写入文件的操作来对文件进行读写访问。
4、文件的检索与查找:文件系统提供了快速检索和查找文件的机制,例如使用文件路径、索引节点等方式进行快速定位。
5、文件的保护与权限:操作系统通过权限管理和文件权限位等机制来实现对文件的保护和访问控制。
6、文件的共享与通信:操作系统支持不同进程之间对文件的共享和通信,例如通过管道、套接字等方式进行进程间通信。
二、文件创建与删除在操作系统中,用户可以通过系统调用来创建和删除文件。
常见的文件创建方式包括:1、使用create()系统调用创建新文件,该调用将创建一个空文件,并返回文件的文件描述符。
2、使用open()系统调用创建或打开文件,如果文件已存在,则打开该文件;如果文件不存在,则创建一个新文件并打开。
3、使用mkdir()系统调用创建新目录,该调用将创建一个空目录,并返回目录的文件描述符。
文件删除可以通过unlink()系统调用来实现,该调用将删除指定的文件或目录。
示例:```include <stdio:h>include <stdlib:h> int mn(){int ret;ret = unlink(\。
操作系统模拟题及答案 (2)
操作系统应用单选题1、在Windows中,关于文件夹的描述不正确的是______。
A:文件夹中可以存放子文件夹B:"我的电脑"是一个文件夹C:文件夹是用来组织和管理文件的D:文件夹中不可以存放设备驱动程序答案:D2、在Windows中,可以设置、控制计算机硬件配置和修改显示属性的应用程序是______。
A:powerpointB:ExcelC:资源管理器D:控制面板答案:D3、在Windows中,"资源管理器"图标______。
A:一定出现在桌面上B:可以设置到桌面上C:可以通过单击将其显示到桌面上D:不可能出现在桌面上答案:B4、在Windows的某窗口中,在隐藏工具栏的状态下,若要完成剪切\复制\粘贴功能,可以______。
A:通过"查看"菜单中的剪切\复制\粘贴命令B:通过"文件"菜单中的剪切\复制\粘贴命令C:通过"编辑"菜单中的剪切\复制\粘贴命令D:通过"帮助"菜单中的剪切\复制\粘贴命令答案:C5、选择在"桌面"上是否显示语言栏的操作方法是____。
A:控制面板中选"区域和语言"选项B:控制面板中选"添加和删除程序"C:右击桌面空白处,选属性D:右击任务栏空白处,选属性答案:A6、在Windows中,工具栏中进入上一级文件夹的按钮是______。
A:返回B:向上C:撤消D:恢复答案:B7、在Windows中,下列关于对话框的描述,不正确的是______。
A:弹出对话框后,一般要求用户输入或选择某些参数B:对话框中输入或选择操作完成后,按"确定"按钮对话框被关闭C:若想在未执行命令时关闭对话框,可选择"取消"按钮,或按Esc键D:对话框不能移动答案:D8、在Windows中,关于"快速启动"区中的"快速启动"按钮,正确的说法是______。
文件管理实验报告
昆明理工大学信息工程与自动化学院学生实验报告(2012 —2013 学年第二学期)课程名称:操作系统开课实验室:年月日一、实验目的用C或C++语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
二、实验原理及基本技术路线图(方框原理图)用C模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件控制块,采用合理的外存分配方式,能实现基本的目录及文件的操作,包括创建、删除、重命名、复制、移动等功能,并对文件有一定的存取权限控制。
文件通常存放在外存(如磁盘、磁带)上,可以作为一个独立单位存放和实施相应的操作(如打开、关闭、读、写等)。
为了加快对文件的检索,往往将文件控制块集中在一起进行管理。
这种文件控制块的有序集合称为文件目录。
文件控制块就是其中的目录项。
下图示例一种目录的组织形式。
模拟一个文件系统,包括目录文件,普通文件,并实现对它们的一些基本操作。
假定每个目录文件最多只能占用一个块;一个目录项包括文件名(下一级目录名),文件类型,文件长度,指向文件内容(下一级目录)的指针内容。
普通文件可以只用目录项(FCB)代表。
三、所用仪器、材料(设备名称、型号、规格等)。
计算机一台四、实验方法、步骤//利用交互式命令实现树型目录结构和文件管理,同时利用位示图表示外存的分配情况,新建文件时分配必要的空间,模拟文件分配表记录文件在外存上的存储方式。
了解系统对文件的操作。
//在文件中保存目录内容,创建文件或子目录可以用命令行命令:MD、CD、RD、MK(创建文件)、DEL(删除文件)和DIR#include<iostream>#include<stdlib.h>#include<time.h>#include <locale.h>using namespace std;#define beginsize 5#define LENGTH 3typedef struct{i nt data[LENGTH];}Indireone;typedef struct{I ndireone * first[LENGTH];}Indiretwo;typedef struct{I ndiretwo * second[LENGTH]; }Indirethree;typedef struct Node{i nt begin[beginsize];I ndireone * one;I ndiretwo * two;I ndirethree * three;}Mixtab;typedef struct NODE{c har name[50];i nt type;//是文件还是目录i nt size;//如果是文件给出大小s truct NODE *next;//兄弟结点s truct NODE * sub;//子节点s truct NODE * father;//父亲节点M ixtab * table;}FCB;//文件控制块FCB * root;FCB * present;FCB * finding;char stringname[300];int Bitmap[16][16];//位示图int leftbit=0;void Initall(){i nt i,j;s rand( time(NULL) );f or(i=0;i<16;i++){//初始化位示图for(j=0;j<16;j++){Bitmap[i][j]=rand()%2;}}r oot=(FCB *)malloc(sizeof(FCB)); s trcpy(root->name,"\\");r oot->type=0;r oot->size=0;r oot->next=NULL;r oot->father=root;r oot->sub=NULL;f or(i=0;i<16;i++){for(j=0;j<16;j++){if(Bitmap[i][j]==0){leftbit++;}}}}//判断分配外存时候是不是足够int Judgeenough(int n){i f(leftbit>=n)return 1;e lse return 0;}//添加时候用void Addpoint(FCB * f){F CB * temp;i f(present->sub==NULL){present->sub=f;}e lse{temp=present->sub;while(temp->next!=NULL){temp=temp->next;}temp->next=f;f->next=NULL;}}//删除时候用void Delpoint(FCB *f){F CB * temp=present->sub;i f(temp==f){present->sub=temp->next;delete(f);}e lse{while(temp->next!=f){temp=temp->next;}temp->next=f->next;delete(f);}}//查找是不是已经存在int Isexist(char ary[],int x){F CB * temp;i f(present->sub==NULL){return 0;}e lse{temp=present->sub;while(temp!=NULL){if((!strcmp(temp->name,ary))&&(temp->type==x)){finding=temp;return 1;}temp=temp->next;}return 0;}}void Mdlist(){c har listname[50];c in>>listname;F CB * temp;i f(Isexist(listname,0)){cout<<"子目录或文件"<<listname<<"已存在。
操作系统 实验4:文件管理实验报告
一、实验题目:文件管理实验--Linux下的文件管理二、实验目的和要求:实验目的:(1)加深对文件、目录、文件系统等概念的理解。
(2)掌握 Linux 文件系统的目录结构。
(3)掌握有关 Linux 文件系统操作的常用命令。
(4)了解有关文件安全性方面的知识。
实验要求:(1)正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
(2)能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
(3)正确地理解文件的权限,并能进行相应更改。
(4)理解文件的类型及其表示形式。
(5)理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验内容:(1)使用pwd,cd,ls等命令浏览文件系统。
(2)使用cat,cp,mv,head,tail,rm等命令查看你的文件。
(3)使用ln命令进行文件的硬连接和符号连接。
软中断通信(4)使用find,grep命令进行文件查找和模式匹配。
(5)使用chmod命令修改文件的权限。
四、实验步骤:(说明:对本实验涉及的教材中的相关内容进行归纳总结,只需简要说明即可。
)1、用root账号登录到终端,使用pwd命令查看当前目录2、用cd命令将当前目录切换到“/”目录下3、使用ls明令查看Linux的目录结构,了解各目录存放与系统相关的文件14、使用 cat、more、head、tail等命令显示 /etc/inittab文件内容5、使用grep 命令在/etc/inittab 文件中查询“initdefault”字符串26、使用find 命令查找 /目录下所有以main 开头的文件7、使用 cp 命令将/etc目录下的inittab文件拷贝到/root目录下8、使用 sort 和uniq 命令对 /root目录下的inittab文件排序后输出其结果39、统计inittab文件的字节数、行数、字数10、用mkdir命令在/root目录下创建一个test目录11、用cp命令将/etc目录及其下所有内容复制到test目录下12、使用cd和ls查看/root/test/etc 下的内容413、将test目录改名为test214、删除test2五、实验总结:通过本次实验,让我懂得了怎样创建文件以及文件管理命令的使用,对Linux的掌握和了解进一步加深。
全国自考操作系统(文件系统)模拟试卷2(题后含答案及解析)
全国自考操作系统(文件系统)模拟试卷2(题后含答案及解析) 题型有:1. 单项选择题 3. 填空题 4. 简答题 5. 综合题 6. 判断题单项选择题1.属于逻辑结构概念的文件是_______。
A.连续文件B.系统文件C.目录文件D.流式文件正确答案:D解析:连续文件属于物理结构的概念,系统文件和目录文件属于文件类型的概念。
知识模块:文件系统2.一个采用单纯二级索引的文件系统,文件块大小为4KB,文件块地址用4字节表示,则能管理的最大文件是_______GB。
A.8B.4C.2D.1正确答案:B解析:一级索引能记录1k个二级索引块地址项,每一个二级索引能记录1k 个文件块地址项,每个文件块大小为4KB,则能管理的最大文件是1k×1k×4KB=4GB。
知识模块:文件系统3.操作系统为了管理文件,设置了专门的数据结构——文件控制块(FCB),FCB是在执行_______时建立的。
A.打开B.读/写C.链接D.创建正确答案:D 涉及知识点:文件系统4.在Linux中,_______在文件系统中没有相应的inode节点。
A.网络设备B.打印机C.终端D.磁盘正确答案:A 涉及知识点:文件系统5.UNIX系统的磁盘存储空间的空闲块成组链接管理方式可用于_______的分配与回收。
A.外存inodeB.文件目录块C.文件超级块D.磁盘自举块正确答案:B解析:申请空闲文件目录块、文件索引块和文件数据块时,都是通过磁盘存储空间的空闲块成组链接管理结构获得。
知识模块:文件系统6.文件保密的目的是防止文件被_______。
A.篡改B.破坏C.窃取D.删除正确答案:C 涉及知识点:文件系统填空题7.按文件的逻辑结构可将文件分为_______文件和_______文件。
正确答案:记录式、流式涉及知识点:文件系统8.在UNIX系统中,以文件类型分,主要可分为_______文件、_______文件和_______文件三种类型。
如何使用Windows系统进行文件管理
如何使用Windows系统进行文件管理作为一款广泛使用的操作系统,Windows提供了丰富的功能来管理和组织计算机中的文件。
无论是在个人生活还是工作中,有效地进行文件管理都至关重要,可以帮助我们更高效地查找、存储和共享信息。
本文将介绍使用Windows系统进行文件管理的一些基本技巧和操作。
一、理清文件分类和组织结构在使用Windows进行文件管理之前,我们需要先理清文件的分类和组织结构。
可以根据个人的需求和习惯,将文件按照不同的类别进行分类,比如工作文档、照片、音乐、视频等。
然后,可以创建相应的文件夹来存放不同类别的文件,并进一步建立子文件夹以便更详细地组织文件。
二、使用文件资源管理器进行基本操作Windows的文件资源管理器是进行文件管理的重要工具,可以让我们方便地查看、复制、移动和删除文件。
可以通过以下步骤来打开文件资源管理器:1. 点击开始菜单,并选择“文件资源管理器”选项;2. 或者按下Win+E的快捷键,直接打开文件资源管理器。
在文件资源管理器中,我们可以通过双击文件夹或者文件来查看其内容。
如果要复制、移动或删除文件,只需选中相应的文件,然后右键点击并选择“复制”、“剪切”或“删除”等选项。
接下来,选择目标位置,右键点击并选择“粘贴”来完成复制或移动操作。
三、使用文件搜索功能快速定位文件当计算机中存在大量文件时,手动查找特定文件可能会非常耗时。
因此,Windows提供了强大的文件搜索功能,可以帮助我们快速定位所需文件。
在文件资源管理器中,可以在右上角的搜索框中输入文件名或相关关键词,并按下回车键进行搜索。
系统将自动列出符合搜索条件的文件和文件夹,从而帮助我们快速找到目标文件。
四、使用文件标签和元数据管理文件除了文件夹的分类组织,Windows还提供了文件标签和元数据的管理功能,方便我们更精细地对文件进行分类和管理。
可以通过以下步骤给文件添加标签:1. 选中要添加标签的文件;2. 右键点击文件,并选择“属性”选项;3. 在“属性”对话框中,切换到“详细信息”标签页;4. 在“添加标签”一栏中,输入所需的标签。
操作系统文件管理的主要功能为
操作系统文件管理的主要功能概述在计算机科学中,操作系统文件管理是操作系统的一项重要功能。
它负责对计算机中的文件进行组织、存储和访问的管理工作。
文件是计算机系统中存储信息的基本单位,对文件进行合理、高效的管理可以提高计算机系统的整体性能。
操作系统文件管理的主要功能包括文件的创建、存储空间的分配、文件的共享与保护以及文件的访问控制。
文件的创建在操作系统中,文件的创建是指根据用户的请求在存储设备上创建一个新的文件。
文件创建操作以用户的身份进行,用户可以通过在操作系统提供的相关命令或界面上输入指定的文件名和其他属性来创建新文件。
操作系统在接收到用户的请求后,根据内部的文件控制表信息,在存储设备上为新文件分配存储空间,记录文件的属性并返回给用户相应的创建结果。
存储空间的分配存储空间的分配是指操作系统根据文件的大小和存储设备的可用空间将文件存储到适当的位置。
在存储设备上,操作系统将文件划分为一系列大小相等的存储块,并将这些存储块映射到存储设备的逻辑地址。
当文件需要存储或读取时,操作系统根据逻辑地址找到相应的物理位置,完成相应的读取或写入操作。
存储空间的分配策略影响着文件的读写效率和存储设备的利用率。
常用的分配策略包括顺序分配、链式分配和索引分配。
顺序分配将存储空间分为固定大小的块,按照顺序分配给文件;链式分配使用链表的方式链接存储块,提高了文件的存储利用率;索引分配使用索引表来存储文件的存储地址,支持快速的文件定位和访问。
文件的共享与保护文件的共享是指多个用户可以同时访问同一个文件,并对其进行读取、写入等操作。
文件共享可以提高用户之间的协作效率,但也需要操作系统提供合适的机制来保证文件的一致性和安全性。
文件的保护是指操作系统通过访问控制权限机制,对文件进行读、写、执行等操作的权限进行限制。
操作系统对每个文件设置了一些特殊的保护属性,包括用户属性、权限属性等,不同的用户根据自身的权限可以访问文件的不同部分。
文件的访问控制文件的访问控制是指操作系统根据用户的身份和权限,控制用户对文件的访问。
操作系统文件管理
操作系统文件管理操作系统文件管理⒈简介操作系统的文件管理是指操作系统对计算机中文件的组织、存储和访问控制的管理。
它涉及到文件的创建、删除、读写以及文件的目录结构等方面。
⒉文件的基本概念⑴文件文件是一种存储在辅助存储器上的数据集合,可以是文本文件、图像文件、音频文件等。
它提供了数据的持久保存,能够被多个程序共享。
⑵文件的属性文件除了具有名称外,还具有其他属性,如大小、创建日期、文件类型等。
这些属性可以用于文件的标识和管理。
⒊文件系统⑴文件系统的作用文件系统是操作系统中用于管理文件的一种机制,它提供了文件的组织、存储和访问的接口。
文件系统使得用户可以方便地使用文件,并且保证文件的安全性和可靠性。
⑵文件系统的组成文件系统由文件管理器、文件控制表、磁盘空间管理器和目录管理器等组成。
文件管理器负责文件的读写和操作。
文件控制表记录文件的属性和位置信息。
磁盘空间管理器负责分配和回收存储空间。
目录管理器负责管理文件的目录结构。
⒋文件的操作⑴创建文件创建文件是指在文件系统中新建一个文件并分配相应的存储空间。
创建文件时需要指定文件的名称和属性,并且需要检查文件名是否合法,防止重名等问题。
⑵删除文件删除文件是指将文件从文件系统中删除,并且释放其占用的存储空间。
删除文件时需要检查文件是否存在和是否有权限删除,以防止误操作。
⑶读写文件读文件是指从文件中获取数据并将其传送到内存中供程序使用。
写文件是指将数据从内存中写入文件中。
读写文件时需要检查文件指针的位置、权限和文件长度等信息。
⒌文件目录结构⑴单级目录结构单级目录结构是指文件系统中只有一个目录,所有文件都存放在这个目录下。
这种结构简单但不利于文件的组织和查找。
⑵层次目录结构层次目录结构是指文件系统中存在多层目录,每个目录下可以包含子目录和文件。
这种结构便于文件的组织和查找,但需要更多的存储空间。
⑶树状目录结构树状目录结构是指文件系统中的目录形成一棵树状结构,根目录位于树的顶端,子目录和文件位于树的分支和叶子节点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程设计报告模拟文件管理目)院系:计算机科学技术学院计算机科学与技术系班级:计07--2 班姓名:刘德庆学号:12指导教师:鲁静轩2009 年6 月15 日操作系统课程设计任务书一、设计题目:模拟文件管理二、设计目的《操作系统原理》课程设计是软件工程专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。
其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。
三、设计要求(1)选择课程设计题目中的一个课题,合作完成。
(2)良好的沟通和合作能力(3)充分运用前序课所学的软件工程、程序设计等相关知识(4)充分运用调试和排错技术(5)简单测试驱动模块和桩模块的编写(6)查阅相关资料,自学具体课题中涉及到的新知识。
(7)课题完成后必须按要求提交课程设计报告,格式规范,内容详实四、设计内容及步骤1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么。
2.根据实现的功能,划分出合理的模块,明确模块间的关系。
3.编程实现所设计的模块。
4.程序调试与测试。
采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;5.结果分析。
程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。
6.编写课程设计报告;设计报告要求:A4纸,详细设计部分主要叙述本人的工作内容五、课程设计工作计划设计在学期的第15、16周进行,时间安排如下:序号内容时间(天)1 预习、讲课 12 设计 33 编码、测试 54 验收 1合计10。
六、成绩评定办法成绩分为优(A)、良(B)、中(C)、及格(D)、不及格(E)五个等级。
其中设计表现占30%,验收40%,设计报告占30%。
1.设计表现:教师可依据学生使用实验环境的能力、观察和分析实验现象的能力、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。
2.验收:要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题,教师根据具体情况向每个学生提问2至3个问题。
3.设计报告:学生设计后应按时完成设计报告。
要求:内容充实、写作规范、项目填写正确完整、书面整洁等。
目录一.需求分析 (4)二.概要设计 (5)三.详细设计 (6)四.调试分析,测试结果 (25)五.用户使用说明 (25)六.附录,参考资料 (27)一需求分析阅读操作系统方面的书籍,了解操作系统的文件系统原理。
结合分析课程设计要求,确定实体以及它们之间的关系。
实体关系有三张表(磁盘空间分配表、文件表、打开文件表)、一个模拟磁盘的数组、命令服务和用户构成。
用户负责输入命令。
命令服务实现命令的解释、命令检查、命令帮助以及调用相关模块执行相应的命令功能。
程序功能图实体关系图用户命令服务模拟磁盘磁盘空间分配表文件表打开文件表模拟文件系统创建文件删除文件条件读取写入文件查询属性显示内容显示目录重命名文件关闭文件命令服务使得用户能够输入命令,在需要时提供命令的帮助。
同时能够分析命令,调用相应的命令模块对模拟磁盘、磁盘空间分配表、文件表、打开文件表进行操作。
磁盘空间分配表记录模拟磁盘的使用情况。
文件表记录文件的信息和在磁盘里的位置等信息。
打开文件表记录已打开的文件,对应文件表中的文件信息,和文件表里的文件节点类似,记录了文件在模拟磁盘中的信息。
数据流图构造这些实体的关系图,数据流图、程序流程图来进行具体的设计。
通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。
同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。
二 概要设计此课程设计把TXT 文本作来研究对象来模拟操作系统的文件系统工作过程。
所以用一个字符串数组来模拟磁盘空间,顾名思义,模拟磁盘提供字符的存储服务。
磁盘空间分配表,采用链表结构,每个节点保存模拟磁盘的一个逻辑块的信息,包括块的最大长度,文件占用长度,占用标志。
如果占用标志为0,即该空间可分模拟文件系统输入界面显示命令帮助文件表打开文件表磁盘分配表模拟磁盘显示信息文件信息文件信息 长度、位置信息文件(字符串)用户命令配给文件。
初始化磁盘空间分配表链表,首先把整个模拟磁盘作来一块,并置占用位为0.当有进程申请磁盘空间时,从头开始遍历,检查占用位,如果该块为可分配,则检查块大小,若块长度大于或等于申请空间大小,则把块的前一部分(等于申请大小)分配给文件,并置标志位为占用。
剩下的大小作来一个新块,作来一个新节点插入到原节点的后边,标志位为可用。
这样就实现了模拟磁盘的线性分配。
文件表,由于模拟文件系统的文件数量不多,故文件表采用线性表来存储。
线性表每个结点存储一个文件的信息。
打开文件表,采用数组形式存储打开的文件,数组每个元素保存一个打开文件的信息。
文件信息和文件表中的文件信息类似。
这个系统完成了需求分析阶段所要求的:文件系统提供的文件操作有建立文件(create)、删除文件(delete)、条件读取文件(read)、写入文件(write)、查询文件的属性(ask)、显示文件所有内容(type)、重命名文件(ren)、关闭文件(close)。
可以通过键盘输入命令来模拟文件的操作。
通过exit命令退出程序。
这个课程设计,用到的知识如下:1.文件的物理结构可以选用顺序分配、链表分配或索引分配。
2.建立文件:从命令中得到文件名,得到该文件的文件长度,建立文件。
修改目录表。
3.删除文件:回收文件占用的空间,修改目录表4.读文件:read [文件名] [显示开始字节] [显示的字节数] ,直接显示所需要的字节数。
5.写文件:write [文件名] [插入的位置] [插入的内容]6.查询属性:显示文件属性文件名,类型,长度,时间等。
三详细设计数据结构设计通过分析课程设计要求,具体设计出如下数据结构:①char disk[10000]; //模拟磁盘空间通过一个字符串数组来模拟磁盘空间,数组最大长度设置为10000,即磁盘空间最大容量为10000字节。
作为模拟文件系统,主要理解文件系统的原理,可以把文本文件作为对象来研究。
故磁盘空间用一个字符串数组来模拟.②struct freeDiskTable //碰盘空间分配表{int start; //开始位置int length; //占用长度int maxLength; //最大长度int useFlag; //使用标志,1为占用,0为空闲};通过结构体,将磁盘空间使用情况(文件开始位置、占用长度、最大长度、使用标志)结合在一体。
一个结构体变量记录磁盘一个块的信息。
结构体作为链表的一个节点,设置一个链表将节点连接起来,构成一个磁盘空间分配表。
③struct fileTable //文件表{c har fileName[20]; //文件名字int start; //开始位置i nt length; //文件长度i nt maxLength; //最大长度char fileKind[8]; //文件种类,此默认为txts truct tm *timeinfo; //文件创建时间};通过结构体,将文件名字、文件在磁盘的开始位置、文件长度、文件最大长度、文件类型、创建时间结合在一起。
文件类型,本模拟程序使用txt类型。
设置一个线性表来存储文件。
④struct openFileTable // 打开文件表{char fileName[20]; //文件名字c har fileKind[8]; //文件类型i nt start; //文件开始位置int length; //文件长度i nt maxLength; //最大长度int openCount; //打开文件的进程数struct tm *timeinfo; //文件创建时间};通过结构体存储打开的文件信息,包括文件名字、文件类型、文件开始位置、文件长度、最大长度、文件打开数和文件创建时间。
通过结构体数组存储所有打开文件信息。
程序流程图模拟文件系统提供的文件操作有建立(create),读取(read),显示(type),删除(detele),写入(write),关闭(close),重命名(ren)和查询(ask)。
在模拟程序中可从键盘上输入文件操作命令来模拟各用户程序中所调用的各种文件操作,用一个结束命令(exit)停止程序的执行。
开始初始化命令表初始化文件表初始化磁盘分配表初始化打开文件表输入命令分析命令命令表中有该命令?无显示:命令帮助创建删除读取显示重命名写入查询列表关闭执行命令执行命令退出程序(exit)各个模块的具体实现:(包含流程图和代码)(1) .建立文件:create(文件名,记录长度)模拟文件系统进行“建立文件”的处理流程如下:开始查询文件表文件表中有名字?返回有显示重命申请磁盘空间空间申请成功?显示失败否返回无在磁盘分配表中登记登记:长度=0,最大长度=申请长度,开始位置=申请节点位置 空闲情况=占用在文件表中登记登记:长度=0,最大长度=建立长度,开始位置=分配位置文件类型=txt,时间=当前时间在打开文件表中登记登记:信息和文件表中类似显示创建成功返回void fileCreate(char *fileName,int fileLength)//没有写到打开文件表{int i=0;time_t rawtime;int startPosition=0; //文件开始位置,等磁盘分配函数返回值int maxLength=fileLength;struct fileTable temp;for(i=0;i<L.size;i++)if(!strcmp(fileName,L.list[i].fileName)) //判断是否重名,如果重名直接返回{printf("文件重名,请取别的名字!\n");return ; //文件重名,退出创建函数}if(!requestDisk(&startPosition,&maxLength)){printf("申请磁盘空间失败!无法建立文件!\n");return ; //申请磁盘空间失败,退出创建函数}strcpy(temp.fileName,fileName);strcpy(temp.fileKind,"txt"); //设置文件类型为 txttemp.length=0; //创建的时候,还没写入内容,是空文件,长度设为0 temp.maxLength=fileLength; //文件的最大长度temp.start=startPosition; //文件的开始位置time(&rawtime); //获取时间temp.timeinfo=localtime(&rawtime); //把时间写到结构体里去if(!SeqListInsert(&L,L.size,temp)) //把文件插入到文件表{printf("插入文件表失败!\n");system("pause");exit(0); //把文件插入到文件表,如果失败,退出程序}printf("成功创建文件!\n\n");printf("===========================================\n");printf("文件名长度最大长度类型开始位置\n");//显示刚建立的文件printf("%s ",temp.fileName);printf("%d ",temp.length);printf("%d ",temp.maxLength);printf("%s ",temp.fileKind);printf("%d ",temp.start);printf("\n===========================================\n");printf("create进程打开了文件%s,关闭请用close命令!\n\n",fileName);//写到打开文件表strcpy(OFT[OFT_count].fileName,temp.fileName);strcpy(OFT[OFT_count].fileKind,temp.fileKind);OFT[OFT_count].length=temp.length;OFT[OFT_count].maxLength=temp.maxLength;OFT[OFT_count].start=temp.start;OFT[OFT_count].openCount=1;OFT[OFT_count].timeinfo=temp.timeinfo;OFT_count++; //打开表记录的是文件数//printf("count%d",OFT_count);}(2) .写文件:write(文件名,开始位置,字符串)模拟文件系统进行“建立文件”的处理流程如下:void fileWrite(char *fileName,int position,char *s)//找到文件,写到打开表,根据打开表操作{int i=0;int len=0; //计算写入字串长度,跟原来长度相加,如果超过最大长度,就失败int k=0; //如果在打开表里打到记录,则记录位置int flag=0; //如果flag=1,说明在打开表里找到了,不用在文件表里找了len=strlen(s);for(i=0;i<OFT_count;i++){if(!strcmp(fileName,OFT[i].fileName)){k=i;flag=1;OFT[i].openCount++;//多个进程打开,计算器加1break;}}if(flag!=1) //文件不在打开表,找到它,并写到打开表最后{for(i=0;i<L.size;i++){if(!strcmp(fileName,L.list[i].fileName)) //找到文件,写到文件打开表的最后{strcpy(OFT[OFT_count].fileName,L.list[i].fileName);strcpy(OFT[OFT_count].fileKind,L.list[i].fileKind);OFT[OFT_count].length=L.list[i].length;OFT[OFT_count].maxLength=L.list[i].maxLength;OFT[OFT_count].start=L.list[i].start;OFT[OFT_count].timeinfo=L.list[i].timeinfo;OFT[OFT_count].openCount++;k=OFT_count; //记录在文件打开表中的位置flag=1; //标志在打开文件表里}}}if(1==flag) //如果在打开表里找到文件,则不用再找文件表{if(OFT[k].length+len>OFT[k].maxLength){printf("超过文件最大长度,写入失败!\n");return ;}else if(position<0||position>OFT[k].length){printf("插入位置非法!请检查参数\n");return ;}else{int j=0;for(i=OFT[k].length-1;i>=OFT[k].start+position;i--)disk[i+len]=disk[i]; //给插入的字符串空出位置for(i=OFT[k].start+position;i<OFT[k].start+position+len;i++,j++)disk[i]=s[j]; //写进磁盘for(i=0;i<L.size;i++) //改变文件长度{if(!strcmp(fileName,L.list[i].fileName)){L.list[i].length=L.list[i].length+len; //设置文件长度break;}}OFT[k].length=OFT[k].length+len; //同时更新打开文件表中文件的长度printf("成功写入!\n");printf("write进程打开了文件%s,关闭请用close命令!\n\n",fileName);}}elseprintf("无此文件,请输入正确的文件名!");}(3) .读文件:read (文件名,开始位置,长度)模拟文件系统进行“读取文件”的处理流程如下:开始查询打开文件表查询文件表在打开文件表里?不在在文件表里?显示无文件返回不在写进模拟磁盘在在读取文件记录write 参数合法?合法显示成功返回显示参数非法非法v oid fileRead(char *fileName,int position,int length){ int i; int flag=0; int k=0;for(i=0;i<OFT_count;i++) //查找文件打开表,如果存在,则不需要再查找文件表 {if(!strcmp(fileName,OFT[i].fileName))开始查询文件表在打开文件表里?不在在文件表里?显示无文件返回不在在在读取文件记录read 参数合法?非法显示参数非法返回根据参数读取模拟磁盘里的记录返回合法{k=i;flag=1;OFT[i].openCount++;//多个进程打开,计算器加1break;}}if(flag!=1) //文件不在打开表,找到它,并写到打开表最后{for(i=0;i<L.size;i++){if(!strcmp(fileName,L.list[i].fileName)) //找到文件,写到文件打开表{strcpy(OFT[OFT_count].fileName,L.list[i].fileName);strcpy(OFT[OFT_count].fileKind,L.list[i].fileKind);OFT[OFT_count].length=L.list[i].length;OFT[OFT_count].maxLength=L.list[i].maxLength;OFT[OFT_count].start=L.list[i].start;OFT[OFT_count].timeinfo=L.list[i].timeinfo;OFT[OFT_count].openCount++;k=OFT_count;//OFT_count=1;//初次打开,赋值为1flag=1; //标志在打开文件表里}}}if(flag==1){if(position<0||position+length>OFT[k].length){printf("读取参数错误,请检查参数!\n");return ;}for(i=0;i<length;i++)printf("%c",disk[OFT[k].start+position+i-1]); //读取内容printf("\nread进程打开了文件%s,关闭请用close命令!\n\n",fileName);}}}(4) .显示文件所有内容 type(文件名)和read方法类似,只不过是在参数上显示文件所有内容,故不再重复画流程图void fileType(char *fileName){int i;int flag=0;int k=0;for(i=0;i<OFT_count;i++){if(!strcmp(fileName,OFT[i].fileName)){k=i;flag=1;OFT[i].openCount++;//多个进程打开,计算器加1break;}}if(flag!=1) //文件不在打开表,找到它,并写到打开表最后{for(i=0;i<L.size;i++){if(!strcmp(fileName,L.list[i].fileName)) //找到文件,写到文件打开表{strcmp(OFT[OFT_count].fileName,L.list[i].fileName);strcmp(OFT[OFT_count].fileKind,L.list[i].fileKind);OFT[OFT_count].length=L.list[i].length;OFT[OFT_count].maxLength=L.list[i].maxLength;OFT[OFT_count].start=L.list[i].start;OFT[OFT_count].timeinfo=L.list[i].timeinfo;OFT[OFT_count].openCount++;k=OFT_count;//OFT_count=1;//初次打开,赋值为1flag=1; //标志在打开文件表里}}}if(flag==1){for(i=0;i<OFT[k].length;i++)printf("%c",disk[OFT[k].start+i]); //显示全部内容if(OFT[k].length==0)printf("文件为空,无内容显示!\n");printf("\n===========================================\n");printf("\ncreate进程打开了文件%s,关闭请用close命令!\n\n",fileName);// printf(",,,,\n");// printf("OFT[k].length %d\n",OFT[k].length);}elseprintf("无此文件,请检查文件名!\n");}(5).删除文件delete(文件名):void fileDel(char *fileName){int i;int flag=0;int k=0; //记录文件在文件表中的位置SLNode *p; //磁盘空间分配表指针SeqDataType x; //存储被删除的结点,无特殊意义for(i=0;i<OFT_count;i++) //判断是否被别的进程占用,若被占用,打印出错,直接返回 if(!strcmp(fileName,OFT[i].fileName)){printf("别的进程占用文件!无法删除!");return ;}for(i=0;i<L.size;i++)//从文件表里查找到要删除的文件,若查找不到,直接返回{if(!strcmp(fileName,L.list[i].fileName)){flag=1; k=i; break;}}if(flag==0){printf("无此文件!");return ;}if(flag==1)//查找到文件后,把磁盘空间置为空闲,之后从文件表中删除{for(p=freeDiskTableHead;p->next!=NULL;p=p->next){if(p->next->data.start==L.list[k].start){p->next->eFlag=0;printf("成功删除!\n");break;}}SeqListDelete(&L,k,&x);//从文件表中删除}}开始查询打开文件表显示被进程占用无法删除在打开文件表里?在不在在查询文件表返回在文件表里?显示无此文件返回不在删除该文件节点定位该文件在磁盘分配表中的节点,置标志为空闲删除打开文件表中该文件条目返回显示删除成功(6) .重命名文件ren(文件名,新文件名)模拟文件系统进行“重命名文件”的处理流程如下:void fileRen(char *fileName,char *newName) {int i=0;返回返回显示重命名成功返回给文件赋新名不在显示无此文件在文件表里?查询文件表在不在在在打开文件表里?显示被进程占用无法重命名查询打开文件表开始int flag=0;for(i=0;i<OFT_count;i++) //若还有别的进程打开文件,刚不能重命名if(!strcmp(fileName,OFT[i].fileName)){printf("别的进程占用文件!无法重命名!\n");return ;}for(i=0;i<L.size;i++) //在文件表里找到,并重命名if(!strcmp(fileName,L.list[i].fileName)){strcpy(L.list[i].fileName,newName);flag=1;break;}if(flag==1)printf("重命名成功!\n");elseprintf("重命名失败!无此文件\n");}(7) .查询文件属性ask(文件名)模拟文件系统进行“查询文件属性”的处理流程如下:void fileAsk(char *fileName){int i; int flag=0;for(i=0;i<OFT_count;i++) //如果在打开表里找到文件,则不用再找文件表{if(!strcmp(fileName,OFT[i].fileName)){printf("文件名:%s\n",OFT[i].fileName);printf("类型:%s\n",OFT[i].fileKind);printf("长度:%d\n",OFT[i].length);printf("打开进程数:%d\n",OFT[i].openCount);printf("创建时间:%s\n",asctime(OFT[i].timeinfo));flag=1;break;}}if(flag!=1){for(i=0;i<L.size;i++) //从文件表里查找文件{if(!strcmp(fileName,L.list[i].fileName)){printf("文件名:%s\n",L.list[i].fileName); printf("类型:%s\n",L.list[i].fileKind); printf("长度:%d\n",L.list[i].length);printf("创建时间:%s\n",asctime(L.list[i].timeinfo)); flag=1;break; } } }if(flag==0)printf("无此文件!\n");}开始查询打开文件表显示文件属性文件名,类型,长度打开进程数 创建时间在打开文件表里?在不在返回查询文件表在文件表里?显示无此文件返回不在显示文件属性文件名,类型,长度,创建时间返回在(8) .关闭文件close(文件名)模拟文件系统进行“关闭文件”的处理流程如下:void fileClose(char *fileName) {int i;int flag=0;开始查询打开文件表显示此文件没有被打开在打开文件表里?不在在返回文件打开数openCount=0?显示:计数器减1大于0删除打开文件表中该文件条目显示删除成功返回返回int j;for(i=0;i<OFT_count;i++){if(!strcmp(fileName,OFT[i].fileName)) //在文件打开表里找到,把打开数减1,//如果计数为0,显示关闭成功!{OFT[i].openCount--;flag=1;if(OFT[i].openCount==0){for(j=i;j<OFT_count;j++)OFT[j]=OFT[j+1]; //删除要关闭的文件OFT_count--;printf("成功关闭文件!\n");}elseprintf("计数器减1\n");break;}}if(flag==0)printf("此文件没有打开!\n");}四程序的调试与测试1.程序主界面2.输入create ?,显示命令的帮助3.创建一个长度为2000的文件 create what 2000显示创建文件成功,并显示刚创建的文件信息还有友情提示,create进程打开了文件what,需要用 close命令关闭4.往文件里写入内容 write what 0 welcome!显示成功写入,用type命令显示刚写入的内容,显示正确5.继续从中间写入内容write what 3 test,之后用type命令显示内容,能得到正确结果6.关闭文件 close what当计数器为0,显示成功关闭文件,结果比较满意7.读文件 read what 3 4读出来 test字符串,结果正确8.查询文件属性 ask what显示了what文件的属性,结果正确,测试成功!对于测试用例,还有很多路径都有测试过,鉴于篇幅,就不再列出所有可能的路径来进行白盒测试。