《操作系统》课程设计指导书(共21页).doc
《《操作系统》课程设计指导书(共21页).doc》由会员分享,可在线阅读,更多相关《《操作系统》课程设计指导书(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上操作系统课程设计 指导书信息技术系二0一0年六月课程设计任务(一):进程调度一、目的与要求1、目的进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本任务要求学生独立地用C语言(或其它程序设计语言)编写和调试一个简单的进程调度程序。调度算法(如,简单轮转法和优先数法等)可任意选择或自行设计。以加深对进程调度和各种调度算法的理解。2、 要求(1) 设计一个有n个进程并行的进程调度程序。每个进程由一个进程控制块(PCB)表示。进程控制块通常应包含下述信息:进程名、进程优先数、进程需要运行的时间、占用CPU的时间以及进程的状态等,且可按调度算法的不同而增删
2、。(2) 调度程序可包含45种不同的调度算法,运行时可任意选一种,以利于各种算法的分析比较。完成1种调度算法得基本分即60分,每增加1种加10分,满分100分。(3) 系统应能显示各进程状态和参数的变化情况,便于观察诸进程的调度过程二、示例1、题目 本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行R(run)、就绪W(wait)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态W。为了便于处理,程序进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以及进程需要运行的时间片数,均由伪随机数发生器产生。进程控制块结构如下:PCB进程标识数链指针优先数
3、/轮转时间片数占用CPU时间片数进程所需时间片数进程状态进程控制块链结构如下:TAILRUN1RHEAD3W5W2W其中:RUN当前运行进程指针;HEAD进程就绪链链首指针;TAID进程就绪链链尾指针。2、 算法与框图(1) 优先数法。进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的时间片数减1,说明它已运行了一个时间片,优先数也减3,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。原运行进程再按其优先数大小插入就
4、绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片数。(2) 简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相当于优先数法的优先数记录项位置)。每过一个时间片,运行进程占用处理机的时间片数加1,然后比较占用处理机的时间片数是否与该进程的轮转时间片数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪链末尾,调度链首进程占用处理机,且改变它们的进程状态,直至所有进程完成各自的时间片。(3) 程序框图如下图1所示。图1 进程调度框图3、 程序运行结果格式(1)程序运行结果格式TYPE THE ALGO
5、RITHM:PRIORITYOUTPUT OF PRIORITY= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =RUNNING PROC. WAITING QUEUE3 4 1 5= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =ID 1 2 3 4 5PRIORITY 9 38 30 29 0CPUTIME 0 0 0 0 0ALLTIME 3 3 6 3 4STATE W R W W WNEXT 5 3 4 1 0= = = = = = = = = =
6、= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =SYSTEM FINISHED(2)说明:程序启动后,屏幕上显示“TYPE THE ALGORTITHM”,要求用户打入使用何种调度算法。本程序只编制了优先数法(“priority”)和简单轮转法(“Round Robin”)两种。打入某一算法后,系统自动形成各进程控制块,实施该算法的进程调度算法,并打印各进程在调度过程中的状态和参数的变化。4、 小结本任务用较简单的二种方法模拟进程调度,在进程运行时间
7、和进程状态变化方面也做了简化,但已经能够反映进程调度的实质。本任务能加深对进程调度的理解和熟悉它的实施方法。三、设计题自行设计一个进程调度程序,在计算机上调试和运行该程序,其功能应该不亚于示例。直观地评测各种调度算法的性能。提示1:可编写一个反馈排队法(FB方法)的进程调度程序。该算法的基本思想是设置几个进程就绪队列,如队列1队列i ,同一队列中的进程优先级相同,可采用先进先出方法调度。各队列的进程,其优先级逐队降低。即队列1的进程优先数最高,队列i的最低。而时间片,即以此占用CPU的时间正好相反,队列1的最短,队列i则最长。调度方法是开始进入的进程都在队列1中参加调度,如果在一个时间片内该进
8、程完不成,应排入队列2,即优先级要降低,但下一次运行的时间可加长(即时间片加长了)。以此类推,直至排到队列i。调度时现在队列1中找,待队列1中已无进程时,再调度队列2的进程,一旦队列1中有了进程,又应返回来调度队列1的进程。这种方法最好设计成运行过程中能创造一定数量的进程,而不是一开始就生成所有进程。提示2:可综合各种算法的优先,考虑在各种不同情况下的实施方法,如上述FB算法。也可选用有关资料中报导的一些方法,加以分析、简化和实现。四、思考题(1) 示例中的程序,没有使用指针型(pointer)数据结构,如何用指针型结构改写本实例,使更能体现C语言的特性。(2) 如何在程序中真实地模拟进程运行
9、的时间片?(3) 如果增加进程的“等待”状态,即进程因请求输入输出等问题而挂起的状态,如何在程序中实现?课程设计任务(二):请求页式存储管理一、目的与要求1、目的近年来,由于大规模集成电路(LSI)和超大规模集成电路(VLSI)技术的发展,使存储器的容量不断扩大,价格大幅度下降。但从使用角度看,存储器的容量和成本总是受到一定的限制。所以,提高存储器的利用效率始终是操作系统研究的重要课题之一。其中虚拟存储技术是用来扩大内存容量的一种重要方法。学生应独立地用C语言(或其它程序设计语言)编写几种常用的存储分配算法,并设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算
10、法的了解。2、 要求为了比较真实地模拟存储管理,可预先生成一个大致符合实际情况的指令地址流。然后模拟这样一种指令序列的执行来计算和分析各种算法的访问命中率。二、示例1、题目 本示例采用页式分配存储管理方案,并通过分析计算不同页面淘汰算法情况下的访问命中率来比较各种算法的优劣。另外也考虑到改变页面大小和实际存储器容量对计算结果的影响,从而可为选择好的算法、合适的页面尺寸和实存容量提供依据。本程序是按下述原则生成指令序列的:(1) 50%的指令是顺序执行的。(2) 25%的指令均匀散布在前地址部分。(3) 25%的指令均匀散布在后地址部分。示例中选用最佳淘汰算法(OPT)和最近最少使用页面淘汰算法
11、(LRU)计算页面命中率。公式为假定虚存容量为32K,页面尺寸从1K至8K,实存容量从4页至32页。2、 算法与框图(1) 最佳淘汰算法(OPT)。这是一种理想的算法,可用来作为衡量其他算法优劣的依据,在实际系统中是难以实现的,因为它必须先知道指令的全部地址流。由于本示例中已预先生成了全部的指令地址流,故可计算出最佳命中率。该算法的准则是淘汰已满页表中不再访问或是最迟访问的的页。这就要求将页表中的页逐个与后继指令访问的所有页比较,如后继指令不在访问该页,则把此页淘汰,不然得找出后继指令中最迟访问的页面淘汰。可见最佳淘汰算法要花费较长的运算时间。(2) 最近最少使用页淘汰算法(LRU)。这是一种
12、经常使用的方法,有各种不同的实施方案,本例采用不断调整页表链的方法,即总是淘汰页表链链首页,而把新访问的页插入链尾。如果当前调用页已在页表内,则把它再次调整到链尾。这样就能保证最近使用的页,总是处于靠近链尾部分,而不常使用的页则移到链首,逐个被淘汰,在页表较大时,调整页表链的代价也是不小的。(3) 程序框图如下图2所示。图2 计算页面命中率框图3、程序运行结果格式(1) 程序运行结果格式THE VIRTUAL ADDRESS STREAM AS FOLLOWS:a0 =16895 a1=16896 a2=16897 a3=16302a4=25403 a5=13941 a6=13942 a7=8
13、767A252=23583 a253=20265 a254=20266 a255=20267= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =The algorithm is:optPAGE NUMBER WITH SIZE 1k FOR EACH ADDRESS IS:pageno0=17pageno1=17 pageno2=17 pageno3=16pageno4=25 pageno5=14 pageno6=14 pageno7=9pageno252=24 pageno253
14、=20 pageno254=20 pageno255=20vmsize=32k pagesize=1k- -page assigned pages_in/total references47.0000E-167.0000E-188.0000E-1108.0000E-1128.0000E-1149.0000E-1169.0000E-1189.0000E-1209.0000E-1229.0000E-1249.0000E-1269.0000E-1289.0000E-1309.0000E-1329.0000E-1PAGE NUMBER WITH SIZE 2k EACH ADDRESS IS:PAGE
15、 NUMBER WITH SIZE 4k EACH ADDRESS IS:PAGE NUMBER WITH SIZE 8k EACH ADDRESS IS:End the result for opt* *the algorithm is lru同上End the result for lru*(2)示例中使用的有关数据结构、常量和变量说明如下:length 被调试的指令地址流长度,可作为一个常量设定。called当前请求的页面号。pagefault页面失效标志,如当前请求页called已在页表内,则置pagefault=false,否则为true。table 页表。tablei=j,表示虚存
16、的第j页在实存的第i页中。used当前被占用的实存页面数,可用来判断当前实存中是否有空闲页。(3)本程序启动后,屏幕上显示“the algorithm is:”,用户可选择最佳淘汰算法(打入“OPT”)或者最近最少使用淘汰算法(打入“LRU”) 计算页面命中率。当然还可以加入各种其他的算法。4、小结(1) 编制评测各种算法性能的模拟程序是研制系统程序,尤其是操作系统所必须的。模拟的环境愈是真实,其结果愈是可靠,也就更有利于选择合适的方案。本任务虽然简单,但可作为一个尝试。(2) 注意正整数的范围只能从032767,限制程序中的虚存尺寸为32K,实际如采用更大的虚存实存,更能说明问题。三、设计题
17、(1) 编制和调试示例给出的请求页式存储管理程序,并运行之。2种算法均完成得70分。(2) 增加2种已学过的淘汰算法,计算它们的页面访问命中率。试对各种算法的命中率加以比较分析。每增加1种加15分,满分100分。提示:可选用FIFO方法,即先访问的页先淘汰,也可选用LRU方法中的其他方案。如在页表中设置标志位,按标志位值得变化来淘汰。也可用LFU方法,为页表中各页面设置访问计数器,淘汰访问频率最低的页(注意:当前访问的页不能淘汰)等等。四、思考题(1)设计一个界地址存储管理的模拟系统,模拟界地址方式下存储区的分配和回收过程。提示1:必须设置一个内存分配表,按照分配表中有关信息实施存储区的分配,
18、并不断根据存储区的分配和回收修改该表。算法有首次匹配法,循环首次匹配法和最佳匹配法等。可用各种方法的比较来充实实习内容。可使用碎片收集和复盖等技术。(2)自行设计或选用一种较为完善的内存管理方法,并加以实现。提示2:设计一个段页式管理的模拟程序或通过一个实际系统的消化和分析,编制一个程序来模拟该系统。课程设计任务(三):文件操作与管理一、目的与要求1、目的随着社会信息量的不断增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个极为重要的组成部分。学生应独立地用C语言(或其它程序设计语言)编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 指导书 21
限制150内