搜档网
当前位置:搜档网 › 操作系统模拟UNIX文件系统的设计及实现

操作系统模拟UNIX文件系统的设计及实现

操作系统模拟UNIX文件系统的设计及实现
操作系统模拟UNIX文件系统的设计及实现

操作系统课程设计

模拟UNIX文件系统的设计及实现

院系:计算机学院二系

班级:计07 – 2班

姓名:吴勇克

合作者:刘胜光

指导教师:鲁静轩

2009 年6 月10 日

操作系统课程设计任务书

一、题目:银行家算法

二、设计要求

(1)吴勇克(组长)、刘胜光组成设计小组。

(2)小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。

(3)查阅相关资料,自学具体课题中涉及到的新知识。

(4)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。

(5)所设计的系统应有菜单、动画和音乐。

(6)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、谢启、附录:带中文注释的程序清单、参考文献。报告一律用A4纸打印,中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。

三、课程设计工作量

由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。

四、课程设计工作计划

2009年6月15日,指导教师讲课,学生根据题目准备资料;

2009年6月16日,设计小组进行总体方案设计和任务分工;

2009年16月16日~2009年6月23日,每人完成自己承担的程序模块并通过独立编译;

2009年6月23日~2009年6月29日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;

2009年6月30日,验收、撰写报告;

2009年7月2日,验收或总结。

指导教师签章

教研室主任签章

操作系统课程设计指导教师评语与成绩指导教师评语:

课程设计表现成绩:

课程设计验收成绩:

课程设计报告成绩:

课程设计总成绩:

指导教师签章

2009年7月日

目录

1.概述 (1)

2.总体设计 (2)

3.详细设计 (3)

4.代码调试 (9)

5.总结 (11)

6.附录 (12)

7. 参考文献 (30)

一.概述

【课设原理】

UNIX 采用树型目录结构,每个目录表称为一个目录文件。

一个目录文件是由目录项组成的。每个目录项包含16B ,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i 节点号,是该文件的内部标识;后14B 为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i 节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B 为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX 中的文件系统磁盘存储区分配图如下: 0# 1#

2#

K # K+1# K+2# K+3#

… n #

本次课程设计是要实现一个简单的模拟UNIX 文件系统。我们在磁盘中申请一个二进制文件模拟UNIX 内存,依次初始化建立位示图区,I 节点区,数据块区。并给已打开的文件建立文件打开表。

【课设内容】

1.设计任务

多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令 login 用户登录

logout 退出当前用户 dir 列文件目录 creat 创建文件

delet 删除文件及目录树 open 打开文件 close 关闭文件 read 读文件 write 写文件 mkdir 创建目录 cd 改变文件目录 format 格式化文件系统 quit

退出文件系统

i 节点区 文件存储区

引导区

管理区

2.文件系统应具有的基本功能

(1)多用户:usr1,usr2,usr3,……,usr8 (1-8个用户)

(2)多级目录:可有多级子目录;

(3)具有login (用户登录)

(4)系统初始化(建文件卷、提供登录模块)

(5)文件的创建: create

(6)文件的打开:open

(7)文件的读:read

(8)文件的写:write

(9)文件关闭:close

(10)删除文件或目录:delet

(11)创建目录(建立子目录):mkdir

(12)改变当前目录:cd

(13)列出文件目录:dir

(14)退出:logout

二.总体设计

【算法思想】

先建立512个块,每个块对应512个字节,在建立一个有512个元素的字符数组,每个元素对应相应的块号,不管是文件或是目录都有I节点,建立自己设定数目元素的I节点表,并依次把位图区,I节点表,数据块区每个元素映射到一个二进制文件上。在每一次的操作中如果相应元素有变动,则对应在文件中更新输出相应数据,以便下一次启动程序的时候可以快速导入上一次的数据。

【系统总体框架图】

【系统总体流程图】

三.详细设计

【各模块功能说明】

1.format 模块 功能:

格式化文件系统,即初始化文件系统,相当于硬盘的格式化。将其中原

有的用户及用户下的文件系统全部还原初始状态,即没有任何用户和目录、文件,也就是按设计的文件系统格式重建新的文件系统。

2. get_blknum 和release_blk 模块 功能:

get_blknum 找到一个空闲数据块,并修改对应位图号元素为1。 release_blk 修改对应的位图元素,并把文件系统中对应的数据块清零。

开始

文件系统是否建立? 在内存中申请内存空间 将磁盘上的文件读入内存

Y

N

用户登录模块,输入用户名和密码,可以 在程序中设定,不用保存在文件系统中 用户名、密码对吗? 执行init(),进行初始化 操作,进入用户子目录

执行command(),对用户输入的命令进行解析和 执行。若数据被修改或新建立,则保存主存i 节 点和数据块的内容到内存的文件系统,并写回磁 盘,保存修改。若输入错误命令则显示出错信息。 退出用户(logout)吗?

用户输入quit 吗?

结束

执行format(), 建立文件系统

N

N

N

Y

Y

Y

3. init()模块

功能:读入文件系统

4.quit()模块

功能:退出系统

5 .creat()模块

功能:

创建文件,分配一空目录项,分配磁盘块。可用位示图。填写该空目录项。如文件长度(0),文件名,类型等。

6. open()模块

功能:

打开文件,并判断文件类型和打开方式。如果文件没有在文件打开表中就在文件打开表中建立该文件项。

7. close()模块

功能:

关闭文件,删除该文件的用户打开文件表目。

8. write()模块

功能:

写文件,需要先打开文件。并判断文件权限。写完后修改文件系统中的对应数据区。

9. read()模块

功能:读文件。需先打开文件。读入相应数据块的内容到缓冲区,然后输出。

10.delet()模块

功能:

如果参数是文件则删除文件,如果是目录则删除该目录下的所有文件和目录。

11.mkdir()

功能:建立新的目录,先在I节点表中找到一个未使用的,并初始化该I节点,并在文件系统中对应更新输出。

12.cd()

功能:将当前目录切换到当前目录的一个子目录下或当前目录的父目录。

程序流程图

各功能模块流程图

读入位示图信息到内存

读入i 节点信息到内存

当前目录为根目录

初始化打开文件表

结束

开始

初始化函数init()

提示输入用户名和密码

用户名是否存在

创建新用户

读入用户信息到内存

开始

密码是否正确

结束

用户登陆login()

是 是

遍历i 节点区

i 节点的父节点是否为当前目录

i 节点区是否遍历完

输出文件名或目录名

开始

结束

显示目录dir()

否 否

遍历i 节点区

argv[1]=”..” 目录是否存在

找到的目录i 节点号送当前目录inum_cur

当前目录的父i 节点号送当前目录inum_cur

开始

结束

改变当前目录cd()

是是

遍历i节点区

要创建的文件是否存在

是否有空的i节点

遍历i节点区

分配一个文件i节点

开始

结束

创建文件creat()

遍历i节点区

要创建的目录是否存在是否有空的i节点

遍历i节点区

分配一个目录i节点

开始

结束

创建目录mkdir()

遍历打开文件表file_array[]

文件是否已经打开

提示输入写入字节数

调用写块操作,写入块内字符

模式是否为可写

遍历打开文件

表file_array[]

文件是否已经打开 将打开文件表项标志位置-1 file_array[i].inum = -1

开始

结束 写文件write()

开始

结束

关闭文件close()

否 是

遍历i 节点区

要打开的文件是否存在

提示输入打开模式

将打开文件信息写入打开文件信息表file_array[]

遍历打开文件表file_array[]

文件是否已经打开

提示输入开始位置和读字节数 调用读块操作,读出块内字符

模式是否为可读 开始 结束

开始

结束 打开文件open()

读文件read()

四.代码调试

1.初始化和登陆文件系统

第一次运行程序

遍历i 节点区

要删除的文件是否存在

释放文件对应的i 节点区inode_array[i].inum = -1

释放两个磁盘块

文件是否大于的一块

释放一个磁盘块

开始

结束

删除文件delet()

2.建立新目录,显示当前目录下的文件和目录,并转到新目录下

3.建立新的文件,打开,写,读。

4.clear清屏后,dir查看当前目录下文件信息

5.返回根目录下,并删除根目录下所有子目录和文件

6.logout退出登录或quit退出程序。

五. 总结

开始第一天构思,不断的筛选证明模拟UNIX下的内存方法,并在网络上查找相应的UNIX环境资料。接下来几天开始实践动手,从整体框架开始构思,到各个细节端口的实现。

操作系统是计算机科学与技术专业中的一门重要基础课,目的是让我们了解操作系统的基本概念,理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。通过课程设计,可以进一步理解在计算机系统上运行的其它各类操作系统,并懂得在操作系统的支持下建立自己的应用系统。操作系统课程设计,对于训练我们掌握程序设计、熟悉上机操作和程序调试技术都有重要作用。重点培养我们的思维能力、创新能力和排错能力。

通过课程设计,进一步融会贯通教材内容,掌握程序各功能模块的工作原理,相互联系和来龙去脉,完整地建立系统的概念。激发我的学习热情和主动性,培养我的独立工作能力,在实践活动中,将所学知识综合运用,增长才干,并积累经验。对编程语言又有了更深一层次的认识,并对编程能力有所加强,但还是很多的不足有待改进,对于编程来说还需要大量的实践,才能在发现问题和解决问题中前进与提高。

六.附录

源代码:

// head.h文件

#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);

void release_blk(int);

void pathset();

void del(int);

// 用户命令处理函数

void help(void);

void cd(void);

void dir(void);

void mkdir(void);

void creat(void);

void open(void);

void read(void);

void write(void);

void close(void);

void delet(void);

void logout(void);

void command(void);

void quit();

//main.cpp文件

#include "head.h"

//定义全局变量

charchoice;

int argc; // 用户命令的参数个数

char*argv[5]; // 用户命令的参数

int inum_cur; // 当前目录

chartemp[2*BLKSIZE]; // 缓冲区

User user; // 当前的用户

charbitmap[BLKNUM]; // 位图数组

Inode inode_array[INODENUM]; // i节点数组

File_table file_array[FILENUM]; // 打开文件表数组charimage_name[10] = "data.dat"; // 文件系统名称

FILE *fp; // 打开文件指针

//创建映像hd,并将所有用户和文件清除

void format(void)

{

int i;

Inode inode;

printf("Will be to format filesystem...\n");

printf("W ARNING:ALL DATA ON THIS FILESYSTEM WILL BE LOST!\n");

printf("Proceed with Format(Y/N)?");

scanf("%c", &choice);

getchar();

if((choice == 'y') || (choice == 'Y'))

{

if((fp=fopen(image_name, "w+b")) == NULL)

{

printf("Can't create file %s\n", image_name);

exit(-1);

}

for(i = 0; i < BLKSIZE; i++)

fputc('0', fp);

inode.inum = 0;

strcpy(inode.file_name, "/");

inode.type = 'd';

strcpy(https://www.sodocs.net/doc/d47850669.html,er_name, "/");

inode.iparent = 0;

inode.length = 0;

inode.address[0] = -1;

inode.address[1] = -1;

fwrite(&inode, sizeof(Inode), 1, fp);

inode.inum = -1;

for(i = 0; i < 31; i++)

fwrite(&inode, sizeof(Inode), 1, fp);

for(i = 0; i < BLKNUM*BLKSIZE; i++)

fputc('\0', fp);

fclose(fp);

// 打开文件user.txt

if((fp=fopen("user.txt", "w+")) == NULL)

{

printf("Can't create file %s\n", "user.txt");

exit(-1);

}

fclose(fp);

printf("Filesystem created successful.Please first login!\n");

}

return ;

}

// 功能: 用户登陆,如果是新用户则创建用户

void login(void)

{

char *p;

int flag;

char user_name[10];

char password[10];

char file_name[10] = "user.txt";

do

{

printf("login:");

gets(user_name);

printf("password:");

p=password;

while(*p=getch())

{

if(*p == 0x0d)

{

*p='\0'; //将输入的回车键转换成空格

break;

}

printf("*"); //将输入的密码以"*"号显示

p++;

}

flag = 0;

if((fp = fopen(file_name, "r+")) == NULL)

{

printf("\nCan't open file %s.\n", file_name);

printf("This filesystem not exist, it will be create!\n");

format();

login();

}

while(!feof(fp))

{

fread(&user, sizeof(User), 1, fp);

// 已经存在的用户, 且密码正确

if(!strcmp(https://www.sodocs.net/doc/d47850669.html,er_name, user_name) &&

!strcmp(user.password, password))

{

fclose(fp);

printf("\n");

return ;

}

// 已经存在的用户, 但密码错误

else if(!strcmp(https://www.sodocs.net/doc/d47850669.html,er_name, user_name))

{

printf("\nThis user is exist, but password is incorrect.\n");

flag = 1;

fclose(fp);

break;

}

}

if(flag == 0) break;

}while(flag);

// 创建新用户

if(flag == 0)

{

printf("\nDo you want to creat a new user?(y/n):");

scanf("%c", &choice);

gets(temp);

if((choice == 'y') || (choice == 'Y'))

{

strcpy(https://www.sodocs.net/doc/d47850669.html,er_name, user_name);

strcpy(user.password, password);

fwrite(&user, sizeof(User), 1, fp);

fclose(fp);

return ;

}

if((choice == 'n') || (choice == 'N'))

login();

}

}

// 功能: 将所有i节点读入内存

void init(void)

{

int i;

if((fp = fopen(image_name, "r+b")) == NULL)

{

printf("Can't open file %s.\n", image_name);

exit(-1);

}

// 读入位图

for(i = 0; i < BLKNUM; i++)

bitmap[i] = fgetc(fp);

// 显示位图

(完整版)操作系统毕业课程设计说明书-基于Linux的模拟文件系统的设计与实现

中北大学 操作系统课程设计 说明书 学院、系:软件学院 专业:软件工程 学生姓名:徐春花学号: 设计题目:基于Linux的模拟文件系统的设计与实现 起迄日 期: 2014年6月14日- 2014年6月26日指导教薛海丽

师: 2014 年 6月 26 日 前言 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS2

等商品化操作系统来说是无法做到的。 Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。其中有对读、 写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。在相关软 件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器 使用,利用IPCHAINSIPTABLE网络治理工具可构建NAT及功能全面的防火墙。 Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系 统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑 器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形 用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系 统进行操作。 目录 1需求分析 (3) 1.1 功能介绍 (3) 1.2 目的及意义 (5) 1.2.1 目的 (5) 1.2.2 意义 (6) 1.3 设计成果 (7) 2总体设计 (8) 2.1功能介绍 (8) 2.2模块关联 (9) 3详细设计 (12)

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

操作系统课程设计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);在主文件目录中,每个用户目录文件都占有一个目

《unix操作系统设计》英文版习题答案1

S.1 Uni x Internals (Apri l/May-2012, Set-1) JNTU-Anantapur B.T ech. III-Year II-Sem.( JNTU-Anantapur) Code No.: 9A05602/R09 B.Tech. III Year II Semester Regular Examinations April/May - 2012UNIX INTERNALS ( Computer Science and Engineering ) Time: 3 Hours Max. Marks: 70 Answer any FIVE Questions All Questions carry equal marks - - -1. (a)Draw and explain the architecture of UNIX systems. (Unit-I, Topic No. 1.5.1)(b)Discuss in detail the sleep and wakeup procedures. (Unit-V, Topic No. 5.6) 2. (a) If several processes contend for a buffer, the kernel guarantees that none of them sleep forever, but it does not guarantee that a process will not be starved out from use of a buffer. Redesign getblk so that a process is guaranteed eventual use of a buffer. (Unit-II, Topic No. 2.2)(b)What are the advantages of buffer cache? (Unit-II, Topic No. 2.5) 3. (a)Give brief description about the accessing of inodes. (Unit-III, Topic No. 3.1)(b)Explain in detail the continuous file allocation system. (Unit-III, Topic No. 3.7) 4. (a)What is the purpose of link system call? Write and explain the algorithm for the same. (Unit-IV, Topic No. 4.12)(b)Write short notes on maintenance of the file system. (Unit-IV, Topic No. 4.15)5. (a)What are regions? Explain their role in the creation of processes. (Unit-V, Topic No. 5.2)(b)Describe in detail about the context of a process. (Unit-V, Topic No. 5.3) 6. (a)Explain the security problems that exists if a setuid program is not write protected. (Unit-VI, Topic No. 6.6)(b)Write a program that a parent and child shares a file access. (Unit-VI, Topic No. 6.1)7. (a)Discuss in detail about the scheduling parameters. (Unit-VII, Topic No. 7.1)(b)What is profiling? Explain it in detail. (Unit-VII, Topic No. 7.3)8. (a)Explain clists in detail. (Unit-VIII, Topic No. 8.3) (b) Write a program for reading data from risk by using block and raw interfaces. (Unit-VIII, Topic No. 8.3)

磁盘空间管理模拟实验

目录 摘要 (2) 前言 (3) 正文 (4) 1. 实验目的 (4) 2. 设计思想 (4) 3. 实验结构图 (5) 4. 各模块的伪码算法 (5) 5. 测试分析 (10) 6. 测试结果 (11) 7. 源程序 (14) 总结 (24) 参考文献 (25) 致谢 (26)

摘要 要把文件信息存放在存储介质上,必须先找出存储介质上可供使用的空闲块。存储介质上某个文件不再需要时,又要收回它所占的存储空间作为空闲块。用户作业在执行期间经常要求建立一个新文件或撤消一个不再需要的文件,因此,文件系统必须要为它们分配存储空间或收回它所占的存储空间。如何实现存储空间的分配和收回,取决于对空闲块的管理方法,主要有两种对磁盘存储空间的分配和收回的方法:位示图法(用一张位示图(简称位图)来指示磁盘存储空间的使用情况),空闲块链接法(在UNIX操作系统中,把磁盘存储空间的空闲块成组链接)。 关键词:磁盘的分配和回收管理;位示图;成组链接。

前言 通过该题目的设计过程,掌握磁盘存储管理的原理、软件开发方法并提高解决实际问题的能力。学习使用位示图管理磁盘空间的分配与回收,了解程序运行前和回收磁盘的物理地址过程。学会用模拟UNIX系统的成组链接法实现磁盘空间的管理。了解UNIX的命令及使用格式,熟悉UNIX/LINUX的常用基本命令,练习并掌握UNIX提供的vi编辑器来编译C程序,学会利用gcc、gdb编译、调试C程序。希望通过本次设计过程可以提高自己的分析问题的能力和实际动手的能力,将学到的知识用于实践中。

正文 1. 实验目的 磁盘格式化时,系统把磁盘存储空间分成许多磁道。每个磁道又分成若干个扇区(又叫做块)。这些空间就是用来存放用户文件的。当用户的文件不再需要时,就应该删除。把一个文件存放到磁盘上时,可以组织成连续文件,链接文件,索引文件等。因此,磁盘空间的分配方法也有两种,一种是连续空间的分配;一种是不连续空间的分配(又叫动态分配)。如何充分有效的利用磁盘空间,是操作系统应解决的重要课题之一。通过本实验,使学生对磁盘空间的分配与回收有一个较深入的理解。 2. 设计思想 位示图法: 一个简单的管理方法是用一张位示图(简称位图)来指示磁盘存储空间的使用情况。一个盘组的分块确定后,根据分配的总块数决定位图由多少个字组成,位图中的每一位与盘组分块一一对应。位示图是一张可以反映磁盘空间是否被占有的模拟图,用一个二维数组表示磁盘的空间,数组内每一个元素表示磁盘内相应的分块,数组元素为“1”表示该块已被占,“0”表示该块为空。数组元素位置与磁盘分块一一对应,即可描述出磁盘空间的利用情况。 成组链接法: 首先定义磁盘分配数组并初始化,9个一维数组分别表示9个空闲块,程序运行时,先将专用块A〔0〕复制到内存中,然后进行功能选择,分配时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,应把该块中指出的下一组的空闲块数和块号复制到专用块这,然后把该块分配给申请者,当一组的空

操作系统课程设计-模拟文件系统

目录 第1章需求分析 (1) 第2章概要设计 (1) 2.1 系统的主要功能 (1) 2.2系统模块功能结构 (1) 2.3运行环境要求 (2) 2.4数据结构设计 (2) 第3章详细设计 (3) 3.1模块设计 (3) 3.2算法流程图 (3) 第4章系统源代码 (4) 第5章系统测试及调试 (4) 5.1运行结果及分析 (4) 5.2系统测试结论 (5) 第6章总结与体会 (6) 第7章参考文献 (6) 附录 (7)

第1章需求分析 通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。 模拟二级文件管理系统的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。 第2章概要设计 2.1 系统的主要功能 1) 系统运行时根据输入的用户数目创建主目录 2) 能够实现下列命令: Login 用户登录 Create 建立文件 Read 读取文件 Write写入文件 Delete 删除文件 Mkdir 建立目录

Cd 切换目录 Logout 退出登录 2.2系统模块功能结构 2.3运行环境要求 操作系统windows xp ,开发工具vc++6.0 2.4数据结构设计 用户结构:账号与密码结构 typedef struct users { char name[8]; char pwd[10]; }users;

unix文件系统

模拟Unix文件系统寒假实践报告 学号:19212122 班级:计科121 姓名:单旭 组长:顾建东

课程设计具体进展: 以初步完成设计及代码编写,需要进行进一步的调试和完善。 具体设计: 【课设原理】 UNIX采用树型目录结构,每个目录表称为一个目录文件。 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: i节点区文件存储区 本次课程设计是要实现一个简单的模拟UNIX文件系统。我们在磁盘中申请一个二进制文件模拟UNIX内存,依次初始化建立位示图区,I节点区,数据块区。并给已打开的文件建立文件打开表。 设计思想: 先建立512个块,每个块对应512个字节,在建立一个有512个元素的字符数组,每个元素对应相应的块号,不管是文件或是目录都有I节点,建立自己设定数目元素的I节点表,并依次把位图区,I节点表,数据块区每个元素映射到一个二进制文件上。在每一次的操作中如果相应元素有变动,则对应在文件中更新输出相应数据,以便下一次启动程序的时候可以快速导入上一次的数据。 数据结构: //用户 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]; // 文件所有者

【精选】操作系统课程设计(文件系统管理)文件

评定等级 操作系统课程设计 文件系统管理 学院计算机学院 专业计算机科学与技术 班级 姓名 学号 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 );在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目 录的指针。

unix操作系统

Unix操作系统浅析 摘要:本文较详细的介绍了什么是UNIX操作系统,以及UNIX操作系统的发展历史,UNIX系统的基本结构,UNIX操作系统的优势,UNIX操作系统和LINUX操作系统的区别和联系。 关键字:UNIX,LINUX 一、引言 UNIX ,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。UNIX操作系统最早由Ken Thompson、D ennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。由于UNIX具有技术成熟、结构简练、可靠性高、可移植性好、可操作性强、网络和数据库功能强、伸缩性突出和开放性好等特色,可满足各行各业的实际需要,特别能满足企业重要业务的需要,已经成为主要的工作站平台和重要的企业操作平台。它主要安装在巨型计算机、大型机上作为网络操作系统使用,也可用于个人计算机和嵌入式系统。曾经是服务器操作系统的首选,占据最大市场份额,但最近在跟WINDOWS SERVER以及Linux的竞争中有所失利。 二、UNIX历史 初创期Unix的诞生和Multics(Multiplexed Information and Computi ng System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。AT&T最终撤出了投入Multics项目的资源,其中一个开发者,Ken Thompson则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。在Dennis Ritchie的帮助下,Thompson用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics 项目的经验,促使Thompson开始了一个DEC PDP-7上的新操作系统项目。Thom pson和Ritchie领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,这个项目被称为UNICS(Uniplexed Informat ion and Computing System),因为它可以支持同时的多用户操作。后来这个名字被改为UNIX。发展期最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并与1971年共同发明了C语言。1973 年Thompson和Ritchie用C语言重写了Unix。在当时,为了实现最高效

操作系统简单文件系统设计及实现

简单文件系统的设计及实现 一、实验目的: 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解 2、要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二、实验内容: 1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 2、程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作 4、算法与框图 ?因系统小,文件目录的检索使用了简单的线性搜索。 ?文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。 ?程序中使用的主要设计结构如下:主文件目录和用户文件目录( MFD、UFD); 打开文件目录( AFD)(即运行文件目录) 文件系统算法的流程图如下

三、工具/准备工作: 在开始本实验之前,请回顾教科书的相关内容。并做以下准备: 1) 一台运行Windows 2000 Professional或Windows 2000 Server的操作系统的计算机。 2) 计算机中需安装Visual C++ 6.0专业版或企业版 四、实验要求: (1)按照学校关于实验报告格式的要求,编写实验报告(含流程图); (2)实验时按两人一组进行分组,将本组认为效果较好的程序提交检查。

操作系统模拟unix文件系统实验报告

操作系统大型实验 班级:学号:姓名: 一实验介绍…………………………………………………………………… 1.实验名称 2.实验目的 3.实验内容及要求 二实验环境…………………………………………………………………… 三实验设计…………………………………………………………………… 1.数据结构设计 2.系统流程设计 3.实现命令操作 四模块详解…………………………………………………………………… 1 .文件操作 2 .用户操作 五实验演示…………………………………………………………………… 1 .初始化磁盘块 2 .用户登录 3 .目录操作 4 .文件操作 六源代码……………………………………………………………………… 七实验心得体会…………………………………………………………………… 1.调试中遇到的问题总结 2.实验感悟

一、实验介绍 1.实验名称 操作系统大型实验 2.实验目的 完成一个 UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。 3.实验内容及要求 (1)文件卷结构设计 0#块可省略 I节点栈及空间为20项 块大小为512字节 卷盘块数大于100 I节点盘块数大于10块 (2)I节点结构设计 文件大小 文件联接计数 文件地址 文件拥有者 文件所属组 文件权限及类别 文件最后修改时间 其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址 (3)目录结构 用16字节表示,其中14字节为文件名,2字节为I节点号 (4)用户及组结构 用户信息中包括用户名、口令,所属组,用户打开文件表 (5)文件树结构 除(4)要求外,适当考虑UNIX本身文件树结构 (6)实现功能 Ls 显示文件目录 Chmod 改变文件权限 Chown 改变文件拥有者 Chgrp 改变文件所属组 Pwd 显示当前目录 Cd 改变当前目录 Mkdir 创建子目录 Rmdir 删除子目录 Mv 改变文件名 Cp 文件拷贝 Rm 文件删除 Ln 建立文件联接 Cat 连接显示文件内容 Vi 文件写入 Mk 创建文件

操作系统课程设计报告

; 一、概述 课程设计目的、意义: 课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。 主要任务: 模拟文件系统设计是设计和实现一个简单的文件系统。内容包括: 1.建立文件存储介质的管理机制 2.建立目录(采用一级目录结构) 3.文件系统功能(显示目录、创建、删除、打开、关闭、读、写) ~ 4.文件操作接口(显示目录、创建、删除、打开、关闭、读、写) 二、系统设计 课程设计的系统设计: 本系统模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文

件。对于用户名下的文件,用文件目录树的分枝来存贮。采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。 整体设计框架: 系统初始化界面是由创建用户存储空间,管理文件,退出系统三个模块组成。用户创建由创建用户存储空间,进入目录,删除用户存储空间,显示所有用户存储空间,等模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。 三、系统实现 课程设计主要内容的实现程序代码: 《 #include <> #include <> #include <> typedef struct file{ char name[10]; struct file *next; }File; typedef struct content{ ! char name[10]; File *file;

unix文件系统详解

UNIX文件系统的路径组织结构 UNIX并不使用驱动器名如C: D:等来标记一硬盘或分区,在整个系统上,不管有多少个硬盘,分区是怎样的,只有一个根目录,叫做root 标记为/ ,其下任何一个子目录,却可以是一个硬盘或一个分区,而且是可随时改变的,比如今天你可以设置/tmp 为硬盘上一个分区,明天你可以设置他为一个你新装的硬盘,如果你需要对这方面深入了解,你必须去看看这方面的专业书籍。现在我要让你知道的是在通常情况下,一个UNIX系统的各个标准目录下面的文件是什么,以免你哪天万幸进入了人家的系统,但连人家的主页在那里都找不到,下面以FreeBSD为例,说说UNIX文件系统的路径组织结构 FreeBSD和其他UNIX类操作系统一样有一套"标准"的路径组织结构。在标准两个字上加上引号是因为各种UNIX类操作系统的路径组织结构虽基本相同,但总存在一些小的差别。FreeBSD的这种路径组织结构为系统管理提供了很大的方便,用户可以方便的确定所需要的文件存储的位置。 / 根文件系统,用于存储系统内核,启动管理和其他文件系统的装载点。 /bin 系统启动时需要的一些通用可执行程序。 /cdrom 光盘驱动器的装载点。 /compat 与系统兼容有关的内容,如系统模拟等。 /dev 设备入口点。在UNIX系统上,每个设备都作为一个文件来看待,这里放着所有系统能够用到的各个设备 /etc 各种配置文件。非常重要的一个目录,所有的配置文件(你可以看成是windows 的注册表)包括用户密码文档等存放在这里 /mnt 软盘等其他文件系统的装载点。 /modules 内核可装载模块。 /proc 进程文件系统,存储指向当前活动进程的虚拟内存的伪文件。 /root root用户的工作目录。 /sbin 系统可执行文件。 /stand 独立执行的程序,sysinstall就在这个目录下。在安装配置系统时用到 /usr 第二个文件系统。基本上是和系统核心无关但又属于操作系统的一部分的一个目录,大多数的应用程序,还有各用户的私有资料存放在这个子系统

操作系统课程设计二级文件系统

操作系统课程设计报告 专业:计算机信息处理 学号:09103408 姓名:纪旻材 提交日期:2011-12-28

【设计目的】 1. 课程设计目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。 2. 结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。 3. 通过对实际问题的分析、设计、编程实现,提高学生实际应用、编程的能力 【设计内容】 1、delete 删除文件 2、open 打开文件 3、close 关闭文件 4、write 写文件 【实验环境】 Windows7系统

Visual studio 2010 【相关知识综述】 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。 首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 【设计思路】 1 主要数据结构 #define MAXNAME 25 /*the largest length of mfdname,ufdname,filename*/ #define MAXCHILD 50 /*the largest child每个用户名下最多有50个文件*/ #define MAX (MAXCHILD*MAXCHILD) /*the size of fpaddrno*/ typedef struct/*the structure of OSFILE定义主文件*/

UNIX操作系统课程设计

操作系统课程设计 模拟UNIX文件系统的设计及实现 院系:国际教育学院 班级:计07 – 4班 姓名:符龙 指导教师:孙昌立 2011 年5 月18 日

操作系统课程设计任务书 一、题目:银行家算法 二、设计要求 (1)小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。 (2)查阅相关资料,自学具体课题中涉及到的新知识。 (3)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。 (4)所设计的系统应有菜单、动画和音乐。 (5)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、谢启、附录:带中文注释的程序清单、参考文献。报告一律用A4纸打印,中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。 三、课程设计工作量 由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。 四、课程设计工作计划 2011年5月10日,指导教师讲课,学生根据题目准备资料; 2011年5月12日,设计小组进行总体方案设计和任务分工; 2011年5月13日~2009年6月23日,每人完成自己承担的程序模块并通过独立编译; 2011年5月14日~2009年6月29日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行; 2011年5月16日,验收、撰写报告; 2011年5月18日,验收或总结。 指导教师签章 教研室主任签章 操作系统课程设计指导教师评语与成绩

操作系统课程设计(文件系统)

操作系统课程设计 班级: 姓名: 学号: 使用语言:C++ 指导老师: 学院:

一、系统要求 1、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 2、实验内容 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 二、系统分析 1、设计思想 本文件为二级文件系统,即要实现对文件的增删改查,同时又具备登陆系统、注册用户的功能,各个用户之间的文件系统互不干扰。 本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。 系统采用结构体来存储用户、文件目录、文件数据内容: 0 48*5 48*5+44*50 48*5+44*50+264*200 每个分区都是由结构体组成,每个个去的结构体的个数由格式化系统是决定。整个系统的编码构成主要分为:

Allstruct.h 定义了每个分区的结构体; Mysys.h 声明了对系统操作的各种方法; Myuserfile.h 声明了对文件操作的各种方法; Mymain.cpp 整个系统的主函数,操作入口; Mysys.cpp 包含了mysys.h,实现了操作系统的各种方法;Myuserfile.cpp 包含了myuserfile.h,实现了操作文件的各种方法; 2、主要数据结构 Allstruct.h文件的内容: struct s_user //用户区结构体 { long isuse; //是否使用 char name[20]; //用户名 char psd[20]; //密码 long address; //目录地址 }; struct s_list //目录结构体 { long isuse; //是否使用 char name[20]; //文件名字 long myaddress; //本条目录地址 long pointaddress; //指向的文件的地址 long isfile; //是否锁定 long pointsize; //目标文件的大小 long nextaddress; //下条目录的地址 }; struct s_file //文件结构体 { long isuse; //是否使用 char content[256]; //文件内容 long next; //下个文件块地址 };

UNIX操作系统考试试题doc

操作系统考试试卷 1.UNIX 系统中,进程调度采用地技术是

7.分页式存储管理中,地址转换工作是由

操作系统课程设计--基于Linux的模拟文件系统的设计与实现

简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS/2等商品化操作系统来说是无法做到的。 Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用IPCHAINS/IPTABLE网络治理工具可构建NAT及功能全面的防火墙。 Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux 操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

操作系统课程设计模拟文件系统

操作系统课程设计模拟文 件系统 Newly compiled on November 23, 2020

目录第1章需求分析 (1) 第2章概要设计 (1) 系统的主要功能 (1) 系统模块功能结构 (1) 运行环境要求 (2) 数据结构设计 (2) 第3章详细设计 (3) 模块设计 (3) 算法流程图 (3) 第4章系统源代码 (4) 第5章系统测试及调试 (4) 运行结果及分析 (4) 系统测试结论 (5) 第6章总结与体会 (6) 第7章参考文献 (6) 附录 (7) 第1章需求分析 通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。

模拟二级文件管理系统的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。 第2章概要设计 系统的主要功能 1) 系统运行时根据输入的用户数目创建主目录 2) 能够实现下列命令: Login 用户登录 Create 建立文件 Read 读取文件 Write 写入文件 Delete 删除文件 Mkdir 建立目录 Cd 切换目录 Logout 退出登录 系统模块功能结构 运行环境要求 操作系统windows xp ,开发工具vc++ 数据结构设计 用户结构:账号与密码结构 typedef struct users { char name[8]; char pwd[10]; }users;

文件系统课程设计报告

操作系统课程设计报告 题目:文件系统 专业:软件工程 院系:信息管理学院 年级:大三软件Q1141 学号: 11150132 姓名:王毅 指导教师:李红艳 职称:副教授 湖北经济学院教务处制

目录 操作系统课程设计报告 一实验内容 (2) 二设计的基本概念和原理 (2) 三总体设计 (2) 2-1 文件的组织结 构............................................................. (2) 2-2 磁盘空间的管 理............................................................. (2) 2-3 目录结 构 (3) 2-4文件操 作 (4) 四详细设计 (4) 4-1 建立文件(create_file)流程 图 (4) 4-2 打开文件(open_file)流程 图 (6) 4-3读文件(read_file)流程 图 (7) 4-4 写文件(write_file)流程

图 (8) 4-5 关闭文件(close_file)流程 图 (9) 4-6 删除文件(delete_file)流程 图 (10) 4-7 显示文件内容(typefile)流程 图 (11) 4-8 建立目录(md)流程 图 (12) 4-9显示目录内容流程 图 (13) 五详细代码 (14) 六运行结果截图 (40) 七总结 (44) 八参考文献 (45) 一、实验内容 要求设计一个简单的文件系统,用文件模拟磁盘,实现以下功能: (1)支持多级目录结构; (2)实现的命令包括建立目录、列目录、删除空目录、建立文件、删除文件、显示文件内容、打开文件、读文件、写文件、关闭文件、改变文件属性。

UNIX操作系统考试试题.doc

广工操作系统考试试题 1.UNIX 系统中,进程调度采用的技术是(D )。 A、时间片轮转C、静态优先数 B、先来先服务D、动态优先数 2.UNIX 系统中,文件存贮器的管理采用的是:(C )。 A、位图法C、成组连接法 B、空闲块表法D、单块连接法 3.处理器执行的指令被分成两类,其中有一类称为特权指令,它只允许(C )使用。 A、操作员C、操作系统 B、联机用户D、目标程序 4.当用户程序执行访管指令时,中断装置将使中央处理器(B )工作。 A、维持在目态C、维持在管态 B、从目态转换到管态D、从管态转换到目态 5.进程所请求的一次打印输出结束后,将使进程状态从(D) A、运行态变为就绪态C、就绪态变为运行态 B、运行态变为等待态D、等待态变为就绪态 6.采用动态重定位方式装入的作业,在执行中允许(C )将其移动。 A、用户有条件地C、操作系统有条件地 B、用户无条件地D、操作系统无条件地

7.分页式存储管理中,地址转换工作是由(A )完成的。 A、硬件C、用户程序 B、地址转换程序D、装入程序 8.如果允许不同用户的文件可以具有相同的文件名,通常采用(D)来保证按名存取的安全。 A、重名翻译机构C、建立指针 B、建立索引表D、多级目录结构 9.对记录式文件,操作系统为用户存取文件信息的最小单位是(C )。 A、字符 B、数据项 C、记录 D、文件 10.为了提高设备分配的灵活性,用户申请设备时应指定(A )号。 A、设备类相对C、相对 B、设备类绝对D、绝对 11.通常把通道程序的执行情况记录在(D )中。 A、PSW B、PCB C、CAW D、CSW 12.作业调度是从输入井中处于(B)状态的作业中选取作业调入主存运行。 A、运行 B、收容 C、输入 D、就绪 13.一作业进入内存后,则所属该作业的进程初始时处于(C )状态。

相关主题