文档库 最新最全的文档下载
当前位置:文档库 › linux 实验报告 文件系统与文件管理

linux 实验报告 文件系统与文件管理

linux 实验报告 文件系统与文件管理
linux 实验报告 文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》

级系

专业班

学号:

姓名:

指导教师:

一、实验项目:用户与组群管理

二、实验日期:

三、实验原理:

1.熟悉Linux下常用的操作指令。

2.加深对文件,目录,文件系统等概念的理解。

3.掌握Linux文件系统的目录结构。

4.掌握有关Linux文件系统操作的常用命令。

5.了解有关文件安全方面的知识。

四、实验仪器:

PC机

Redhat网络操作系统

五、实验步骤(纸张不够写可另外加纸并应装订):

进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$

提示符下键入有关命令。

1.浏览文件系统

〈1〉运行pwd命令,确定你当前的工作目录。

〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。)

〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i 可以显示文件的I节点号)

ls –ai

〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。

〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。

〈6〉使用cd命令,将工作目录改到根目录(/)上。

①用相对路径将工作目录改到根目录。

②用绝对路径将工作目录改到根目录。

〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。

〈8〉使用ls-l命令列出/dev的内容。

Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。

〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。

〈10〉使用命令cd ../..,你将工作目录移到什麽地方?

2.查看你的文件

〈1〉利用cd命令,将工作目录改到你的主目录上。

〈2〉将工作目录改到你的子目录subdir,然后运行命令:

date > file1 将当前日期和时间存放到新建文件file1中。

Ls –l 反馈信息中有新文件 file1。请注意并记下文件长度为:

〈3〉使用cat命令查看file1文件的内容。

〈4〉利用man命令显示date命令的用法(说明文件):

〈5〉将date命令的用法(说明文件内容)附加到文件file1的后面:

注意file1文件长度为,较前变长。

〈6〉利用ls -l file1命令列出文件file1的较详细的信息。

ls -l file1 注意第二字段(链接记数)的值为“1”。

〈7〉利用ln file1../fa命令进行文件链接。然后运行ls -l file1,查看显示的第二段的值发生了什麽变化。

〈8〉现在想利用cat fa命令显示文件fa的内容,应该如何改动工作目录?

〈9〉利用cp file1 fa命令生成文件file1的副本。然后利用ls -l命令查看工作目录的内容。

〈10〉将文件fa删除。再利用ls -l命令查看工作目录内容。

〈11〉运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中?

3.文件存取权限

〈1〉存取权限

LINUX系统对所有文件设置了存取权限。存取权限让你确定谁可以对你的个人文件和目录行访问,以及可以进行什麽操作。

把所有用户分为三类:

——文件主(user),即文件的属主。

——组用户(group),即文件组的成员。

——其他用户(other),即能对系统进行访问的所有其他用户。

对一个文件的存取权限分为三种:

——读(r)

——写(w)

——执行(x)

一组存取权限以及相应的文件类型统称为文件模式。如:rw-r--r--表示文件主有读和写的权限,组用户和其他用户只有读权限。

〈2〉文件存取权限

读权限(r)允许指定的用户可以打开文件并阅读其内容。如cat,more,file和cp命令等。写权限(w)允许指定的用户可以打开文件并修改其内容。如vi,mail,cp等。执行权限(x)允许指定的用户运行(即执行)一个二进制文件文件或者把一个shell脚文件当做命令来运行。当你通过输入命令名来调用命令时,你必须具有该命令文件的执行限。

〈3〉目录存取权限

读权限(r)允许你列出相应目录中所存放的文件的名字(即目录的内容表)。

写权限(w)允许你从目录中删除已有文件或者把新文件添加到目录中。

查询权限(x)允许你在目录中进行查找和使用cd命令把工作目录放到它这里。

〈4〉修改文件权限

文件主或root用户可以使用chmod命令来修改文件或目录的权限。修改文件权限的方式有两种:符号模式和绝对模式。这里主要介绍符号模式。使用chmod命令修改当前权限设置的一般形式是:chmod key file [file...]

其中,key由以下成分组成:[who] [+|-|=] [mode]

——who这一部分可以由下面的一个和多个字符组成:u,g,o或a,它们分别表示文件主,组用户,其他用户或所有三种用户。默认值是a。

——第二部分必须是以下三个字符中的一个:+,-,或者=,分别表示增加,删除或者设定。

——mode成分可以由以下字符任意组合:r,w或x,分别表示读,写或者执行/查询的权限。

以上三个部分必须依次输入,而且它们之间没有空格。在一个命令行中可以指定多个key,彼此间用逗号隔开,中间没有空格。

如:设文件f原来的权限是rw-rw-r--,现在想让所有用户都具有执行权限,则可使用以下命令:chmod a+x f ,该命令执行后,文件f的权限变成rwxrwxr-x。

练习:

mv file_a file1 恢复文件file1;

ls –l 显示文件file1的权限为 rw-rw-r—;

1).取消同组用户g和其他用户o 对文件可读的权利;

2).显示文件file1的权限。

3).恢复同组用户g和其他用户o 对文件可读的权利;

4 配额管理

〈1〉利用fdisk创建一个分区

〈2〉格式化为ext 3文件系统

〈3〉将该分区设置为自动挂载为/home

.

〈4〉创建两个用户hellen和jerry,组群为student

〈4〉对/home文件系统实施用户级和组群级的配额管理,普通用户helen和jerry的软配额为150MB,硬配额为200MB,student组群的软配额为800MB,硬配额为900MB0

这个不懂怎么进行分配,很多命令不是很熟悉.

六、指导教师评语:

实验成绩_______________ 指导教师_______________

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

操作系统实验报告实验名称:文件管理 专业班级:网络工程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;

操作系统课程设计文件系统管理)

操作系统课程设计Array文件系统管理 学院计算机学院 专业计算机科学与技术 班级 姓名 学号 2013年1月8日 广东工业大学计算机学院制 文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。 二、实验内容和要求 编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete等文件命令,对文件进行操作。 以下报告主要包括: 1.可行性分析 2.需求分析 3.概要设计

4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。 2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益) 3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。 四、需求分析 编写程序实现文件系统,主要有以下几点要求: 1、实现无穷级目录管理及文件管理基本操作 2、实现共享“别名” 3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录MFD (Master File Directory);在主文件目录中,每个用户目录文件都占有一个目

操作系统实验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");

进程管理实验报告文档

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码: #include <> #include <> #include #include <> main() {

int p1,p2; p1=fork(); ockf()函数是将文件区域用作信号量(监视锁),或控制对锁定进程的访问(强制模式记录锁定)。试图访问已锁定资源的其他进程将返回错误或进入休态,直到资源解除锁定为止。而上面三个进程,不存在要同时进入同一组共享变量的临界区域的现象,因此输出和原来相同。 (3) a) 编写一段程序,使其实现进程的软中断通信。 要求:使用系统调用fork() 创建两个子进程,再用系统调用signal() 让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill() 向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Process 1 is killed by Parent! Child Process 2 is killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent Process is killed!

linux 实验报告 文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》 级系 专业班 学号: 姓名: 指导教师:

一、实验项目:用户与组群管理 二、实验日期: 三、实验原理: 1.熟悉Linux下常用的操作指令。 2.加深对文件,目录,文件系统等概念的理解。 3.掌握Linux文件系统的目录结构。 4.掌握有关Linux文件系统操作的常用命令。 5.了解有关文件安全方面的知识。 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$ 提示符下键入有关命令。 1.浏览文件系统 〈1〉运行pwd命令,确定你当前的工作目录。 〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。) 〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i 可以显示文件的I节点号) ls –ai 〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。 〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。

〈6〉使用cd命令,将工作目录改到根目录(/)上。 ①用相对路径将工作目录改到根目录。 ②用绝对路径将工作目录改到根目录。 〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。 〈8〉使用ls-l命令列出/dev的内容。 Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。 〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。 〈10〉使用命令cd ../..,你将工作目录移到什麽地方? 2.查看你的文件 〈1〉利用cd命令,将工作目录改到你的主目录上。 〈2〉将工作目录改到你的子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中。 Ls –l 反馈信息中有新文件 file1。请注意并记下文件长度为:

操作系统实验文件管理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);

文件系统与文件管理

学生课程实验报告书课程:《Linux操作系统》 级系 专业班 学号: 姓名: 指导教师: 2012—2013学年第 2 学期

一、实验项目:文件系统与文件管理 二、实验日期:2011年11月21日 三、实验原理: 掌握文件系统的挂载与卸载;磁盘配额管理;文件的权限修改;文件的归档与压缩; 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 1.对/文件系统实施用户级配额管理,对普通用户hellen与jerry进行配额 管理,磁盘空间软配额为300M,硬配额为350M,文件数量配额为:软配额12个,硬配额为15个。写出配额的具体步骤,并测试用户级配额是否成功。 答案:首先,创建hellen和jerry两个用户,配额步骤如下: 1)使用任何文本编辑工具编辑/etc/fstab文件,对“LABEL=/”所在行进行修改,增加命令选项usrquota。 2)重启电脑或者输入mount –o remount / 重新挂载/ 3)利用quotacheck命令创建https://www.wendangku.net/doc/4e1030858.html,er文件。 #touch https://www.wendangku.net/doc/4e1030858.html,er #quotacheck –mc /home

4)edquota hellen ,编辑hellen用户的bolck的软配额为300M,硬配额为350M,inodes的软配额为12个,硬配额为15个,修改内容如下: block soft hard inodes soft hard 0 307200 358400 0 12 15 5)将同样的配额设定复制给jerry用户 # edquota -p hellen jerry 6)启动配额管理 #quotaon –avu 之后,对配额进行测试,发现当拷贝文档个数大于12个或者文件大小超过300M的时候,终端进行警告提示,当文件个数大于15个或者文件大小超过350M的时候,不能往/写入任何内容。 2.在桌面环境下,选中有个文件或文件夹进行相应权限的修改。 3.用chmod命令分别用数字模式和功能模式修改/root/install.log文件属性。 答案:功能模式下修改权限 1)增加同组用户写入:chmod g+w /root/install.log 2)增加其他用户写入:chmod o+w /root/install.log 3)增加文件所有者写入:chmod u+w /root/install.log 4)增加同组用户读:chmod g+r /root/install.log 5)增加其他用户读:chmod o+r /root/install.log 6)增加文件所有者读:chmod u+r /root/install.log

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

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

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

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

实验七实验报告 实验名称: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 对映射区域的写入操作会产生一个映射文件的复制,即私人的

操作系统精髓与设计原理-第12章-文件管理

第12章文件管理 复习题: 12.1、域和记录有什么不同? 答:域(field)是基本数据单位。一个域包含一个值。记录(record)是一组相关的域的集合,它可以看做是应用程序的一个单元。 12.2、文件和数据库有什么不同? 答:文件(file)是一组相似记录的集合,它被用户和应用程序看做是一个实体,并可以通过名字访问。数据库(database)是一组相关的数据集合,它的本质 特征是数据元素间存在着明确的关系,并且可供不同的应用程序使用。 12.3、什么是文件管理系统? 答:文件管理系统是一组系统软件,为使用文件的用户和应用程序提供服务。12.4、选择文件组织时的重要原则是什么? 答:访问快速,易于修改,节约存储空间,维护简单,可靠性。 12.5、列出并简单定义五种文件组织。 答:堆是最简单的文件组织形式。数据按它们到达的顺序被采集,每个记录由一串数据组成。顺序文件是最常用的文件组织形式。在这类文件中,每个记录 都使用一种固定的格式。所有记录都具有相同的长度,并且由相同数目、长度 固定的域按特定的顺序组成。由于每个域的长度和位置已知,因此只需要保存 各个域的值,每个域的域名和长度是该文件结构的属性。索引顺序文件保留 了顺序文件的关键特征:记录按照关键域的顺序组织起来。但它还增加了两个 特征:用于支持随机访问的文件索引和溢出文件。索引提供了快速接近目标记 录的查找能力。溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中 的记录可以根据它前面记录的指针进行定位。索引文件:只能通过索引来访 问记录。其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针 指向这条记录即可。此外,还可以使用长度可变的记录。直接文件或散列 文件:直接文件使用基于关键字的散列。 12.6、为什么在索引顺序文件中查找一个记录的平均搜索时间小于在顺序文件中的平均 搜索时间? 答:在顺序文件中,查找一个记录是按顺序检测每一个记录直到有一个包含符合条件的关键域值的记录被找到。索引顺序文件提供一个执行最小穷举搜索的索引 结构。 12.7、对目录执行的典型操作有哪些? 答:搜索,创建文件,删除文件,显示目录,修改目录。 12.8、路径名和工作目录有什么关系? 答:路径名是由一系列从根目录或主目录向下到各个分支,最后直到该文件的路径 中的目录名和最后到达的文件名组成。工作目录是一个这样的目录,它是含有用 户正在使用的当前目录的树形结构。 12.9、可以授予或拒绝的某个特定用户对某个特定文件的访问权限通常有哪些? 答:无(none),知道(knowledge),执行(execution),读(reading),追加(appending), 更新(updating),改变保护(changing protection),删除(deletion)。 12.10、列出并简单定义三种组块方式。 答:固定组块(fixed blocking):使用固定长度的记录,并且若干条完整的记录被保存在一个块中。在每个块的末尾可能会有一些未使用的空间,称为内部碎片。

操作系统文件管理系统模拟实验

文件管理系统模拟 1.实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现 2.实验内容 为Linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条) login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 3.实验提示 (1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。入file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 4.源代码 #include #include #include #define MEM_D_SIZE 1024*1024 //总磁盘空间为1M #define DISKSIZE 1024 //磁盘块的大小1K #define DISK_NUM 1024 //磁盘块数目1K #define FATSIZE DISK_NUM*sizeof(struct fatitem) //FAT表大小 #define ROOT_DISK_NO FATSIZE/DISKSIZE+1 //根目录起始盘块号 #define ROOT_DISK_SIZE sizeof(struct direct) //根

操作系统文件系统实验

实验四文件系统实验 一.实验题目: 文件系统实验 二.实验目的: 阅读并调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 了解设计一个n个用户的文件系统,每个用户可以保存M个文件。用户在一次运行中只能打开一个文 件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令. 三.实验设备及环境: 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统,C语言软件。 四.实验内容及要求: 在阅读所给文件系统源程序的基础上,画出其实现的详细流程图,并给出有关的数据结构和说明。 五. 实验方法内容 1.算法流程图

(2)void Execute(int i,int len,int cmdset)执行命令函数流程图 (3)创建文件

(4)写文件流程图 (5)修改文件执行权限 (6

2.主要的常量变量 char cmd[64]; //存放用户输入命令 char buffer[36]; char user[32];//存放当前登陆的用户名 typedef char ALFA[12]; ALFA KWORD[keynum]; struct UFD{//用户文件管理模块 char filename[32]; //文件名 int safecode; //文件保护码 long length; //文件长度 }*curfile = NULL; struct MFD{//用户登陆信息管理模块 char username[32]; //用户名 bool filepoint; //用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件 }*curuser = NULL,*elseuser=NULL; typedef UFD UFD; typedef MFD MFD; 3.主要模块 void KeyWord()//初始化命令关键字 int LoginDisplay() //登陆选项操作函数 bool Login(int SELETE)//用户登陆,注册函数 void DisplayUFD()//打印用户信息,包括用户的各个文件 //名称、长度和操作权限的设置信息 void ByeFile(bool BOOL)//注销函数,调用次函数用户可以退出系统 bool ClearUserFile()//用户要将自己的注册目录从系统彻底删除 //首先将该用户目录下的全部文件删除 void ClearUserMes()//删除用户全部信息 void CreatFile()//在当前用户目录下创建文件 void DeleteFile() //删除当前目录下一个文件的操作 void ListAllFile()//显示当前用户目录下的文件信息 bool QueryModElse(bool BOOL,bool &flag)//查询其它用户目录下文件的文件 //当该文件的权限允许当前用户对其执行有关操作时,返回ture bool QueryMod(bool BOOL)//查询权限 bool WriteRight(int len,bool BOOL)//查看是否已经正确地写入到该文件信息中 void WriteLengthToFile(int Len,bool BOOL)//将文件长度写入文件管理模块中 void WriteFile()//向文件写入信息的操作 void ReadFile()//读文件函数 void ChangeMod()//修改某文件的执行权限 void Execute(int i,int len,int cmdset)//执行命令函数 void Command()//读取用户输入的命令,并将其转换成系统能识别的命令 void main() 4.代码 /***************************************************************** * 文件名: Simple_file_system.c * 功能: 简单文件管理系统模拟程序 *******************************************************************/ #include #include #include #include #include "conio.h" #include #define NULL 0 #define keynum 10 #define getspace(type) (type*)malloc(sizeof(type)) char cmd[64]; //存放用户输入命令 char buffer[36];//

操作系统课程设计-文件管理实验报告

操作系统课程实验报告 2013~2014年度第1学期 院系: 学号: 姓名: 任课教师:成绩评定:实验一题目:文件管理

完成日期:年月日 1、实验目的 了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。实验要求用高级语言编写和调试一个简单的模拟文件管理程序。加深理解有关盘块的分配与回收、目录管理等的具体实施策略。 2.、实验内容 模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。建立相应的数据结构(如:位示图等),模拟盘块管理。可以参照图6界面进行设计。 3、算法设计 1)、定义主面板MainFrame,布局好各个控件,并初始化 /* * 往node节点下添加一个子节点obj; */ public void addChild(Object obj, DefaultMutableTreeNode node) { if (obj != null && node != null) { DefaultMutableTreeNode temp = new DefaultMutableTreeNode(obj); if (node.getAllowsChildren()) node.add(temp); if(!((String) obj).equals("A:\\") && ((String) obj).length() <= 3)// 防止读取A软

驱,会出现异常;用于初始用的; addChildren(cmd.listAll((String) obj), temp); } } /* * 在node节点下添加数组children; */ public void addChildren(String[] children, DefaultMutableTreeNode node) { if (children != null && node != null) { for (int i = 0; i < children.length; i++) { addChild(children[i], node); } } } /* * 对树的节点进行预提取; */ public void addPrefetchChildren(String path, DefaultMutableTreeNode node) { addChildren(cmd.listDirectory(path), node); } /* * 对路径路径进行连接;(已经获得了所有的整个路径,需要量转化) */ public String toFilePath(String str) { // 先去掉头尾的[]; String pa = str.substring(1, str.length() - 1); String[] temp = pa.split(", "); String path = ""; for (int i = 1; i < temp.length; i++) { if (!path.endsWith("\\") && !path.equals(""))// 不为空是为去根节点; path += "\\"; path += temp[i]; } return path; } public String toPFilePath(String str) { // 先去掉头尾的[]; String pa = str.substring(1, str.length() - 1); String[] temp = pa.split(", "); String path = "";

操作系统实验三__文件管理

《计算机操作系统》课程实验报告 题目文件管理 学院: 计算机学院 专业: 计算机科学与技术 姓名 班级 学号 2016年12月22日

实验三文件管理 1.实验目的: 编写一个简单的二级文件系统实现程序,加深对文件系统的内部功能和内部实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作能实现相应的命令,用输入命令来模拟用户程序中调用的文件操作。 2.实验内容: 最基本的文件操作 (1)创建文件 在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项。目录项中应该记录新文件的文件名及其在外存的地址等属性。 (2)删除文件 当已不再需要某文件时,可将它从文件系统中删除。在删除时,系统应该先从目录中找到要删除的文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。 (3)读文件 在读一个文件时,须在相应的系统调用中给出文件名和应该读入的内存目标地址。此时,系统同样要查找目录,找到制定的目录项,从中得到被读文件在外存中的位置。在目录项中,还有一个指针用于对文件的读/写。 (4)写文件 在写一个文件时,须在相应的系统调用中给出该文件名及该文件在内存中的(源)地址。为此,也同样须先查找目录,找到指定文件的目录项,在利用目录中的写指针进行写操作。 (5)截断文件 如果一个文件的内容已经陈旧而需要全部更新文件的内容时,一种方法是将此文件删除,再重新创建一个新文件。但如果文件名及其属性均无改变时,则可采取另一种所谓的截断文件的方法,此即将原有文件的长度设置为0,或说放弃原有的文件内容。 (6)设置文件的读/写位置

前述的文件读/写操作,都只提供了对文件顺序存取的手段,即每次都是从文件的始端读或写。设置文件读/写位置的操作,用于设置文件读/写指针的位置,以便每次读/写文件时,不是从其始端而是从所设置的位置开始操作。也正因如此,才能改顺序存取为随机存取。 3.设计实现: 1)流程图 2)详细设计 源代码 #include #include #include #include #include #define MaxUser 100 //定义最多有100个用户

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

昆明理工大学信息工程与自动化学院学生实验报告 (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,一次下去是管理员目

文件目录管理实验报告

操作系统课程设计报告采用二级目录实现文件管理 学院:信息工程学院 班级:计科1002班 姓名:杨辉 学号:101304230 指导教师:邹姝稚 时间:2013年1月 成绩:

目录 一设计目的 (3) 二课题任务 (3) 三课题相关知识 (4) 四课题设计 (6) 五设计内容 (8) 六运行与测试 (14) 七设计总结 (17)

一.设计目的: 文件系统是现代OS用来存储和管理信息的机构,具有按名存取的功能,不仅能方便用户对信息的使用,也有效提高了信息的安全性。本课题模拟文件系统的目录结构,并在此基础上实现文件的各种操作方法。 通过课程设计, 深入理解文件目录的作用和功能,掌握文件打开结构,熟悉与文件有关的系统调用,从而更好的掌握文件系统的概念。 (1)掌握文件系统的基本原理、结构和实现方法。 (2)掌握文件系统中文件的建立、打开、读/写、执行、属性等系统调用的使用 (3)学会设计简单的文件系统并实现一组操作 (4)通过实验学习文件系统的系统调用命令,提高文件系统实现功能的理解和掌握。 二.课题任务 为简单起见,假设文件物理结构为连续结构,编程模拟一个简单的文件系统,实现对文件的各种管理和控制功能。 1.文件目录采用二级目录结构,第一级为文件目录MFD,如图1所示;第二级为用户文件目录UFD,如图2所示。 在UFD中,文件保护方式,用0表示文件可读;用1表示文件可读可写,执行,用2表示文件可写。 2.为加速文件存取,为每个用户建立一张用户打开文件表UOF,用以记录该用户当前正在使用的文件。假定最多允许打开4个文件,该表设置问4项,当打开文件个数超过4时,应给出出错信息。为此应该设置一个用户打开文件计数器,以控制文件打开个数,计数器初始化为0.UOF结构图如图3所示。 在图3中,“文件操作方式”时指文件打开后要执行的操作,“状态”是指用户打开文件表的各个表象为空表目或被占用。读写指针用来指出文件的存取位置。出事状态下,读指针=1,写指针=文件长度,文件长度=0。 用户建立或打开一个文件时,将制定文件的说明信息登记在用户打开文件表中,其中为了给创建的文件分配磁盘空间,可引入一个计数器,用它来模拟磁盘使用情况,初始化为10。假定一个磁盘块大小为64个字节。

相关文档
相关文档 最新文档