搜档网
当前位置:搜档网 › 操作系统实验五文件和设备管理

操作系统实验五文件和设备管理

操作系统实验五文件和设备管理
操作系统实验五文件和设备管理

宁德师范学院计算机系

实验报告

(2014—2015 学年第二学期)

课程名称操作系统

实验名称实验五文件和设备管理专业计算机科学与技术(非师)年级2012 级

学号B2012102147 姓名王秋

指导教师王远帆

实验日期2015-06-9

实验目的与要求:

通过对Windows 2000 提供的文件与文件夹加密、磁盘配额管理、进行磁盘清理、执行备份操作、使用CHKDSK维护文件完整性和整理磁盘碎片等功能进行操作:

(1)熟悉Windows 2000 的文件系统。

(2)明确应用NTFS文件系统的积极意义。

(3) 掌握优化Windows 2000 磁盘子系统的基本方法。

(4) 进一步理解现代操作系统文件管理知识。

实验设备(环境):

(1)一台安装有Cygwin Terminal 的计算机

(2)Windows XP 操作系统

(3)VC++6.0

实验内容:

(1)文件系统的了解和管理操作

(2)磁盘设备的了解和管理操作

实验步骤、实验结果及分析:

步骤1:阅读“背景知识”,请回答:

1) Windows 2000 支持哪三种主要的文件系统:

a. 文件分配表(File Allocation Table ,FAT) 文件系统(FAT16)

b. 保护模式FAT文件系统(FAT32)

c. Windows NT 文件系统(NTFS)

2) NTFS文件系统只能用于哪些操作系统环境:

NTFS卷标只能为Windows NT 、2000 和XP操作系统所访问。

步骤2:登录进入Windows 2000 Professional 。

步骤3:加密文件或文件夹。

为加密文件或文件夹,可按照以下步骤进行:

1) 在“Windows 资源管理器”中,右键单击想要加密的文件或文件夹,然后单击“属性”命令。

2) 在“常规”选项卡上,单击“高级”按钮。

在“高级属性”对话框中,可以设置的文件属性有:

可以存档文件夹

为了快速搜索,允许索引服务编制该文件夹的索引

压缩内容以便节省磁盘空间

加密内容以便保护数据

3) 选定“加密内容以便保护数据”复选框。

图5-1 设置高级属性

4) 单击“确定”按钮完成操作。

步骤4:访问RSM 服务。

Windowss 2000 还通过一些辅助组件提供了用于额外存储的选项。可移动存储管理(Removable Storage Management ,RSM) 就是一项用于管理可移动媒体(例如磁带和光盘) 以及存储设备(库) 的服务。RSM 允许应用程序访问和共享相同的媒体资源。RSM 使用户可以很容易地追踪可移动存储媒体(例如磁带和光盘) ,并管理包含它们的库(例如转换器和光盘机) 。

为访问RSM服务,可按以下步骤操作:

1) 在“控制面板”中双击“管理工具”图标,再双击其中的“计算机管理”图标,打开本地“计

算机管理”窗口。

2) 在左窗格右键单击控制树中的“可移动存储”。

“可移动存储”可以管理和设置的项目有:

a. 从这里创建窗口

b. 刷新

c. 属性

d. 帮助

步骤5:分配磁盘配额。

磁盘配额可追踪和控制卷的磁盘空间使用情况。为分配磁盘配额,可按照以下步骤进行:

1) 打开“我的电脑”。

2) 右键单击想要指定默认配额位的卷(例如某个硬盘) ,然后单击“属性”命令。

3) 在“属性“对话框中,选定”配额“选项卡。

4) 在“属性“对话框的”配额“选项卡上,选定“启用配额管理”。

5) 选定“将磁盘空间限制为”选项,这将激活磁盘空间限制和警告级别区域。

6) 在文本框中键入数值,从下拉列表中选定一个磁盘空间限制单位,然后单击“确定”。可以使用小数值(例如20.5MB) 。

图5-2 设置磁盘空间大小

步骤6:添加新的磁盘配额项

在启用卷的磁盘配额时,将从这一时刻开始自动追踪新用户的卷使用情况。为了对现有的卷用户应

用磁盘配额,可以在“配额项”对话框中添加新的配额项。操作步骤如下:

1) 在“我的电脑”窗口中,右键单击想要添加新的磁盘配额项的卷,然后单击“属性”命令。

2) 在“属性”对话框中,选定“配额”选项卡。

3) 在“配额”选项卡上,单击“配额项”按钮。

4) 在“配额项目”窗口的“配额”菜单中单击“新建配额项”命令。

5) 在“选择用户”对话框中,单击“查找范围”列表框,选定想要从中选择用户名的域名或工作

组名称。单击“添加”,然后单击“确定”按钮。

只能在Windows 2000 中使用NTFS格式化的磁盘卷上分配磁盘配额。如果想要管理配额,则必须

是驱动器所在计算机上的Administrators 组的成员。

图5-3 设置配额选项属性

步骤7:磁盘清理。

“磁盘清理”有助于释放硬盘驱动器空间。“磁盘清理”程序将搜索驱动器,然后显示可以安全删

除的临时文件、Internet 缓存文件以及不需要的程序文件。可以指示删除其中一些或所有的文件。

为打开“磁盘清理”功能,可单击“开始”按钮,单击“程序”菜单中的“附件”-“系统工具”- “磁盘清理”命令。

图5-4 磁盘清理

“磁盘清理”搜索指定的驱动器。在打开和关闭文件或者使用Interne 连接时,系统会创建临时文件,这些临时性质的文件有时会继续保存在硬盘上。“磁盘清理”程序可以了解这些文件采用的形式及其在磁盘上的位置,以便安全地删除这些文件,释放宝贵的磁盘空间。

步骤8:备份。

为应对故障事件,Windows 2000 包括了一个功能齐全的“备份”程序,该程序使用了一些标准的

备份设备。

单击“开始”菜单中“系统工具”的“备份”命令,可运行“备份”实用程序。

在“备份”程序中包括了“备份向导”和“还原向导”,这些向导简化了备份和恢复Windows 2000 服务器上存储的重要数据的任务。用户也可以在“备份”选项卡和“还原”选项卡中使用“备份”

和“还原”程序的手工版本。

·备份数据

要想选定要备份的数据,只需要在“备份”窗口的左窗格中单击要备份的文件或目录旁边的复选框

即可。然后在窗口下方选择备份目的地,命名备份媒体,最后单击“开始备份”按钮。

·恢复数据

为“还原”恢复数据,先选定想要恢复的文件和文件夹,选定恢复备份文件和文件夹的位置,设置

恢复选项,然后单击“开始还原”进行恢复操作。

·计划作业

除备份和恢复数据之外,Windows 2000 “备份”程序还允许计划备份作业,以便在无人干预的情况

下运行。

计划备份操作可按照以下步骤进行:

1) 打开“备份”实用程序。

2) 单击“备份”选项卡,从“作业”菜单中

选择“新建”命令。

3) 单击以选定想要备份的任何驱动器、文件夹或文件的复选框。

4) 选定将作为备份目的地的文件或磁带设备,然后单击“作业”菜单中的“保存选项”命令,以

保存文件和文件夹选择。

5) 在“备份媒体或文件名”文本框中,键入备份文件的路径和文件名或者选定磁带。

6) 单击“工具”菜单中的“选项”命令,选定想要使用的任何备份选项,例如备份类型和日志文

件类型,然后单击“确定”按钮。

7) 单击“开始备份”,在“备份作业信息”对话框中进行所需要的任何更改。

8) 如果想要设置高级备份选项,例如数据验证或硬件压缩,则单击“高级”。选择完高级备份选项后,单击“确定”按钮。

9) 单击“备份作业信息”对话框中的“计划”。

10) 在“设置账号信息”对话框中,输入一个用户名和密码(指定在这个账号下运行计划的备份操作) 。

11) 在“计划的作业选项”对话框中,在“作业名”文本框中键入计划的备份作业的名称。然后单

击“属性”,以设置计划备份的日期、时间和频率参数。在完成后单击“确定”按钮退出操作。

图5-5(1) 打开数据备份图5-5(2) 数据备份

图5-5(3) 数据备份

步骤9:使用CHKDSK维护文件完整性

Windows 2000 的CHKDSK可以扫描FAT、FAT32和NTFS分区上的文件系统完整性,它检查丢失的簇、

交叉链接文件等,还可以尝试更正它找到的任何错误。它还提供了其他许多文件系统信息。

如果Windows 2000 感觉到文件系统损坏,它将在启动时自动运行CHKDSK。用户也可以手工启动这个实用程序。CHKDSK可以在 5 种模式中运行。第一种模式没有任何参数,这是一种只读模式,仅用于检查文件系统中的任何错误。在这种模式中,CHKDSK会报告任何错误,但是不会尝试修复错误,因此这个过程完成得非常快。其他 4 个选项使用以下参数:

·/FILENAME 检查指定文件的碎片化情况。

·/F 尝试修复文件系统中的任何错误。

·/V 提供分区上的每一个文件的名称和完整路径。

·/R 查找分区上的坏扇区并尝试恢复可读信息。

要运行CHKDSK,可执行以下操作:

1) 在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,打开“命令提示符”窗口。

2) 在命令提示符上进入要检查的分区。例如,键入C:\ 。

3) 键入不带任何参数的CHKDSK,以便只检查文件系统错误。如果找到了任何错误,则继续进行第

4) 步。

请记录系统执行CHKDSK命令过程中显示的提示信息:

图5-6 执行CHKDSK命令

CHKDSK系统检查之后,报告的磁盘信息是:

图5-7 报告的磁盘信息

4) 运行带/F 参数的CHKDSK,以尝试修复在文件系统中找到的错误。

一般情况下,用户只有在担心系统存在着Windows 2000 没有意识到的磁盘问题时才会使用这个实

用程序。

步骤10:整理磁盘碎片。

Microsoft 声称使用像NTFS这样有效的文件系统可以减少整理碎片的需要,但是NTFS文件系统也

仍然会受碎片化的影响。Windows 2000 中包括了一个“磁盘碎片整理程序”实用程序。

通过整理使用FAT、FAT32或NTFS文件系统的卷的碎片,Windows 2000 包括了一些用来维护磁盘性

能的能力。

这个版本具有以下限制:

·只能整理本地卷的碎片。

·一次只能整理一个卷的碎片。

·在扫描一个卷时不能整理另一个卷的碎片。

·不能使用脚本。

·不能计划碎片的整理工作。

·一次只能运行一个Microsoft 管理控制台(MMC) 管理单元。

所有测试过的系统配置都表明,NTFS 碎片整理可以改进性能,并且较快的系统配置从磁盘碎片整

理上获得的收益比功能较弱的系统更多

为打开“碎片整理”功能,可单击“开始”按钮,单击“程序”菜单中的“附件”-“系统工具”-

“碎片整理”命令。

实验分析:

使用EFS保护文档的安全,可以防止侵入者获得对存储的敏感数据的未经授权的物理访问。如

果加密文件夹,那么在加密文件夹中创建的所有文件和子文件夹都将加密。因此,推荐在文件夹一

级上加密。

当网络磁盘达到其容量后,磁盘和服务器的性能将出现严重的问题。除非对最终用户施加了磁盘限制,否则当用户决定将他们的所有硬盘驱动器数据都转储到一个目录中,或者他们认为网络是存储他们下载的mp3文件的最佳位置时,服务器磁盘可能很快就会耗尽。

实验总结(包括过程总结、心得体会及实验改进意见等):

1. FAT文件系统是早期文件系统之一,也是MS-DOS使用的原始文件系统。它将文件信息储存

在位于卷标开头处的文件分配表中,并保存两份文件分配表,以防其中的一个遭到破坏。

FAT32文件系统通过提供长文件名的支持来扩展FAT文件系统,并与FAT16兼容。FAT (16和32)

文件系统是支持可移动媒体(例如软盘) 上的惟一的文件系统。

2. FAT文件系统最大的优点是MS-DOS、Windows 9x 甚至OS/2 都能访问FAT卷标;而其最大的

弱点是随着FAT卷标尺寸的增长,最小的簇尺寸也随之增长。对于大于512MB 的硬盘而言,最小的簇尺寸为16KB;对于大于2GB 的硬盘,最小的簇尺寸为64KB。这就导致磁盘空间的极大浪费,

因为一个文件必须占用整数个簇。因此,1KB的文件在2GB 的硬盘上将占用64KB 的磁盘空间。FAT 文件系统不支持尺寸大于4GB 的卷标。

3. Windows NT 文件系统(NTFS) 包括了FAT文件系统的所有功能,同时又提供了对高级文件系

统特征(例如安全模式、压缩和加密) 的支持。它是为在大磁盘上有效地完成文件操作而设计的。

与FAT和保护模式FAT文件系统不同,它的最小簇尺寸不超过4KB。但是,NTFS卷标只能为Windows NT、2000 和XP操作系统所访问。

指导教师评语:

完成所有规定的实验内容,实验步骤正确,结果正确;以后需要进一步改进或注意的是: (1)实验目的与要求、实验设备、实验内容格式要对齐。

(2)源代码要进行命名以便区分。

成绩评定A(优秀)

教师签字王远帆

2015 年 6 月15 日

备注:

注:1、报告内的项目或设置,可根据实际情况加以补充和调整

2、教师批改学生实验报告应在学生提交实验报告10 日内

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

《实用操作系统》实验报告五linux设备管理

《实用操作系统》实验报告 实验报告: 5 实验项目名称:设备管理 班级:学号:姓名: 地点:时间:2013 年11 月13 日 一、实验内容 1、添加硬盘,创建二个主分区、一个扩展分区,二个逻辑分区 注意:ide、scsi 提示:分区、格式化、挂载(fdisk,mkfs,mount) 2、查看常见的设备文件有哪些?(ls /dev ) 常见的设备文件:/dev/hd* IDE接口的硬盘(IDE接口的设备) /dev/sd* SCSI/USB设备/dev/cua* 串口设备/dev/lp* 并口设备/dev/tty* 终端设备/dev/consol 控制台设备/dev/eth* 以太网设备/dev/cdrom IDE光驱/dev/fd* 软驱/dev/audio 音频设备/dev/scd SCSI的光驱/dev/ppp PPP设备/dev/isdn* ISDN设备 3、挂载光盘,查看光盘内容创建挂载点要求:以本人姓名缩写为目录mkdir / 目录/设备挂载mount 空格源设备空格挂载点 4、显示管理System-config-display 5、声卡管理System-config-soundcard 6、打印机管理System-config-printer 7、网卡管理System-config-network 二、实验步骤及结果 1.添加硬盘,创建分区; 在启动虚拟机前,在工具栏中点击“虚拟机”,找到“设置”选项,在左面的硬件中找到硬盘,进行硬盘设备添加,这里有IDE和SCSI两种硬盘类型可供选择添加。完成硬盘添加后即可启动虚拟机进入linux系统。在这我添加了容量相同的硬盘设备类型各一;

操作系统实验5文件系统:Linux文件管理

实验5 文件系统:Linux文件管理 1.实验目的 (1)掌握Linux提供的文件系统调用的使用方法; (2)熟悉文件和目录操作的系统调用用户接口; (3)了解操作系统文件系统的工作原理和工作方式。 2.实验内容 (1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:*********** 0. 退出 1. 创建新文件 2. 写文件 3. 读文件 4. 复制文件 5. 修改文件权限 6. 查看文件权限 7. 创建子目录 8. 删除子目录 9. 改变当前目录到指定目录 10. 链接操作 *********** 代码: #include #include #include #include #include #include #include #include void menu(void); void openfile(void); void writefile(void); void readfile(void); void copyfile(void); void chmd(void); void ckqx(void); void cjml(void); void scml(void); void ggml(void); void ylj(void); int main() { int choose; int suliangjin=1;

menu(); scanf("%d",&choose); while(choose!=0) { switch(choose) { case 1:openfile();break; case 2:writefile();break; case 3:readfile();break; case 4:copyfile();break; case 5:chmd();break; case 6:ckqx();break; case 7:cjml();break; case 8:scml();break; case 9:ggml();break; case 10:ylj();break; } menu(); scanf("%d",&choose); } return 0; } void menu(void) { printf("文件系统\n"); printf("1.创建新文件\n"); printf("2.写文件\n"); printf("3.读文件\n"); printf("4.复制文件\n"); printf("5.修改文件权限\n"); printf("6.查看文件权限\n"); printf("7.创建子目录\n"); printf("8.删除子目录\n"); printf("9.改变目前目录到指定目录\n"); printf("10.链接操作\n"); printf("0.退出\n"); printf("请输入您的选择...\n"); } void openfile(void) { int fd; if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");

操作系统实验 设备管理汇总

操作系统实验 名称实验六设备管理 姓名 专业 学号 日期 2015年12月01日指导老师

一、实验目的 1.理解设备管理的概念和任务。 2.掌握独占设备的分配、回收等主要算法的原理并编程实现。 二、实验内容与要求 1.在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。 三、实验原理 1.独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。 为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下 设备类表设备表 控制器表通道表 设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。 设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。

与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。 (2)设备分配 1)当进程申请某类设备时,系统先查“设备类表”。 2)如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。 3)分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。 4)然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 设备分配程序的改进 增加设备的独立性:为了获得设备的独立性,进程应使用逻辑设备名I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上,而只要有一个该类设备可用,系统便进一歩计算分配该设备的安全性。 四、程序流程图

操作系统实验六_设备管理

操作系统课程报告实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟, 该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图: (2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,

把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。

操作系统实验七设备管理实验(广西师大)

操作系统课程实验 年级2012级 专业计算机科学与技术(应用型)姓名 学号 指导教师黄玲 日期2013年12月26日

实验七、设备管理实验 一、关键问题 1、实验目的 观察Linux下U盘的访问;理解设备虚拟分配技术。 2、实验环境 Ubuntu8.0或者以上,Eclipse集成开发环境 3、实验内容 3.1观察Linux下的U盘访问 从键盘获得符号串,写入磁盘文件,然后读取该文件。 3.2设备管理模拟实验要求:设计一个SPOOLing输入模拟系统。提示:输入井设计成结构体数组,每块存放一个输入文件内容。三个用户进程与一个后台输入进程并发执行,后台输入进程接受用户键盘输入的文件到输入井,每个用户进程从输入井获取输入数据。 老师所给的例子为为利用内存SPOOLing输入模拟系统,而问题的关键就是如何参考spoolout()设计spoolin()以及修改用户进程usepro()和输入#进程spoolsever()。 二、设计修改思路 spoolout()进程:键入要输入的用户id,如果用户输入文件未完成则键入文件内容,将文件内容mybuf发到输入井。 spoolsever()输入#进程:登记输入请求块,将缓冲区mybuf的数据送入输入井well。若成功送入,返回TRUE,否则返回FALSE。 usepro()用户进程:遍历输入请求块如找到该用户的输入请求,将输入请求块的数据送入用户缓冲区userbuf,并在屏幕输出userbuf。 三、实现修改的关键代码 #include #define WELLSIZE500//输入井的大小 #define FALSE0 #define TRUE1 //进程控制块 struct { int id;//进程标识数 char status;//进程状态,'e'为执行态,'c'为完成态。 int bufflag;//用户缓冲区userbuf空闲标志:FALSE为无数据,TRUE为有数据。 int filec;//本进程需要输出的文件数(用户指定) }pcb[4];//pcb[0]为SPOOLing进程,pcb[1]、pcb[2]、pcb[3]为3个用户进程

实验室设备管理系统实验报告1讲解

本科实验报告 课程名称:软件工程导论 实验项目:实验室设备管理系统 实验地点:实验楼210 专业班级:软件1319 学号:2013005655 学生姓名:张卫东 指导教师:王会青 2015年05 月21 日

一、实验目的和要求 1.系统简介 某大学每学年都需要对实验室设备使用情况进行统计、更新。 其中: (1)对于已彻底损坏的实验设备做报废处理,同时详细记录有关信息。 (2)对于有严重问题(故障)的需要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。 (3)对于急需使用但实验室目前又缺乏的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、 型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同 时更新申请表的内容。 (4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等条件进行查询。 2.技术要求及限制条件 (1)所有工作由专门人员负责完成,其他人不得任意使用。 (2)每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。 (3)本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。 (4)本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。 (5)本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。 二、实验内容和原理 可行性分析报告 可行性研究主要是初步确定项目的规模和目标,确定项目的约束和限制。对于项目的功能和性能方面的要求进行简要的概述。详见组长田彦博的实验报告。 需求规格说明书 需求规格说明书主要是进一步定制实验室设备管理系统软件开发的细节问题,便于用户与开发商协调工作。在此主要绘制了系统的数据流图、相应的数据字典、E-R图、以及系统的功能图,对于各个方面的需求进行了详细的阐述。详见组长田彦博的实验报告。 概要设计说明书 概要设计说明书是为了说明整个实验室设备管理系统的体系架构,以及需求用例的各个功能点在架构中的体现。在此主要绘制了系统流程图、总体结构和模块的外部设计,而且对于数据库中逻辑结构方面也进行了详细的设计。详见组长田彦博的实验报告。

操作系统文件管理_答案

第六部分文件管理 1、文件系统的主要目的就是( )。 A、实现对文件的按名存取 B、实现虚拟存储 C、提供外存的读写速度 D、用于存储系统文件 2、文件系统就是指( )。 A、文件的集合 B、文件的目录集合 C、实现文件管理的一组软件 D、文件、管理文件的软件及数据结构的总体 3、文件管理实际上就是管理( )。 A、主存空间 B、辅助存储空间 C、逻辑地址空间 D、物理地址空间 4、下列文件的物理结构中,不利于文件长度动态增长的文件物理结构就是( )。 A、顺序文件 B、链接文件 C、索引文件 D、系统文件 5、下列描述不就是文件系统功能的就是( )。 A、建立文件目录 B、提供一组文件操作 C、实现对磁盘的驱动调度 D、实现从逻辑文件到物理文件间的转换 6、文件系统在创建一个文件时,为它建立一个( )。 A、文件目录 B、目录文件 C、逻辑结构 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、A与C 13、文件系统采用树型目录结构后,对于不同用户的文件,其文件名( )。 A、应该相同 B、应该不同 C、可以不同,也可以相同 D、受系统约束 14、文件系统采用二级文件目录可以( )。 A、缩短访问存储器的时间 B、实现文件共享 C、节省内存空间 D、解决不同用户间的文件命名冲突

操作系统实验文件管理C 代码

#include #include #include #include #include using namespace std; #define BLKSIZE 512 // 数据块的大小 #define BLKNUM 512 // 数据块的块数 #define INODESIZE 32 // i节点的大小 #define INODENUM 32 // i节点的数目 #define FILENUM 8 // 打开文件表的数目//用户 typedef struct { char user_name[10]; // 用户名 char password[10]; // 密码 } User; //i节点 typedef struct { short inum; // 文件i节点号 char file_name[10]; // 文件名

char type; // 文件类型 char user_name[10]; // 文件所有者 short iparent; // 父目录的i节点号 short length; // 文件长度 short address[2]; // 存放文件的地址 } Inode; //打开文件表 typedef struct { short inum; // i节点号 char file_name[10]; // 文件名 short mode; // 读写模式(1:read, 2:write, // 3:read and write) } File_table; // 申明函数 void login(void); void init(void); int analyse(char *); void save_inode(int); int get_blknum(void); void read_blk(int); void write_blk(int);

实验设备管理系统程序报告(DOC 51页)

实验设备管理系统程序报告(DOC 51页)

目录 一、需求与功能分析 第二章概要设计 (5) 2.1总体设计 5 2.2面向对象设计 5 2.3运行界面设计 6 第三章详细设计 (7) 3.1 系统设计与实现 (7) 3.2 模块设计 (8) 第四章测试分析 (10) 第五章课程设计总结 (10) 附录:程序代码(仅电子版需要、纸质版不需要)..................................................................................

一、需求与功能分析 1.1需求 为了方便管理校内各种实验设备,能够翻遍快捷的录入查询各个实验设备的基本信息而编写了此程序 实验设备管理系统设计 实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。 1.2主要功能: 1、能够完成对设备的录入和修改。 2、对设备进行分类统计。 4、设备的破损耗费和遗损处理。 4、设备的查询。 1.3功能需求 1、可实现管理员登陆管理系统,游客查询系统。 2、对实验设备类型的管理。 3、对实验设备各项信息的录入和修改。 4、对实验设备的分类查询统计。 5、对实验设备的遗损处理 二、概要设计 2.1总体设计 程序总体共分为4个类: 1、菜单类 2、设备类型类 3、设备类 4、管理员类

由主函数主持整体运行,由菜单类调用其它三类 2.1 面向对象设计 1.设备类型类:(见图2) void shuru(); //设备类型的输入 void tianjia(); //设备类型的添加 void shanchu(); //设备类型的删除 void show(); //设备类型的输出显示 void xieru(); //设备类型的写入 void duqu(); //设备类型的读取 2.设备类: nfom* write() //设备的创建写入(见图3) Infom* load() //从文档中读取数据(见图4) void acquire(Infom* head) //分类查询数据(见图5) void acquire2(Infom* head) //查询全部数据(见图5) void acqu(char choose) //分类查询的内容支持(见图5) void add() //添加新内容(见图6) void undo(Infom* head) //删除(见图7)

实验10 操作系统设备管理

实验10 操作系统设备管理 一、按课本第139页【实例分析4-7】内容熟悉设备管理器界面。(若课本没带,打开我的电脑-右键-管理-设备管理-查看相应设备。)记录你使用的电脑的处理器、磁盘存储器等的型号分别是什么。二、学习如何在Microsoft Windows XP 中如何使用设备管理器管 理设备。 使用设备管理器管理设备 设备管理器提供一个图形视图,可显示计算机上安装的硬件以及与硬件关联的设备驱动程序和资源。在设备管理器上,可以集中更改配置硬件的方式以及更改硬件与计算机微处理器交互的方式。 使用设备管理器管理设备及其驱动程序需要拥有下列权限,系统管理员被授予了所有这些权限:?加载/卸载驱动程序权限。 ?向system32\drivers 目录复制文件所需的权限。 ?向注册表写入设置所需的权限。 设备管理器具有下列功能: ?确定计算机上的硬件是否工作正常。 ?更改硬件配置设置。 ?标识为每个设备加载的设备驱动程序,并获取每个设备驱动程序的有关信息。 ?更改设备的高级设置和属性。 ?安装更新的设备驱动程序。 ?禁用、启用和卸载设备。 ?重新安装驱动程序的前一版本。 ?找出设备冲突并手动配置资源设置。 ?打印计算机上所安装设备的概要信息。 通常,设备管理器用于检查计算机硬件的状态以及更新计算机上的设备驱动程序。如果您是高级用户并且通晓计算机硬件知识,则可以使用设备管理器的诊断功能来消除设备冲突和更改资源设置。 要访问设备管理器,请使用下列任一方法: ?单击开始,单击运行,然后键入devmgmt.msc。 ?右键单击我的电脑,单击管理,然后单击设备管理器。 ?右键单击我的电脑,单击属性,单击硬件选项卡,然后单击设备管理器。

实验室设备管理系统(完版)

目录 第一章系统概述 (1) 1.1系统开发背景及意义 (1) 1.1.1 系统开发的背景 (1) 1.1.2 系统开发的意义 (1) 1.2开发策略 (2) 1.3可行性研究 (2) 1.3.1技术可行性 (2) 1.3.2经济可行性 (2) 1.3.3操作可行性 (3) 1.3.4社会因素可行性 (3) 1.3.5可行性研究结论 (3) 第二章系统分析 (4) 2.1系统性能需求分析 (4) 2.2问题分析与解决 (4) 2.3功能分析 (5) 2.3.1数据的输入 (5) 2.3.2数据的查询 (5) 2.3.3数据的更新 (5) 2.3.4数据的管理 (5) 2.3.5系统安全性 (5) 2.4系统调查 (5) 2.4.1 系统流程 (5) 2.5功能模块概述 (7) 2.5.1 设备基本信息管理 (7) 2.5.2 系统管理 (8) 2.6数据字典 (9)

第三章系统设计 (16) 3.1系统开发及运行环境 (16) 3.2系统功能结构图 (16) 3.3代码设计 (17) 3.4系统概念设计 (17) 3.4.1 实体描述 (17) 3.4.2系统E-R图 (18) 3.5关系模式 (18) 3.6输出输入设计 (19) 3.6.1输出设计 (19) 3.6.2输入设计 (19) 个人总结 (20) 参考文献 (21)

第一章系统概述 1.1系统开发背景及意义 1.1.1 系统开发的背景 一个现代化的实验室设备系统在正常运行中总是面对大量的使用者,仪器以及两者相互作用产生的借用仪器。人工管理既浪费人力物力财力,又容易导致各种错误的发生。为了方便实验室管理,得开发一个更好更高效的软件来管理。实验室管理系统,是为了实现实验室管理而设计的,它也是现在各个部门的一个重要环节。 实验室是所有高校、研究机构必不可少的基本构成单位。特别是高校,实验室的设备管理需要一套稳定、高效的管理办法。就我校情况看来,目前我校的实验室设备管理还处于较原始的手工阶段,缺少一套实用可靠的管理系统软件。随着电气化教学和无纸化办公的一步步完善,利用计算机管理系统管理我校的实验室设备势在必行。因此,本项目拟开发一个实验室设备管理系统。 本系统将建立一个实验室设备管理平台,记录实验室所有的实验设备,并及时反应设备的运转状况,使用情况,以供本科生和研究生及其他试验人员合理的安排实验,达到工作效率的最优。 1.1.2 系统开发的意义 因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备的基本情况和相关信息登记存档。存档以后档案基本就没人记录与维护,至于以后设备的变迁或损坏都不会记录在设备档案中,即不能体现设备的即时状态。而有些即使有设备管理系统的单位,就算是能把设备的即时信息体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校教学设备管理信息化仍处于较低水平。将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。

JAVAEE课程设计 之实验室设备管理系统

软件学院 课程设计报告书 课程名称 Java高级框架应用开发 设计题目实验室设备管理系统 专业班级软件工程10-6班 学号1020010627 姓名萧翎 指导教师郭鹏飞 2013 年 1 月

目录 1 设计时间.............................................................. 错误!未定义书签。 2 设计目的.............................................................. 错误!未定义书签。3设计任务............................................................... 错误!未定义书签。 4 设计内容.............................................................. 错误!未定义书签。 4.1需求分析............................................................ 错误!未定义书签。 4.1.1总体目标 ...................................................... 错误!未定义书签。 4.1.2具体目标 ...................................................... 错误!未定义书签。 4.1.3系统数据建模 .............................................. 错误!未定义书签。 4.1.4系统功能建模 .............................................. 错误!未定义书签。 4.1.5数据字典 ...................................................... 错误!未定义书签。 4.2总体设计............................................................ 错误!未定义书签。 4.3详细设计........................................................... 错误!未定义书签。 4.4运行与测试 ...................................................... 错误!未定义书签。 5 总结与展望.......................................................... 错误!未定义书签。附:系统程序主要代码 ......................................... 错误!未定义书签。参考文献.................................................................. 错误!未定义书签。成绩评定.................................................................. 错误!未定义书签。

计算机操作系统实验-文件管理

哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 班级:实验学院一班 学号:6040310110 姓名:张元竞 设计成绩报告成绩指导老师

一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、实验要求及实验环境 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)

实验四 设备管理

实验四设备管理 【实验目的】 1)加深对设备管理概念及设备管理中虚拟设备的理解。 2)熟悉设备管理中Spooling技术的主要数据结构和井管理程序,通过一个简单的SPOOLing 系统来模拟实际的SPOOLing输入/输出过程,以掌握这种有用的技术。【实验要求】 调试并运行一个简单的SPOOLing模拟系统,了解SPOOLing 系统的输入/输出处理程序是如何与其它请求输入/输出的进程并发运行;SPOOLing 进程是如何把从输入设备读入的信息送到外存输入井中,或把外存输出井中的信息送到打印机等输出设备上输出。理解模拟系统在运行过程中显示的状态和有关参数变化情况的意义。 【实验环境】 具备Windows或MS-DOS操作系统、带有Turbo C 集成环境的PC机。 【实验重点及难点】 重点:理解SPOOLing技术的概念,SPOOLing系统中主要数据结构的设计和信息的流向、井的管理与控制。 难点:实验程序的问题描述、实现算法、数据结构。 【实验内容】 一.阅读实验程序 程序代码见【实验例程】。 二.编译实验例程 用Turbo C 编译实验例程。 三.运行程序并对照实验源程序阅读理解实验输出结果的意义。 【实验例程】 #include #define WELLSIZE 500 井的大小 #define FALSE 0 #define TRUE 1 struct { int id; char status; int bufflag; 输出缓冲区标志,FALSE为空 int filec; 输出文件计数 } pcb[4]; 进程控制块 struct { int reqid; 请求进程标识 int size; 输出文件长度 int addr; 输出文件在输出井中的首地址 } reqblock[10]; 输出请求块 int well [WELLSIZE]; 数组表示的输出井 int userbuf[3] [50]; 用户输出缓冲区 int f[4];

操作系统实验六设备管理

操作系统课程报告 实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括: 建立设备类表和设备表、分配设备和回收设备的函数。 实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图:(2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未

分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 2、程序流程图。 主程序流程图: 设备分配: 设备回收: 3、程序及注释。 #include #include #include #define false 0 #define true 1

兰州大学操作系统实验七存储管理题目和答案

实验七实验报告 实验名称:7 存储管理 实验目的: 1.观察系统存储器使用情况 2.观察进程使用存储器的情况 3.掌握通过内存映像文件提高性能的方法 4.掌握动态内存分配技术 实验时间 3学时 预备知识: 1.存储相关的命令 free 显示系统使用和未被使用的内存数量(可以实时执行) 输出包含的标题有 3 行信息: Mem。此行包含了有关物理内存的信息。包括以下详细内容: total。该项显示可用的物理内存总量,单位为KB。该数字小于安装的物理内存的 容量,是因为内核本身也要使用一小部分的内存。 used。该项显示了用于应用程序超速缓存数据的内存容量。 free。该项显示了此时未使用且有效的内存容量。 Shared/buffers 缓冲区/cached。这些列显示了有关内存如何使用的更为详细的信息。 -/+ buffers/cache。Linux 系统中的部分内存用来为应用程序或设备高速缓存数据。这部分内存在需要用于其他目的时可以释放。 free列显示了调整的缓冲区行,显示释放缓冲区或高速缓存时可以使用的内存容量。 Swap。该行显示有关交换内存利用率的信息。该信息包含全部、已使用和释放的可用内存容量。 vmstat 报告进程、内存、分页、IO等多类信息(使用手册页) size 列出目标文件段大小和总大小(使用手册页)

2./proc文件系统(使用手册页man 5 proc) /proc/meminfo 内存状态信息 /proc/stat 包含内存页、内存对换等信息。 /proc/$pid/stat 某个进程的信息(包含内存使用信息) /proc/$pid/maps某个进程的内存映射区信息,包括地址范围、权限、偏移量以及主次设备号和映射文件的索引节点。 /proc/$pid/statm 某个进程的内存使用信息,包括内存总大小、驻留集大小、共享页面数、文本页面数、堆栈页面数和脏页面数。 3.内存映像文件 内存映像文件是指把一个磁盘文件映像到内存中,二者存在逐字节的对应关系。这样做可以加速I/O操作,并可以共享数据。 3.1 mmap(建立内存映射) 表头文件#include #include 定义函数void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize); 函数说明mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。参数start指向欲对应的内存起始地址,通常设为NULL,代表让系统自动选定地址,对应成功后该地址会返回。参数length代表将文件中多大的部分对应到内存。 参数prot代表映射区域的保护方式有下列组合 PROT_EXEC 映射区域可被执行 PROT_READ 映射区域可被读取 PROT_WRITE 映射区域可被写入 PROT_NONE 映射区域不能存取 参数flags会影响映射区域的各种特性 MAP_FIXED 如果参数start所指的地址无法成功建立映射时,则放弃映射,不 对地址做修正。通常不鼓励用此旗标。 MAP_SHARED对映射区域的写入数据会复制回文件内,而且允许其他映射该 文件的进程共享。 MAP_PRIV A TE 对映射区域的写入操作会产生一个映射文件的复制,即私人的

操作系统实验五文件和设备管理

宁德师范学院计算机系 实验报告 (2014—2015 学年第二学期) 课程名称操作系统 实验名称实验五文件和设备管理专业计算机科学与技术(非师)年级2012 级 学号B2012102147 姓名王秋 指导教师王远帆 实验日期2015-06-9

实验目的与要求: 通过对Windows 2000 提供的文件与文件夹加密、磁盘配额管理、进行磁盘清理、执行备份操作、使用CHKDSK维护文件完整性和整理磁盘碎片等功能进行操作: (1)熟悉Windows 2000 的文件系统。 (2)明确应用NTFS文件系统的积极意义。 (3) 掌握优化Windows 2000 磁盘子系统的基本方法。 (4) 进一步理解现代操作系统文件管理知识。 实验设备(环境): (1)一台安装有Cygwin Terminal 的计算机 (2)Windows XP 操作系统 (3)VC++6.0 实验内容: (1)文件系统的了解和管理操作 (2)磁盘设备的了解和管理操作 实验步骤、实验结果及分析: 步骤1:阅读“背景知识”,请回答: 1) Windows 2000 支持哪三种主要的文件系统: a. 文件分配表(File Allocation Table ,FAT) 文件系统(FAT16) b. 保护模式FAT文件系统(FAT32) c. Windows NT 文件系统(NTFS) 2) NTFS文件系统只能用于哪些操作系统环境: NTFS卷标只能为Windows NT 、2000 和XP操作系统所访问。 步骤2:登录进入Windows 2000 Professional 。 步骤3:加密文件或文件夹。 为加密文件或文件夹,可按照以下步骤进行: 1) 在“Windows 资源管理器”中,右键单击想要加密的文件或文件夹,然后单击“属性”命令。 2) 在“常规”选项卡上,单击“高级”按钮。

操作系统 实验报告 文件管理

昆明理工大学信息工程与自动化学院学生实验报告 (201 —201 学年第二学期) 课程名称:操作系统开课实验室:年月日 一、实验目的 用C或C++语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。从而 对各种文件操作命令的实质内容和执行过程有比较深入的了解。 二、实验原理及基本技术路线图(方框原理图) 用C模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件控制块,采用合理的外存分配方式,能实现基本的目录及文件的操作,包括创建、删除、重命名、复制、移动等功能,并对文件有一定的存取权限控制。 功能设计: Help 显示命令帮助 dir 显示当前目录下的文件和文件夹 exit 退出系统 create [文件名] 创建文本文件 cdir [目录名] 创建文件夹 read [文件名] 读取一个文件最多可同时读取五个 close[文件名] 关闭一个文件 edit [文件名] 编辑一个文件 cd [目录名] 进子目录或者上级目录 attr [文件名] 显示该文件的属性 del [文件名] 删除文件 rename [文件名] 重命名

编辑功能流程图

删除文件流程图创建文件流程图 核心算法: bool Format(void); //格式化 bool install(void); //装载虚拟硬盘的数据 void login(void); /用户登陆

void showMenu(void);//显示功能菜单 bool onAction(void);//用户选择功能并执行 void createFile(string str);//创建文件 bool read(string str);//读取文件 void editFile(string str);//编辑文件 void Delete(string str);//删除一个文件 数据结构: /*---------常变量------*/ const unsigned int BLOCK_SIZE=512; //块长 const unsigned int DATA_BLOCK_NUM=512; //数据块数量 const unsigned int DINODE_START=4*BLOCK_SIZE; //inode起始位置 const unsigned int DINODE_SIZE=512; //inode大小 const unsigned int DINODE_NUM=32; //inode数量 const unsigned int DATASTART=(2+DINODE_NUM)*BLOCK_SIZE; //数据区的开始地址 const unsigned int ACCOUNT_NUM=10; //用户数量 /*inode结构体*/ struct inode{ unsigned short di_tag; /*inode标识*/ unsigned short di_number; /*关联文件数,当为0时表示删除文件,如一个目录至少 包含两个文件:"."和".."*/ unsigned short di_mode; /*存取模式:0为目录,1为文件*/ unsigned short di_userID; /*当前inode所属用户0为根目录ID,一次下去是管理员目

相关主题