- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计实验报告
学 部:
专业班级:
姓 名:
学 号:
指导教师:
摘要
目录
1、概论
2、系统设计
3、系统实现
4、系统测试
5、结论
参考文献
附件
摘要
操作系统是计算机学科的核心课程,对于计算机科学与技术专业的学生尤为重要。此次课程设计旨在加强我们对操作系统中文件系统的理解。结合过去所学知识,为此设计了一个简单的Linux下的运行的文件管理系统。
概论
文件系统是硬盘上文件存储和读取的系统架构。操作系统必须在硬盘上建立文件系统,才能进行文件和文件夹的读取和存盘。在Linux中常见的文件系统有ext2、ext3、ext4和swap等。其中swap用于虚拟存盘,而其他文件系统用于一般的挂载目录。
文件系统是系统对文件和目录的一种定位方式,从而能让系统快速的找到该文件。对于使用者而言,文件系统并没有意义,只需将文件分类放置于不同的文件夹中即可。
系统设计
设计内容:
编写程序模拟实现一个简单的文件管理系统,设计一个较实用的用户界面,方便用户使用。
设计要求:
提供以下相关文件操作:
(1)login:登录
(2)register:注册
(3)open:打开文件
(4)read:读取文件数据到屏幕
(5)write:写文件,分为cover和append两种类型;cover是覆盖原数据,append是在不改变原始数据的基础上进行增加。
(6)close:关闭文件
(7)create:新增文件
(8)delete:删除文件
(9)exit:退出程序
(10)dir:列文件目录
(11)help:帮助
系统实现
注册登录模块实现:
帮助模块实现:
列文件目录,新增文件模块实现:
打开、读、写文件模块实现:
关闭文件模块实现:
删除、退出文件模块实现:
系统测试
(1)实验环境
操作系统Ubuntu 15.10
编译器: gcc
语言:C语言
(2)测试结果
编译通过,但有警告,运行成功。
小结
通过这一次计算机操作系统的上机实验,使我对不同环境下的操作系统有了进一步的了解,使我学到了很多关于Linux的操作和相关知识。在程序编译过程中遇到了不少的问题,通过查阅书籍、网上浏览、质询老师同学并最终解决问题,这个过程是痛苦的,但问题解决之后又会获得无限的快乐。并且在解决问题的过程中收获了许多从前不曾了解的知识,从而也知道了自己的弱点所在。因此在以后的学习中需要更加努力。
参考文献
《计算机操作系统(第2版)》庞丽萍 阳富民 编著
《计算机操作系统实验指导(Linux版)》郑然 庞丽萍 编著
《精通Linux C编程》程国钢 编著
《Ubuntu Linux 从入门到精通》丰士昌 编著
附件
源程序
#includestring.h
#includestdio.h
#includestdlib.h
#includestdbool.h
#define MAX_BLOCKS_NUM 256
#define MAX_BLOCK_SIZE 1025
#define MAX_DATANODE_NUM 2
#define MAX_INODE_NUM 512
#define MAX_CACHE_NUM 32
typedef struct user{
char account[15];
char password[15]; }user;
typedef struct datanode {
int num;
int begin;
int end; }datanode;
typedef struct inode{
char filename[30];
int num;
char code[30];
int size;
datanode fat[MAX_DATANODE_NUM];
int node_num;}inode;
typedef struct dirEntry{
inode ind;
struct dirEntry *next;}dirEntry;
typedef struct block {
char content[MAX_BLOCK_SIZE];
int num;
bool isRevised;
int offset; }block;
int islogin = 0;
char blocks
文档评论(0)