《操作系统课程设计任务指导书》
山东建筑大学 计算机科学与技术学院 二○○七年十二月
基本情况
课程名称:操作系统课程设计 相关课程:操作系统、数据结构 适合专业:信息与计算技术 设计周数:1周 学 分: 2学分 开课学期:第 7 学期
开课单位:计算机科学与技术学院
一、课程设计的教学目的和任务
1、 使学生进一步理解和掌握操作系统课程中所学到的各种基本算法。 2、 使学生深入理解经典操作系统各组成部分的基本原理。 3、 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。 4、 使学生能用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备
的科学的工作方法和作风。
二、课程设计的主要内容
1. 分析。根据设计题目的要求,充分地分析和理解问题。
2. 设计。根据题目所涉及的操作系统内容,认真设计解题算法。参照平时课内所学知识,
按照软件工程方法,确定设计方案。
3. 编码。把设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使
程序中逻辑概念清楚。
4. 调试与测试。根据题目内容,设计测试用例,使之能够充分证明课程设计完成的正确
性。
5. 总结分析。总结设计中所遇到的问题以及所得到的经验,分析程序中是否存在可以完
善、提高的部分,做出总结。 6. 编写课程设计报告。
三、课程设计的基本教学要求
1、 巩固和加深对操作系统课程基本知识的理解,提高对所涉及的算法的掌握。 2、 通过实际课程设计,掌握简单软件的分析方法和设计方法。
四、课程设计报告的规范
课程设计报告要求规范书写。应当包括如下部分:
1、 操作系统课程设计任务书 2、 问题定义与分析 3、 概要设计及流程图 4、 问题实现及代码 5、 测试
1
6、 结论 7、 参考文献
五、注意事项
1、 学生必须仔细阅读课程设计任务书,认真主动完成课程设计的要求。有问题及时主动
通过各种方式与教师联系沟通。
2、 学生要发挥自主学习的能力,充分利用时间,安排好课程设计的进度,并在课程设计
过程中不断检查自己的计划完成情况,及时向教师汇报。
3、 课程设计按照教学要求需要一周时间完成,一周中每天(按每周5天)至少要上机2
小时来调试程序,总共至少要上机调试程序10小时。
六、课程设计需要提交的报告
1. 课程设计报告(1份,A4纸打印,同时包括一份电子版)
报告要求版面清晰,格式规范,否则重新编写。 2. 完整的程序系统(电子方式提交)
能够对输入产生相应的输出,同时尽量的完成可视化演示。该部分包括源代码和可执行文件两个部分。
所有以电子方式提交的文件全部存在一个目录中,并对其进行压缩(用Winrar或Winzip均可),压缩后的文件按规定格式进行命名,命名格式为:学号+姓名.rar。
六、成绩评定标准
学生成绩按百分制评定。
设计情况(80%),考勤情况(20%)
七、参考资料
汤子瀛等. 《计算机操作系统》 西安电子科技大学出版社
2
附录一 课程设计题目
一.银行家算法模拟(3个子题目) 设计目的:
熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法。 设计要求:
用高级语言编写和调试一个模拟银行家算法的程序。 设计内容:
设计合理的数据结构,用于描述每个进程对资源的要求及分配情况。编写多个模块,分别用以完成:申请资源、显示资源、释放资源以及安全性算法。
进程数最多为5个,资源种类最多为3类。 设计分工:
该题目分为3个子题目:
1、银行家算法模拟——系统初始化; 数据结构的定义、程序结构的分析设计 2、银行家算法模拟——资源管理;
3、银行家算法模拟——安全性算法。
二.空闲表和空闲链文件存储空间管理模拟(4个子题目) 设计目的: 设计要求:
熟悉利用空闲表和空闲链对空闲盘块进行组织、分配和回收的方法。
用高级语言编写和调试一个使用空闲表/链法的程序,能够实现模拟空闲盘块的组织、分配和回收过程。 设计内容:
设计相应数据结构,用于描述所有空闲盘块的组织情况;提供一个界面,供用户输入空闲块分配及回收的命令;编写多个模块,分别用以完成:空闲盘块的回收与分配。
如:init 100 //表示将100块空闲盘块组织起来,以备使用。 get 5 //表示分配5块 put 3 //表示回收3块
要求命令执行完后,显示分配与回收盘块号码以及其他信息。 设计分工:
该题目分为4个子题目: 1、空闲表法的分配算法: 2、空闲表法的回收算法。
为所有空闲区建立一张空闲表,每个空闲区一个表项,包括表项序号、第一个盘块号、盘块数,空闲区按起始盘块号递增排序。
3、空闲链法的分配算法 4、空闲链法的回收算法。 空闲盘块链、空闲盘区链
三.成组链接法的模拟(4个子题目) 设计目的:
3
熟悉利用成组链接法对空闲盘块的组织、分配和回收的方法和混合索引分配的文件结构。
设计要求:
用高级语言编写和调试一个模拟混合索引分配和成组链接法的程序,能够实现模拟混合索引分配、空闲盘块的组织、分配和回收过程。
设计内容:
1、定义INODE结构,对给定的磁盘块大小、磁盘块号长度、磁盘空间大小、文件大小,给出该文件的磁盘块占用情况。
2、设计相应数据结构,用于描述所有空闲盘块的组织情况;
3、提供一个界面,供用户输入分配及回收的命令;编写多个模块,分别用以完成:空闲盘块的回收与分配。
根据前面文件的要求分配需要的磁盘块,要求命令执行完后,显示分配与回收盘块号码以及其他信息。 设计分工:
该题目分为4个子题目: 1、混合索引分配 2、成组连接法初始化 3、成组连接法分配算法 4、成组连接法回收算法。
四.位示图法的模拟(2个子题目) 设计目的:
熟悉利用位示图法对空闲盘块的组织、分配和回收的方法。 设计要求:
用高级语言编写和调试一个位示图法的程序,能够实现模拟空闲盘块的组织、分配和回收过程。 设计内容:
设计相应数据结构,用于描述所有空闲盘块的组织情况;提供一个界面,供用户输入分配及回收的命令;编写多个模块,分别用以完成:空闲盘块的回收与分配。
要求命令执行完后,显示分配与回收盘块号码以及其他信息。 设计分工:
该题目分为2个子题目: 1、位示图法系统初始化; 2、位示图法分配与回收算法。
五.磁盘调度算法的模拟(5个子题目) 设计目的:
熟悉各种磁盘调度算法的原理。 设计要求:
用高级语言编写和调试多个实现不同磁盘调度的程序。 设计内容:
实现对先来先服务算法;最短寻道时间优先算法;扫描算法;循环扫描算法;
4
N_Step_Scan算法的模拟。
每种算法设计一个系统,提供一个界面,供用户输入磁盘访问的请求,显示根据算法所得到的访问顺序。 设计分工:
该题目分为5个子题目: 1、先来先服务算法;
2、最短寻道时间优先算法; 3、扫描算法; 4、循环扫描算法; 5 、N_Step_Scan算法;
六.页面置换算法的模拟(3个子题目) 设计目的:
熟悉各种页面置换算法的原理。 设计要求:
用高级语言编写和调试多个实现不同的页面置换算法的程序。 设计内容:
实现对页面置换算法:最近最久未使用算法、最佳置换算法、FIFO算法的模拟。 每种算法设计一个系统,提供一个界面,供用户输入访问页面的次序等信息,显示根据算法所得到的结果。 设计分工:
该题目分为3个子题目。 1、最近最久未使用算法 2、最佳置换算法 3、FIFO算法
七.动态分区算法的模拟(6个子题目) 设计目的:
熟悉内存连续分配方法中各种动态分区算法的原理。 设计要求:
用高级语言编写和调试多个实现不同的动态分区算法的程序。 设计内容:
实现对动态分区算法中首次适应算法、循环首次适应算法、最佳适应算法的模拟。 每种算法设计一个系统,提供一个界面,供用户输入内存初始状态以及不同长度作业对内存的申请与释放的要求,显示根据每次操作后内存块的情况。 设计分工:
该题目分为6个子题目。 1、首次适应的分配算法; 2、循环首次适应的分配算法; 3、最佳适应的分配算法; 4、首次适应的回收算法; 5、循环首次适应的回收算法; 6、最佳适应的回收算法;
5
八.作业/进程调度算法的模拟(5个子题目) 设计目的:
熟悉各种作业/进程调度算法的原理。 设计要求:
用高级语言编写和调试多个实现不同的作业/进程调度算法的程序。 设计内容:
实现调度算法:先来先服务调度算法;短作业优先调度算法;高优先权调度算法;高响应比优先算法;基于时间片的轮转调度的模拟。
每种算法设计一个系统,提供一个界面,供用户输入等待调度的作业信息,显示根据相应算法进行调度的结果。 设计分工:
该题目分为5个子题目。 1、先来先服务调度算法; 2、短作业优先调度算法; 3、高优先权调度算法; 4、高响应比优先算法; 5、基于时间片的轮转调度
九.设备分配算法的模拟(3个子题目) 设计目的:
熟悉设备分配算法的原理。 设计要求:
用高级语言编写和调试模拟实现设备分配算法的程序。 设计内容:
数据结构的定义:设备分配中用到的系统设备表,逻辑设备表,设备控制表,控制器控制表,通道控制表
分配:请求逻辑设备,根据情况,分配相应设备,修改相应数据表,否则不分配 回收:释放逻辑设备时,释放相应的通道、控制器、设备,并修改相应数据表 设计分工:
该题目分为3个子题目: 1.设备分配算法系统初始化 2.设备的分配算法 3.设备的回收算法
6
因篇幅问题不能全部显示,请点此查看更多更全内容