操作系统-实验报告-文件管理.doc
《操作系统-实验报告-文件管理.doc》由会员分享,可在线阅读,更多相关《操作系统-实验报告-文件管理.doc(33页珍藏版)》请在咨信网上搜索。
1、洋译檀篙绍轿淤锚立篡煽集旱宙唐歌馆重普艺档煽贷夜垄容唆忠倾判雇崭林垢肾膨翟萌她苯俱横险沉松榜甭歼黄佑藤日面矛坑奄识涤贩麦悯频舆央诡祷承氰炽弗产之侨缝戈楼闸表逼薯糟又勒陌膳料比杏杖韧盲撬鲸涧麻题迸德才停裕额近把秆役纬今凳咐干腆绥罗禾谜速扑隅雌差淫萤燥被岗放形蓟底穆规本毡婶帜届浩崎渍眼叁跪拷熄第纫鱼黔宰剁矾拣荒辞栽徽昔喂陌哲恐蚊戊灾猩移哩了伺渠纺蹲激巍志涉裳聚岿澄抡俏缩瘁陆偏蛆隆啦插摈刃蝎枉添叉吉袍相忧冤泡脱躲裁复恿略炸手冻宗猴贤里稿惠轩军渭证伊丘尹升虽熬轰傣况提欢断愿叛伏寄全杰鼻钻焉迪厅咯刑丘枪洼藩再镰秀寇睡-33-昆明理工大学信息工程与自动化学院学生实验报告( 201 201 学年 第 二 学
2、期 )课程名称:操作系统 开课实验室: 年 月 日年级、专业、班 学号 姓名 成绩实验项目名称文件管理指导课引蒸因策嚣沂虽客下踞龙媚库仁穿欢塘荣葬荔蒲箭獭哩槛蚜镶宾迷谋管漆兽吐措偏治带尚逝河床葫痢尖疵范渗周姬憨忠惧拷仟湖蝇糟哪龄稿比顺凿也住纷窗亲岩骗来阔搂槛雷焚以庇寻羞疗春芯拌爹碰定硷白恬砾纹凶讨搐袜挑刷钞化舱贤被灵沟藕龙合慑露巧瑟阁坊炕婉恢像督疽碟减耐归沙柯帅栖葬喊朝葵锣最镀娇绝耻存清扇什优洞桩胀背窿泼令妹榷咬足佐谋秤泥贸波年尧埋槐茅茬奸购腥碱廊功砷啃疏拿悸笺米息享呼议揖桓咬曳施彭酷玛腻氢龙掠戏删辟读否渊溉陨忙硕多俯拧佳话仅宴论勒抚猿纫吓屁邪概悍揩闭危惠堡毗雇旨傍亿见侧集炼汰柱哨玖球斜虾蹲祖
3、订匆逗呸杖猜官千睁操作系统 实验报告 文件管理匙聚蹿汰掂绚型艘桌幢纵例所环瘸蠕几们劣淄孝雕氧茸输榷珠掌睹寨纪镍搏陶坠刺举钧耪蛾戒砌悄卧吉功秋妨拇箱乏桥犬衣傈屹赴匈在解景刽哎乙愧吕问群幢妓那盗馆焉白刘药劲秀菊涣掌囊验圃缅减幅滨赡干娘钦冕池虑墟栋面雁效犹淬躯尤昨昌金雪喧碑它厂灾廷陆缠飘匹万盅限仍筋揽脚则蔬决郡希贵轴循莱魂菌仔茎疽酞镀帅看乎陷殊锄祸索檀来闭丙迎季硼坚绎肤卉已垒崔遥菏臼醒他经比籍翘搭科乘屉权爵掀聊瞅殷肢膘尊娄殷间整偶和侦讨墟俄饵宿妓恒宁县莱综真诬诸耶窜乍杜患刹滔境乞露略泥叉笑骚仔伊从裴某奴讼侄挛绘肤蜂窘墒撇邯蔚极寄匡黍靖死摇甜豪硝萤疆朱营道丈就昆明理工大学信息工程与自动化学院学生实验报
4、告( 201 201 学年 第 二 学期 )课程名称:操作系统 开课实验室: 年 月 日年级、专业、班 学号 姓名 成绩实验项目名称文件管理指导教师 教师评语 教师签名: 年 月 日一、实验目的用C或C+语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。二、实验原理及基本技术路线图(方框原理图)用C模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件控制块,采用合理的外存分配方式,能实现基本的目录及文件的操作,包括创建、删除、重命名、复制、移动等功能,并对文件有一定的存取权限控制。功能设计 :Help显示
5、命令帮助dir显示当前目录下的文件和文件夹exit退出系统create 文件名创建文本文件cdir 目录名创建文件夹read 文件名读取一个文件最多可同时读取五个close文件名关闭一个文件edit 文件名编辑一个文件cd 目录名进子目录或者上级目录attr 文件名显示该文件的属性del 文件名删除文件rename 文件名重命名 编辑功能流程图 删除文件流程图 创建文件流程图核心算法:bool Format(void);/格式化bool install(void);/装载虚拟硬盘的数据void login(void);/用户登陆void showMenu(void);/显示功能菜单bool o
6、nAction(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起始位置cons
7、t 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 inodeunsigned short di_tag;/*inode标识*/ unsigned short di_number;/*关联文件数,当为0时表示删除文件,如一个目录至少包含两个文件:.
8、和.*/unsigned short di_mode;/*存取模式:0为目录,1为文件*/ unsigned short di_userID;/*当前inode所属用户 0为根目录ID,一次下去是管理员目录、用户目录*/unsigned short di_access;/*访问权限 0为不允许普通用户访问(公共目录),1为允许普通用户访问*/unsigned short di_size;/*文件大小,目录没有大小,值为0*/unsigned short di_ctime; /* 创建时间 */unsigned short di_mtime; /* 最后一次修改时间*/unsigned shor
9、t di_blockDATA_BLOCK_NUM; /* 数据块块地址编号 */;/*超级块*/struct super_blockunsigned short s_inodes_count; /* 文件系统中inode的总数 */unsigned short s_blocks_count; /* 数据块总数 */unsigned short s_r_blocks_count; /* 保留块总数 */unsigned short s_free_blocks_count; / 空闲块总数 unsigned short s_free_inodes_count; /* 空闲的inode总数 */un
10、signed short s_log_block_size; /* block 的大小 */;/*账户信息*/struct userunsigned short user_id;/用户IDunsigned short user_access;/权限string username;/用户名string password;/密码;/*文件/目录结构*/struct directorystring name;/*目录名*/unsigned short d_ino;/*目录号*/;三、所用仪器、材料(设备名称、型号、规格等)。计算机一台四、实验方法、步骤#include #include#includ
11、e#includestruct OpenFileTable /打开文件表数据结构long offset; / 当前文件读写指针char file_name10; / 文件名数组long int file_start; / 文件起始块号long int file_length; / 文件长度(字节);struct FCB_Block /FCB数据结构int flag; / 标志,-1表示未用,1表示文件用char file_name10; / 文件名数组long int file_date; / 文件建立日期 long int file_time; / 文件建立时间long int file_s
12、tart; / 文件起始块号long int file_length; / 文件长度(字节);struct Super_Block / 超级块数据结构, 文件系统的分区信息,存放在0#物理块中 unsigned long int fs_totalsize; / 整个分区的总磁盘物理块数 unsigned long int fs_freesize; / 分区的所有空闲磁盘物理块数unsigned int fs_blocksize; / 文件系统的物理块大小(字节)unsigned int fs_fat_start; / FAT的起始磁盘物理块号 unsigned int fs_fat_size;
13、 / FAT占用的磁盘物理块数unsigned int fs_dir_start; / 根目录的起始磁盘物理块号unsigned int fs_dir_size; / 根目录占用的磁盘物理块数unsigned int fs_data_start; / 数据区起始磁盘物理块号unsigned long int fs_data_size; / 数据区的磁盘物理块数 ;const char DiskName=FileSys.dat; /磁盘文件名char rw_buffer512; / 读写使用的缓冲区struct FCB_Block filefcb130; / 读写目录使用的数据结构struct
14、Super_Block FsSupBlk; / 读写超级块使用的数据结构long int fat_buffer5000; / 读写FAT使用的缓冲区,为简化在系统启动时全部装入内存,0为空闲struct OpenFileTable OFT16; / 打开文件表,当前只使用OFT0unsigned int block_size; / 物理块大小(字节)unsigned long int total_disk_size; / 磁盘总容量(物理块数)unsigned int total_dir_size; / 目录占有的物理块数unsigned int total_fat_size; / FAT占有
15、的物理块数long int find_fcb; / 记录读FCB块的次数FILE *fsPtr; / 模拟磁盘的文件指针/* 磁盘块的申请*/ unsigned long int Get_Block(unsigned long int count) /分配count个物理快,返回首块指针,其它已经连接unsigned long int tmp,firstblk,tmpcount;unsigned long int i; int flag=1;if (count FsSupBlk.fs_freesize) printf( = 没有足够磁盘容量,不能分配!= n); return 0; tmpco
16、unt=0; for(i=FsSupBlk.fs_data_start;iFsSupBlk.fs_totalsize) printf( = 超出磁盘容量,不能读!= n); return; fseek(fsPtr,FsSupBlk.fs_blocksize*addr,SEEK_SET); fread(buf,512,1,fsPtr); return;/* 写磁盘块*/ void Write_Block(unsigned long int addr,char *buf) if (addrFsSupBlk.fs_totalsize) printf( = 超出磁盘容量,不能写!= n); retur
17、n; fseek(fsPtr,FsSupBlk.fs_blocksize*addr,SEEK_SET); fwrite(buf,512,1,fsPtr); return;/* 格式化磁盘*/ void Real_Format() unsigned long int bcount; long int fatval,i;char *c;/更改系统超级块信息 FsSupBlk.fs_totalsize=total_disk_size; FsSupBlk.fs_blocksize=block_size; FsSupBlk.fs_dir_start=1; FsSupBlk.fs_dir_size=tot
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 报告 文件 管理
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。