课程设计。
学生学院计算机学院
专业班级 12(1)班。
学号 3112006351
学生姓名吴炜文。
指导教师李敏。
2024年 1 月 10 日。
目录。1 简单文件系统。
文件系统。一、实验目的:
模拟文件管理的功能,了解各种文件的操作。
二、实验内容:
1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。
2、程序采用二级文件目录(即设置主目录[mfd])和用户文件目录(ued)。另外,为打开文件设置了运行文件目录(afd)。
3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。
4、算法与框图:
a、因系统小,文件目录的检索使用了简单的线性搜索。
b、文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。
c、程序中使用的主要设计结构如下:
i 主文件目录和用户文件目录( mfd、ufd)
ii 打开文件目录( afd)(即运行文件目录)
要求:用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令。
文件系统算法的流程图如下:
三、源**及运行结果:
#include ""
#include ""
#include ""
#include ""
#define maxname 25 /*the largest length of mfdname,ufdname,filename*/
#define maxchild 50 /*the largest child*/
#define max (maxchild*maxchild) /the size of fpaddrno*/
typedef struct /*the structure of osfile*/
osfile;
typedef struct /*the structure of osufd*/
osufd;
typedef struct /*the structure of osufd'login*/
osufd_login;
typedef struct /*file open mode*/
osufd_openmode;
osufd *ufd[maxchild]; ufd and ufd own files*/
osufd_login ufd_lp;
int ucount=0; /the count of mfd's ufds*/
int fcount[maxchild]; the count of ufd's files*/
int loginsuc=0; /whether login successfully*/
char username[maxname]; record login user's name22*/
char dirname[maxname];/record current directory*/
int fpaddrno[max]; record file physical address num*/
osufd_openmode ifopen[maxchild][maxchild]; record file open/close*/
int wgetchar; /whether getchar()*
file *fp_mfd,*fp_ufd,*fp_file_p,*fp_file;
void main()
int i,j,choice1;
char choice[50]; choice operation:dir,create,delete,open,delete,modify,read,write*/
int choiceend=1; /whether choice end*/
char *rtrim(char *str); remove the trailing blanks.*/
char *ltrim(char *str); remove the heading blanks.*/
void loginf();login filesystem*/
void dirf();dir filesystem*/
void cdf();change dir*/
void createf();create file*/
void deletef();delete file*/
void modifyfm();modify filemode*/
void openf();open file*/
void closef();close file*/
void readf();read file*/
void writef();write file*/
void quitf();quit filesystem*/
void help();
if((fp_mfd=fopen("c:\\osfile\\mfd","rb"))null)
for(i=0;i textattr(black*16|white);
clrscr();clear screen*/
loginf();user login*/
clrscr();
if(loginsuc==1) /login successfully*/
else printf("bad command or file name.c:\\s>",strupr(username));
gets(choice);
strcpy(choice,ltrim(rtrim(strlwr(choice)))
if (strcmp(choice,"dir")=0) choice1=1;
else if(strcmp(choice,"creat")=0) choice1=2;
else if(strcmp(choice,"delete")=0) choice1=3;
else if(strcmp(choice,"attrib")=0) choice1=4;
else if(strcmp(choice,"open")=0) choice1=5;
else if(strcmp(choice,"close")=0) choice1=6;
else if(strcmp(choice,"read")=0) choice1=7;
else if(strcmp(choice,"modify")=0) choice1=8;
else if(strcmp(choice,"exit")=0) choice1=9;
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....