文档介绍:《操作系统》总结报告
学期 2010-2011学年第二学期
学院 软件学院
学号
姓名 王鹤
2011年6月28日
本学期开设了操作系统课程,为配合《操作系统》课程的教学,通过模拟操作系 统原理的实现,使学生能更深刻地领包括设备的添加和删除、设备的分配和回收、同时实现设备独立性。
二、 内容
假定模拟系统中有键盘、鼠标、打印机和显示器四个设备,三个控制器和两个通 道,采用安全分配方式。
1、设备管理子系统涉及到系统设备表(SDT)、通道控制表(CHCT)、控制器控制 表(COCT)和设备控制表(DCT)来体现输入输出系统的四级结构和三级控制。我们 模拟这样的数据结构来完成对外围设备的管理。
(1) 添加设备:增加对应的设备控制表和系统设备表中的表项,如果需要新建对 应的控制器控制表。
(2) 删除设备:删除对应的设备控制表和系统设备表中的表项,如果需要删除对 应的控制器控制表。
2、设备的分配和回收,进程申请设备的时候,建立起通路,即获成功;否则 阻塞到通道、控制器或设备上面。进程回收设备的时候,把阻塞进程唤醒。
3、设备分配必须满足设备的独立性要求。为了实现设备独立性,要求在驱动程序 之上设计一层设备无关软件,其主要功能可分为:
(1) 执行所有设备的公有操作,主要包括:(a)独占设备的分配与回收;(b)将逻 辑设备名映射为物理设备(LUT),进一步可以找到相应物理设备的驱动程序。
(2) 向用户层(或文件层)软件提供统一的接口。例如,对各种设备的读操作, 在应用程序中都用read;而对各种设备的写操作,则都使用write。
};
struct dct //DCT设备控制表
(
char name;
char pro;
int state;
struct block *b;
struct coct *next;
};
struct sdt //SDT系统设备表
(
char name;
struct sdt *link;
struct dct *next;
};
四、算法设计及流程图
该程序主要算法如下:
添加设备:添加一个设备,即增加一个设备控制表,选择相应的控制器以及通道。
删除设备:删除一个设备,先删除设备控制表,如果该设备正在别使用,归还系 统资源,并查看在控制器控制表以及通道控制表中是否仅有该设备,如果只有该设备, 连同控制器控制表及通道控制表一起删除,否则不动。
申请设备:从设备控制表,控制器控制表,通道控制表依次查看其状态位,若无 其他进程使用该设备则该进程得到该设备的使用权,若有其他进程使用该设备、该控 制器或通道,则将该进程阻塞在相应的阻塞队列中去。
归还设备:当某一进程归还一设备时,依次查看该设备的通道控制表、控制器控 制表及设备控制表,如过有其他进程阻塞在通道控制表、控制器控制表或设备控制表 的阻塞队列中,将该进程唤醒,即该进程得到这一资源。
五、小结
完成了设备的基本管理,添加、删除、申请及回收功能。
四、文件系统实现
一、 目的
利用交互式命令实现树型目录结构和文件管理,同时利用位示图表示外存的分配 情况,新建文件时分配必要的空间,模拟文件分配表记录文件在外存上的存储方式。
二、 内容
在文件中保存目录内容,创建文件或子目录可以用命令行命令:MD、CD、RD、MK (创建文件)、DEL (删除文件)和DIR。目录项包括文件或目录名称、类型(文件、 目录或空目录项)、创建日期以及下一个目录项指针、下一级目录项指针。
1、 创建初始文件,建立根目录的“.”和“..”目录项。
2、 显示命令提示符“$”。
3、 输入命令后根据命令含义完成相应文件操作:
MD:在目录文件中创建子目录,同时搜索当前目录最后一个目录项,并保存指针 信息;
CD:根据当前目录切换到指定目录;
RD:搜索所要删除的目录是否为空目录,若是则删除;
MK:在当前目录中创建文件名称;(申请空间利用位示图修改FAT)
DEL:搜索所要删除的文件是否存在,若是则删除;(恢复位示图修改FAT)
DIR :列出当前目录的所有目录项。
4、 在创建文件的时候分配空闲的磁盘空间,采用显示链接的方式,利用文件分配 表(FAT)记录文件在外存上的存储情况。
5、 当删除文件时,回收外存上的空间,修改位示图和文件分配表。
三、数据结构
struct fcb
char name[10];
〃当前目录或文件名
int start;
//目录或文件起始位置
int size;
//目录或文件的大小
struct fcb *up; //上一级目录的指针
struct fcb *bro; //同一级目录或文件的指针
st