操作系统课程设计选题说明
设计名称:操作系统课程设计
一、进度安排:
本课程设计时间安排在第12-14周(2012年11月19日至12月9日),需要根据课程设计任务书编写程序,调试程序并编写课程设计报告。
每个同学需要交一份课程设计报告的打印稿。
每班交一个文件夹。
文件夹中应为每个同学建一个目录,目录以该生的学号、姓名命名,该生的电子版课程设计报告和调试通过的源程序置于其中。
源程序包括程序的使用说明,以及测试数据。
电子版课程设计报告和源程序由班长或学习委员汇总,然后一起拷贝给任课老师。
设计报告必须在2012年12月10日前交齐,送至F楼314。
二、可选课题:
以下10个课题为供同学们选择的课程设计项目,每个同学独立按时完成。
实现语言:要求用C、C++等语言来实现
1、设计一进程调度系统设计
目的与要求:
本设计的目的是加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构的实施。
要求设计一个允许n个进程并发运行的进程管理模拟系统。
该系统包括有简单的进程控制,其进程调度算法可任意选择。
每个进程用一个PCB表示,其内容根据具体情况设置。
具体要求如下:
⑴设计一个模拟进程调度的系统;
⑵采用FIFO、SPF或优先级调度算法;
⑶自己根据算法需要确定PCB中的数据结构;
⑷能够显示进程的运行状态包括进程状态、占用CPU时间、要求服务时间等信息。
2、设计二存储器管理系统设计一
目的与要求:
本设计的目的是使学生熟悉存储器管理系统的设计方法;加深对所学各种存储器管理方案的了解;要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统并调试运行。
具体要求如下:
⑴设计一个模拟内存分配的系统;
⑵采用可变分区内存管理策略;
⑶输入数据为进程号,需要的内存量,并根据这些信息进行内存分配;
⑷输入数据为进程号,则将该进程占用的内存释放,释放时要求与相邻的空闲分区合并;
⑸动态显示分配结果,即内存占用表和内存空闲表。
3、设计三存储器管理系统设计二
目的与要求:
本设计的目的是使学生熟悉存储器管理系统的设计方法;加深对所学各种存储器管理方案的了解;要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统并调试运行。
具体要求如下:
⑴设计一个模拟内存分配的系统;
⑵采用分页内存管理策略;
⑶输入数据为进程号,需要的内存量,并根据这些信息进行内存分配;
⑷输入数据为进程号,则将该进程占用的内存释放;
⑸动态显示分配结果,用位示图来表示内存的使用情况。
4、设计四文件管理系统设计
目的与要求:
本设计的目的是通过设计和调试一个简单的文件系统,通过模拟文件操作命令的执行,来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。
具体要求如下:
⑴设计一个支持n个用户的文件系统,每个用户可拥有多个文件;
⑵采用二级或二级以上的多级文件目录管理;
⑶对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;
⑷系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录;
⑸通过键盘使用该文件系统,系统应显示操作命令的执行结果。
5、设计五虚拟存储管理系统设计
目的与要求:
本设计的目的是通过设计和调试一个简单请求分页式系统,加深对虚拟存储管理中页面调度算法FIFO、LRU等的理解。
具体要求如下:
⑴设计一个模拟请求分页式的系统;
⑵采用FIFO和LRU页面置换算法;
⑶根据输入的页面访问次序,及初始分配的块数,进行模拟;
⑷如果发生页面置换则将置换出的页面显示出来,并显示该页面是否被修改等信息。
6、设计六基于消息的通讯系统设计
目的与要求:
本设计的目的是通过设计和调试一个基于消息的通讯系统,来实现进程之间的间接通讯,使学生对进程间的通讯机制、进程间的同步机制有一个深入的理解。
具体要求如下:
⑴设计一个消息传递系统,使两进程以消息为单位进行数据交换;
⑵以间接方式进行这种传递,发送进程把消息发送到中间实体,接收进程从中取得消息;
⑶中间实体应能保留一定数量的消息(如,保留10条消息);
⑷两进程应保证同步与互斥。
7、设计七动态资源分配系统的设计
目的与要求:
本设计的目的是通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。
具体要求如下:
⑴模拟一个银行家算法;
⑵初始化时让系统拥有一定的资源;
⑶用键盘输入的方式申请资源;
⑷如果预分配后,系统处于安全状态,则修改系统的资源分配情况;
⑸如果预分配后,系统处于不安全状态,则提示不能满足请求。
8、设计八模拟磁盘调度算法系统的设计
目的与要求:
本设计的目的是通过设计一个磁盘调度模拟系统,以加深对FCFS、最短寻道时间以及电梯等磁盘调度算法的理解。
具体要求如下:
⑴模拟一个磁盘调度算法;
⑵要求能够模拟FCFS、最短寻道时间、电梯算法三个磁盘调度算法;
⑶输入为一组作业的磁道请求;
⑷输出为按选择的算法执行时的磁头移动轨迹。
9、设计九模拟作业调度算法系统的设计
目的与要求:
本设计的目的是通过设计一个作业调度模拟系统,以加深对FIFO、短作业优先、优先级优先等作业调度算法的理解。
具体要求如下:
⑴模拟一个作业调度算法;
⑵要求能够模拟FIFO、短作业优先、优先级三个作业调度算法;
⑶输入为一组作业到达的时间、服务时间以及优先级;
⑷输出为按选择的算法执行的调度次序。
10、设计十死锁的检测与分析系统的设计
目的与要求:
本设计的目的是通过对死锁检测算法的模拟,来了解死锁检测中的数据结构的设计和使用以及资源分配图在死锁检测中的应用。
具体要求如下:
⑴模拟一个死锁检测算法;
⑵该算法能通过简化资源分配图来检测死锁;
⑶资源分配图可以用矩阵的形式表示;
⑷输出结果为有死锁或无死锁。
以下设计项目为综合性项目。
如果觉得上面的项目比较容易,可以考虑两三个同学一组从以下综合性项目中选择一个进行设计。
如果以组的形式进行设计,请选定一名同学为组长,组长负责模块的分配。
组长将整个项目写成课程设计报告(其他同学负责的模块可以简单的说明即可),组员则只要将自己负责的模块写成课程设计报告。
1、综合设计一进程管理系统设计
目的与要求:
本设计的目的是加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通讯机构的实施。
要求设计一个允许n个进程并发运行的进程管理模拟系统。
该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可任意选择。
每个进程用一个PCB表示,其内容根据具体情况设置。
各进程之间有一定的同步关系(可选)。
系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。
2、综合设计二 SPOOLing系统设计
目的与要求:
本设计的目的是通过设计一个简单的SPOOLing系统来模拟实际的SPOOLing输入/输出过程,以掌握这种有用的技术。
要求将SPOOLing输入/输出处理程序编成一个独立的进程模块并与其它请求输入/输出的进程并发运行。
SPOOLing进程负责把从输入设备读入的信息送到外存输入井中,或把外存输出井中的信息送到打印机等输出设备上输出。
其余进程只要求编写输入/输出部分的程序。
3、综合设计三同步算法跟踪与验证系统设计
目的与要求:
本设计的目的是通过设计和调试一个简单的同步算法跟踪与验证系统,使系统在跟踪同步算法的执行路径的同时,验证一个同步算法的正确性。
以加深学生对进程间同步关系的进一步理解。
要求自己书写一个简单的解释系统,对至少由两个并发进程组成的系统中进程的同步关系进行跟踪与验证。
三、参考资料:
胡志刚.计算机操作系统.中南大学出版社.2005.
于渊.自己动手写操作系统.电子工业出版社.2005.
Andrew S.T anenbaum.操作系统:设计与实现(第二版).电子工业出版社.2004 . 四、考核办法:
学生以自学为主,独立完成设计任务,注重培养学生能力。
通过进度检查、设计答辩和报告评审的形式了解学生的设计水平,根据学生任务完成的情况,设计报告的质量,及平时的学习态度、工作作风、思想表现各全面准确评定成绩。
成绩按优秀、良好、中等、及格、不及格五分记分。
以上资料仅供参考,严禁抄袭,如果发现有雷同,则一律记为不及格。
附加候选题目:
设计一可变分区存储管理
设计二进程调度
设计三进程和进程通信
设计四死锁
设计五文件系统
设计六文件系统的用户界面
设计七远程进程socket 通信
设计八Unix 实用程序
设计九软件开发工具
设计十UNIX 与计算机通信
设计十一Shell 程序设计
设计十二嵌入式Linux 操作系统设计
设计十三操作系统安全性设计
设计十四UNIX 系统管理
设计十五UNIX 系统网络管理
设计十六Windows 基本编程
设计十七Windows 基本配置。