- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系統課程設計任務書.doc
操作系统课程设计任务书
所属课程名称: 操作系统 所属课程性质: 专业必选课
教 研 室: 软件教研室 指 导 教 师: 胡胜利
一、目的
通过课程设计, 加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能, 具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。
二、内容及要求
1.题目: 单用户多级文件系统设计。
设计要求:本文件系统采用类似DOS系统的文件管理方式,每次调用该文件系统时,首先申请一定的内存空间,然后对该内存空间进行分配。将申请到的空间划分为目录区,文件区;采用位示图进行空间管理,盘块的分配使用显示链接(FAT表)的方式。每次调用该文件系统时自动为其分配空间,并将上次操作的结果从硬盘上调入内存;当结束调用时则将操作的结果重新存入硬盘,以便下次调用。(每次使用都会自动搜索文件系统,以此确定是否是第一次使用;若是则格式化生成文件系统,否则读取已存在的文件系统。)
设计技术参数(数据结构):
#define MaxSize 100
#define Disk 512 //每个盘块大小为512bit
#define NumDisk 2048 //有2048个盘块,既可分配空间为 1M
/*************目录和文件的结构定义***********************/
struct DirectoryNode {
char name[9]; /*目录或文件的名字*/
int type; /*0代表目录,1代表普通文件*/
struct DirectoryNode *next; /*指向下一个兄弟结点的指针*/
struct DirectoryNode *preDirFile; /*指向父结点的指针*/
struct DirectoryNode *subFile; /*指向第一个子结点的指针*/
int size; /*如果是文件则表示文件的大小*/
int first; /*起始盘块号*/
int last; /*末尾盘块号*/
int order; /*备用*/
};
//连续分配
struct FileSys {
int VacTable[NumDisk]; //空闲表,0为空闲,1为被用
struct DirectoryNode root; //根目录
struct DirectoryNode Directory[NumDisk];
} *filesys;
typedef struct {
struct DirectoryNode *DirFile;
char name[9];
}DataType; //包含一个指向目录的指针和名字
typedef struct { //队列结构的实现
DataType data[MaxSize];
int front,rear; //分别表示队列的头结点和尾结点
}Tp;
void InitQueue(Tp *sq) //队列初始化
int EnAddQueue(Tp *sq,DataType data) //在队列中增加元素
DataType EnDelQueue(Tp *sq) //从队列中删除一个元素
int Empty(Tp *sq) //判断队列是否为空,返回0表示队列为空
①.Dir:显示目录内容命令,显示当前目录下的文件和子目录。
②.Md:创建目录操作。
③.Create:创建文件,在当前目录下创建一个文件。
④. all:显示从根目录开始的所有目录和文件及其层次结点。
⑤.Cd:改变目录。
⑥.Del:删除文件操作。
⑦. Rd:删除目录操作,删除当前目录下的子目录。
⑧. Ren:重命名函数
⑨. Exit:退出命令
开发环境:VC++6.0
小组成员:
2.题目:进程调度算法的设计
设计要求:
①设计进程控制块PCB表结构,分别适用于优先数调度算法和循环轮转调度算法。
②建立进程就绪队列。对两种不同算法编制入链子程序。
③编制两种进程调度算法:1)优先数调度;2)循环轮转调度
开发环境:VC++6.0
设计技术参数:
①本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。
②为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进
文档评论(0)