操作系统课程设计

发布 2022-10-05 11:37:28 阅读 8059

《操作系统课程设计》任务书。

一、 课程设计的性质和目的。

操作系统课程设计是计算机专业的专业课程,通过课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握操作系统的基本设计方法和技巧,进一步提高分析问题、解决问题及上机操作能力,为将来从事计算机工作打下一定的专业基础。

二、 设计课题。

课题一:模拟实现单级目录的fat文件系统。

基本思路:用二进制文件空间模拟磁盘空间,用文件块操作模拟磁盘块操作。

基本设计要求:1、实现如下文件系统功能(过程或函数):

a、 打开文件系统 file *opensys(char *filename);

b、 关闭文件系统 int closesys(file *stream);

c、 显示目录 void listdir(void);

d、 建立文件 int fcreate(char *filename);

e、 删除文件 int fdelete(char *filename);

f、 打开文件 int fopen(char *filename);

g、 关闭文件 int fclose(int fileid);

h、 文件块读 int fread(void *ptr, int n, int fileid);

i、 文件块写 int fwrite(void *ptr, int n, int fileid);

j、 判断文件结束 int feof(int fileid);

k、 获取文件指针 long fgetpos(int fileid);

l、 设置文件指针 int fsetpos(int fileid, long offset);

m、 取得文件长度 long fgetlen(char *filename);

2、提供文件系统创建程序。

3、有功能检测模块。

4、为简化程序设计,假定目录区域大小固定。

文件系统空间划分:

可以使用的c语言文件操纵函数:

file *fopen(const char *filename, const char *mode);

int fclose(file *stream);

int fseek(file *stream, long offset, int whence);

long ftell(file *stream);

size_t fread(void *ptr, size_t size, size_t n, file *stream);

size_t fwrite(const void *ptr, size_t size, size_t n, file *stream);

课题二:模拟实现单级目录、单级索引的索引文件系统。

使用链接域将同一文件的各索引块按顺序连接起来;其余各项同课题一。

三、 课程设计报告要求。

1、 设计报告要求a4纸打印成册;

2、 使用学院统一的封面;

3、 课程设计报告每人一份,必须包含如下几个方面的内容:

1) 基本设计思想;

2) 主要数据结构;

3) 主要实施流程;

4) 所有源**;

5) 课程设计总结与体会。

四、 分组及选题办法。

1、 按学号顺序一人一组,学号为奇数者为课题一,偶数者为课题二。

2、 成绩考核按个人课题完成情况、设计报告质量及对课程设计的态度等综合评定。

五、设计进度安排。

1、 讲课及上机调试时间安排:

上课时间: 未定。

上机时间:

2、 其余时间:查阅资料,确定方案,设计课题相关程序。

3、 个人答辩,交课程设计报告。

主要数据结构提示:

1、 单级目录fat文件系统:

1) 常量

#define blocksize 512

#define dirsize 32

2) 保留扇区结构。

struct reserveblock{

int sysblocknum; /文件系统总扇区数*/

int resblocknum; /保留扇区扇区数*/

int fatblocknum; /fat表扇区数*/

int rootblocknum; /根目录区扇区数*/

char fillchar[blocksize-4*sizeof(int)];填充字节*/

3) 目录结构。

struct dirblock{

char filename[11]; 文件名限长11个字符*/

char fillchar[dirsize-4*sizeof(int)-sizeof(long int)-11]; 填充字节*/

long filelen文件长度*/

int year,month,day; /日期*/

int firstblockaddr; /文件首块扇区号*/

4) fcb(文件控制块)结构。

struct fcbblock{

int fileid文件标识*/

struct dirblock fileinfo; /目录信息*/

long filepos文件读写指针*/

int fdtblockaddr目录项所在块号*/

int fdtblockindex目录项所在块内序号*/

struct fcbblock *next;

*指向下一个文件控制块的指针*/

2、 单级目录单级索引文件系统:

1) 常量

#define blocksize 512

#define dirsize 32

2) 保留扇区结构。

struct reserveblock{

int sysblocknum; /文件系统总扇区数*/

int resblocknum; /保留扇区扇区数*/

int mapblocknum; /字节映像图扇区数*/

int rootblocknum; /根目录区扇区数*/

char fillchar[blocksize-4*sizeof(int)];填充字节*/

3) 目录结构。

struct dirblock{

char filename[11]; 文件名限长11个字符*/

char fillchar[dirsize-4*sizeof(int)-sizeof(long int)-11]; 填充字节*/

long filelen文件长度*/

int year,month,day; /日期*/

int firstindexaddr; /文件首索引块扇区号*/

4) 索引块结构

struct indexblock{

int dataaddr[blocksize/sizeof(int)-1]; 数据块块号数组*/

int nextindexaddr本文件下一索引块块号*/

5) 索引节点结构

struct indexnode{

struct indexblock block; /索引块数据*/

int blockaddr本节点索引块块号*/

struct indexnode *nextnode; /指向下一索引节点的指针*/

6) fcb(文件控制块)结构。

struct fcbblock{

int fileid文件标识*/

struct dirblock fileinfo; /目录信息*/

long filepos文件读写指针*/

int fdtblockaddr目录项所在块号*/

int fdtblockindex目录项所在块内序号*/

struct fcbblock *next; /指向下一个文件控制块的指针*/

struct indexnode *firstindexnode; /指向第一个索引节点的指针*/

操作系统课程设计

课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 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....