操作系统课程设计

发布 2022-10-05 13:16:28 阅读 9736

文件管理系统。

学院名称 : 京江学院。

专业班级 : j计算机1401

学号 : 4141110020

学生姓名 : 潘庆。

指导教师 : 林琳。

2017 年 1 月

1、课设目的。

操作系统是计算机专业的一门专业课,也是计算机专业考研课程,但操作系统比较抽象,有的同学一学期完了都还很难理解进程、内存管理等一些概念和原理,操作系统课程设计的目的就是通过设计的实验,让同学们真正理解进程的实现,内存管理的机制,达到理解概念,了解实现原理。同时也进一步巩固程序设计与数据结构的实践技能,实现整个大学阶段实践技能不断线的目的。

2、课设题目。

实现一个简单的文件管理系统。

1)具有文件目录(一级或者多级)

2)对指定大小的磁盘(设共1gb,每个块为1mb),建立位示图进行管理。

3)文件操作,包括新建、查看属性、删除。

新建文件:给出文件名、大小、建立时间等信息,系统为其分配硬盘空间,并记录在文件目录中。

查看属性:给出文件名,可以输出该文件的所有属性,以及该文件所占用的物理块号。

删除文件:给出文件名,实现文件的删除。

4)文件系统操作:显示文件列表、显示磁盘空间剩余大小、输出位示图。

三、系统功能结构。

4、主要数据结构。

创建文件:creatfile《文件名》,即创建一个指定名字的新文件,在目录中增加一项,不考虑文件的内容,对于重名文件,给出错误信息。

删除文件:deltefile《文件名》,即删除一个指定名字的已创建文件,若文件不存在则给出错误信息。

输出文件列表:disp(),即显示指定目录下的全部文件和第一级子目录,若无指定目录,则显示当前目录下的相应内容。

输出文件属性:disp2(),即给出文件名,可以输出该文件的所有属性,以及该文件所占用的物理块号。

输出位示图:bit_map(),即输出当前状态下磁盘盘块的使用情况。

5、系统使用说明。

文件管理系统主菜单界面(通过输入对应数字进入相应功能子菜单)

新建文件”功能(需要输入文件名、文件大小和创建时间)

查看属性”功能(输入文件名后,会显示其大小,所占盘块数,所占盘块号和创建时间)

显示文件列表”功能。

显示磁盘空间剩余大小”功能。

输出位示图”功能。

删除文件”功能(输入文件名即可将其删除)

6、课程设计中遇到的问题及解决方法。

刚开始做这个实验时,考虑的因素并没有很周全,比如创建文件和删除文件均没有考虑例外因素,都是在后期检查时发现的疏漏,另外,将文件管理的理论用c++来实现也需要自己从巩固书本概念做起,虽然书上并没有给出完整的算法,但是通过类比及网上查阅相关算法,自己也便可以写出以c++实现的各个功能模块,然后将其整合到文件类和文件库类两个大类中,使整个程序的结构更清晰,主函数用来实现界面和选择功能,用简单的switch-case语句便可以实现,值得注意的是,这边很容易会忽视清屏,导致输出结果很繁杂,用简单的system("cls")命令即可实现清屏。

这次课程设计不仅是对自己掌握的操作系统知识的检验,更是对实践能力的检验,在这次课程设计过程中,我发现了许多课堂上或考试中并没有留意的知识点,通过翻阅书本,查阅网络才将它们重拾,这充分说明了我在学习这门课时还是偏向了课堂上的要点,但毕竟课堂上老师不可能强调所有知识点,自己还是要注意课后的复习以及动手实践,才能更好地巩固知识点,而且我也意识到自己并不能仅仅拘泥于课本上的知识,很多学科前沿的知识也要去了解,这样对以后的就业才有帮助。

七、带注释的**。

#include

#include

#include

using namespace std;

int i=0,j=0,sum=0,tt=0,ii,ss;//i,j是位视图行列,sum是位视图存储到的盘块数,tt是文件已占用块数,ii是文件编号,ss是磁盘剩余块数。

int a[32][32];

class file文件类。

private:

string name; /文件名。

public:

int tag_delete; /删除标记 1:已删 0:未删。

int length; /文件大小。

int blocknum; /盘块数。

int blocksum1; /所占盘块号的起点。

int blocksum2; /所占盘块号的终点。

string time; /文件建立时间。

file(){

string getname() 获取删除标记。

int getblocksum1磁盘块号的起点。

return blocksum1;

int getblocksum2磁盘块号的终点。

return blocksum2;

void creatfile(string na,int length,string time) /创建文件。

else占用多行,先赋值整行。

for(;j<32;j++)

a[i][j]=1;

i=i=i+1;

for(j=0;j<(sum+blocknum)-32*i;j++)再进行剩余项赋值

a[i][j]=1;

sum=sum=sum+blocknum

tt=tt=tt+blocknum输出文件已占用的盘块号。

blocksum1=sum-blocknum;

blocksum2=sum-1;

void disp输出文件列表。

void disp2输出文件属性。

class fdatabase文件库类。

private:

file f[50];

public:

fdatabase构造函数。

int search(string fname按文件名查找判断是否存在。

int creatfile(string na,int length,string timeelse

int deltefile(string na删除文件。

int x=0,n1,n2,q1,q2,k;

for(int i=0;i<50;i++)

if(getname(i)==na)

进行删除文件赋值。

f[i].tag_delete=1;

tt=tt-f[i].blocknum;

if(i==0位视图中删除文件从第一盘块开始。

for(k=0;k

操作系统课程设计

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