操作系统课程设计.doc
《操作系统课程设计.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .操作系统课程设计指导一、本课程的教学目的及根本要求教学目的操作系统课程设计是操作系统课程的重要实践环节,是操作系统课程实验的有益补充,它旨在培养学生的实践能力,促进理论与实践的结合。要求学生通过上机编程,了解如何模拟操作系统原理的实现,从而加深对操作系统原理的领会,加深对操作系统实现方法的理解,与此同时使学生在程序设计方面也能够得到很大程度的提高。 操作系统虽然是理论性很强的课程,但是仅仅是课堂讲授是绝对不够的,操作系统课程设计即是课堂教学根底上的实践环节,其重要程度决不亚于课堂的知识传授。 本课程设计的目的和任务是在课堂教学的根底上,使学生对操作系统运行机制有一个全面的认识和理解,锻炼
2、学生的抽象思维、逻辑思维和实际动手能力,培养操作系统等大型系统程序的使用者、管理者、分析员和设计人才。 促进理论与实践的结合,使学生在系统程序设计方面能够得到很大程度的提高。先修课程:数据构造,操作系统教学根本要求要求学生通过上机编程,使学生对操作系统运行机制有一个全面的认识和理解,通过模拟文件系统及存管理系统,锻炼学生的逻辑思维和实际动手能力,培养操作系统等大型系统程序的使用者、管理者、分析员和设计人才。 促进理论与实践的结合,使学生在系统程序设计方面能够得到很大程度的提高。课程设计根本要求:1、掌握课堂教学容,主要包括:(1) 掌握操作系统四大资源管理的理论知识;(2) 熟悉 Linux
3、或Unix 文件系统的构造;(3) 使用 编程语言实现课程设计题目要求的功能。2、根据课程设计题目,按以下步骤进展:(1) 问题分析,理解问题,明确设计要求;(2) 根据要求进展概要设计和详细设计;(3) 编码实现、上机调试,数据测试;(4) 完成课程设计实习报告。二、操作系统课程设计题目1实现一个进程管理子系统 问题描述 在Linux/UNIX/windows下编制一个程序,模拟实现一个简单的进程管理子系统,它由进程建立模块、进程撤消模块、进程控制表组成,此外还可能包括选作的进程切换和调度模块。设计要求 该子系统接收新进程建立请求的方式是循环显示“请输入新命令行,然后根据用户键入容启动相应进
4、程,其后不等待子进程完毕,马上显示下一个“请输入新命令行如此循环往复。当建立进程时,相应读写进程控制表,然后借助底层环境OS中象fork和exec这样的函数将新进程投入运行这与底层环境的实际OS不同,实际OS 将新进程投入运行时要布置现场,最后时程序技术器存放器。进程撤消时,利用底层OS的wait() 从子进程回到本子系统,相应修改PCB。比拟该子系统与实际系统中的相应功能的异同与差距,尤其在现场保存与恢复方面的比拟。2实现一个进程管理子系统 实现进程切换问题描述 在Linux/UNIX/windows下编制一个程序,模拟实现一个简单的进程管理子系统,它由进程建立模块、进程撤消模块、进程控制表
5、组成,此外还可能包括选作的进程切换和调度模块。设计要求在1题的根底上,进一步可选做模拟实现进程切换。希望能实现时间片满或接到sleep 调用或信号时进展进程切换选择其一即可。假设要实现时间片,假设时间片为1秒钟,设定底层环境OS每个1秒向该系统发一个信号,本子系统将本子系统的进程切换和调度模块设定为该信号的处理程序。或者每当接到子进程发出的的sleep 调用或信号时进展进程切换,这里子进程发出的 sleep调用或信号代表实际系统中可能发生的sleep调用、等待某一时间发生等情况,进程调度采用简单的FIFO算法。 此题作为一道思考选作实验题:由于是在实际OS中模拟实现,故子系统无法完全控制其建立
6、的所有子进程的进程状态变化,象当前进程这样的概念都不太好模拟,需要设法解决或假设。 3进程调度算法模块问题描述 编制一个进程调度算法模块。进程调度是处理机管理的核心容。本设计要求用C语言编写和调试一个简单的进程调度程序。通过设计本可以加深理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法即把处理机分配给优先数最高的进程和先来先效劳算法的具体实施方法。设计要求 1进程调度算法:采用最高优先数优先的调度算法即把处理机分配给优先数最高的进程和先来先效劳算法。 2每个进程有一个进程控制块 PCB表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时
7、间、进程状态等等。 3进程的优先数及需要的运行时间可以事先人为地指定也可以由随机数产生。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进展计算。 4每个进程的状态可以是就绪 WWait、运行RRun、或完成FFinish三种状态之一。 5就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用 CPU时间已到达所需要的运行时间,那么撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1即降低一级,然后把它插入就绪队列等待CPU。 6每进展一次调度程序都打
8、印一次运行进程、就绪队列、以及各个进程的 PCB,以便进展检查。 7重复以上过程,直到所要进程都完成为止。4.生产者消费者问题实现问题描述有一群生产者进程生产产品供应消费者进程消费,为使两者并发执行,在两者之间设置具有n个缓冲区的缓冲池,生产者进程所生产的产品放入一个缓冲区中,消费者进程可从一个缓冲区中取走产品去消费。要求掌握信号的使用方法和PV操作的定义,掌握使用PV操作实现进程之间同步与互斥的方法,加深对进程同步互斥概念的理解。设计要求设计一程序,由一个进程创立三个子进程,三个子进程一个是生产者进程,两个是消费者进程,父子进程都使用父进程创立的共享存储区进展通信,由生产者进程将一个数组中的
9、十个数值发送到由5个缓冲区组成的共享存中,两个消费者进程轮流接收并输出这十个数值,同时将两个消费者进程读出的数值进展累加求各和。5.苹果问题 问题描述桌子上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。爸爸专向盘子放苹果apple,妈妈专向盘子中放桔子orange;两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。设计要求 了解信号量机制,了解并掌握进程同步和互斥机制,熟悉信号量的操作函数,利用信号量实现对共享资源的控制。编程模拟实现这一问题的程序控制,分析处理过程。6.模拟请求页式存储管理算法 问题描述存储管
10、理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本次设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。设计要求设计一个请求页式存储管理方案。并编写模拟程序实现之。要求包含:1过随机数产生一个指令序列,共320条指令。其地址按下述原那么生成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址局部;25%的指令是均匀分布在后地址局部;#具体的实施方法是:A. 在0,319的指令地址之间随机选区一起点M;B. 顺序执行一条指令,即执行地址为M+1的指令;C. 在前地址0,M+1中随机选取一条指令并执行,该
11、指令的地址为M;D. 顺序执行一条指令,其地址为M+1;E. 在后地址M+2,319中随机选取一条指令并执行;F. 重复AE,直到执行320次指令。2指令序列变换成页地址流 设:页面大小为1K; 用户存容量为4页到32页; 用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条第9条指令为第0页对应虚存地址为0,9; 第10条第19条指令为第1页对应虚存地址为10,19; 。 第310条第319条指令为第31页对应虚存地址为310,319;按以上方式,用户指令可组成32页。3. 计算并输出下述各种算法在不同存容量下的命中率。最正确置换
12、页面置换算法OPT最近最久未使用页面置换算法LRU最少使用页面置换算法LFUCLOCK算法要求设计一个虚拟存储区和存工作区,编程序演示以上四种算法的具体实现过程,并计算访问命中率。演示页面置换的四种算法。7.存的申请与释放 问题描述模拟实现操作系统存分配的算法。设计要求(1) 定义一个自由存储块链表,按块地址排序,表中记录块的大小。当请求分配存时,扫描自由存储块链表,址到找到一个足够大的可供分配的存块,假设找到的块大小正好等于所请求的大小时,就把这一块从自由链表中取下来,返回给申请者。假设找到的块太大,即对其分割,并从该块的高地址局部往低地址局部分割,取出大小适宜的块返回给申请者,余下的低地址
13、局部留在链表中。假设找不到足够大的块,就从操作系统中请求另外一块足够大的存区域,并把它到自由块链表中,然后再继续搜索。释放存储块也要搜索自由链表,目的是找到适当的位置将要释放的块插进去,如果被释放的块的任何一边与链表中的某一块临接,即对其进展合并操作,直到没有合并的临接块为止,这样可以防止存储空间变得过于零碎。(2) 空闲区采用分区说明表的方法实现1中的功能。要求同上。8固定式分区分配及可变式分区分配的存储管理方案设计与实现问题描述1设计一个固定式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。 设计要求1可以假定每个作业都是批处理作业,并且不允许动态申请存。为实现分区的分配和回收,可
14、以设定一个分区说明表,按照表中的有关信息进展分配,并根据分区的分配和回收情况修改该表。问题描述2设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。设计要求2对分区的管理法可以是下面三种算法之一:首次适应算法 循环首次适应算法 最正确适应算法 9.磁盘调度算法问题描述 了解磁盘管理的原理,掌握磁盘调度种算法。设计要求:编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:要求设计主界面可以灵活选择算法,且以下算法为根本要求。(1) 先来先效劳算法FCFS(2) 最短寻道时间优先算法SSTF(3) 扫描算法SCAN(4) 循环扫描算法CSCAN10.模拟UNIX(linux
15、)文件系统问题描述在任一OS下,建立一个大文件,把它假象成一盘,在其中实现一个简单的模拟UNIX文件系统 。设计要求1在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。2编写一管理程序对此空间进展管理,以模拟UNIX(或linux)文件系统,具体要求如下:要求盘块大小1k正规文件i结点文件类型 目录文件 (共1byte) 块设备 管道文件 。物理地址索引表 共有13个表项,每表项2byte 。文件长度 4byte 。联结计数 1byte0号块 超级块 栈长度50空闲盘块的管理:成组 ( UNIX)或位示图法 (Linux) 每建一个目录,分配4个物理块 文件名 14byte目录项信息i
16、 结点号 2byte构造: 0#: 超级块1#20#号为 i 结点区 20#30#号为根目录区功能: 初始化建立文件需给出文件名,文件长度 建立子目录 翻开文件显示文件所占的盘块 删除文件删除目录 显示目录即显示目录下的信息,包括文件、子目录等 显示整个系统信息 11模拟文件系统问题描述在任一OS下,建立一个大文件,把它假象成一盘,在其中实现一个简单的小型文件系统。设计要求该小型文件系统没有子目录机制,文件连续分配,不考虑分区。做一个简单的 操作界面,提供四条简单的命令:简单的ls、cat、cp、rd.进一步增强:上题中的文件系统功能:文件系统不连续分配,可以有子目录机制,如两级子目录机制。1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计
限制150内