《操作系统》
课程设计任务书
指导教师:刘 刚
设计者:
班级:
学号:
山东建筑工程学院计算机系软件教研室
操作系统课程设计题目
一. 混合索引模式下文件空间管理
设计要求:
编写一程序,模拟混合索引形式的文件系统。能接收建立、删除、读、写和查询属性的命令,并在模拟文件系统中进行操作。
例:
create a1.doc 8000 //建立一个长度为8000字节的文件,文件名为a1.doc
earse a1.doc //删除文件
read a1.doc 17 3 //从a1.doc文件的第17个字节开始,显示3个字节的内容
write a1.doc 8 ‘test’ //从a1.doc文件的第8个字节开始,写入’test’字符串
ask a1.doc //显示文件属性 文件名,I节点编号,类型,长度,时间等。
建立文件:
从命令中得到文件名,得到该文件的文件长度,建立文件;
从模拟空闲索引表文件中找到一个空闲索引节点,填写相应信息;
查找模拟空闲盘块表文件,分配空闲盘块,并将分配的空闲盘块号写入所申请索引节点的地址项中(注意按混合索引方式);之后将产生的索引块(如果有的话)的内容、文件的内容(如’_’)等信息写入模拟磁盘镜像文件中;
在模拟目录表中建立一个目录项,填写文件名及申请的索引节点编号;
。。。
删除文件
回收文件占用的空间,修改模拟空闲盘块表文件;
回收索引节点空间,修改模拟空闲索引节点表文件;
修改模拟目录表文件。
。。。
读文件内容
。。。
写文件内容
。。。
显示文件属性
。。。
模拟文件系统中使用4个文件模拟相应的系统环境:
模拟磁盘空间文件 à 模拟文件系统的磁盘 16字节一块 容量:100K 内容只包含数据和索引盘块。
例:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ xyz _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
模拟空闲盘块表文件 -〉 模拟位示图法表示的空闲盘块数据结构 1个字节表示一个盘块 能表达:6400个盘块
例:00110100
模拟I节点表文件
容量:100个索引节点 42
每个I节点的结构:1 – 编号; 1 – 类型; 4 – 文件的长度; 14 – 文件建立/最后修改的时间(yyyymmddhhmmss); 22 – 物理地址(8个直接链接,1个一级,1个二级,1个三级链接);
例:3a….20030420101010…...
模拟目录表文件
容量:100
每项结构:11 – 文件名;1 – 所分配的I节点的编号。
例:_ _ _ _ _ _ a1docX
要求:
1、 设计的分析,解决方案
2、 执行每条指令都要有具体的提示内容
3、 画出程序的基本结构框图和流程图
4、 对程序的每一部分要有详细的设计分析说明,说明设计实现所用的原理,采用的数据结构
5、 各个函数的详细说明(如创建进程,销毁进程等)
6、 源代码格式规范,注释不少于三分之一
7、 对运行的结果要有结果的分析,
8、 设计中遇到的问题,设计的心得体会
9、 参考资料
10、 开发工具不限
二: 进程调度模拟程序
设计要求:
编写一程序,可以创建若干个虚拟进程,并对若干个虚拟进程进行调度,调度策略为时间片轮转。
虚拟程序的描述:
虚拟指令的格式: 操作命令 操作时间
其中,操作命令有以下几种:
l C : 表示在CPU上计算
l I :表示输入
l O:表示输出
l W:表示等待
l H:表示进程结束
操作时间代表该操作命令要执行多长时间
假设I/O设备的数量没有限制
I、O、W三条指令实际上是不占用CPU的,执行这三条指令就应将进程放入对应的等待队列(Input等待队列、Output等待队列、Wait等待队列)
例有一虚拟程序p1.prc描述如下:
c 30
o 12
c 9
i 14
h 0
该虚拟程序表示的含义是:先在CPU上计算30秒,再在输出设备上输出12秒,计算9 秒,在输入设备上输入14秒,程序结束。
实验方法:
先用文本编辑器写三个虚拟程序,可以分别命名为p1.prc p2.prc p3.prc。然后编一进程调度程序,将这三个虚拟程序创建成进程,并按各虚拟进程的指令要求执行和调度。用一个文本文件, 里面只能放一个整数,表示一个时间因子,用于调节设计程序OS.EXE的执行速度。
运行结果要求:
要求在每个线程创建、占用处理机、开始输出、开始输入和结束操作时分别显示一行提示信息,以确定所有处理都遵守相应的进程调度规则。
要求:
1. 设计的分析,解决方案
2. 进程的创建要创建进程控制块(可参考UINX的进程控制块的设计,要求有进程的必要信息)
3. 要有运行队列、就绪队列、Input等待队列、Output等待队列、Wait等待队列
4. 要有进程切换时的上下文转换过程
5. 要动态显示每个进程的当前状态及指令执行情况,动态显示每个队列的当前状态
6. 画出程序的基本结构框图和流程图
7. 对程序的每一部分要有详细的设计分析说明,说明设计实现所用的原理,采用的数据结构
8. 进程的各个操作函数的详细说明(如创建进程,销毁进程等)
9. 源代码格式规范,注释不少于三分之一
10. 对运行的结果要有结果的分析,
11. 设计中遇到的问题,设计的心得体会
12. 参考资料
13. 开发工具不限