操作系统课程设计 树形目录文件系统
- 格式:doc
- 大小:336.00 KB
- 文档页数:18
操作系统课程设计-文件系统目录管理目录第一章课程设计目的和要求 (1)1 课程设计目的 (1)2 课程设计要求 (1)2.1 课程设计思想原理 (1)2.2 课程题目 (1)2.3 提交课程设计报告 (2)第二章课程设计内容 (3)1 文件管理系统结构 (3)2 文件系统采用索引文件结构 (3)2.1 磁盘模拟 (3)2.2文件的逻辑结构 (3)2.3目录结构 (3)2.4用户接口 (5)第三章详细设计 (7)1 程序功能模块图 (7)2 实体关系图 (7)3 数据流图 (8)4 数据结构设计 (8)5 程序流程图 (11)5.1 建立文件目录(mkdir)程序流程图 (11)5.2 删除文件目录(rmdir)程序流程图 (12)第四章程序运行与测试 (13)1 程序运行主界面 (13)2 用mkdir [dirname] 命令创建子目录 (13)3用ls命令显示当前目录下信息 (13)4 用rmdir [dirname] 命令删除子目录 (14)5 用cd [dirname] 命令改名当前目录 (14)第五章课程设计总结 (16)附录Ⅰ参考文献 (17)附录Ⅱ程序清单 (18)第一章课程设计目的和要求1 课程设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。
本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。
通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。
同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。
2 课程设计要求2.1 课程设计思想原理阅读操作系统方面的书籍,了解操作系统的文件系统原理。
结合分析课程设计要求,确定实体以及它们之间的关系。
目 录一、基本想 .............................................. - 0 -1.1编写目的 ................................................. - 1 -1.2简单描述 ................................................. - 1 -二、公共变量及数据结构 .................................. - 1 -2.1公共变量 ................................................. - 1 -2.2数据结构 ................................................. - 1 -三、主要函数的过程描述 .................................. - 2 -3.1 路径显示 ................................................. - 2 -3.2右键快捷菜单操作 ......................................... - 3 -3.3命令窗口 ................................................. - 3 -3.4创建文本文档 ............................................. - 4 -3.5创建可执行文件 ........................................... - 4 -3.5.1指令选择 ............................................... - 4 -3.5.2已选指令删除 ........................................... - 5 -3.5.3创建可执行文件 ......................................... - 5 - 四、运行截图 ............................................ - 6 -4.1主界面 ................................................... - 6 - 4.2树形结构及右键快捷菜单 ................................... - 6 - 4.3创建文本文档 ............................................. - 7 - 4.4创建可执行文件 ........................................... - 8 - 五、使用说明 ............................................ - 8 -5.1功能说明 ................................................. - 8 -5.2操作说明 ................................................. - 8 -5.2.1快捷菜单及命令窗口 ..................................... - 8 -5.2.2创建文本文档 ........................................... - 9 -5.2.3创建可执行文件 ......................................... - 9 -5.2.4删除文件 ............................................... - 9 -六、总结 ................................................ - 9 -一、基本思想装订线1.1编写目的通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统,设计、构造和开发现代操作系统的基本能力。
⽂件⽬录结构的树形显⽰(数据结构课程设计,树、队列,C语⾔描述)⼀、要解决的问题给出某⼀个操作系统下⽬录和⽂件信息,输⼊的数据第⼀⾏为根⽬录节点。
若是⽬录节点,那么它的孩⼦节点将在第⼆⾏中被列出,同时⽤⼀对圆括号“()”界定。
同样,如果这些孩⼦节点中某⼀个也是⽬录的话,那么这个⽬录所包含的内容将在随后的⼀⾏中列出,由⼀对圆括号“()”界定。
⽬录的输⼊输⼊格式为:*name size,⽂件的输⼊输⼊格式为:name size。
Name为⼀串不超过10个字符组成,并且字符串中不能有‘(’,‘)’,‘[‘,’]’和’*’。
Size是该⽂件/⽬录的⼤⼩,⽂件的size输⼊值为该⽂件的⼤⼩,⽬录的size输⼊值都为1。
树结构最多10层,每⼀层最多2个⽂件/⽬录。
要求编程实现将其排列成⼀棵有⼀定缩进的树,输出要求:第d层的⽂件/⽬录名前⾯需要缩进8*d个空格,兄弟节点要在同⼀列上。
并计算每⼀个⽬录⼤⼩,⽬录⼤⼩为所包含的所有⼦⽬录和⽂件⼤⼩以及⾃⾝⼤⼩的总和。
例如输⼊:*/usr 1(*mark 1 *alex 1)(hw.c 3 *course 1) (hw.c 5)(aa.txt 12)输出|_*/usr[24]|_*mark[17]| |_hw.c[3]| |_*course[13]| |_aa.txt[12]|_*alex[6]|_hw.c[3]⼆、算法基本思想描述:采⽤孩⼦兄弟双亲链表的数据存储结构建⽴⼆叉树,再先序遍历该⼆叉树输出所有节点。
输出时,通过parent节点的第⼀个孩⼦是否有兄弟节点控制缩进输出” | ”或” ”;⽬录的⼤⼩为该⽬录左⼦树(以其第⼀个孩⼦为根的树)所有节点的size和加上它本⾝⼤⼩。
三、设计1. 数据结构的设计和说明在⼀开始设计要采⽤的数据结构时,虽然课题只要求“树结构最多10层(树的深度),每⼀层最多2个⽂件/⽬录”,考虑到问题的实际意义,我决定把它优化消除这⼀限制,于是采⽤孩⼦兄弟的数据结构,后来由于缩进输出的需要⼜增加了parent域。
操作系统课程设计-文件系统一、引言文件系统是操作系统中的重要组成部分,负责对计算机中的文件进行管理和组织。
在操作系统课程设计中,文件系统的设计和实现是一个重要的任务。
本文将介绍文件系统的设计原则、功能和实现过程。
二、设计原则1. 可靠性文件系统需要确保数据的可靠性,能够有效地进行错误检测和纠正。
它应该能够处理文件的损坏、删除或丢失等情况,并能够进行数据恢复。
2. 效率文件系统需要具备高效的存取和查找功能,能够在较短的时间内完成对文件的操作。
它应该对文件进行良好的组织和管理,以提高文件的读写速度。
3. 安全性文件系统要能够保护文件的机密性和完整性,确保只有授权用户才能访问文件,并防止数据被恶意篡改或破坏。
4. 可扩展性文件系统应该能够适应不同容量和规模的存储设备,并能够随着存储需求的增长而进行扩展。
三、功能1. 存储管理文件系统需要对存储设备进行管理,包括磁盘空间的分配、回收和整理等操作,确保文件能够高效地存储和读取。
2. 目录管理文件系统需要提供目录管理功能,能够对文件进行组织和分类。
用户可以根据目录结构查找和管理文件,方便文件的查找和访问。
3. 文件操作文件系统需要支持各种文件操作,包括创建、删除、打开、关闭、读取和写入等操作。
它应该提供一组接口供用户和应用程序使用。
4. 错误处理文件系统需要对各种错误情况进行处理,包括磁盘故障、读写错误和用户操作错误等。
它应该能够识别和纠正错误,并提供相应的错误提示和恢复机制。
四、实现过程1. 文件分配文件系统需要确定如何将磁盘空间分配给文件,以实现高效的存储和检索。
常见的文件分配方式包括连续分配、链式分配和索引分配等。
2. 目录结构文件系统需要设计合适的目录结构,以方便用户查找和管理文件。
常见的目录结构包括树状目录结构、索引节点和哈希表等。
3. 文件读写文件系统需要实现高效的文件读写功能,包括将文件从磁盘读入内存和将文件从内存写入磁盘。
它应该提供缓存机制来加速读写操作。
操作系统课程设计Linux一、教学目标本课程的教学目标是使学生掌握Linux操作系统的核心概念、原理和应用技能。
通过本课程的学习,学生将能够:1.理解操作系统的基本原理,包括进程管理、内存管理、文件系统和输入/输出系统。
2.掌握Linux操作系统的安装、配置和管理方法。
3.熟练使用Linux命令行界面,进行日常操作和系统管理。
4.掌握Linux常用命令、 shell脚本编写和系统监控工具的使用。
5.了解Linux操作系统在服务器、嵌入式设备和云计算等领域的应用。
二、教学内容本课程的教学内容分为五个部分:1.操作系统概述:介绍操作系统的定义、功能和分类,以及Linux操作系统的历史和发展。
2.进程管理:讲解进程的基本概念、进程控制、进程同步和互斥、死锁及其解决方法。
3.内存管理:介绍内存分配与回收策略、内存保护、虚拟内存和分页分段机制。
4.文件系统:讲解文件和目录结构、文件访问控制、文件系统性能优化和磁盘空间分配策略。
5.输入/输出系统:介绍I/O设备管理、中断和DMA机制、设备驱动程序和I/O调度策略。
三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性:1.讲授法:教师讲解操作系统的核心概念和原理,引导学生掌握基本知识。
2.讨论法:学生针对实际案例和问题进行讨论,培养学生的思考和分析能力。
3.案例分析法:分析Linux操作系统的实际应用案例,使学生了解操作系统的应用场景。
4.实验法:安排实验室课时,让学生亲自动手进行系统安装、配置和调试,提高学生的实践能力。
四、教学资源本课程的教学资源包括:1.教材:选用权威、实用的Linux操作系统教材,如《Linux操作系统原理与应用》。
2.参考书:提供相关的学术论文、技术博客和在线文档,供学生拓展阅读。
3.多媒体资料:制作课件、教学视频和演示文稿,辅助学生理解和记忆。
4.实验设备:提供Linux服务器、虚拟机和实验室环境,让学生进行实际操作。
操作系统中的文件系统设计操作系统是计算机系统中的一个核心组成部分,它的功能包括进程管理、内存管理和文件系统管理等。
文件系统是操作系统中的重要组成部分,它负责管理计算机中的数据存储,使得用户可以对数据进行操作。
不同的操作系统采取不同的文件系统设计,其中包括常见的FAT32、NTFS、ext3等。
在本文中,我们将详细探讨操作系统中的文件系统设计。
一、文件系统基本概念文件系统是操作系统的组成部分之一,其具体作用为将磁盘内的数据组织起来、提供给用户进行操作和管理。
文件系统的基本概念主要包括以下几点:1. 目录:目录是文件系统中用于组织文件的一种数据结构,它可以嵌套多个子目录,形成树结构。
2. 文件名:文件名是文件系统中命名文件的字符串,它包括文件的名称和扩展名,一般用"."符号分开。
3. 文件属性:文件属性是指文件系统中为文件记录的一些属性和信息,包括文件大小、创建时间、修改时间等。
4. 文件组织:文件系统中的文件组织可以采用FAT表、索引节点等方式,以便于快速查找、读取和写入文件。
二、FAT32文件系统设计FAT32文件系统是一种比较常见的文件系统设计,在Windows操作系统中广泛应用。
FAT32文件系统的主要特点包括以下几点:1. 基本结构:FAT32文件系统使用FAT表(文件分配表)和根目录表将所有的文件组织起来,利用文件的簇号来定位文件所在的磁盘空间。
2. 文件名和属性:FAT32文件系统中的文件名长度最长为8个字符,扩展名最长为3个字符。
文件属性包括文件大小、创建时间、修改时间等。
3. 磁盘空间利用率:FAT32文件系统的簇大小一般为4KB,因此每个文件分配的簇数比较多,导致磁盘空间利用率较低。
4. 文件系统容量限制:FAT32文件系统最大支持的分区容量为2TB,单个文件最大支持的大小为4GB。
三、NTFS文件系统设计NTFS文件系统是Windows NT系列操作系统中使用的一种文件系统设计。
操作系统课程设计(完整规范版)一、设计目的操作系统课程设计旨在让学生深入了解操作系统的基本原理,掌握操作系统设计与实现的基本方法,培养学生在操作系统领域的实际动手能力和创新思维。
通过本次课程设计,学生应能够:1. 理解操作系统的功能、结构和关键技术;2. 学会分析实际操作系统的性能和特点;3. 设计并实现一个简单的操作系统模块或功能;4. 提高团队协作和沟通能力。
二、设计要求1. 设计内容:根据课程所学,选择一个具有实际意义的操作系统模块进行设计与实现。
模块可包括:进程管理、内存管理、文件系统、设备管理等。
2. 设计规范:遵循软件工程的基本原则,确保代码的可读性、可维护性和可扩展性。
3. 团队协作:本次课程设计以小组为单位进行,每组35人。
小组成员需明确分工,共同完成设计任务。
(2):包括所有设计文件、代码及相关文档;(3)演示PPT:汇报课程设计成果,阐述设计思路、实现过程及创新点。
三、设计流程1. 需求分析:分析所选操作系统模块的功能需求,明确设计目标。
2. 系统设计:根据需求分析,设计系统架构,划分模块,确定各模块的功能和接口。
3. 编码实现:按照系统设计,编写代码,实现各模块功能。
4. 测试与调试:对实现的系统模块进行功能测试、性能测试和兼容性测试,确保系统稳定可靠。
5. 优化与改进:根据测试结果,对系统进行优化和改进。
7. 演示与答辩:制作演示PPT,汇报课程设计成果,回答评委提问。
四、评分标准1. 设计报告(30%):内容完整、结构清晰、表述准确、格式规范。
2. 代码质量(40%):代码可读性、可维护性、可扩展性、创新性。
3. 演示与答辩(20%):PPT制作、汇报效果、回答问题。
4. 团队协作(10%):分工明确、协作高效、沟通交流。
五、预期成果1. 理论与实践相结合:将课堂上所学的操作系统理论知识运用到实际设计中,加深对操作系统的理解。
2. 技能提升:提高编程能力,掌握操作系统核心模块的设计与实现技巧。
操作系统课程设计:文件系统一、引言文件系统是操作系统中的一个重要组成部分,负责管理计算机存储设备上的文件和目录。
一个高效可靠的文件系统对于操作系统和用户来说都至关重要。
在操作系统课程中,设计一个文件系统是一项重要的任务,可以帮助学生深入了解文件系统的原理和实现细节。
本文档将介绍一个简单的文件系统设计,旨在帮助初学者理解文件系统的基本概念和工作原理。
我们将首先介绍文件系统的基本概念,然后讨论文件系统的设计思路和关键组成部分。
最后,我们将讨论如何实现和测试文件系统。
二、文件系统的基本概念文件系统是操作系统提供的一种存储管理机制,用于将文件组织成有层次的结构并提供对文件的访问和管理。
在一个文件系统中,文件被组织成目录(或文件夹)的层次结构,用户可以使用文件路径来访问文件和目录。
文件系统通常提供以下功能: - 文件和目录的创建、删除和重命名 - 文件和目录的读取和写入 - 文件和目录的权限管理 - 文件的共享和保护 - 文件的存储管理三、设计思路在设计文件系统时,需要考虑以下几个关键方面:1. 文件系统的组织结构文件系统可以采用不同的组织结构,常见的包括层次结构、网络结构和日志结构。
在设计文件系统时,需要根据具体需求选择合适的结构。
2. 文件和目录的管理文件系统需要提供对文件和目录的管理功能,包括创建、删除、重命名和移动等操作。
此外,还需要支持文件和目录的权限管理,确保只有授权用户可以进行相应操作。
3. 文件的存储管理文件系统需要负责将文件存储在磁盘或其他存储设备上,并提供高效的读写操作。
存储管理的关键是如何将文件划分为适当大小的块并将它们存储在存储设备上。
4. 文件的共享和保护文件系统需要支持文件的共享和保护。
共享可以使多个用户同时访问同一文件,保护则确保只有合法用户可以进行读写操作。
四、文件系统的关键组成部分一个典型的文件系统通常由以下几个关键组成部分构成:1. 文件控制块(FCB)文件控制块是文件系统中一个重要的数据结构,用于记录文件的相关信息,包括文件名、大小、权限和存储位置等。
课程设计文件系统使用一、教学目标本课程的目标是使学生掌握文件系统的基本概念、原理和实用技巧。
通过本课程的学习,学生应能够:1.知识目标:理解文件系统的基本概念,包括文件、目录、磁盘空间管理等;掌握文件系统的常用命令和操作,如文件创建、删除、复制、移动等。
2.技能目标:能够独立完成文件系统的日常管理和维护工作,如磁盘碎片整理、文件备份和恢复等;能够根据实际需要,定制个性化的文件管理系统。
3.情感态度价值观目标:培养学生对文件系统重要性的认识,使学生能够自觉地维护和合理地使用文件系统,提高工作效率和生活品质。
二、教学内容本课程的教学内容主要包括以下几个部分:1.文件系统概述:介绍文件系统的基本概念、原理和功能,使学生对文件系统有一个整体的认识。
2.文件系统的常用命令和操作:详细讲解文件系统的常用命令和操作,并通过实际操作使学生熟练掌握。
3.文件系统的管理和维护:介绍文件系统的管理和维护方法,如磁盘空间管理、文件备份和恢复等,使学生能够独立完成文件系统的日常管理和维护工作。
4.文件系统的定制:讲解如何根据实际需要,定制个性化的文件管理系统,提高工作效率。
三、教学方法本课程的教学方法主要包括讲授法、操作演示法、案例分析法和讨论法等。
1.讲授法:通过讲解文件系统的基本概念、原理和功能,使学生对文件系统有一个整体的认识。
2.操作演示法:通过实际操作演示,使学生熟练掌握文件系统的常用命令和操作。
3.案例分析法:通过分析实际案例,使学生了解文件系统的管理和维护方法,以及如何定制个性化的文件管理系统。
4.讨论法:通过分组讨论,激发学生的学习兴趣,培养学生的独立思考和解决问题的能力。
四、教学资源本课程的教学资源主要包括教材、多媒体资料和实验设备等。
1.教材:选用权威、实用的教材,为学生提供系统的文件系统知识。
2.多媒体资料:制作精美的多媒体课件,辅助讲解文件系统的概念和操作。
3.实验设备:提供足够的实验设备,使学生能够进行实际操作,巩固所学知识。
操作系统课程设计(完整规范版)一、引言操作系统是计算机系统的核心软件,它管理计算机的硬件资源,为应用程序提供运行环境。
本课程设计旨在通过实践,加深学生对操作系统原理的理解,提高学生的编程能力和系统设计能力。
二、课程目标1. 理解操作系统的基本原理和功能。
2. 掌握进程管理、内存管理、文件系统等核心模块的设计和实现。
3. 熟悉操作系统调度的基本算法。
4. 提高学生的编程能力和系统设计能力。
三、课程内容1. 操作系统概述操作系统的定义、功能和发展历程操作系统的基本组成和结构操作系统的类型和特点2. 进程管理进程的定义、状态和转换进程控制块(PCB)的结构和作用进程同步与互斥进程通信进程调度算法3. 内存管理内存管理的目标连续内存管理技术非连续内存管理技术页面置换算法4. 文件系统文件系统的定义和功能文件的结构和类型文件存储空间管理文件目录管理文件操作5. I/O系统I/O系统的功能和组成 I/O设备管理I/O调度算法缓冲管理6. 系统调用系统调用的定义和类型系统调用的实现机制常用系统调用分析7. 实验与课程设计实验目的和要求实验内容和步骤课程设计题目和要求课程设计报告格式四、课程考核1. 平时成绩(30%):包括课堂表现、实验报告和作业完成情况。
2. 实验成绩(30%):包括实验操作和实验报告。
3. 课程设计成绩(40%):包括设计报告、代码实现和答辩表现。
1. 《操作系统概念》作者:亚伯拉罕·西尔伯斯查茨等2. 《现代操作系统》作者:安德鲁·S·塔嫩鲍姆3. 《操作系统导论》作者:威廉·斯托林斯六、附录1. 课程设计报告模板2. 实验报告模板3. 课程设计答辩评分标准七、课程安排1. 理论学习操作系统概述(2课时)进程管理(4课时)内存管理(4课时)文件系统(4课时)I/O系统(2课时)系统调用(2课时)2. 实验与课程设计进程管理实验(2课时)内存管理实验(2课时)文件系统实验(2课时)I/O系统实验(2课时)课程设计(8课时)课程考核(2课时)八、实验与课程设计指导1. 实验指导进程管理实验:通过模拟进程的创建、撤销、阻塞和唤醒等操作,理解进程管理的原理。
操作系统文件系统课程设计
操作系统文件系统课程设计主要涉及以下几个方面:
1. 实现基于模块的文件系统:
- 修改ext3或ext4的源代码
- 动态加载和卸载新的文件系统
- 修改文件系统的名称,优化文件写操作
2. 新增Linux驱动程序:
- 增加一个驱动程序(使用内存模拟设备)
- 动态加载和卸载新的驱动
- 通过程序或命令行使用该驱动
- 保存和读取数据
3. 统计Linux系统缺页的次数:
- 在内核中实现缺页次数统计
- 编译并安装新内核
- 建立内核模块,通过/proc实现用户态查看缺页次数
4. 模拟磁盘文件系统实现:
- 设计一个简单的文件系统,用文件模拟磁盘,用数组模拟缓冲区
- 支持多级目录结构,支持文件的绝对读路径
- 实现建立目录、列目录、删除空目录、建立文件、删除文件、显示文件内容、打开文件、读文件、写文件、关闭文件、改变文件属性等命令建议根据以上概述,结合实际需求和兴趣,选择相应的题目进行课程设计。
树形目录结构文件系统操作系统课程设计课程名称操作系统题目名称树形目录结构文件系统学生学院专业班级学号学生姓名指导教师2011 年1 月13 日目录一、课程设计目的 (3)二、设计概要 (3)三、详细设计 (3)3.1数据结构设计 (4)3.2程序功能模块图 (5)3.2.1 文件管理系统主功能图示 (5)3.2.2 用户界面管理图示 (5)3.2.3 新建文件图示 (6)3.2.4 复制、剪切文件图示 (6)3.2.5 粘贴文件图示 (7)3.2.6 删除文件图示 (7)四、程序界面设计及运行结果分析 (8)五、课程设计总结 (12)六、参考文献 (12)一、课程设计目的:操作系统课程设计是配合操作系统课开设的专业基础必修课。
本课程通过设计实现一个综合作业,培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。
二、设计概要:(1) 运行平台: Windows系列(2) 设计平台: Microsoft Visual Studio 2008(3) 存储系统:XML文件(4) 运行需求: .NET Framework 2.0版本以上(5) 软件简介: 文件管理系统(6) 功能简介:A、提供用户登录注销功能B、多用户管理,多级目录形式,文件可互相共享.C、智能化的树形和列表界面操作(包括图标、列表以及详细显示方式,方便的菜单,右击菜单,工具栏等)D、模拟Windows多种实用功能(7)本系统参照了windwos文件管理结构,实现了其大部分常用功能,采用多用户系统实现了文件夹与文件的创建,打开,读写,删除,关闭,剪切,复制,粘贴,重命名,刷新,查看,排列图标、属性设置、模糊搜索以及多用户文件共享功能。
三、详细设计:3.1、数据结构设计:本程序采用XML文件形式管理文件信息,XML文件适合小数据块的存储和传输,.NET为XML提供了丰富的类库,更加方便了操作使用,详细数据设计思路如下:XML文件编码声明:首节点:用户设计:两个数据段:用户名和用户密码;XML实现:文件夹设计:一个数据段:文件夹名称XML实现:文件设计:四个数据段:文件名称、文件保护码、文件空间和文件共享性XML实现:File name="新建文本文件(2)" protectedcode="111" size="0" isshare="True" />文件内容。
盘索引结点号一并组成一个新目录项,记入其父目录文件中。
文件被撤消时,系统要回收该文件的磁盘索引结点,从其父目录中删除该目录项。
随着文件的打开与关闭,系统还要为之分派和回收内存索引结点。
②磁盘索引结点中,包括有关文件的下述一系列信息:文件模式di_mode、文件所有者用户标识符di_uid、同组用户标识符di_gid、文件长度di_size、文件的联接计数di_nlink、文件的物理地址di_addr、文件的访问时刻di_atime、文件的修改时刻di_mtime和文件的成立时刻di_citime。
③内存索引结点:文件被打开后,系统为它在内存索引结点表区中建一内存索引结点,以方便用户和系统对文件的访问。
④磁盘索引结点的分派与回收分派进程ialloc:当内核创建一新文件时,要为之分派一空闲磁盘i结点。
如分派成功,便再分派一内存i结点。
其进程如下:检查超级块上锁否。
由于超级块是临界资源,诸进程必需互斥地访问它,故在进入ialloc后,要先检查它是不是已上锁,若是则睡眠等待;检查i结点栈空否。
若i结点栈中已无空闲结点编号,则应从盘中再调入一批i 结点号进栈。
若盘中已无空闲i结点,则犯错处置,返回;从空闲i结点编号栈中分派一i结点,并对它初始化、填写有关文件的属性;分派内存i结点;将磁盘i结点总数-1,置超级块修改标志,返回。
回收进程ifree:当删除文件时,应回收其所占用的盘块及相应的磁盘i结点。
具体有:检查超级块上锁否。
若是,直接返回,即不把本次回收的i结点号记入空闲i结点编号栈中;检查i结点编号栈满否。
若已满,无法再装入新回收的i结点号,当即返回,若未满,便将回收的i结点编号进栈,并使当前空闲结点数+1;置超级块修改标志,返回。
⑤内存索引结点的分派与回收分派进程iget:虽然iget用在打开文件时为之分派i结点,但由于允许文件被共享,因此,若是一文件已被其他用户打开并有了内存i结点,则现在只需将i结点中的引用计数+1。