好文档 - 专业文书写作范文服务资料分享网站

操作系统实验 - 文件系统 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

实验原理 1.文件操作

◆mkdir 创建目录文件模块,输入 mkdir 命令,回车,输入文件名,回车,即会在当前目录文件下创建一个名为刚刚输入的文件名的目录文件。 在该创建过程中首先要判断该目录中有没有同名的文件, 如果有的话就创建失败, 还要判断在该目录下有没有创建文件的权限,有权限才可以创建。具体流程图查看第二节,系统流程图设计部分。

◆del 删除文件模块,输入 del命令,回车,输入文件名,回车,即会在当前目录文件下删除一个名为刚刚输入的文件名的数据文件。 在该删除过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了, 还要判断在该目录下有没有删除文件的权限, 有权限才可以删除。具体流程图查看第二节,系统流程图设计部分。

◆ls 显示当前目录下所有目录的模块,输入 ls 命令,回车 ,即会在屏幕上显示当前目录下的所有目录。在该过程中要判断该目录中是否为空,如果为空就没有必要执行该操作了。执行操作时,要调用 readdir (INode inode )函数 ,先读入文件内容到 content 里面,然后直接输出。如果子目录里面还有子目录,则通过递归,一并输出来。具体流程图查看第二节,系统流程图设计部分。 ◆chmod 改变文件权限模块,输入 chmod 命令,回车,输入文件名,回车,即会根据不同类别的用户在屏幕上提示要改变哪一类用户的权限。 如果是文件拥有者执行该操作, 他可以选择修改自己、 其他用户的权限; 如果是文件所属组成员执行该操作, 他可以选择修改自己、 其他用户的权限; 如果是其他用户执行该操作,他只能选择修改自己的权限;在该过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了。执行操作时,要判断对该文件有没有执行写操作的权利, 没有就不能进行。 具体流程图查看第二节, 系统 流程图设计部分。

◆cd 改变当前所在目录的模块。输入 cd,回车,相应的字符串,回车,则会根据输入字符串的不同跳转到不同的目录下。如果字符串是‘ .’ ,则到当前目录;如果字符串是‘ ..’ ,则到父目录;如果字符串是‘ /’ ,则到根目录;如果字符串是当前目录下的子目录, 则到该子目录;如果字符串是一个决定路径, 则到该绝对路径。 当然在执行的时候要判断有没有该子目录或者该绝对路径, 如果没有的话, 就不能执行。 具体流程图查看第二节, 系统流程图设计部分。

2. 用户操作

◆login 用户注销模块,输入 login ,回车,当前用户就退出了,需要重新登录。

◆pw 用户修改口令模块,输入 pw ,回车,则会提示输入原始密码,输入正确 了才可以提示输入新密码,并且要求新密码输入两次,两次一样了才能通过修改密码成功。具体流程图查看第二节,系统流程图设计部分。

◆logout 用户退出系统模块,输入 logout ,回车,系统自动退出。

四、实验过程、步骤及内容 实验内容 为 LINUX 系统设计一个简单的二级文件系统,要求 (1)文件实现下列几条命令 login 用户登录 logout 注销用户 dir 列文件目录 creatfile 创建文件 del删除目录或文件 cd 改变目录 mkdir 创建目录 adduser 增加用户 deluser 删除用户 shell命令解析 chmod 改变文件权限 pw修改用户密码 edit 编辑文件 fileopen 打开文件 fileclose关闭文件 fileread 读文件 filewrite写文件 access文件访问控制 format格式化文件系统 install装载文件系统 iput 将磁盘 i 结点放入指定的 i 结点块中 ialloc分配一个 i 结点,返回 i 结点号 ifree 将指定的 i 结点释放 balloc分配一块磁盘块,返回盘块号 bfree将指定的磁盘块释放 psw_get读 psw 信息 psw_put写 psw 信息 psw_read将 psw 中的用户信息读入内存 thepsw 中 psw_writeback将 thepsw 写回磁盘 sub_dir_get根据 i 结点号,返回目录表 (2)列目录时要列出文件名、物理地址、保护码和文件长度: DISKSIZE 1024*1024 //磁盘文件大小 BLOCKSIZE 512 //磁盘块大小 FILENAME \ // 超级块参数 SUPBLOCK 5 // 超级块所需盘块 bSTACKSIZE 50 // 空闲盘块栈大小 iSTACKSIZE 500 // 空闲 i 接点栈大小 SUPSTART BLOCKSIZE // 超级块起始的物理地址 SUPSIZE sizeof(struct superblock) // 超级块大小 结点参数 INODESIZE sizeof(struct dinode) // 一个 i 结点大小 INODENUM_B 5 // 每个盘块 i 结点个数 INODEBLOCK 100 // i 结点所需盘块 INODENUM 500 // i 结点数目 ADDRNUM 13 // i 结点可连接的盘块数 INODESTART 6*BLOCKSIZE // i 界点起始的物理地址 用户密码区参数 USERSIZE 20 // 用户名长度 PWSIZE 30 // 密码长度 GROUPSIZE 20 // 组名长度 USERNUM 68 // 最多用户个数(其实比最大数多几个) USERBLOCK 14 // 用户密码去所需盘块 PSWORDSTART 111*BLOCKSIZE // 用户密码区起始地址 PSWORDSIZE sizeof(struct psword) // 密码记录项长度 主用户目录区参数(特殊的文件目录,初始化就确定) ROOTSTART 106*BLOCKSIZE // /目录块地址 DIRBLOCK 4 // 主用户目录所需磁盘块数 DIRSTART 107*BLOCKSIZE // 主用户目录起始地址 文件目录一般参数 DIRECTSIZE sizeof(struct direct) // 目录项长度 DIRECTNUM 16 // 每块最多可分配目录项的数目 DIRECTSIZE_A 30 // 实际分配目录项长度 DIRSIZE 20 // 目录文件名长度 DIRNUM (10*DIRECTNUM) // 最大子目录数(i结点可连接10个盘块,每块可放17项) DATASTART 131 // 数据区开始地址 DATANUM 1917 // 数据区块数 HASHNUM 10 // HASH 表长度 DEFAULTMODE 00770 //默认权限 (3)源文件可以进行读写保护 (4)在系统中用一个文件来模拟一个磁盘; (5)能实际演示这个文件系统。基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求: 1)设计一个 多个用户的文件系统,每次用户可保存 多个文件。 2)程序采用二级文件目录和用户文件目录。另外,为打开文件设置了运行文件目录( AFD)。 3)为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 4)因系统小,文件目录的检索使用了简单的线性搜索。 5)文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为 0,则表示不允许读写、执行。 6)程序中使用的主要设计结构如下:主文件目录和用户文件目录,打开文件目录即运行文件目录, 五、实验数据(现象)处理分析 实验现象 成功运行文件系统,并开始登录: 列出目录: 添加新用户密码不一致而添加失败: 添加新用户: 退出登录: 添加新用户退出登录到重新登录新用户: 修改用户密码: 创建目录以及列出新建的目录: 删除文件目录:

操作系统实验 - 文件系统 - 图文 

实验原理1.文件操作◆mkdir创建目录文件模块,输入mkdir命令,回车,输入文件名,回车,即会在当前目录文件下创建一个名为刚刚输入的文件名的目录文件。在该创建过程中首先要判断该目录中有没有同名的文件,如果有的话就创建失败,还要判断在该目录下有没有创建文件的权限,有权限才可以创建。具体流程图查看第二节,系统流程图设计部分。◆del删除文件模块
推荐度:
点击下载文档文档为doc格式
1v6hd2u6ej10e609m87w9sc9l3ppnv019xh
领取福利

微信扫码领取福利

微信扫码分享