2022年2022年计算机系统与系统软件课程设计任务书 .pdf

上传人:C****o 文档编号:39723246 上传时间:2022-09-07 格式:PDF 页数:17 大小:214.46KB
返回 下载 相关 举报
2022年2022年计算机系统与系统软件课程设计任务书 .pdf_第1页
第1页 / 共17页
2022年2022年计算机系统与系统软件课程设计任务书 .pdf_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《2022年2022年计算机系统与系统软件课程设计任务书 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机系统与系统软件课程设计任务书 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机系统与系统软件课程设计任务书一、课程设计目的计算机系统与系统软件课程设计是计算机类专业的集中实践性环节之一,是学习完计算机系统与系统软件课程后进行的一次全面的综合练习。其目的在于加深对操作系统课程的理解,使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,理解操作系统在计算机系统中的作用、地位和特点,具有分析实际操作系统,设计、构造和开发现代操作系统的基本能力,为今后从事的各种实际工作,如设计、分析和改进各种系统软件和应用软件提供必要的软件理论基础。二、课程设计内容及要求课程设计要求:每位同学从下述设计任务中任选一个任务完成,上机验收运行结果,现场提问,并提交所完成该任务的课程设计

2、报告。实验要求:1)上机前认真使用 C 语言编写好程序,采用Visual C+6.0 作为编译环境;2)上机时独立调试程序3)上机验收运行结果,现场提问4)根据具体任务要求,提交课程设计实验报告,报告内容包括:课程设计目的、内容、基本原理、模块划分、数据结构、算法设计、程序流程图(包括主程序流程图、模块详细设计流程图等)、以及算法源码(必须有相关注释,以有助于说明问题为宜,不得全盘打印而不加任何注释)、心得体会等。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -设计内容一页式虚拟存储管理页面置换算法1目的和要求在熟练掌握计算机虚拟存储技术的原理的基础上,利用一种程序设

3、计语言模拟实现几种置换算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础2实验内容阅读教材计算机操作系统第四章,掌握存储器管理相关概念和原理。模拟实现页式虚拟存储管理的三种页面置换算法(OPT、FIFO和 LRU),并通过比较性能得出结论。前提:(1)页面分配采用固定分配局部置换。(2)作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以从文件读入。(3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。3实验环境Windows操作系统、VC+6.0

4、、C语言4实验提示(1)基础知识存储管理是操作系统进行资源管理的一个重要功能。现代操作系统广泛采用虚名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -拟存储的技术对内存进行扩充。实现虚拟存储的一个主要技术手段就是将辅存和主存统一管理,在二者之间进行对换,从而形成物理上两级而逻辑上一级的存储管理系统。一个置换算法的好坏对这个逻辑上的单级虚存的性能起着极其重要的作用,而且会影响处理机的调度性能。对于本任务规定的前提:页面分配采用固定分配局部置换,则置换发生的时机是作业已经将操作系统分配的固定数目的物理块全部用完且发生缺页的时候。此时必须要将已经装入内存的部分逻辑页面换出以便

5、将所缺的页面调入内存。置换算法就是一个决定将内存中“哪一个”页面换出的算法。(2)数据结构要模拟实现某一个置换算法,有如下一些对象需要用相关的数据结构来描述:作业的页面走向(执行过程中对页面的访问顺序)。可以用数组也可以用字符串。如果用数组,则页面走向的长度受数组长度限制,如果用字符串,则需要将字符串进行解析,将字符串经过解析处理后变成一个页面的排列顺序。考虑最佳置换算法(“向前看”)和其他置换算法(“向后看“)的特点。页框(作业分得的物理块)。由于作业分得的物理块数在置换算法执行之前已经确定,可以用一些比较简单的数据结构实现。在综合置换算法的原理,可以灵活采用相应的数据结构,尽可能使程序的时

6、间复杂度最低。如对于FIFO,队列最合适,对于LRU,则数组和堆栈都比较合适,采用不同的数据结构还要配合在数据结构上的相应操作才行。(2)功能模块划分大体上可以将整个程序的模块划分成如下几个部分:1)主模块:主要是初始化、界面和模块调用。2)页面走向输入模块。(从键盘读入数据结构或将页面走向写入文件)3)置换算法模块。*判断模块。决定换出哪一块。每一种置换算法对应一种判断算法。*调整模块。根据判断模块的结果,调整作业分得物理块集合中逻辑页面的情况。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -*置换过程输出模块(在显示器上显示或写入文件)。该模块每发生一次置换,由置

7、换算法模块调用一次。*.除此之外,有些反复执行的操作考虑用过程或函数实现。总而言之,整个程序应该结构清晰,界面友好,可读性好,易调试,易扩充,易维护。设计内容二虚拟存储管理(请求分页存储管理)1目的和要求存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是:通过编写和调试请求页式存储管理中页面置换算法的模拟程序以加深对存储管理方案的理解,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换方法;通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。2实验内容阅读教材计算机操作系统第四章,掌握存储器管理相关概念和原理。(1)用 C语言实现对

8、分页式存储管理中的硬件的地址转换和产生缺页中断。(2)设计页表。分页式虚拟存储系统是把作业的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:可根据页面置换算法的不同,页表构的内容可以作适当的增删。(3)地址计算。作业执行时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元页 号标志主存块号在磁盘上的位置名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式:绝对地址=块

9、号*块长+单元号计算出欲访问的主存单元地址。按计算出的绝对地址可以取到操作数,完成一条指令的执行。若访问的页标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由OS按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(4)设计“地址转换”程序模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“*该页页号”,表示产生了一次缺页中断,执行缺页中断程序。该模拟程序的算法如图1.2 所示。图 1.2 地址转换模拟流程图(5)缺页中断模拟。如果访问页不在主存且页表未满,则

10、调入一页并打印页表情况;如果该页不在主存且页表已满,则产生缺页中断,模拟算法如图1.3 所示。开始是取一条指令取指令中访问的页号查页表该页标志=1?转缺页中断子程序形成绝对地址输出绝对地址有后继指令?结束取一条指令否是否名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -图 1.3 缺页中断算法流程图实验中采用FIFO 算法进行页面淘汰。把在主存的页的页号按进入主存的先后次序排成队列,每次总是调出队首页。用数组存放页号的队列。若分配给该作业的物理块数为 m,则数组由 m个元素组成,p0,p1 pm-1,队首指针 head,队尾指针 tail。当装入新页时,将其页号装入数组

11、。3实验环境Windows操作系统、VC+6.0、C语言4实验主要步骤:1.启动 C语言环境,新建文件。2.假定主存的每块长度为128 个字节;现有一个共七页的作业,其中的第0页至第 3 页已经装入主存,其余三页未装入主存;该作业的页表为:输出:页号 lnumber 输出:*lnumber 页号为 lnumber 淘汰页的页号 j=phead 将页 lnumber 装入队尾输出:页号 j 修改页表:第j 页存在标志改为“0”第lnumber 页存在标记改为“1”第lnumber 页修改标记改为“0”第lnumber 页主存块号为第j 页原主存块号名师资料总结-精品资料欢迎下载-名师精心整理-第

12、 6 页,共 17 页 -如果作业依次执行的指令序列(操作,页号,单元号)为:(+,0,070)、(+,1,050)、(*,2,015)、(存,3,021)、(取,0,056)、(,6,040)、(移位,4,053)、(+,5,023)、(存,1,037)、(取,2,078)、(+,0,070)、(+,4,001)、(存,6,084)。运行设计的地址转换程序,显示或打印运行结果。因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作。3.编写程序运行。设计内容三模拟实现可变分区存储管理1目的和要求在熟练掌握计算机分区存储管理方式的原理的基础上,利用一种程序设计语言模拟实现操作系统

13、的可变分区存储管理的功能,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础。2实验内容设计合理的数据结构来描述存储空间:对于未分配出去的部分,可以用空闲分区队列来描述,对于已经分配出去的部分,由装入内存的作业占据,可以将作业组织成链表或数组。实现分区存储管理的内存分配功能,要求选择至少两种适应算法(如首次适应0 1 5 011 1 1 8 012 2 1 9 013 3 1 1 021 4 0 022 5 0 023 6 0 121 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共

14、 17 页 -算法,循环首次适应算法,最佳适应算法,最坏适应算法)。实现分区存储管理的内存回收算法:要求能够正确处理回收分区与空闲分区的四种邻接关系。当碎片产生时,能够进行碎片的拼接。3实验环境Windows操作系统、VC+6.0、C语言4实验提示(1)基础知识分区存储管理是操作系统进行内存管理的一种方式。现代操作系统广泛采用多道程序设计的技术来提高系统吞吐量和内存的利用率。由于可变分区存储管理将一个连续的作业装入一片大小与作业恰好相等的内存中,因而地址变换的算法简单,需要的硬件支持少,变换效率高。但是最大的缺点是随着作业不断地进出内存,会将内存逐渐分割成一些大小很小而数目较多的小块,而且一块

15、中仅能容纳一道作业,导致内存利用率较低。分区存储管理的另一个缺点是由于必须将整个作业的逻辑地址空间全部装入内存作业才可以开始运行,因而这种存储管理的方式无法实现内存的扩充。(2)数据结构要模拟实现可变分区存储管理,有如下一些对象需要用相关的数据结构来描述:内存中没有被存储管理程序分配给作业的部分,属于空闲内存,要求以分区为单位进行统一管理以合理分配。包括对分区的描述(结构体)和对多个分区的组织(表格或链表)。对于内存中已经分配给作业的那部分内存,当作业完成后应该将占据的内存归还给系统,以便进行再分配。因此必须对已分配分区进行描述和组织,以便进行内存的回收。名师资料总结-精品资料欢迎下载-名师精

16、心整理-第 8 页,共 17 页 -(2)功能模块划分大体上可以将整个程序的模块划分成如下几个部分:1)主模块:主要是初始化(设置物理内存的用户区的大小,选取适应算法)和界面,界面参考如下:2)内存分配算法(实现两种适应算法)3)内存回收算法(考虑四种邻接情况,尤其是采用最佳(坏)适应算法时的分区合并)4)碎片拼接算法5)空闲分区队列显示6)作业队列显示除此之外,有些反复执行的操作考虑用过程或函数实现。总而言之,整个程序应该结构清晰,界面友好,可读性好,易调试,易扩充,易维护。设计内容四模拟实现算法多级反馈队列进程调度算法1目的和要求在熟练掌握计算机处理机调度原理的基础上,利用一种程序设计语言

17、模拟实现选择操作步骤:1-作业进入内存(内存分配)2-作业完成(内存回收)3-显示当前自由分区链4-显示当前内存中的作业占据的分区5-碎片拼接6-退出初始化,选择内存分配适应算法:1-首次适应算法2-循环首次适应算法3-最佳适应算法4-最坏适应算法5-初始化6-退出名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 17 页 -多级反馈队列进程调度算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础。2实验内容模拟实现算法多级反馈队列进程调度算法,并分析其调度效果。前提:?调度算法

18、中采用至少4 级队列,每级队列的时间片大小预先指定。?由于只是模拟实现,调度的对象进程实际上并不包括程序和数据,而仅仅包括一个 PCB数据结构,用 PCB来代表一个进程,调度算法调度的对象只包括进程的 PCB.处理机的切换通过将PCB 在运行指针和就绪队列之间进行移动来实现。又因为进程的组成只有PCB,没有程序和数据,因而进程只有运行和就绪两种状态,没有等待状态。?为避免显示结果超过一屏,调度结果要求写入文件中以方便检验。3实验环境Windows操作系统、VC+6.0、C语言4实验提示(1)基础知识由于处理机是计算机系统中最宝贵和稀有的资源,因而处理机调度是操作系统进行资源管理的一个重要功能。

19、现代操作系统广泛采用多道程序设计的技术来提高系统吞吐量,提高程序的并发度和资源利用率。特别是进程调度程序,由于其运行频率高,更加要求调度算法简单,高效,系统开销小,进程切换快,可以说,调度算法的好坏直接影响整个计算机系统的性能。多级队列调度算法是一种动态优先数调度算法。对于普通的优先调度算法,如名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 17 页 -何确定进程优先级以真实地反映进程运行的紧迫程度是一个难题,但在多级队列调度算法中,可以预先规定优先级一样可以获得好的性能。该算法实际上综合了两种调度算法:队列内部是FCFS,队列之间是优先调度。(2)数据结构最核心的数据结构就是

20、进程的逻辑结构。进程中必须包括的内容很多(参见教材PCB部分的定义),为了简化起见,可以略去一些与本模拟调度算法关系不大的一些信息。请同学们自行设计,要求能够实现本调度算法即可。(2)功能模块划分大体上可以将整个程序的模块划分成如下几个部分:1)主模块:主要是初始化(队列的级数和每级队列的时间片大小)和界面,可参考如下:2)进程创建3)调度算法实现4)显示多级队列中的就绪进程.除此之外,有些反复执行的操作考虑用过程或函数实现。总而言之,整个程序应该结构清晰,界面友好,可读性好,易调试,易扩充,易维护。设计内容五模拟实现银行家算法实现死锁避免1目的和要求在熟练掌握死锁发生原理和解决死锁问题的基础

21、上,利用一种程序设计语言模拟实现利用银行家算法实现死锁避免,一方面加深对原理的理解,另一方面提高学多级队列调度算法模拟实现1-初始化2-创建进程3-调度4-显示各级就绪队列的进程5-退出名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 17 页 -生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础。2实验内容模拟实现银行家算法实现死锁避免。要求:初始数据(如系统在T0 时刻的资源分配情况、每一种资源的总数量)从文本文件读入,文件中给出最大需求矩阵Max、分配矩阵Allocation,在程序中求得需求矩阵Need 和可利

22、用资源向量Available。3实验环境Windows操作系统、VC+6.0 C语言4实验提示银行家算法中的数据结构:1.可利用资源向量 Available 是一个含有 m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源数目。其数值随该类资源的分配和回收而动态地改变。2.最大需求矩阵 Max是个 nm 的矩阵,它定义了系统中n 个进程中的每一个进程对 m 类资源的最大需求。如果 Maxi,jk,表示进程 i 需要 Rj 类资源的最大数目为 k。3.分配矩阵 Allocation是一个 nm 的矩阵,它定义了系统中每一类资源当前已分配给每个进程的

23、资源数。如果Allocationi,j k,表示进程 i 当前已分得 Rj类资源的数目为 k。4.需求矩阵 Need是一个 nm 的矩阵,用以表示每一个进程尚需的各类资源数,如果 Needi,j=k,表示进程 i 还需要 Rj 类资源 k 个,方能完成其任务。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 17 页 -三矩阵间存在下述关系:Needi,j=Maxi,j-Allocationi,j 银行家算法:设 Requesti是进程 Pi的请求向量。如果 Requestij k,表示进程 Pi只需要 k个 Rj类型的资源。当 Pi发出资源请求后,系统按下述步骤进行检查:(1)

24、如果 Requestij Needi,j,则转向步骤 2;否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果 Requestij Availablej,则转向步骤3;否则,表示系统中尚无足够的资源,Pi必须等待。(3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值:Availablej:=Availablej-Requestij;Allocationi,j:=Allocationi,j+Requestij;Needi,j:=Needi,j-Requestij;(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程P

25、i,以完成本次分配;否则,将试探分配作废,恢复原来的资源分配状态,让进程Pi等待。安全性算法:(1)设置两个向量、工作向量Work表示系统可提供给进程继续运行所需要的各类资源数目,它含有 m 个元素,执行安全算法开始时,Work:=Available。、Finish表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做 Finishi:=false;当有足够资源分配给进程时,令Finishi:=true。(2)从进程集合中找到一个能满足下述条件的进程:Finishi:=false Needi,jPCB.state 置“运行”输出 p-PCB.name p-PCB.cpu_time-use

26、_cpu+p-PCB.cpu_time0 p 入 ready 队列队尾释放 p end 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 17 页 -三、课程设计说明书的编写规范写出课程设计说明书。说明书中除了在封面应有题目、班级、姓名、学号和课程设计日期、地点以外,其正文一般应包括:课程设计目的、内容、基本原理、模块划分、数据结构、算法设计、程序流程图(包括主程序流程图、模块详细设计流程图等)、以及部分算法源码(必须有相关注释,以有助于说明问题为宜,不得全盘打印而不加任何注释)、心得体会等。四、成绩评定方法由指导教师根据学生完成任务的情况、课程设计说明书的质量和课程设计过程中的工作态度等综合打分。1.课程设计报告及平时:50%包括报告内容的全面性、正确性,文字表述的准确性和条理性,以及书写的工整程度等(30%)。平时主要包括考勤和操作练习的实际情况(20%)2.设计末考核:50%包括上机验收结果和现场提问结果。名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 17 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁