系统结构课程设计
- 格式:doc
- 大小:135.00 KB
- 文档页数:11
数据结构课程设计学生信息管理系统学生信息管理系统是一种用于管理学生信息的软件系统。
它主要用于学校、教育机构或者其他组织中的学生信息管理工作。
该系统可以匡助学校或者教育机构高效地采集、存储和管理学生的个人信息、学籍信息、成绩信息等。
一、系统架构学生信息管理系统通常由前端界面、后端数据库和服务器组成。
1. 前端界面:提供给用户使用的界面,包括学生信息录入、查询、修改和删除等功能。
界面设计应简洁、直观,方便用户操作。
2. 后端数据库:用于存储学生信息的数据库,可以使用关系型数据库如MySQL或者非关系型数据库如MongoDB。
数据库应具备高效的读写能力和良好的数据结构设计,以提高系统的性能和稳定性。
3. 服务器:用于承载学生信息管理系统的运行,包括前端界面的展示和与后端数据库的交互。
服务器应具备高并发处理能力,以应对大量用户同时访问的情况。
二、功能需求学生信息管理系统应具备以下功能:1. 学生信息录入:提供学生信息的录入界面,包括学生姓名、性别、出生日期、联系方式等基本信息的录入。
2. 学生信息查询:提供学生信息的查询功能,可以根据学生姓名、学号、班级等条件进行查询,并展示查询结果。
3. 学生信息修改:提供学生信息的修改功能,可以根据学生学号或者其他惟一标识符进行信息的修改。
4. 学生信息删除:提供学生信息的删除功能,可以根据学生学号或者其他惟一标识符进行信息的删除。
5. 学生成绩管理:提供学生成绩的录入、查询、修改和删除功能,可以根据学生学号或者其他惟一标识符进行成绩信息的管理。
6. 学生信息统计:提供学生信息的统计功能,可以统计学生的人数、男女比例、年龄分布等信息,并以图表形式展示。
7. 用户权限管理:提供不同用户角色的权限管理功能,如管理员、教师和学生等角色,不同角色具有不同的系统访问权限。
三、数据结构设计为了高效地存储和管理学生信息,需要设计合适的数据结构。
1. 学生信息表:用于存储学生的基本信息,包括学生学号、姓名、性别、出生日期、联系方式等字段。
计算机系统结构-量化研究方法第三版课程设计一、题目描述本课程设计主要目的是通过对计算机系统结构和量化研究方法的学习,设计出一个简单的计算机体系结构,对其进行调试和优化。
二、背景计算机系统结构是计算机科学的一个重要分支,主要研究计算机硬件和软件之间的交互关系,以及计算机如何执行程序的过程。
量化研究方法则是对计算机科学中的数学理论进行研究和应用,主要用于解决计算机科学中的复杂问题。
本课程设计主要通过对这两个方向的学习,来完成一个简单的计算机体系结构的设计和优化。
三、设计思路本课程设计主要分为三个阶段:1. 计算机体系结构的设计在这一阶段,学生需要学习计算机系统结构的基本原理和概念,并使用Verilog语言设计出一个简单的计算机体系结构,包括指令集、运算器、寄存器等基本组成部分。
2. 计算机体系结构的调试在这一阶段,学生需要使用FPGA开发板将设计好的计算机体系结构上载到硬件平台上,并通过I/O接口进行输入和输出的测试,对计算机体系结构进行调试,尽量达到程序功能设计的预期结果。
3. 计算机体系结构的优化在这一阶段,学生需要使用量化研究方法中的数学模型和算法对设计好的计算机体系结构进行性能分析,并进行优化设计,以达到更好的计算机体系结构性能表现。
四、具体实施方案1. 课程安排本课程设计将分为两个学期进行,第一学期主要是学习计算机系统结构和设计计算机体系结构的相关知识,第二学期主要是进行计算机体系结构的调试和优化。
2. 实验要求实验要求学生按照学期安排完成课程设计的各个阶段,学生需要提交两个实验报告,每个实验报告中需要包含课程设计的三个阶段的详细实施方案、实验结果、分析和总结。
3. 实验器材计算机体系结构的设计需要使用Verilog语言进行编程,需要使用FPGA开发板进行设计和调试,实验器材应该满足Verilog语言编程和硬件平台设计的要求。
五、实验结果通过对本课程设计的实施,学生能够充分理解计算机系统结构和量化研究方法的应用,能够独立完成一个简单的计算机体系结构的设计和优化。
家族关系查询系统数据结构课程设计
家族关系查询系统的数据结构可以通过使用图来表示家族成员之间的关系。
以下是一个可能的数据结构设计:
1. 节点:每个节点表示一个家庭成员,包含以下信息:
- 姓名
- 性别
- 出生日期
- 死亡日期(可选)
- 配偶节点指针(如果有)
- 父母节点指针
- 子女节点指针列表
2. 图的表示:使用邻接表或邻接矩阵来表示家族成员之间的关系。
3. 数据结构的操作:
- 添加家庭成员节点
- 删除家庭成员节点
- 添加婚姻关系
- 删除婚姻关系
- 添加父子关系
- 删除父子关系
- 查询某个人的配偶、父母、子女信息
- 查询某个人的兄弟姐妹信息
- 查询某个人的祖先、后代信息
- 查询某个人的近亲结构
- 查询某个人的家族全貌
4. 数据结构的实现:
- 可以使用面向对象的方式,将节点定义为一个类,使用指针/引用来连接不同的家庭成员。
- 使用图的数据结构来表示家族关系。
可以使用邻接表,每个节点对应一个家庭成员,每个节点的边表示亲属关系。
注意,上述只是一个概念性的设计,具体的实现可能需要根据具体的需求进行调整和扩展。
C 课程设计系统结构图一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C语言进行程序设计和问题解决。
具体目标如下:1.理解C语言的基本语法和编程规范。
2.掌握基本数据类型、运算符和表达式。
3.熟悉函数的定义和调用。
4.理解指针的概念和应用。
5.掌握数组、字符串和结构体的使用。
6.了解常用算法和数据结构。
7.能够编写简单的C程序,进行基本的输入输出操作。
8.能够使用C语言进行控制流程控制,如循环和分支语句。
9.能够使用C语言进行文件操作。
10.能够使用C语言进行简单的数据结构和算法实现。
情感态度价值观目标:1.培养学生的编程思维和问题解决能力。
2.培养学生的团队合作意识和沟通能力。
3.培养学生对计算机科学的兴趣和好奇心。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.C语言的基本语法和编程规范。
2.基本数据类型、运算符和表达式的使用。
3.函数的定义和调用,包括递归函数的使用。
4.指针的概念和应用,包括指针数组和指针函数。
5.数组、字符串和结构体的使用。
6.常用的数据结构和算法,如链表、栈、队列、排序和查找等。
7.文件操作和系统调用。
以上内容将按照教材的章节顺序进行讲解和练习,并结合实际案例和问题进行讨论和解决。
三、教学方法为了达到课程目标,我们将采用多种教学方法进行教学,包括:1.讲授法:通过讲解和示范,使学生掌握C语言的基本语法和编程规范。
2.讨论法:通过小组讨论和问题解答,培养学生的编程思维和问题解决能力。
3.案例分析法:通过分析实际案例和编写相应程序,使学生熟悉C语言的应用。
4.实验法:通过上机实验,使学生亲自动手编写程序,巩固所学知识。
以上教学方法将根据学生的实际情况和教学目标进行灵活运用,以激发学生的学习兴趣和主动性。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》或《C Primer Plus》。
数据结构课程设计简单的职工管理系统简单的职工管理系统设计1. 引言本文旨在设计一个简单的职工管理系统,用于匡助管理者进行职工信息的录入、查询、修改和删除等操作。
该系统基于数据结构的相关知识,通过合理的数据结构设计和算法实现,实现对职工信息的高效管理。
2. 功能需求2.1 职工信息录入系统提供一个录入界面,管理者可以输入职工的基本信息,包括职工编号、姓名、性别、年龄、职位等。
系统应该能够对输入的信息进行合法性验证,并将信息存储到合适的数据结构中。
2.2 职工信息查询系统提供一个查询界面,管理者可以根据职工的编号、姓名、职位等条件进行查询。
系统应该能够根据查询条件从数据结构中快速定位到符合条件的职工信息,并将结果展示给管理者。
2.3 职工信息修改系统提供一个修改界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行修改。
系统应该能够根据选择的职工信息,提供可修改的字段,并对输入的修改信息进行合法性验证,并更新数据结构中对应的职工信息。
2.4 职工信息删除系统提供一个删除界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行删除。
系统应该能够根据选择的职工信息,从数据结构中删除对应的职工信息,并给出相应的提示。
3. 数据结构设计为了高效地管理职工信息,我们可以采用链表作为基本的数据结构。
每一个节点表示一个职工信息,包括职工编号、姓名、性别、年龄、职位等字段。
节点之间通过指针进行连接,形成一个链表结构。
3.1 链表节点设计每一个链表节点包含以下字段:- 职工编号(int)- 姓名(string)- 性别(string)- 年龄(int)- 职位(string)- 指向下一个节点的指针(Node*)3.2 链表操作设计- 初始化链表:创建一个空链表,并初始化头节点指针为NULL。
- 添加节点:根据输入的职工信息创建一个新节点,并将其插入到链表的合适位置。
- 删除节点:根据职工的编号或者姓名等条件,找到对应的节点,并将其从链表中删除。
订票系统数据结构课程设计一、课程目标知识目标:1. 让学生理解订票系统中的基本数据结构,掌握线性表、树和图等数据结构在订票系统中的应用。
2. 使学生掌握如何使用数据结构优化订票系统的查询和存储效率,了解不同数据结构在系统性能上的影响。
3. 引导学生学会分析订票系统中的数据关系,并能运用所学知识设计合理的数据结构。
技能目标:1. 培养学生运用所学数据结构知识解决实际问题的能力,能够根据需求设计并实现订票系统中的数据结构。
2. 提高学生的编程实践能力,使其能够熟练运用编程语言实现订票系统相关功能。
3. 培养学生团队协作和沟通能力,能在项目中进行有效分工与协作。
情感态度价值观目标:1. 激发学生对数据结构学习的兴趣,培养其探究精神,提高学习积极性。
2. 培养学生的责任心,使其认识到数据结构在实际应用中的重要性,增强对技术应用的敬畏之心。
3. 引导学生树立正确的价值观,认识到科技进步对生活的影响,培养其热爱科学、服务社会的精神。
课程性质:本课程为高二年级信息技术课程,旨在让学生结合实际应用,深入理解数据结构知识,提高编程实践能力。
学生特点:学生已具备一定的数据结构基础,对编程有一定了解,具备基本的编程能力,但实际应用经验较少。
教学要求:结合订票系统实际应用场景,引导学生运用所学数据结构知识,培养其解决实际问题的能力。
教学过程中注重理论与实践相结合,强化编程实践,提高学生的综合运用能力。
通过项目合作,培养学生的团队协作和沟通能力。
二、教学内容1. 订票系统概述:介绍订票系统的基本功能、业务流程及在生活中的应用。
教材章节:第二章 数据结构在实际应用中的优势2. 数据结构基础知识回顾:线性表、树和图的基本概念、存储结构及操作方法。
教材章节:第三章 线性表;第四章 树;第五章 图3. 订票系统中的数据结构应用:a. 线性表在航班信息存储和查询中的应用b. 树在航空公司组织结构及航班层级关系表示中的应用c. 图在航班网络及航线规划中的应用教材章节:第六章 数据结构在实际应用中的案例分析4. 数据结构优化订票系统性能:分析不同数据结构在查询、存储等方面的性能差异,探讨优化策略。
《计算机系统结构》教学大纲课程名称:计算机系统结构课程学时:72学时课程类型:专业必修课课程学分:3学分课程考核方式:考试一、课程目标本课程旨在使学生了解计算机系统的基本结构和原理,掌握计算机系统的层次结构、指令系统和中央处理器、主存储器和输入输出系统等方面的知识,培养学生分析和设计计算机系统的能力。
二、课程内容1.计算机系统概论1.1计算机系统的发展历程1.2计算机系统的基本组成部分1.3计算机系统的层次结构2.指令系统2.1指令的分类与特点2.2指令的寻址方式2.3指令的执行过程2.4简单指令系统的设计与实现3.中央处理器3.1数据通路和控制器3.2指令的执行过程3.3中央处理器的设计与实现3.4流水线技术4.主存储器4.1存储器的基本概念4.2存储器的层次结构4.3存储器的组织与管理4.4高速缓存存储器的设计与实现4.5虚拟存储器5.输入输出系统5.1输入输出系统的功能与分类5.2输入输出设备的接口技术5.3中断处理和DMA技术5.4输入输出系统的设计与实现三、教学方法本课程采用理论课和实验相结合的教学方法。
理论课主要讲授计算机系统的基本原理和概念,通过示例和案例分析加深学生的理解。
实验课将对部分计算机系统组成部分进行仿真和实践操作,提高学生的实际操作能力。
四、教材与参考书主教材:《计算机组成与设计》(第5版)- David A. Patterson, John L. Hennessy,机械工业出版社参考书:1. 《计算机系统结构教程》- M. Morris Mano, 赵洁,高等教育出版社2.《计算机体系结构》-王肇国,机械工业出版社五、考核方式与评分标准本课程采取考试的方式进行综合评估。
考试主要包括选择题、填空题、简答题和综合性问题。
评分标准包括学生对计算机系统原理的掌握程度、对计算机系统设计的理解程度以及实验操作能力的表现等。
六、实验内容1.设计一个简单的指令系统,包括指令集、寻址方式和控制流程。
学生通讯录管理系统数据结构课程设计一、需求分析在学生通讯录管理系统中,我们需要实现以下功能:1.学生信息的录入与管理2.通讯录信息的增删查改3.数据的持久化存储二、系统设计1. 数据结构设计为了实现学生通讯录管理系统的功能,我们需要设计以下数据结构:•学生信息结构体包括学号、姓名、性别、年龄等字段•通讯录信息结构体包括联系人姓名、电话号码、邮箱等字段2. 算法设计2.1 添加学生信息当用户选择添加学生信息时,系统会要求用户输入学号、姓名、性别、年龄等信息,然后将这些信息存储在学生信息的数据结构中。
void addStudentInfo() {// 读取用户输入的学生信息// 将学生信息存储在学生信息结构体中}2.2 修改通讯录信息用户可以根据联系人姓名查找通讯录信息,并进行修改操作,比如修改电话号码、邮箱等内容。
void modifyContactInfo() {// 根据联系人姓名查找通讯录信息// 用户进行修改操作}2.3 删除通讯录信息用户可以根据联系人姓名删除通讯录信息。
void deleteContactInfo() {// 根据联系人姓名删除通讯录信息}3. 数据存储设计为了持久化存储数据,我们可以选择使用文件存储或数据库存储。
在本系统中,我们选择文件存储的方式,数据以文本的形式存储在文件中。
三、系统实现通过以上设计,我们可以开始实现学生通讯录管理系统。
在实现过程中,我们需要注意保证数据结构的正确性和数据操作的合法性,从而确保系统的稳定性和可靠性。
四、总结通过本次数据结构课程设计,我们深入了解了学生通讯录管理系统的实现原理和功能设计。
在接下来的学习中,我们将继续努力提升自己的编程能力,不断完善系统的功能和性能,为实现更多复杂系统打下坚实的基础。
《系统的结构》导学案一、导言系统的结构是系统科学中的重要观点,对于理解系统的运行机理和优化系统设计具有重要意义。
本导学案旨在帮助学生深入了解系统的结构,掌握系统结构的基本原理和方法。
二、进修目标1. 了解系统的定义和特点。
2. 掌握系统结构的基本组成因素。
3. 理解系统的层次结构和互相关联性。
4. 能够运用系统结构分析方法解决实际问题。
三、进修内容1. 系统的定义和特点- 系统是由多个互相关联的部分组成的整体,具有明确的边界和目标。
- 系统具有整体性、动态性、目标性和复杂性等特点。
2. 系统结构的基本组成因素- 输入:系统接受来自外部环境的信息和能量。
- 处理:系统内部对输入进行处理和转化。
- 输出:系统将处理后的结果反馈给外部环境。
- 控制:系统内部对自身运行进行监控和调节。
3. 系统的层次结构和互相关联性- 系统可以分为上层系统和下层系统,上层系统控制和协调下层系统的运行。
- 系统之间存在着互相依靠和互相制约的干系,形成复杂的系统网络。
4. 系统结构分析方法- 系统辨识:确定系统的边界和组成因素。
- 系统模型:建立系统的模型,描述系统的结构和行为。
- 系统仿真:利用计算机模拟系统的运行过程,评估系统的性能和稳定性。
四、进修活动1. 阅读教材相关章节,了解系统的定义和特点。
2. 分组讨论系统结构的基本组成因素,并设计一个简单的系统结构图。
3. 观察周围环境中的系统,分析其层次结构和互相关联性。
4. 利用系统仿真软件建立一个简单的系统模型,并进行仿真实验。
五、进修评估1. 参与讨论和小组活动,积极分享观点和经验。
2. 完成系统结构设计作业,展示对系统结构的理解和应用能力。
3. 参与系统仿真实验,分析实验结果并撰写实验报告。
六、拓展延伸1. 深入钻研系统工程领域的经典著作,如《系统工程导论》。
2. 参与系统结构设计比赛或项目,提升系统分析和设计能力。
3. 开展系统结构优化钻研,探索提高系统性能和效率的方法。
学生成绩管理系统数据结构课程设计学生成绩管理系统是一个用于管理学生学习成绩的软件系统。
它通常用于学校、教育机构或教师们来跟踪和记录学生的学习进展,并生成报告和分析数据。
在数据结构课程设计中,学生成绩管理系统需要设计合适的数据结构来存储和操作学生成绩数据。
在设计学生成绩管理系统时,可以使用以下数据结构:1. 数组:可以使用数组来存储学生成绩数据。
每个学生的成绩可以用一个数组元素表示,可以将学生按照学号或者其他标识符按顺序存储在数组中。
这样可以方便地通过索引来访问和修改学生成绩。
2. 链表:链表是另一种常用的数据结构,可以用于存储学生成绩数据。
每个学生的成绩可以用一个节点表示,节点可以包含学生的信息和成绩,同时包含指向下一个节点的指针。
这样可以方便地插入、删除和查找学生成绩。
3. 树:树可以用于组织学生成绩数据。
可以使用二叉搜索树或平衡二叉树来存储学生成绩,其中学生的学号或者姓名可以作为关键字。
这样可以方便地进行查找、插入和删除操作,并可支持对学生成绩进行排序。
以上是一些常用的数据结构,用于存储学生成绩管理系统的数据。
在具体的设计中,还可以根据实际需求选择其他合适的数据结构。
除了数据结构,学生成绩管理系统还可能包括其他功能,例如:1. 添加学生:可以通过输入学生的基本信息和成绩,将学生添加到系统中。
2. 删除学生:可以通过学生的学号或其他标识符,从系统中删除某个学生的信息和成绩。
3. 修改成绩:可以根据学生的学号或其他标识符,修改学生的成绩信息。
4. 查询成绩:可以根据学号、姓名或其他条件,查询学生的成绩信息。
5. 成绩统计和分析:可以对学生的成绩进行统计和分析,生成报告和图表,帮助教师或学校了解学生的学习情况。
以上只是学生成绩管理系统可能包含的一些基本功能,具体的设计和实现还需要根据实际需求和要求进行进一步的扩展和深入分析。
通过合适的数据结构和功能设计,可以实现一个高效、易用和功能完善的学生成绩管理系统。
福建农林大学金山学院
信息工程类
课程实习报告
课程名称:计算机系统结构
实习题目:页面置换算法性能分析姓名:
系:信息与机电工程系专业:计算机科学与技术年级:
学号:
指导教师:林燕
职称:助教
2012年7 月5 日
福建农林大学金山学院信息工程类课程实习报告结果评定
目录
1、实验目的 (1)
2、实验内容 (1)
3、实验步骤 (3)
3.1实验流程图 (3)
3.2设计思路 (3)
3.3程序代码 (5)
4、实验结果 (7)
5、结束语 (12)
参考文献 (12)
页面置换算法性能分析
1、实验目的
理解并掌握模拟分页式虚拟存储管理的缺页中断,以及选择页面调度算法处理缺页中断,掌握LRU、FIFO页面置换算法,理解堆栈型算法,了解内存分页管理策略,了解页面置换算法对虚拟存储系统性能的影响。
在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。
但应将哪个页面调出,须根据一定的算法来确定。
通常,把选择换出页面的算法称为页面置换算法
一个好的页面置换算法,应具有较低的页面更换频率。
从理论上讲,应将那些以后不再会访问的页面换出,或将那些在较长时间内不会再访问的页面调出。
2、实验内容
2.1、常见置换算法
①先进先出(FIFO)页面置换算法:
这是最早出现的置换算法。
该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。
该算法实现简单只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。
②LRU置换算法:最近最久未使用置换算法,LRU置换算法虽然是一种比较好的算法,但要求系统有较多的支持硬件。
为了了解一个进程在内存中的各个页面各有多少时间未被进程访问,以及如何快速地知道哪一页是最近最久未使用的页面。
2.2设计方案
给定页面地址流。
使用VC开发模拟程序,模拟在不同实页情况下,FIFO和LRU 置换算法对实页的使用情况,假定访问实页的时间为10 ,访问辅存的时间为100 计算并在屏幕上输出对应该页地址流在不同实页数和置换算法的情况下的访问
时间。
多次更改页地址流,重复上述操作,记录时间,观测在FIFO和LRU算法下访问时间和实页数的关系。
根据结果理解堆栈型算法。
给定页地址流:2,3,2,1,5,1,4,5,3,2,5,2
用堆栈法画图计算该页地址流在1-5个实页情况下,使用FIFO和LRU算法的页面命中情况并计算所需时间,用于与实验结果对比。
3、实验步骤
3.1实验流程图
3.2设计思路
FIFO算法可以用队列来模拟,可以利用一个特殊的队列来保存当前的各个页面好,每当新的进程访问页面时,便将旧页面的页面号从队列的对首移出,新的页
面号从队尾插入。
LRU算法可以用堆栈来模拟,可利用一个特殊的栈来保存当前使用的各个页面的页面号。
每当进程访问某页面时,便将旧页面的页面号从栈中移出,将它压入栈顶。
因此,栈顶始终是最新被访问页面的编号民,而栈底则是最近最久未使用的页面的页面号。
3.3程序代码
1.FIFO:
#include "stdio.h"
#define n 12
#define m 10
void main()
{
int x;
printf("请输入页面大小(1~10)\n");
scanf("%d",&x);
int ym[n],i,j,q,mem[m]={0},table[m][n];
int time=0;
char flag,f[n];
printf("请输入页面访问序列(12个数,空格隔开)\n");
for(i=0;i<n;i++)
scanf("%d",&ym[i]);
printf("\n");
for(i=0;i<n;i++) //查页表,看是否缺页
{
q=0;
while((ym[i]!=mem[q])&&(q!=x)) q++;
if(q==x) {flag='*';time=time+100;} //缺页,则置标志flag为'*'
else {flag=' ';time=time+10;}
if(flag=='*')
{
for(j=m-1;j>0;j--) //淘汰最先调入的页面调入当前访问的mem[j]=mem[j-1];
mem[0]=ym[i];
}
for(j=0;j<x;j++)
table[j][i]=mem[j];
}
printf("输出结果为下表(0代表为空,*代表有缺页)\n");
for(i=0;i<x;i++)
{
for(j=0;j<n;j++)
printf("%3d",table[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
printf("%3c",f[i]);
printf("\n");
printf("FIFO算法所用时间为%d",time);
printf("\n");
}
2.LRU
#include "stdio.h"
#define n 12
#define m 10
void main()
{
int x;//页面大小
printf("请输入页面大小(1~10)\n");
scanf("%d",&x);
int ym[n],i,j,q,mem[m]={0},table[m][n];
int time=0;
char flag,f[n];
printf("请输入页面访问序列\n");
for(i=0;i<n;i++)
scanf("%d",&ym[i]);
printf("\n");
for(i=0;i<n;i++) //查页表,看是否缺页
{
q=0;
while((ym[i]!=mem[q])&&(q!=x)) q++;
if(q==x) {flag='*';time=time+100;} //缺页,则置标志flag 为'*'
else {flag=' ';time=time+10;}
for(j=q;j>0;j--)
mem[j]=mem[j-1];
mem[0]=ym[i];
for(j=0;j<x;j++)
table[j][i]=mem[j];
}
printf("输出结果为下表(0代表为空,*代表有缺页)\n"); for(i=0;i<x;i++)
{
for(j=0;j<n;j++)
printf("%3d",table[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
printf("%3c",f[i]);
printf("\n");
printf("LRU算法所用时间为%d\n",time);
}
4、实验结果
FIFO算法的实验结果:
页面大小为1时:
页面大小为2时:
页面大小为3时:
页面大小为4时:
页面大小为5时:
LRU算法的实验结果:页面大小为1时:
页面大小为2时:
页面大小为3时:
页面大小为4时:
页面大小为5时:
对比程序模拟和画图模拟的结果一致。
5结束语
通过这次的实验使得我对各种页面置换算法有了深刻的了解,使得我对计算机系统结构的体悟有了进一步提高。
我掌握了页面置换算法的一般原理和基本方法。
8、参考文献
[1] 李学干计算机系统结构(第五版)西安电子科技大学出版社
[2] 谭浩强.C++面向对象程序设计.北京:清华大学出版社,2006
8。