模拟简单二级文件管理系统
全国计算机二级VISUAL FOXPRO笔试模拟239
二级VISUAL FOXPRO笔试模拟239一、选择题1. 数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系是A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DBS就是DB,也就是DBMS答案:A[解答] 本题是对数据库理论中几个基本概念的考查。
数据库系统由五个部分组成:数据(DB)、数据库管理系统(DBMS)、硬件系统、数据库管理员和用户。
因此可知,DBS包括DB和DBMS,故选项A为正确答案。
2. 下列关于栈的描述中错误的是A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针答案:B[解答] 本题考核栈的基本概念。
我们可以通过排除法来确定本题的答案。
栈是限定在一端进行插入与删除操作的线性表,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的,这便是栈的记忆作用,所以选项A和选项C正确。
对栈进行插入和删除操作时,栈顶位置是动态变化的,栈底指针不变,选项D正确。
由此可见,选项B错误。
3. 专门的关系运算不包括下列中的A.连接运算B.选择运算C.投影运算D.交运算答案:D[解答] 本题考查专门的关系运算。
属于基本概念题、常考题。
在关系模型的数据库理论中,关系的基本运算有三种:连接运算、选择运算、投影运算,不包括交运算,因此可以得出答案为D。
4. 编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在选择标识符的名字时应考虑A.名字长度越短越好,以减少源程序的输入量B.多个变量共用一个名字,以减少变量名的数目C.选择含义明确的名字,以正确提示所代表的实体D.尽量用关键字作名字,以使名字标准化答案:C。
计算机专业基础综合(文件管理)模拟试卷3(题后含答案及解析)
计算机专业基础综合(文件管理)模拟试卷3(题后含答案及解析) 题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.UNIX系统中,文件存储器的管理采用的是( )。
A.位图法B.空闲块表法C.成组链接法D.单块连接法正确答案:C 涉及知识点:文件管理2.只适合顺序存取,不提供随机存取功能的存储介质是( )。
A.磁盘B.磁鼓C.磁带D.光盘正确答案:C 涉及知识点:文件管理3.对磁盘请求重新排队的目的是( )。
A.重置移臂时间B.让优先级高的进程先I/OC.减少传输时间D.减少旋转时间正确答案:D 涉及知识点:文件管理4.下列不便于文件扩充的物理文件结构是( )。
A.连续文件B.串联文件C.索引文件D.多重索引文件正确答案:A 涉及知识点:文件管理5.在文件系统中,文件的不同物理结构有不同的优缺点。
在下列文件的物理组织结构中,不具有直接读写文件任意一个记录的能力的结构是( )。
A.连续文件B.串联文件D.逻辑文件正确答案:B 涉及知识点:文件管理6.文件系统为每个文件另建立一张指示逻辑记录和物理记录之间的对应关系表,由此表和文件本身构成的文件是( )。
A.连续文件B.串联文件C.索引文件D.逻辑文件正确答案:C 涉及知识点:文件管理7.在磁盘上,最容易导致存储碎片发生的物理文件结构是( )。
A.隐式链接B.顺序存放C.索引存放D.显式链接正确答案:B解析:本题考查物理文件结构的特点。
顺序文件的优点是在顺序存取时速度较快,因为这类文件往往从头至尾依次顺序存取。
但是也存在缺点,首先要求在存储文件时确定文件的长度,依此来分配相应的存储空间,这样会造成在寻找存储空间时耗时较多,一旦没有足够的存储空间来存放该文件时会造成文件存储的失败。
其次,顺序文件不便于文件的扩充,在实际工作中,文件的长度往往会改变,可能会变长,也有可能变短。
操作系统课程设计项目参考
滴加碘液后
滴加碘液前
12/12/2021
第十二页,共二十三页。
消化(xiāohuà):在消化道内将食物分解成可吸收 (xīshōu)的成分的过程
(包括物理性消化和化学性消化)
吸收(xīshōu):营养物质通过消化道壁进入循环 系统的过程
12/12/2021
第十三页,共二十三页。
消化(xiāohuà)和吸收的过程
12/12/2021
第十九页,共二十三页。
练习(liànxí)
• 2、分析数据,指出(zhǐ chū)哪一部分消化道中消化液最多。
• 在每天摄入800克食物和1200毫升水的情况下, 消化腺大致分泌以下数量消化液。 1500毫升唾液 2000毫升胃液 1500毫升肠液 500毫升胆汁 1500毫升胰液
12/12/2021
第二十二页,共二十三页。
内容 总结 (nèiróng)
第二节。食物中的营养物质是在消化系统中被消化和吸收的。这粒西瓜籽在姗姗的消化道内, 经过了难忘的时光。它先遇到像轧钢机似的上、下尖硬的怪物,差点儿将它压得粉身碎骨。后来它
No 钻进了一条(yī tiáo)又长又窄的迷宫,它在这里走了很久,身边的许多物质都神秘地消失了。走出迷
唾液腺、胃腺(wèixiàn)、肝脏、胰腺、肠腺
1、淀粉在__口__腔__开始消化、蛋白质在____开始胃消化、脂肪在_______开始 消小化肠。
2、胆汁是一种消化液,但不含消化酶,起乳化脂肪的作用。
二、人体消化、吸收的主要器官—— _____小肠 能 训 练解
胰脏:分泌(fēnmì)胰液 肠腺:分泌肠液
肝脏:最大的腺体,分泌胆汁。 胆汁无消化酶,有乳化脂肪 的
作用。
第七页,共二十三页。
操作系统实验指导书
操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。
《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。
通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。
对加深理解和掌握操作系统相关原理有重要帮助。
2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。
对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。
·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。
·上机后,分析实验结果并写出实验报告。
3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。
实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。
如果程序未能通过,应分析其原因。
二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。
三、实验内容1.开机后,熟悉Windows的界面(桌面、任务栏、开始按钮<点击后出现“开始”菜单>、我的电脑图标、回收站、我的文档)。
计算机等级考试二级办公软件高级应用模拟题2020年(32)_含答案与解析)-交互86
计算机等级考试二级办公软件高级应用模拟题2020年(32)(总分100, 做题时间120分钟)选择题1.程序流程图中带有箭头的线段表示的是SSS_SINGLE_SELA图元关系B数据流C控制流D调用关系分值: 3.5答案:C程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。
其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件。
2.软件设计中模块划分应遵循的准则是SSS_SINGLE_SELA低内聚低耦合B高内聚低耦合C低内聚高耦合D高内聚高耦合分值: 3.5答案:B耦合性与内聚性是模块独立性的两个定性标准。
一般一个较优秀的软件设计,应尽量做到高内聚、低耦合,即提高模块内的内聚性和减弱模块之间的耦合性,有利于提高模块的独立性。
3.软件设计中划分模块的准则是SSS_SINGLE_SELA低内聚低耦合B高内聚低耦合C低内聚高耦合D高内聚高耦合答案:B耦合性与内聚性是模块独立性的两个定性标准。
一般一个较优秀的软件设计,应尽量做到高内聚、低耦合,即提高模块内的内聚性和减弱模块之间的耦合性,有利于提高模块的独立性。
4.下面描述中错误的是SSS_SINGLE_SELA系统总体结构图支持软件系统的详细设计B软件设计是将软件需求转换为软件表示的过程C数据结构与数据库设计是软件设计的任务之一DPAD图是软件详细设计的表示工具分值: 3.5答案:A软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
5.下面不属于需求分析阶段任务的是SSS_SINGLE_SELA确定软件系统的功能需求B确定软件系统的性能需求C需求规格说明书评审D制定软件集成测试计划分值: 3.5答案:D需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。
6.数据字典(DD)所定义的对象都包含于SSS_SINGLE_SELA数据流图(DFD图)B程序流程图C软件结构图D方框图答案:A本题考查数据流图概念。
二级ACCESS数据库程序设计模拟试题及答案解析(16)
二级ACCESS数据库程序设计模拟试题及答案解析(16)(1/40)单项选择题第1题设循环队列为Q(1:m),其初始状态为front=rear=m。
经过一系列入队与退队运算后,front=20,rear=15。
现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为______。
A.5B.6C.m-5D.m-6下一题(2/40)单项选择题第2题某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为______。
A.EFGDCBAB.DCBEFGAC.BCDGFEAD.DCBGFEA上一题下一题(3/40)单项选择题第3题下列叙述中正确的是______。
A.在链表中,如果每个节点有两个指针域,则该链表一定是非线性结构B.在链表中,如果有两个节点的同一个指针域的值相等,则该链表一定是非线性结构C.在链表中,如果每个节点有两个指针域,则该链表一定是线性结构D.在链表中,如果有两个节点的同一个指针域的值相等,则该链表一定是线性结构上一题下一题(4/40)单项选择题第4题下列叙述中错误的是______。
A.在带链队列中,队头指针和队尾指针都是在动态变化的B.在带链栈中,栈顶指针和栈底指针都是在动态变化的C.在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D.在带链队列中,队头指针和队尾指针可以指向同一个位置上一题下一题(5/40)单项选择题第5题软件生命周期中,确定软件系统要做什么的阶段是______。
A.需求分析B.软件测试C.软件设计D.系统维护上一题下一题(6/40)单项选择题第6题下面对软件测试和软件调试有关概念叙述错误的是______。
A.严格执行测试计划,排除测试的随意性B.程序调试通常也称为DebugC.软件测试的目的是发现错误和改正错误D.设计正确的测试用例上一题下一题(7/40)单项选择题第7题下面属于系统软件的是______。
A.财务管理系统B.编译软件C.编辑软件WordD.杀毒软件上一题下一题(8/40)单项选择题第8题将E-R图转换为关系模式时,E-R图中的实体和联系都可以表示为______。
模拟简单二级文件管理系统
模拟简单二级文件管理系统简单二级文件管理系统是一种用于管理和组织计算机文件的软件系统。
它提供了一种方便的方式来浏览、创建、修改和删除文件,以及对文件进行分类和搜索。
本文将介绍如何设计和实现一个模拟简单二级文件管理系统。
一、系统概述模拟简单二级文件管理系统是一个基于命令行界面的文件管理系统。
用户可以通过输入不同的命令来执行文件管理操作,如创建文件夹、创建文件、查看文件列表、移动文件等。
系统支持两级文件结构,即可以在根目录下创建文件夹,并在文件夹下创建文件。
系统还提供了文件搜索功能,用户可以根据文件名或文件类型进行搜索。
二、系统功能1. 创建文件夹:用户可以通过输入命令,在指定路径下创建一个新的文件夹。
2. 创建文件:用户可以通过输入命令,在指定路径下创建一个新的文件。
3. 查看文件列表:用户可以通过输入命令,查看指定路径下的文件夹和文件列表。
4. 移动文件:用户可以通过输入命令,将指定文件或文件夹移动到目标路径下。
5. 复制文件:用户可以通过输入命令,将指定文件或文件夹复制到目标路径下。
6. 删除文件或文件夹:用户可以通过输入命令,删除指定的文件或文件夹。
7. 文件搜索:用户可以通过输入命令,根据文件名或文件类型进行文件搜索。
三、系统设计1. 数据结构系统使用树状结构来表示文件系统,每个节点表示一个文件夹或文件。
节点包含以下属性:- 名称:节点的名称,可以是文件夹名称或文件名称。
- 类型:节点的类型,可以是文件夹或文件。
- 父节点:指向父节点的指针,用于表示文件夹的层次结构。
- 子节点列表:包含子节点的列表,用于表示文件夹下的文件和文件夹。
2. 系统流程系统的主要流程如下:- 用户输入命令。
- 系统解析命令,判断执行的操作类型。
- 根据操作类型,执行相应的操作。
- 更新文件系统的数据结构。
- 返回执行结果给用户。
四、系统实现系统可以使用编程语言来实现,如Python。
以下是一个简单的实现示例:```pythonclass Node:def __init__(self, name, type): = nameself.type = typeself.parent = Noneself.children = []class FileSystem:def __init__(self):self.root = Node("root", "folder")def create_folder(self, path, name):# 创建文件夹的逻辑def create_file(self, path, name):# 创建文件的逻辑def list_files(self, path):# 查看文件列表的逻辑def move_file(self, source_path, target_path): # 移动文件的逻辑def copy_file(self, source_path, target_path): # 复制文件的逻辑def delete_file(self, path):# 删除文件的逻辑def search_file(self, path, keyword):# 文件搜索的逻辑# 创建文件系统对象file_system = FileSystem()# 用户输入命令command = input("请输入命令:")# 解析命令并执行相应的操作# ...# 更新文件系统的数据结构# ...# 返回执行结果给用户# ...```以上是一个简单的模拟二级文件管理系统的设计和实现。
计算机二级模拟试题及答案
计算机二级模拟试题及答案计算机二级考试是许多大学生和职场人士提升自身计算机技能的重要途径。
以下为大家提供一套计算机二级模拟试题及答案,希望能对您的备考有所帮助。
一、选择题(每题 2 分,共 40 分)1、下列叙述中正确的是()A 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C 顺序存储结构能存储有序表,链式存储结构不能存储有序表D 链式存储结构比顺序存储结构节省存储空间答案:A解释:顺序存储结构的存储一定是连续的,而链式存储结构的存储空间不一定是连续的,A 选项正确。
顺序存储结构和链式存储结构都可以用于线性结构和非线性结构,B 选项错误。
两种存储结构都可以存储有序表,C 选项错误。
链式存储结构由于需要存储指针,通常比顺序存储结构更耗费存储空间,D 选项错误。
2、设一棵二叉树中有 3 个叶子结点,有 8 个度为 1 的结点,则该二叉树中总的结点数为()A 12B 13C 15D 不能确定答案:B解释:根据二叉树的性质,度为 0 的叶子结点数总是比度为 2 的结点数多 1。
已知有 3 个叶子结点,所以度为 2 的结点数为 2。
总的结点数=度为 0 的叶子结点数+度为 1 的结点数+度为 2 的结点数= 3 + 8 + 2 = 13。
3、在深度为 5 的满二叉树中,叶子结点的个数为()A 32B 31C 16D 15答案:C解释:在满二叉树中,叶子结点都在最底层。
深度为k 的满二叉树,叶子结点个数为 2^(k 1) 。
所以深度为 5 的满二叉树,叶子结点个数为 2^(5 1) = 16 。
4、下列排序方法中,最坏情况下比较次数最少的是()A 冒泡排序B 简单选择排序C 直接插入排序D 堆排序答案:D解释:冒泡排序、简单选择排序和直接插入排序在最坏情况下的比较次数均为 n(n 1) / 2 ,而堆排序在最坏情况下的比较次数为O(nlog₂n) ,所以堆排序在最坏情况下比较次数最少。
操作系统课程设计报告题目及代码
题目一模拟操作系统设计设计一个模拟操作系统管理程序,实现以下管理功能:1.内存管理功能2.文件管理功能3.磁盘管理功能题目二虚拟存储器各页面置换算法的实现与比较内容:设计一个虚拟存储区和内存工作区,通过产生一个随机数的方法得到一个页面序列,假设内存给定的页面数由键盘输入,分别计算使用下述各方法时的内存命中率:先进先出算法〔FIFO〕、最近最少使用算法〔LRU〕、最正确淘汰算法〔OPT〕、最少页面算法〔LFU〕等。
题目三文件系统设计通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
内容:为Linu*系统设计一个简单的二级文件系统,以实现以下功能:1.可以实现以下几条命令(1)login 用户登录(2)dir 文件目录列表(3)creat 创立文件(4)delete 删除文件(5)open 翻开文件(6)close 关闭文件(7)read 读文件(8)write 写文件2.实验提示〔1〕首先确定文件系统的数据构造:主目录、子目录及活动文件等。
主目录和子目录都以文件的形式存放在磁盘,这样便于查找和修改。
〔2〕用户创立的文件,可以编号存储于磁盘上。
如file0、file1、file2……等,并以编号作为物理地址,在目录中进展登记。
[清华大学?操作系统教程? *丽芬编著题目四设计一个按时间片轮转法进程CPU调度的程序。
提示:〔1〕假设系统有5个进程,每个进程用一个进程控制块PCB来代表,PCB中包含进程名、指针、到达时间、估计运行时间、进程状态表。
其中,进程名即为进程进标识。
〔2〕为每一个进程设计一个要示运行时间和到达时间。
〔3〕按照进程到达的先后顺序排成一个循环队列,再设一个队首指针指向第一个到达的进程首址。
〔4〕执行处理机调度时,开场选择队首的第一个进程运行。
另外再设一个当前运行进程指针,指向当前正运行的进程。
〔5〕由于本实验是模拟实验,所以对被选中进程并不实际启运运行,只是执行:a.估计驼行时间减1b.输出当前运行进程的名字。
全国计算机等级考试二级MySQL模拟试题及解析10套
全国计算机等级考试二级MySQL模拟试题及解析(1)一、选择题1.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法A.对象B.数据结构C.数据流D.目标答案:C2.对线性表进行二分法检索,其前提条件是( )。
A.线性表以顺序方式存储,并按关键码值排好序B.线性表以顺序方式存储,并按关键码的检索频率排好序C.线性表以链式方式存储,并按关键码值排好序D.线性表以链式方式存储,并按关键码的检索频率排好序答案:A3.结构化程序设计的3种结构是( )。
A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构答案:D4.已知数据表A中每个元素距其最终位置不远,为了节省时间,应采用的算法是( )。
A.堆排序B.直接插入排序C.快速排序D.直接选择排序答案:B5.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
其中数据独立性最高的阶段是( )。
A.数据库系统B.文件系统C.人工管理D.数据项管理答案:A6.栈和队列的共同特点是( )。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点答案:C7.链表不具有的特点是( )。
A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素D.所需空间与线性表长度成正比答案:B8.在数据库设计中,将E—R图转换为关系模式的过程属于( )。
A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段答案:B9.C语言可执行程序的开始执行点是( )。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句答案:C10.在C语言程序中可用做用户标识符的是( )。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG答案:B二、填空题1.创建索引通常使用()语句.参考解析:CREATE INDEX2.在如下的建表语句中,设置外键sno参照于xs(sno),外键kno参照于kc(kno),并都在更新、删除数据时设置cascade策略Create table xs_kc( id int not null auto_increment primary key,sno char(6) not null,Kno char(3) not null,Chengji tinyint(1) null,()参考解析:Create table xs_kc( id int not null auto_increment primary key,sno char(6) not null,Kno char(3) not null,Chengji tinyint(1) null,Foreign key(sno) references xs(sno) on delete cascade on update cascade,Foreign key(kno) references kc(kno) on delete cascade on update cascade);3.一个关系R的3NF是指它们的()都不传递依赖它的任一候选关键字参考解析:非主属性4.数据库系统的三级模式结构是指数据库系统是由________、________和________三级构成。
操作系统试验模拟文件管理系统
操作系统试验摹拟文件管理系统一、引言文件管理是操作系统中的重要组成部份,它负责对计算机中的文件进行组织、存储和访问。
摹拟文件管理系统是为了更好地理解文件管理的原理和实现方式而设计的一个实验项目。
本文将详细介绍摹拟文件管理系统的设计和实现。
二、设计目标1. 实现基本的文件管理功能,包括文件的创建、删除、打开和关闭。
2. 实现文件的读写操作,包括顺序读写和随机读写。
3. 实现文件的共享和保护机制,确保多个进程可以同时对同一个文件进行读写操作。
4. 实现文件的索引和目录结构,方便文件的查找和管理。
5. 实现文件的存储管理,包括空暇空间管理和磁盘分配算法。
三、系统设计1. 文件的创建和删除在摹拟文件管理系统中,可以通过命令行或者图形界面来创建和删除文件。
创建文件时,系统会为该文件分配一个惟一的文件标识符,并在文件目录中记录该文件的相关信息。
删除文件时,系统会释放该文件占用的存储空间,并从文件目录中删除该文件的记录。
2. 文件的打开和关闭在摹拟文件管理系统中,可以通过命令行或者图形界面来打开和关闭文件。
打开文件时,系统会根据文件标识符在文件目录中查找该文件的相关信息,并将该文件的描述符返回给用户进程。
关闭文件时,系统会释放该文件的描述符,并更新文件的相关信息。
3. 文件的读写操作在摹拟文件管理系统中,可以通过命令行或者图形界面来进行文件的读写操作。
顺序读写是指按照文件的存储顺序挨次读取或者写入文件的内容,而随机读写是指根据文件的索引或者偏移量来读取或者写入文件的内容。
系统会根据用户进程的读写请求,将相应的数据从磁盘中读取或者写入到内存中。
4. 文件的共享和保护机制在摹拟文件管理系统中,多个进程可以同时对同一个文件进行读写操作。
系统会通过锁机制来实现文件的共享和保护。
当一个进程正在对文件进行读写操作时,其他进程需要等待该进程释放文件的锁才干对文件进行读写操作。
同时,系统还可以设置文件的访问权限,确保惟独具有相应权限的进程才干对文件进行读写操作。
文件管理实验报告
昆明理工大学信息工程与自动化学院学生实验报告(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<<"已存在。
全国自考操作系统(文件系统)模拟试卷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系统中,以文件类型分,主要可分为_______文件、_______文件和_______文件三种类型。
二级目录文件讲解
青岛理工大学操作系统课程设计报告院(系):计算机工程学院专业:计算机科学与技术班级:_计算122学生姓名:马鹏__学号: 201207059欧阳涛__201207060 题目:___模拟二级文件管理系统__起迄日期:_ 2015.07.13-2015.07.24___设计地点:现代教育中心B303、B305指导教师:熊晓芸2014—2015年度第 2 学期完成日期: 2015 年 7 月 24 日一、课程设计目的通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。
进行操作系统课程设计主要是在学习操作系统课程的基础上,在完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。
同时,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
二、课程设计内容及小组成员分工1.设计内容:通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统1)能够实现下列命令:●Login 用户登录●Dir 列文件目录●Create 创建文件●Delete 删除文件●Open 打开文件●Close 关闭文件●Read 读文件●Write 写文件●Bit 显示外部存储空间的位示图(按16*16的形式显示)2)系统能检查键入命令的正确性,出错时应能显示出错原因3)列目录时要列出文件目录、文件名和文件长度,以及系统总容量,占用容量、空闲容量(容量以字节为单位)4)不允许对打开的文件执行重复打开操作或执行删除操作5)外部存储空间的大小为256个Block,每个Block的大小为512字节,盘块号从1开始编号6)文件系统对外部存储空间采用连续分配的方式控制块的大小为32字节,其中文件名字占8个字节,参照MS-DOS设计文件控制块的数据结构;FAT由文件名、起始盘块号,长度、最后一块字节数四部分组成,占12个字节,磁盘的目录最大能存放256个目录项。
操作系统进程调度实验报告
操作系统(2014年秋季学期)
系别:计算机科学与技术
班级:数媒12-1班
:
学号:
实验名称:进程调度
总成绩:
评语:
日期:
六、编译过程截图
七、测试用例
void fileCreate(char fileName[],int length,char fileKind[]); //创建文件void fileWrite(char fileName[]); //写文件
void fileCat(char fileName[]); //读文件
void fileRen(char fileName[],char rename[]); //重命名文件
void fileFine(char fileName[]); //查询文件
void fileDir(char UserName[]); //显示某一用户的所有文件
void fileClose(char fileName[]); //关闭已打开的文件
void fileDel(char fileName[]); //删除文件
void chmod(char fileName[],char kind[]); //修改文件的读写方式
int requestDist(int &startPostion,int maxLength); //磁盘分配查询
void initDisk(); //初始化磁盘
void freeDisk(int startPostion); //磁盘空间释放
void diskShow(); //显示磁盘使用情况
void print_userTable();//显示用户目录
八、实验结果。
国家二级(综合)机试模拟试卷2(题后含答案及解析)
国家二级(综合)机试模拟试卷2(题后含答案及解析) 题型有:1. 选择题选择题1.在数据管理技术发展的三个阶段中,数据共享最好的是()。
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同正确答案:C解析:数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
知识模块:综合2.在学生表中要查找所有年龄大于30岁姓王的男同学,应该采用的关系运算是()。
A.选择B.投影C.连接D.自然连接正确答案:A解析:关系运算包括:选择、投影和连接。
①选择:从关系中找出满足给定条件的元组的操作称为选择。
选择是从行的角度进行的运算,即从水平方向抽取记录。
②投影:从关系模式中指定若干个属性组成新的关系。
投影是从列的角度进行的运算,相当于对关系进行垂直分解。
知识模块:综合3.在Access数据库对象中,体现数据库设计目的的对象是()。
A.报表B.模块C.查询D.表正确答案:C解析:Access数据库对象分为7种。
这些数据库对象包括表、查询、窗体、报表、数据访问页、宏、模块。
其中①表:数据库中用来存储数据的对象,是整个数据库系统的基础。
②查询:它是数据库设计目的的体现,建完数据库以后,数据只有被使用者查询才能真正体现它的价值。
知识模块:综合4.若要求在文本框中输入文本时达到密码“*”的显示效果,则应该设置的属性是()。
A.默认值B.有效性文本C.输入掩码D.密码正确答案:C解析:将“输入掩码”属性设置为“密码”,以创建密码输入项文本框。
文本框中键入的任何字符都按原字符保存,但显示为星号(*)。
知识模块:综合5.下列关于关系数据库中数据表的描述,正确的是()。
A.数据表相互之间存在联系,但用独立的文件名保存B.数据表相互之间存在联系,是用表名表示相互间的联系C.数据表相互之间不存在联系,完全独立D.数据表既相对独立,又相互联系正确答案:D解析:Access是一个关系型数据库管理系统。
文件管理课程设计报告
操作系统课程设计报告姓名:xxx______学号:xxxxxxxxxxxx__专业年级:软件2班指导教师:__xx_2016年 3月1日1 概述目的:本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
意义: 本系统是基于linux平台运行在终端上的虚拟二级文件管理系统。
模拟真正的文件管理系统,并采用用户登录机制对文件和文件夹进行创建,修改,删除的操作.对于文件夹而言,可以进行创建删除的操作;对于文件而言,可以创建,修改,删除.删除文件夹时,同时删除相应文件夹下的文件。
采用用户登录使得用户管理文件更方便,并形成了二级的文件管理模式.主要任务:为DOS系统设计一个简单的二级文件系统。
要求做到以下几点:①可以实现下列命令:login 用户登录dir 列文件目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护(1)设计思路程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式。
其他操作包括新建用户、帮助、用户登入、用户登出、退出系统。
在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“file。
p”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容。
(2) 数据结构file结构体系统文件.数据结构:fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式 0。
只读;1.可写;2.可读写;3.保护、 fname[]char,文件名; filemode结构体文件状态数据结构:isopenint,文件当前状态,0。
计算机二级考试模拟题
计算机二级考试模拟题(2023年)1. 以下哪个不是操作系统的代表?A. Windows 10B. UbuntuC. MS WordD. macOS答案:C2. 在Excel中,哪个函数可以用来计算平均值?A. SUM()B. COUNT()C. AVG()D. AVERAGE()答案:D3. TCP和UDP都是属于哪一层的协议?A. 数据链路层B. 网络层C. 传输层D. 应用层答案:C4. HTML中,哪个标签用于插入一个图片?A. `<link>`B. `<img>`C. `<picture>`D. `<media>`答案:B5. 在计算机中,1字节(Byte)等于多少位(bit)?A. 2B. 4C. 8D. 16答案:C6. 以下哪个不是数据库管理系统(DBMS)?A. OracleB. MongoDBC. PhotoshopD. MySQL答案:C7. Python语言中,哪个关键字用于定义一个函数?A. funcB. defineC. defD. function答案:C8. 在计算机网络中,哪个协议用于网页传输?A. UDPB. SMTPC. FTPD. HTTP答案:D9. 关于二进制,以下哪个是有效的二进制数?A. 1012B. 1101C. 2101D. 1008答案:B10. 以下哪种存储介质的存储速度最快?A. 磁盘B. 光盘C. RAMD. U盘答案:C11. 下列哪个不是编程语言?A. JavaB. HTMLC. C++D. Python答案:B12. 在计算机术语中,CPU代表什么?A. Central Processing UnitB. Computer Program UnitC. Central Printed UnitD. Central Peripheral Unit答案:A13. 什么是BIOS的主要功能?A. 数据备份B. 操作系统启动C. 网络连接D. 图形渲染答案:B14. 哪个应用是用于电子表格的?A. WordB. PowerPointC. ExcelD. Access答案:C15. 以下哪一个不是常见的网络拓扑?A. 星型B. 环形C. 网状D. 六边形答案:D16. IPv4地址由几位组成?A. 32位B. 64位C. 128位D. 256位答案:A17. 在计算机图形设计中,RGB代表什么?A. Read, Green, BlueB. Red, Green, BlueC. Render, Graphic, BitmapD. Regular, Gradient, Bold答案:B18. 为了在网页中添加样式,我们使用什么?A. HTMLB. PHPC. CSSD. JavaScript答案:C19. 在数据库语境中,SQL代表什么?A. Simple Quantitative LanguageB. Structured Query LanguageC. Sequential Query ListD. Simple Query List答案:B21. 用于编写动态网页脚本的语言是?A. JavaB. SwiftC. PHPD. C#答案:C22. 下列哪个不是云计算服务模型?A. IaaSB. PaaSC. DaaSD. FaaS答案:C23. RAID技术中,“RAID 0”代表什么?A. 镜像B. 奇偶校验C. 条带化D. 热备份答案:C24. 802.11是与哪个技术相关的标准?A. 蓝牙B. GSMC. Wi-FiD. LTE答案:C25. 哪个命令在Windows中用于查看IP配置?A. ipconfigB. ifconfigC. netstatD. tracert答案:A26. 什么是鱼骨图的另一个常用名称?A. 泡泡图B. 盒须图C. Ishikawa图D. 雷达图答案:C27. 哪种搜索算法从中间开始并检查元素,将搜索区间不断分成两半?A. 线性搜索B. 广度优先搜索C. 深度优先搜索D. 二分搜索答案:D28. 在项目管理中,哪个不是一个项目生命周期阶段?A. 初始阶段B. 计划阶段C. 执行阶段D. 购买阶段答案:D29. 在软件开发中,哪个模型被称为“瀑布模型”?A. 增量模型B. 螺旋模型C. 敏捷模型D. 顺序模型答案:D30. 哪种计算机存储器是非易失性的?A. RAMB. ROMC. CacheD. DRAM答案:B31. 在Web开发中,哪个标准用于描述和交换数据?A. HTMLB. CSSC. XMLD. SQL答案:C32. 在计算机图形中,哪个文件格式常用于无损压缩?A. JPGB. PNGC. BMPD. GIF答案:B33. 以下哪个是面向对象编程的三大特性之一?A. 重载B. 编译C. 聚合D. 继承答案:D34. 用于从数据库中检索数据的SQL命令是?A. INSERTB. DELETEC. UPDATED. SELECT答案:D35. 二进制系统中,2的0次方的值是多少?A. 0B. 1C. 2D. 3答案:B36. 哪种算法复杂度为O(n^2)?A. 二分查找B. 快速排序C. 归并排序D. 冒泡排序答案:D37. 以下哪个是Linux的发行版?A. SafariB. FedoraC. EdgeD. Chrome答案:B38. 在网络模型中,哪一层负责路由功能以及IP地址?A. 数据链路层B. 传输层C. 网络层D. 应用层答案:C39. JPEG的全称是什么?A. Joint Photographic Experts GroupB. Java Programming Extensible GraphicsC. Joint Pixel Encoding GraphicsD. Java Photo Extended Graphics答案:A40. 哪种设备用于在网络上连接多台计算机或其他网络设备?A. RouterB. SwitchC. ModemD. Hub答案:B41. 下列哪个不是版本控制系统?A. GitB. SVNC. HTTPD. Mercurial答案:C42. 哪个端口号默认用于HTTPS服务?A. 21B. 80C. 443D. 8080答案:C43. Python中,哪个函数用于打印输出?A. print()B. echo()C. printf()D. println()答案:A44. 在C++中,哪个标准库提供了输入和输出功能?A. <iostream>B. <math.h>C. <string>D. <stdio.h>答案:A45. 在计算机安全中,哪个是恶意软件的类型?A. CookieB. WidgetC. TrojanD. API答案:C46. OSI模型中共有几层?A. 5B. 6C. 7D. 8答案:C47. 在计算机术语中,“GPU”代表什么?A. General Processing UnitB. Graphics Processing UnitC. Global Programming UnitD. General Peripheral Unit答案:B48. 在计算机网络中,MAC地址由几位组成?A. 32位B. 48位C. 64位D. 128位答案:B49. 哪个命令在Linux中用于列出目录内容?A. listB. showC. dirD. ls答案:D50. 在Web开发中,哪种技术是用于客户端脚本?A. PHPB. C. JavaScriptD. Ruby on Rails答案:C51. 在计算机术语中,什么是“缓存”的主要目的?A. 扩展内存B. 保存备份数据C. 加快数据访问速度D. 增加磁盘空间答案:C52. 哪个语言主要用于Web前端开发?A. JavaB. PythonC. JavaScriptD. C++答案:C53. "BI"在IT领域通常指的是什么?A. Binary InputB. Business InformaticsC. Base InteractionD. Business Intelligence答案:D54. 哪种存储设备是固态的?A. 磁带B. SSDC. 光盘D. HDD答案:B55. 在网络协议中,“FTP”代表什么?A. Fast Transfer ProtocolB. File Transaction ProgramC. File Transfer ProtocolD. Fundamental Transition Process答案:C56. 哪种协议用于发送电子邮件?A. HTTPB. FTPC. SMTPD. DNS答案:C57. 在计算机图形中,“GPU”主要用于什么?A. 数据处理B. 数据存储C. 图形渲染D. 网络通信答案:C58. 哪种数据结构是“先入后出”(FILO)?A. 队列B. 链表C. 栈D. 图答案:C59. 在HTML中,哪个标签用于创建超链接?A. <link>B. <a>C. <hl>D. <ref>答案:B60. 什么是操作系统的主要任务?A. 图形设计B. 软件开发C. 硬件管理和协调D. 数据分析答案:C61. 哪个不是Linux命令?A. lsB. dirC. grepD. chmod答案:B62. 在数据库中,用于连接两个表的键是什么?A. 外键B. 主键C. 连接键D. 分类键答案:A63. 对于数字证书,哪个组织负责发放?A. ISPB. CAC. IEEED. W3C答案:B64. 在软件开发的水瀑布模型中,哪个阶段先于测试?A. 设计B. 部署D. 实现答案:D65. 哪种语言常用于创建Android应用?A. SwiftB. KotlinC. PHPD. R答案:B66. 哪个协议用于动态主机配置?A. DHCPB. DNSC. FTPD. TCP答案:A67. 802.3是与哪个技术相关的标准?A. 蓝牙B. GSMC. EthernetD. LTE答案:C68. 以下哪个是微软的关系数据库管理系统?A. MySQLB. PostgreSQLC. SQLiteD. SQL Server答案:D69. 在Python中,哪个库常用于数据分析?A. FlaskB. DjangoC. PandasD. TensorFlow答案:C70. 在计算机安全中,一个常见的密码攻击方法是什么?A. Brute ForceB. Data MiningC. Web ScrapingD. Link Aggregation71. 在Web浏览器中,HTTP状态代码“404”表示什么?A. 服务器错误B. 页面未找到C. 访问被拒绝D. 请求成功答案:B72. 软件开发中,哪种方法论强调迭代和递增的开发?A. 水瀑布模型B. 螺旋模型C. 敏捷开发D. V模型答案:C73. 哪种语言经常与HTML和CSS一起使用,进行Web开发?A. PythonB. JavaC. JavaScriptD. C#答案:C74. 在数据库中,用于表示数据间关系的模型是?A. 分层模型B. ER模型C. 对象模型D. 网状模型答案:B75. 以下哪个是开源的操作系统?A. Windows 10B. macOSC. UbuntuD. iOS答案:C76. 在计算机网络中,哪一层负责确保端到端的通信可靠性?A. 数据链路层B. 传输层C. 网络层D. 应用层答案:B77. 哪个命令在Windows中用于查看IP地址?A. ipconfigB. ifconfigC. netstatD. traceroute答案:A78. 在数字图像中,每个像素的颜色深度通常表示为?A. DPIB. PPIC. bit-depthD. resolution答案:C79. 哪个程序设计模式意味着一个类应该只有一个原因进行更改?A. 开放封闭原则B. 单一职责原则C. 里氏替换原则D. 依赖反转原则答案:B80. 哪个不是数据库管理系统(DBMS)的类型?A. 关系型B. 非关系型C. 对象关系型D. 响应式答案:D81. 用于创建3D图形的计算机语言是?A. HTMLB. OpenGLC. SQLD. PHP答案:B82. 在软件开发中,用于跟踪错误和问题的工具被称为?A. IDEB. DebuggerC. Issue TrackerD. Compiler答案:C83. 在网络安全中,DDoS代表什么?A. Data Defined Operation SystemB. Digital Data Output ServiceC. Distributed Denial of ServiceD. Direct Data Operation System答案:C84. 在计算机中,RAM代表什么?A. Read Access MemoryB. Random Access MachineC. Ready Algorithm ModelD. Random Access Memory答案:D85. 在Python中,哪个函数用于计算列表中的元素数量?A. count()B. size()C. length()D. len()答案:D86. 哪个HTTP方法用于获取资源?A. POSTB. DELETEC. PUTD. GET答案:D87. 在计算机图形中,“VR”代表什么?A. Visual RepresentationB. Variable RateC. Virtual RealityD. Vector Rendering答案:C88. 哪种加密算法是对称的?A. RSAB. ECCC. AESD. DSA答案:C89. “Turing Test”用于评估什么?A. 网络安全B. 机器的计算能力C. 人工智能的行为与人类的不可区分性D. 数据库性能答案:C90. 一个域名的www和mail通常指的是什么?A. TLDB. ProtocolC. SubdomainD. Suffix答案:C91. 在计算机科学中,算法的时间复杂性常常使用什么表示?A. 函数图B. 贝塞尔曲线C. 大O表示法D. 三维模型答案:C92. 哪种数据结构允许存储键值对?A. 队列B. 栈C. 图D. 哈希表答案:D93. 在HTML中,哪个元素用于在浏览器中显示图像?A. <video>B. <audio>C. <img>D. <canvas>答案:C94. 以下哪个不是Java的基本数据类型?A. intB. charC. listD. float答案:C95. 以下哪个端口默认用于HTTPS通信?A. 80B. 8080C. 25D. 443答案:D96. 哪个协议被用于自动分配IP地址给计算机设备?A. HTTPB. SMTPC. DHCPD. FTP答案:C97. 在数据库中,一个字段的集合是什么?A. 表B. 数据库C. 记录D. 文件答案:C98. “云计算”中的IaaS代表什么?A. Internet as a SoftwareB. Infrastructure as a ServiceC. Integrated Architecture SystemD. Information as a Solution答案:B99. Git是什么类型的软件?A. 数据库管理系统B. 图形设计软件C. 版本控制系统D. 操作系统答案:C100. 当访问一个网站时,临时存储在你的计算机上以跟踪信息的小文件是?A. VirusB. CookieC. CacheD. Worm答案:B101. 以下哪个语言是用于描述Web页面的样式?A. HTMLB. XMLC. CSSD. JSON答案:C102. 在计算机网络中,VPN代表什么?A. Virtual Public NetworkB. Variable Protocol NodeC. Virtual Protocol NetworkD. Virtual Private Network答案:D103. 二进制系统中只使用哪两个数字?A. 0 和1B. 1 和2C. 0 和2D. 2 和3答案:A104. 当一台计算机希望与另一台计算机通信时,它需要什么地址?A. Email地址B. 网站地址C. IP地址D. USB地址答案:C105. 以下哪个是操作系统的例子?A. PhotoshopB. LinuxC. Microsoft WordD. Google Chrome答案:B106. 哪种程序设计模式中对象不是由其子类创建,而是从一个调用返回该对象的工厂方法?A. ObserverB. SingletonC. FactoryD. Proxy答案:C107. JavaScript中,用于表示数组的是?A. {}B. []C. ()D. <>答案:B108. “SEO”代表什么?A. Simple Execution OptimizationB. Search Engine OperationC. Search Engine OptimizationD. Secure Electronic Order答案:C109. “编码”的过程意味着?A. 压缩文件B. 转化数据为机器可读的形式C. 删除不需要的数据D. 解密信息答案:B110. 在计算机硬件中,哪个组件被认为是计算机的“大脑”?A. RAMB. GPUC. CPUD. SSD答案:C111. 在计算机术语中,“BIOS”代表什么?A. Basic Integrated Operating SystemB. Binary Input Output SystemC. Basic Input Output SystemD. Base Input Output Setup答案:C112. 计算机中的“GPU”主要用于什么?A. 数据处理B. 网络连接C. 图形渲染D. 存储数据答案:C113. 在计算机编程中,哪一个是逻辑操作符?A. +B. &C. &&D. %答案:C114. HTML中的哪个标签用于插入超链接?A. <hl>B. <hyperlink>C. <ahref>D. <a>答案:D115. 哪个协议主要用于发送电子邮件?A. HTTPB. FTPC. SMTPD. POP3答案:C116. 在Python编程中,哪个符号用于表示除法的余数?A. /B. //C. %D. ^答案:C117. SQL中,哪个语句用于提取数据库中的数据?A. INSERTB. DELETEC. SELECTD. UPDATE答案:C118. 在计算机科学中,哪个算法是知名的排序算法?A. Dijkstra's algorithmB. Bellman-Ford algorithmC. QuickSortD. Prim's algorithm答案:C119. 哪个不是微软Office套件的组件?A. PowerPointB. WordC. OutlookD. Firefox答案:D120. 在计算机网络中,“LAN”代表什么?A. Localized Area NetworkB. Large Area NodeC. Local Area NetworkD. Linked Application Network答案:C121. 在计算机术语中,“USB”是什么的缩写?A. Unified System BusB. Universal System BaseC. Universal Serial BusD. Unified Serial Base答案:C122. 在操作系统中,多任务处理允许什么?A. 仅执行一个任务B. 同时执行多个任务C. 每次只下载一个任务D. 延迟任务执行答案:B123. “C++”是哪种类型的编程语言?A. 脚本语言B. 标记语言C. 面向对象的语言D. 装配语言答案:C124. 在Web开发中,哪种语言经常与HTML和CSS一起使用,用于后端开发?A. JavaScriptB. PythonC. SwiftD. Java答案:B125. 在计算机安全中,“SQL注入”是什么?A. 一个安全协议B. 一个加密算法C. 数据库连接方法D. 一个攻击方法答案:D126. 如果你想在Web页面上嵌入音频文件,你会使用哪个HTML5标签?A. <audio>B. <sound>C. <play>D. <mp3>答案:A127. 在Java中,哪个方法用于输出文本到控制台?A. print()B. System.out.println()C. echo()D. WriteLine()答案:B128. 哪个是计算机网络的拓扑结构?A. 环形B. 曲线C. 平面D. 点答案:A129. 哪个概念描述的是无需更改代码就可以添加新功能的能力?A. 多态B. 继承C. 开放封闭原则D. 单例答案:C130. “捕获和重新抛出”与哪个编程概念相关?A. 循环B. 异常处理C. 多线程D. 枚举答案:B131. 在计算机术语中,“RAM”代表什么?A. Random Algorithm MemoryB. Readily Accessible MemoryC. Random Access MemoryD. Read And Modify答案:C132. 在Web开发中,哪种协议通常用于安全地传输数据?A. HTTPB. FTPC. HTTPSD. SMTP答案:C133. 在C语言中,哪个数据类型用于存储一个字符?A. intB. floatC. charD. str答案:C134. 以下哪个是微软的数据库管理系统?A. PostgreSQLB. OracleC. MongoDBD. SQL Server答案:D135. Python中,哪个库被广泛用于数值计算?A. DjangoB. FlaskC. PandasD. NumPy答案:D136. 在计算机图形中,哪个文件格式是用于保存矢量图形?A. PNGB. JPEGC. SVGD. BMP答案:C137. 哪个HTTP状态码表示“未找到”?A. 200B. 403C. 404D. 500答案:C138. “回溯”是哪种算法策略的例子?A. 贪心算法B. 动态规划C. 分治法D. 试探性算法答案:D139. 在计算机中,“位”是什么的缩写?A. Bit-rate Integer TransferB. Binary Integer TypeC. Binary DigitD. Base Internal Toggle答案:C140. 在JavaScript中,哪个全局对象用于处理日期和时间?B. DateTimeC. DateD. Calendar答案:C141. 在计算机科学中,哪个是数据结构的一个基本类型?A. FunctionB. ClassC. LoopD. Array答案:D142. 哪个网络层负责路由数据包,并在多个网络之间移动数据包?A. 数据链路层B. 网络层C. 传输层D. 应用层答案:B143. 在计算机编程中,“API”代表什么?A. Application Protocol InterfaceB. Advanced Program InformationC. Application Programming InterfaceD. Active Process Indicator答案:C144. 哪种加密算法用公钥进行加密和私钥进行解密,或反之?A. AESB. MD5C. RSAD. SHA-256答案:C145. 在软件开发中,“敏捷开发”代表什么?A. 开发快速的软件B. 一种软件开发方法论C. 使用最新的技术开发软件D. 一种硬件开发策略答案:B146. HTML中,哪个元素用于定义一个下拉列表?A. <dropdown>B. <list>D. <select>答案:D147. 在关系数据库中,“外键”用于做什么?A. 确定主键B. 确定唯一记录C. 链接两个表D. 优化数据库查询答案:C148. Linux操作系统中,哪个命令用于列出目录的内容?A. dirB. listC. lsD. show答案:C149. 在计算机中,“字节”由多少“位”组成?A. 2B. 4C. 8D. 16答案:C150. 哪个是一种脚本语言,经常用于Web开发?A. C#B. PHPC. FortranD. Cobol答案:B151. 在计算机编程中,“IDE”代表什么?A. Integrated Development EnvironmentB. Internal Drive ElectronicsC. Interface Design ElementD. Integrated Digital Equipment答案:A152. 在网页设计中,哪个CSS属性用于设置背景颜色?A. bgColorB. background-colorC. color-backgroundD. backgroundShade答案:B153. 在云计算中,SaaS代表什么?A. Simple as a ServiceB. Security as a SystemC. Software as a ServiceD. System as a Solution答案:C154. 哪种数据结构特别适合用于表示层次结构?A. 链表B. 栈C. 数组D. 树答案:D155. 在计算机中,哪种设备通常用于临时存储数据?A. 硬盘B. RAMC. DVDD. ROM答案:B156. 在计算机网络中,哪种设备用于将数据包转发到其目的地?A. 网关B. 路由器C. 中继器D. 交换机答案:B157. 在Web开发中,哪种标准用于表示和交换数据?A. HTMLB. XMLC. FTPD. URL答案:B158. 哪种编程语言是Facebook最初主要使用的?A. RubyB. PythonC. PHPD. Java答案:C159. 以下哪个不是操作系统?A. WindowsB. LinuxC. PhotoshopD. macOS答案:C160. 哪种搜索算法在最坏的情况下具有线性时间复杂度?A. 二分查找B. 插入查找C. 线性查找D. 跳跃查找答案:C161. 在Web开发中,哪个HTTP方法用于请求数据?A. PUTB. DELETEC. GETD. POST答案:C162. “驼峰命名法”在哪种情况下常用?A. 文件命名B. 常量命名C. 变量和函数命名D. 数据库表命名答案:C163. 在HTML中,哪个标签用于插入一段JavaScript代码?A. <js>B. <scripting>C. <javascript>D. <script>答案:D164. 对于一个标准的QWERTY键盘,以下哪个键是一个修饰键?A. AltB. F1C. SpaceD. Enter答案:A165. 为了提高数据访问速度,数据库管理系统通常使用什么?A. 压缩算法B. 加密C. 索引D. 扩展答案:C166. 在计算机中,哪种进制系统使用0和1?A. 二进制B. 八进制C. 十进制D. 十六进制答案:A167. 在计算机图形中,哪个文件格式用于无损压缩的图像?A. BMPB. GIFC. JPEGD. PNG答案:D168. 哪个协议主要用于从邮件服务器获取邮件?A. SMTPB. IMAPC. HTTPSD. POP3答案:D169. 在计算机编程中,哪种错误是由于程序逻辑错误导致的?A. 语法错误B. 运行时错误C. 逻辑错误D. 编译错误答案:C170. 在Java中,用于表示字符的单个数据类型是什么?A. charB. characterC. stringD. text答案:A171. 在计算机中,哪个设备被用来作为输出设备,用于从计算机到用户传输数据?A. 键盘B. 显示器C. 硬盘D. RAM答案:B172. 在Python中,哪个函数用于输出文本或变量的值?A. input()B. print()C. write()D. echo()答案:B173. 在计算机科学中,哪种算法被设计用来在数据集中搜索一个特定项?A. 插入算法B. 查找算法C. 排序算法D. 迭代算法答案:B174. 哪种数据结构是先入先出(FIFO) 的结构?A. 栈B. 队列C. 链表D. 数组答案:B175. 在SQL中,哪个命令用于从数据库表中选择并获取数据?A. INSERTB. SELECTC. UPDATED. DELETE答案:B176. CSS中,哪个属性可以用来设置元素的宽度?A. heightB. sizeC. dimensionD. width答案:D177. 在计算机网络中,哪个设备通常用于连接不同类型的网络并进行协议转换?A. 中继器B. 网关C. 交换机D. 路由器答案:B178. 在JavaScript中,哪个对象用于表示日期和时间?A. TimeB. DateC. MomentD. Calendar答案:B179. 哪个编程语言最初是为Unix操作系统开发的?A. PythonB. CC. JavaD. Pascal答案:B180. 哪种数据存储设备使用闪存技术?A. DVDB. 硬盘C. SSDD. CD-ROM答案:C181. 哪个软件用于创建和编辑电子表格?A. WordB. PowerPointC. ExcelD. Access答案:C182. 在计算机中,哪种语言被用来定义和验证文档的结构?A. CSSB. HTMLC. XMLD. JSON答案:C183. 在软件开发过程中,哪个阶段通常在编码之前?A. 测试B. 部署C. 维护D. 设计答案:D184. 在计算机安全中,哪种程序被设计用来复制其自身并传播到其他计算机?A. 蠕虫B. 间谍软件C. 广告软件D. 病毒答案:A185. 在C++中,哪个关键字被用于定义一个类的继承?A. inheritB. extendsC. implementsD. public答案:B186. 以下哪个不是数据库管理系统(DBMS)?A. OracleB. MySQLC. PHPD. MongoDB答案:C187. 在计算机中,哪种设备是一个输入设备?A. 打印机B. 显示器C. 键盘D. 扬声器答案:C188. 在计算机网络中,哪个协议用于电子邮件传输?A. HTTPB. FTPC. SMTPD. TCP答案:C189. 在Java中,哪个关键字用于定义抽象类?A. abstractB. interfaceC. virtualD. undefined答案:A190. 在操作系统中,多任务处理能够做什么?A. 只处理一个任务B. 同时处理多个任务C. 加速CPU的速度D. 增加RAM的大小答案:B。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程设计模拟简单二级文件管理系统*名:***学号:系别:计算机学院专业:网络工程年级:16级指导教师:2019年05 月11 日一、课程设计项目介绍(含项目介绍及设计目的)1、设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。
2、项目介绍:为LINUX 设计一个简单的二级文件系统。
本文件系统采用类似DOS系统的文件管理方式,每次调用该文件系统时,首先申请一定的内存空间,然后对该内存空间进行分配。
将申请到的空间划分为目录区,文件区;采用位示图进行空间管理,盘块的分配使用显示链接(FAT表)的方式。
每次调用该文件系统时自动为其分配空间,并将上次操作的结果从硬盘上调入内存;当结束调用时则将操作的结果重新存入硬盘,以便下次调用。
(每次使用都会自动搜索文件系统,以此确定是否是第一次使用;若是则格式化生成文件系统,否则读取已存在的文件系统。
)本项目通过VC编写简单的二级文件系统的代码,实现文件管理方式,使用者只需要给出相应的文件操作命令就可以分别得到各类文件操作的相应,并且可以选择登陆或注销不同用户。
二、总体设计(含系统的总体结构、原理框图或各模块介绍等)1、系统总体结构图:2、模块介绍(1)、主函数部分:在主函数系统接受输入信息,包括登陆用户和注册用户,登陆完成后选择相应的文件操作,可以选择创建目录、浏览目录、修改目录、创建文件等操作,如果选择错误就会出现相应的提示信息。
(2)、命令解释层函数:在命令解释层函数cmdexp()里加了一些选择和操作功能,增加程序实现的功能,如原来程序只有显示当前目录和文件、创建目录和修改目录的功能,把它拓展到系统所要求的全部功能,并在原有的程序的基础上进行相应的修改,使程序更加完善。
(3)、文件系统格式化函数:该函数首先建立文件,申请空间,在设置成功时将其空间写入filesystem.dat,使filesystem.dat为1M。
接着设置磁盘i节点缓冲区,DIEMPTY表示空闲,设计成第1盘块存储用户名表,第2盘块用于存储根目录,第3盘块用于根目录下的子目录。
(4)、空闲盘块分配、回收函数:首先排除磁盘已满,无空闲盘块,或者已经是栈底的情况,接着设置栈指针下移一位,则空闲盘块少1。
如果是空闲盘块堆栈已满状态,则把空闲盘块数据写入缓冲区,栈指针指向栈底,缓冲区内容写入新回收的盘块。
最后是回收盘块,回收完毕后空闲盘块多1。
(5)、节点分配和释放函数:若没有空闲磁盘i节点,则显示相应提示信息;若空闲磁盘i节点栈空,则分为空闲磁盘i节点数可装满空闲i节点栈和剩下的空闲磁盘i节点不能装满栈区两种情况来考虑。
接着初始化磁盘i节点、分配内存i节点,并从磁盘i节点读取数据到内存i节点。
三、详细设计(数据结构、流程图、关键代码段及注释等)1、主函数流程图:2、数据块的分配流程图:3、浏览目录流程图:4、创建目录流程图:5、关键代码段及注释1、主函数:struct hinode hinode[NHINO]; //查找内存i节点的hash表struct filsys filsys; // 超级块数据结构struct user user[USERNUM]; //用户打开表数据结构struct file sys_ofile[SYSOPENFILE]; //系统打开表数据结构struct direct cur_direct[NOFILE]; //目录数据结构路径unsigned short cur_dir_id; //当前目录指针char cur_path_name[DIRSIZ];FILE *fd; //本系统的所有文件指针2、命令解释层函数:char input_buf[20]; //命令行输入缓冲区static char str[20];int over; //命令行结束标记int fd1;int i,j;// 命令解释层函数int cmdexp(){over = 0;printf("[%s@localhost%s]$ ", user[user_id].u_name, cur_path_name);getcmd();//显示当前目录if(( strcmp( input_buf, "dir" ) == 0 ) || ( strcmp( input_buf, "l" ) == 0 ) || ( strcmp( input_buf, "ls" ) == 0 )) {_dir();clearbuf();return 0;}if( strcmp( input_buf, "cd" ) == 0 ){getcmd(); //取得命令chdir ( input_buf ); //改变当前目录用函数clearbuf();return 0;}// 创建目录(建立子目录)if(( strcmp( input_buf, "mkdir" ) == 0 ) ||( strcmp( input_buf, "md" ) == 0 )) {if( over ){printf( "请在mkdir后输入要创建的目录名\n" );clearbuf();return 0;}getcmd();if( input_buf[0] == '\0' ){printf( "请在mkdir后输入要创建的目录名\n" );clearbuf();return 0;}mkdir( input_buf );while(!over){getcmd();if( input_buf[0] != '\0' )mkdir( input_buf );}return 0;}3、文件系统格式化函数:#include <stdio.h>#include "filsys.h"int format() //文件系统格式化函数{struct filsys aaa;struct inode * inode;struct user tempuser[USERNUM];struct dinode dinode_buf;struct direct dir_buf[BLOCKSIZ / DIRECTSIZ];unsigned int block_buf[BLOCKSIZ / sizeof( int )];char * buf;int i, j, k;fd = fopen( "filesystem.dat", "w+b" ); //建立文件buf = (char * )malloc( 1024*1024 ); //申请1M空间if( buf == NULL ) //申请不成功,返回{printf( "\nThe system file can't be created!\n" );return 0;}//申请成功,把其空间写入filesystem.dat,使filesystem.dat为1Mfseek( fd, 0, SEEK_SET );fwrite( buf, 1, 1024*1024, fd );free ( buf );dinode_buf.di_mode = DIEMPTY; //设置磁盘i节点缓冲区,DIEMPTY表示空闲fseek( fd, DINODESTART, SEEK_SET );for( i = 0; i < DINODEBLK * BLOCKSIZ / DINODESIZ; i++ ){fseek( fd, DINODESTART + DINODESIZ * i, SEEK_SET );fwrite( &dinode_buf, 1, sizeof( dinode_buf ), fd );}/* 1. creat the main directory and its sub dir etc and the file password */inode = iget( 0 );inode = iget( 1 ); //第1盘块放用户名表inode->i_number = 1;inode->i_mode = DIREG; //普通文件inode->i_size = sizeof( struct user ) * USERNUM;inode->i_addr[0] = 1;//用户imacih是超级用户strcpy( tempuser[0].u_name, "imacih" );strcpy( tempuser[0].password, "dgh123456" );tempuser[0].u_default_mode = SUPERMODE;tempuser[0].u_gid = 1;tempuser[0].u_uid = 1;for( i = 1; i < USERNUM; i++ ){strcpy( tempuser[i].u_name, " " );}fseek( fd, DA TASTART + BLOCKSIZ * inode->i_addr[0], SEEK_SET ); fwrite( tempuser, 1, inode->i_size, fd );iput( inode );inode = iget( 2 ); //第2盘块用于存储根目录inode->i_number = 1;inode->i_mode = DEFAULTMODE | DIDIR;inode->i_size = 2 * DIRECTSIZ;inode->i_addr[0] = 2;strcpy( dir_buf[0].d_name, "/" );dir_buf[0].d_ino = 2;strcpy( dir_buf[1].d_name, "/" );dir_buf[1].d_ino = 2;strcpy( dir_buf[2].d_name, "etc" );dir_buf[2].d_ino = 3;fseek( fd, DA TASTART + BLOCKSIZ * inode->i_addr[0], SEEK_SET ); fwrite( dir_buf, 1, inode->i_size, fd );iput( inode );inode = iget( 2 ); //2 etc dir idinode->i_number = 1;inode->i_mode = DEFAULTMODE | DIDIR;inode->i_size = 2 * DIRECTSIZ;inode->i_addr[0] = 2; //第3盘块用于根目录下的子目录strcpy( dir_buf[0].d_name, ".." );dir_buf[0].d_ino = 1;strcpy( dir_buf[1].d_name, "." );dir_buf[1].d_ino = 2;iput( inode );// 2. 初始化超级块filsys.s_ninode = DINODEBLK * BLOCKSIZ / DINODESIZ - 3; //空闲磁盘i节点数filsys.s_nfree = FILEBLK - 3; // 空闲文件块数//初始化空闲磁盘i节点堆栈*/for( i = 0; i < NICINOD; i++ ){filsys.s_inode[i] = 3 + i; // 从第3个磁盘i块,前面3个已用}filsys.s_pinode = 0; // 当前空闲块指针filsys.s_rinode = NICINOD + 3; // 下一准备装入空闲盘块号栈的盘块号// 把第1组空闲盘块放进空闲盘块堆栈for( i = 0; i < NICFREE; i++ ){filsys.s_free[i] = 3 + NICFREE - 1 - i;}filsys.s_pfree = NICFREE - 1;for( i = 3 + NICFREE * 2 - 1; i < FILEBLK; i += NICFREE ){for( j = 0; j < NICFREE; j++ ){//往缓冲区写与成组链接法组织空闲盘块有关的信息:下一组盘块空闲块号与块数block_buf[j] = i - j;}block_buf[NICFREE] = NICFREE; //该项记录本组的空闲盘块数// 把缓冲区内容写到每组空闲盘块的最后一块中bwrite( i - NICFREE, block_buf );}//最后一组空闲盘块可能不足NICFREE块,故需单独处理i = i - NICFREE;for( j = 0; j < FILEBLK - i + 1; j++ )block_buf[j] = FILEBLK - j;block_buf[NICFREE] = FILEBLK - i + 1; //最末组的空闲盘块数bwrite( i, block_buf );//把超级块写入block 1#fseek( fd, BLOCKSIZ, SEEK_SET );fwrite( &filsys, 1, sizeof( struct filsys ), fd );aaa=filsys;return 1;}4、文件系统格式化函数:#include <stdio.h>#include "filsys.h"static unsigned int block_buf[BLOCKSIZ];// 空闲盘块分配函数unsigned int balloc(){unsigned int free_block, free_block_num;int i;if( filsys.s_nfree == 0 ) // 磁盘已满,无空闲盘块{printf( "Disk has no space\n" );return -1;}free_block = filsys.s_free[filsys.s_pfree];if( filsys.s_pfree == 0 ) // 已经是栈底{// 读取栈底盘块号所对应的盘块数据bread( filsys.s_free[filsys.s_pfree], block_buf );free_block_num = block_buf[NICFREE]; // 该空闲盘块组的盘块数// 把盘块组放到空闲盘块号栈上for( i = 0; i < free_block_num; i++ )filsys.s_free[i] = block_buf[i];filsys.s_pfree = free_block_num - 1; // 指针指向栈顶}elsefilsys.s_pfree--; // 栈指针下移一位filsys.s_nfree--; // 空闲盘块少1// filsys.s_fmod = SUPDATE; // 置超级块修改标志return free_block;}// 空闲盘块回收函数bfree( unsigned int block_num ){int i;filsys.s_pfree++;if( filsys.s_pfree == NICFREE ) // 空闲盘块堆栈已满{block_buf[NICFREE] = NICFREE; // 空闲盘块堆栈的盘块数NICFREE记入缓冲区for( i = 0; i < NICFREE; i++ )block_buf[i] = filsys.s_free[i]; // 把空闲盘块数据写入缓冲区filsys.s_pfree = 0; // 栈指针指向栈底bwrite( block_num, block_buf ); // 缓冲区内容写入新回收的盘块}filsys.s_free[filsys.s_pfree] = block_num; // 回收盘块filsys.s_nfree++; // 空闲盘块多1// filsys.s_fmod = SUPDATE; // 置超级块修改标志}5、节点分配和释放函数:#include <stdio.h>#include "filsys.h"static struct dinode block_buf[BLOCKSIZ / DINODESIZ];struct inode * ialloc(){ struct filsys aaa;struct inode * temp_inode;unsigned int cur_di,temp;int i;if( filsys.s_ninode == 0 ) //没有空闲磁盘i节点{printf( "No leisure dinode!\n" );return NULL;}if( filsys.s_pinode == NICINOD ) //空闲磁盘i节点栈空{cur_di = filsys.s_rinode;if( filsys.s_ninode >= NICINOD ) //空闲磁盘i节点数可装满空闲i节点栈{filsys.s_pinode = 0;//把下一组磁盘i节点读进空闲磁盘i节点栈while( filsys.s_pinode < NICINOD ){fseek (fd, DINODESTART + cur_di * DINODESIZ, SEEK_SET);fread (block_buf, 1, BLOCKSIZ, fd);for( i = 0; ( i < BLOCKSIZ / DINODESIZ ) && ( filsys.s_pinode < NICINOD ); ){if( block_buf[i].di_mode == DIEMPTY )//该磁盘i节点空闲{filsys.s_inode[filsys.s_pinode] = cur_di;// 把该i节点装入空闲栈filsys.s_pinode++; // 栈指针下移一位}i++;cur_di++;}}filsys.s_pinode = 0;}else // 剩下的空闲磁盘i节点不能装满栈区{//计算出空闲栈指针装入i节点的第一个位置filsys.s_pinode = NICINOD - filsys.s_ninode;while( filsys.s_pinode < NICINOD ){fseek (fd, DINODESTART + cur_di * DINODESIZ, SEEK_SET);fread (block_buf, 1, BLOCKSIZ, fd);for( i = 0; ( i < BLOCKSIZ / DINODESIZ ) && ( filsys.s_pinode < filsys.s_ninode ); ){if( block_buf[i].di_mode == DIEMPTY ){filsys.s_inode[filsys.s_pinode] = cur_di;filsys.s_pinode++;}i++;cur_di++;}}filsys.s_pinode = NICINOD - filsys.s_ninode;}}//初始化磁盘i节点// temp_inode = iget( filsys.s_inode[filsys.s_pinode] );// temp_inode->i_number = 1;// temp_inode->i_uid = user[user_id].u_uid;// temp_inode->i_gid = user[user_id].u_gid;// temp_inode->i_size = 0;// temp_inode->i_addr[0] = 0;// iput( temp_inode );// 分配内存i节点temp_inode = iget( filsys.s_inode[filsys.s_pinode] );// 从磁盘i节点读取数据到内存i节点fseek( fd, DINODESTART + filsys.s_inode[filsys.s_pinode] * DINODESIZ, SEEK_SET );fwrite( &temp_inode->i_number, 1, sizeof(struct dinode), fd );filsys.s_pinode++; // 栈指针下移一位filsys.s_ninode--; // 空闲磁盘i节点又少了一个// filsys.s_fmod = SUPDATE; // 置超级块修改标志aaa=filsys;return temp_inode;}ifree(unsigned int dinodeid){filsys.s_ninode++; // 空闲磁盘i节点加1if( filsys.s_pinode != 0 ) // 空闲磁盘i节点栈未满{// 直接回收filsys.s_pinode--;filsys.s_inode[filsys.s_pinode] = dinodeid;}else // 空闲磁盘i节点栈已满{if( dinodeid < filsys.s_rinode ) // 磁盘i节点号小于铭记i节点号{filsys.s_inode[0] = dinodeid; // 回收filsys.s_rinode = dinodeid; // 把新回收的i节点作为铭记i节点}}}四、运行结果(含运行及测试结果和用户指南)1.注册用户和登录用户操作界面截图如下:通过login函数注册一个用户,并用该用户登录,可以使用户继续运行接下来的程序,有利于识别用户。