《OS课程设计题目.doc》由会员分享,可在线阅读,更多相关《OS课程设计题目.doc(4页珍藏版)》请在金锄头文库上搜索。
1、10级电子仪器1、2班操作系统课程设计1.题目:1) 银行家算法模拟 目的:了解多道程序系统中,多个进程并发执行的资源分配。设计要求:管理员可以把一定数量的作业供多个用户周转使用,为保证作业的安全,管理员规定:当一个用户对作业的最大需求量不超过管理员现有的资金就要接纳该用户;用户可以分期贷款,但贷款的总数不能超过最大需求量;当管理员现有的作业不能满足用户的所需数时,对用户的请求可以推迟支付,但总能使用户在有限的时间里得到请求。当用户得到所需的全部作业后,一定能在有限的时间里归还所有的作业。2) 生产者消费者算法模拟 目的:掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步与互
2、斥的方法,加深对进程同步互斥概念的理解。设计要求:设计一程序,由一个进程创建三个子进程,三个子进程一个是生产者进程,两个是消费者进程,父子进程都使用父进程创建的共享存储区进行通信,由生产者进程将一个数组中的十个数值发送到由5个缓冲区组成的共享内存中,两个消费者进程轮流接收并输出这十个数值,同时将两个消费者进程读出的数值进行累加求各和。3) 页面置换算法程序设计 目的:深入掌握内存调度算法的概念原理和实现方法。设计要求:编写程序实现:(1) 先进先出页面置换算法(FIFO)(2) 最近最久未使用页面置换算法(LRU)(3) 最佳置换页面置换算法(OPT)专题:设计一个虚拟存储区和内存工作区,编程
3、序演示以上三种算法的具体实现过程,并计算访问命中率。演示页面置换的三种算法。通过随机数产生一个指令序列,将指令序列转换成为页地址流。计算并输出各种算法在不同内存容量下的命中率。4) 睡眠理发师问题目的:了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。设计要求:(1)编写程序实现理发师与顾客进程的同步。问题描述:这是一种经典的IPC问题,理发店有一位理发师,一把理发椅和n把用来等候理发的椅子。如果没有顾客,则理发师在理发椅上睡觉,顾客理来时,如理发师闲则理发,否则如有空椅则坐等,没有空椅则离开,编写程序实现理发师和顾客程序,实现进程控制,要求不
4、能出现竞争。(2)将(1)题中问题修改为有两位理发师,设计程序实现同步控制。问题提示:可以用一个变量waitting来记录等候理发的顾客数,另使用三个信号量:用来记录等候理发的顾客数customers;用来记录理发师是否空闲的信号量barbers,一个用于互斥访问waitting变量的mutex.。 5)进程调度模拟 目的:深入掌握进程调度的概念原理和实现方法。设计要求:编写一个进程调度程序,允许多个进程并行执行。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)、先来先服务算法、按时间片轮转调度算法,最终总结该算法的优缺点,写出设计体会。每个进程有一个进程控制块(
5、PCB)表示,进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为指定(也可以由随机数产生)。进程的到达时间为输入进程的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪W(wait)、运行R(run)或完成F(finish)三种状态之一。6)读者写者算法模拟(可选)目的:了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程同步问题的方法,进而学会运用进程的同步与互斥。设计要求:编程模拟读者与写者问题,要求显示结果。问题描述:(1)多个进程共享一个文件,其中只读文件的称之为读者,
6、其余只写文件的称为写者。读者可以同时读,但是写者只能独立写。(2)对(1)修改,使得它对写者优先,即一旦有写者到,后续的读者都必须等待,而无论是否有读者在读文件。7) 内存管理算法模拟(可选)目的:了解操作系统内存分配的算法。设计要求:(1) 定义一个自由存储块链表,按块地址排序,表中记录块的大小。当请求分配内存时,扫描自由存储块链表,址到找到一个足够大的可供分配的内存块,若找到的块大小正好等于所请求的大小时,就把这一块从自由链表中取下来,返回给申请者。若找到的块太大,即对其分割,并从该块的高地址部分往低地址部分分割,取出大小合适的块返回给申请者,余下的低地址部分留在链表中。若找不到足够大的块
7、,就从操作系统中请求另外一块足够大的内存区域,并把它链接到自由块链表中,然后再继续搜索。释放存储块也要搜索自由链表,目的是找到适当的位置将要释放的块插进去,如果被释放的块的任何一边与链表中的某一块临接,即对其进行合并操作,直到没有合并的临接块为止,这样可以防止存储空间变得过于零碎。 8) 模拟文件系统(可选)目的:深入了解文件管理系统,初步掌握文件管理系统的实现方法。设计要求:编写一程序,模拟一个简单的文件管理系统。树型结构,目录下可以是目录,也可以是文件。在此文件管理系统,可实现的操作有:改变目录:格式:cd 显示目录:格式:dir创建目录:格式:md 删除目录:格式:rd新建文件:格式:e
8、dit删除文件:格式:del退出文件系统:exit实现参考:(1) 文件系统采用二叉树型存储结构,结点结构如下:Struct FileNode Char filenameFILENAME_LEN;/文件名/目录名 Int isdir ;/目录、文件的识别标志 Int i_nlink;/文件链接数 Int adr;/文件的地址 Struct FileNode *parent,*child;/指向父亲的指针和左孩子的指针Struct FileNode *sibling_prev,*sibling_next;/指向前一个兄弟的指针和后一个兄弟的指针。(2) 目录名和文件名支持全路径名和相对路径名,路
9、径名各分量间用“/”隔开(3) 功能具体描述:改变目录:改变当前工作目录,目录不存在是给出出错信息显示目录:显示指定目录下或当前目录下所有文件和一级目录(选做:带/s参数的dir命令,显示所有子目录)创建目录:在指定路径或当前路径下创建指定目录。重名时给出出错信息。删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。创建文件:创建指定名字的文件,只要创建表示文件的节点即可,内容及大小不考虑。删除文件:删除指定文件,不存在时给出出错信息。退出文件系统:exit2.要求:1) 每个题目最多由7位同学完成,对于同一题目要求不同的同学采用不同的技术路线,杜绝两个同学内容相同的情况出现。2) 在设计结束后对每班抽取一定量同学进行答辩。课程设计报告不允许有两位或两位以上的学生报告内容相同或相近,一旦查出,取消设计成绩。3) 希望广大同学认真对待,齐心协力搞好本次课程设计。3.在课程设计结束时,即13周星期五上交报告和源程序。要上交的资料如下:l 以班为单位交一张光盘,每个学生一个文件夹(学号命名),里面包括课程设计的源代码和课程设计报告。l 每个人交一份打印的课程设计报告