《操作系统课程设计》任务书。
一、 课程设计的性质和目的。
操作系统课程设计是计算机专业的专业课程,通过课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握操作系统的基本设计方法和技巧,进一步提高分析问题、解决问题及上机操作能力,为将来从事计算机工作打下一定的专业基础。
二、 设计课题。
课题一:模拟实现单级目录的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....